tp/asm/J3DGraphBase/J3DMaterial.s

2056 lines
99 KiB
ArmAsm

.include "macros.inc"
.section .text, "ax" # 803157a0
.global J3DMaterial_NS_createColorBlock
J3DMaterial_NS_createColorBlock:
/* 803157A0 003126E0 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 803157A4 003126E4 7C 08 02 A6 */ mflr r0
/* 803157A8 003126E8 90 01 00 14 */ stw r0, 0x14(r1)
/* 803157AC 003126EC 93 E1 00 0C */ stw r31, 0xc(r1)
/* 803157B0 003126F0 93 C1 00 08 */ stw r30, 8(r1)
/* 803157B4 003126F4 38 A0 00 00 */ li r5, 0
/* 803157B8 003126F8 2C 03 00 00 */ cmpwi r3, 0
/* 803157BC 003126FC 41 82 00 2C */ beq lbl_803157E8
/* 803157C0 00312700 40 80 00 18 */ bge lbl_803157D8
/* 803157C4 00312704 3C 80 80 00 */ lis r4, 0x80000001@ha
/* 803157C8 00312708 38 04 00 01 */ addi r0, r4, 0x80000001@l
/* 803157CC 0031270C 7C 03 00 00 */ cmpw r3, r0
/* 803157D0 00312710 40 80 01 B4 */ bge lbl_80315984
/* 803157D4 00312714 48 00 01 10 */ b lbl_803158E4
lbl_803157D8:
/* 803157D8 00312718 3C 00 40 00 */ lis r0, 0x4000
/* 803157DC 0031271C 7C 03 00 00 */ cmpw r3, r0
/* 803157E0 00312720 41 82 00 78 */ beq lbl_80315858
/* 803157E4 00312724 48 00 01 A0 */ b lbl_80315984
lbl_803157E8:
/* 803157E8 00312728 38 60 00 20 */ li r3, 0x20
/* 803157EC 0031272C 4B FB 94 61 */ bl __nw__FUl
/* 803157F0 00312730 7C 7F 1B 79 */ or. r31, r3, r3
/* 803157F4 00312734 41 82 00 5C */ beq lbl_80315850
/* 803157F8 00312738 3C 60 80 3D */ lis r3, lbl_803CDEA0@ha
/* 803157FC 0031273C 38 03 DE A0 */ addi r0, r3, lbl_803CDEA0@l
/* 80315800 00312740 90 1F 00 00 */ stw r0, 0(r31)
/* 80315804 00312744 3C 60 80 3D */ lis r3, lbl_803CEA34@ha
/* 80315808 00312748 38 03 EA 34 */ addi r0, r3, lbl_803CEA34@l
/* 8031580C 0031274C 90 1F 00 00 */ stw r0, 0(r31)
/* 80315810 00312750 38 7F 00 04 */ addi r3, r31, 4
.global J3DGXColor
/* 80315814 00312754 3C 80 80 01 */ lis r4, J3DGXColor@ha
.global J3DGXColor
/* 80315818 00312758 38 84 E5 38 */ addi r4, r4, J3DGXColor@l
/* 8031581C 0031275C 38 A0 00 00 */ li r5, 0
/* 80315820 00312760 38 C0 00 04 */ li r6, 4
/* 80315824 00312764 38 E0 00 02 */ li r7, 2
/* 80315828 00312768 48 04 C5 39 */ bl func_80361D60
/* 8031582C 0031276C 38 7F 00 0E */ addi r3, r31, 0xe
.global J3DColorChan
/* 80315830 00312770 3C 80 80 01 */ lis r4, J3DColorChan@ha
.global J3DColorChan
/* 80315834 00312774 38 84 E4 7C */ addi r4, r4, J3DColorChan@l
/* 80315838 00312778 38 A0 00 00 */ li r5, 0
/* 8031583C 0031277C 38 C0 00 02 */ li r6, 2
/* 80315840 00312780 38 E0 00 04 */ li r7, 4
/* 80315844 00312784 48 04 C5 1D */ bl func_80361D60
/* 80315848 00312788 7F E3 FB 78 */ mr r3, r31
/* 8031584C 0031278C 48 00 1C 31 */ bl J3DColorBlockLightOff_NS_initialize
lbl_80315850:
/* 80315850 00312790 7F E5 FB 78 */ mr r5, r31
/* 80315854 00312794 48 00 01 30 */ b lbl_80315984
lbl_80315858:
/* 80315858 00312798 38 60 00 4C */ li r3, 0x4c
/* 8031585C 0031279C 4B FB 93 F1 */ bl __nw__FUl
/* 80315860 003127A0 7C 7F 1B 79 */ or. r31, r3, r3
/* 80315864 003127A4 41 82 00 78 */ beq lbl_803158DC
/* 80315868 003127A8 3C 60 80 3D */ lis r3, lbl_803CDEA0@ha
/* 8031586C 003127AC 38 03 DE A0 */ addi r0, r3, lbl_803CDEA0@l
/* 80315870 003127B0 90 1F 00 00 */ stw r0, 0(r31)
/* 80315874 003127B4 3C 60 80 3D */ lis r3, lbl_803CE678@ha
/* 80315878 003127B8 38 03 E6 78 */ addi r0, r3, lbl_803CE678@l
/* 8031587C 003127BC 90 1F 00 00 */ stw r0, 0(r31)
/* 80315880 003127C0 38 7F 00 04 */ addi r3, r31, 4
.global J3DGXColor
/* 80315884 003127C4 3C 80 80 01 */ lis r4, J3DGXColor@ha
.global J3DGXColor
/* 80315888 003127C8 38 84 E5 38 */ addi r4, r4, J3DGXColor@l
/* 8031588C 003127CC 38 A0 00 00 */ li r5, 0
/* 80315890 003127D0 38 C0 00 04 */ li r6, 4
/* 80315894 003127D4 38 E0 00 02 */ li r7, 2
/* 80315898 003127D8 48 04 C4 C9 */ bl func_80361D60
/* 8031589C 003127DC 38 7F 00 0C */ addi r3, r31, 0xc
.global J3DGXColor
/* 803158A0 003127E0 3C 80 80 01 */ lis r4, J3DGXColor@ha
.global J3DGXColor
/* 803158A4 003127E4 38 84 E5 38 */ addi r4, r4, J3DGXColor@l
/* 803158A8 003127E8 38 A0 00 00 */ li r5, 0
/* 803158AC 003127EC 38 C0 00 04 */ li r6, 4
/* 803158B0 003127F0 38 E0 00 02 */ li r7, 2
/* 803158B4 003127F4 48 04 C4 AD */ bl func_80361D60
/* 803158B8 003127F8 38 7F 00 16 */ addi r3, r31, 0x16
.global J3DColorChan
/* 803158BC 003127FC 3C 80 80 01 */ lis r4, J3DColorChan@ha
.global J3DColorChan
/* 803158C0 00312800 38 84 E4 7C */ addi r4, r4, J3DColorChan@l
/* 803158C4 00312804 38 A0 00 00 */ li r5, 0
/* 803158C8 00312808 38 C0 00 02 */ li r6, 2
/* 803158CC 0031280C 38 E0 00 04 */ li r7, 4
/* 803158D0 00312810 48 04 C4 91 */ bl func_80361D60
/* 803158D4 00312814 7F E3 FB 78 */ mr r3, r31
/* 803158D8 00312818 48 00 1C A9 */ bl J3DColorBlockLightOn_NS_initialize
lbl_803158DC:
/* 803158DC 0031281C 7F E5 FB 78 */ mr r5, r31
/* 803158E0 00312820 48 00 00 A4 */ b lbl_80315984
lbl_803158E4:
/* 803158E4 00312824 38 60 00 28 */ li r3, 0x28
/* 803158E8 00312828 4B FB 93 65 */ bl __nw__FUl
/* 803158EC 0031282C 7C 7F 1B 79 */ or. r31, r3, r3
/* 803158F0 00312830 41 82 00 90 */ beq lbl_80315980
/* 803158F4 00312834 7F FE FB 78 */ mr r30, r31
/* 803158F8 00312838 3C 60 80 3D */ lis r3, lbl_803CDEA0@ha
/* 803158FC 0031283C 38 03 DE A0 */ addi r0, r3, lbl_803CDEA0@l
/* 80315900 00312840 90 1F 00 00 */ stw r0, 0(r31)
/* 80315904 00312844 3C 60 80 3D */ lis r3, lbl_803CEA34@ha
/* 80315908 00312848 38 03 EA 34 */ addi r0, r3, lbl_803CEA34@l
/* 8031590C 0031284C 90 1F 00 00 */ stw r0, 0(r31)
/* 80315910 00312850 38 7F 00 04 */ addi r3, r31, 4
.global J3DGXColor
/* 80315914 00312854 3C 80 80 01 */ lis r4, J3DGXColor@ha
.global J3DGXColor
/* 80315918 00312858 38 84 E5 38 */ addi r4, r4, J3DGXColor@l
/* 8031591C 0031285C 38 A0 00 00 */ li r5, 0
/* 80315920 00312860 38 C0 00 04 */ li r6, 4
/* 80315924 00312864 38 E0 00 02 */ li r7, 2
/* 80315928 00312868 48 04 C4 39 */ bl func_80361D60
/* 8031592C 0031286C 38 7F 00 0E */ addi r3, r31, 0xe
.global J3DColorChan
/* 80315930 00312870 3C 80 80 01 */ lis r4, J3DColorChan@ha
.global J3DColorChan
/* 80315934 00312874 38 84 E4 7C */ addi r4, r4, J3DColorChan@l
/* 80315938 00312878 38 A0 00 00 */ li r5, 0
/* 8031593C 0031287C 38 C0 00 02 */ li r6, 2
/* 80315940 00312880 38 E0 00 04 */ li r7, 4
/* 80315944 00312884 48 04 C4 1D */ bl func_80361D60
/* 80315948 00312888 7F E3 FB 78 */ mr r3, r31
/* 8031594C 0031288C 48 00 1B 31 */ bl J3DColorBlockLightOff_NS_initialize
/* 80315950 00312890 3C 60 80 3D */ lis r3, lbl_803CE708@ha
/* 80315954 00312894 38 03 E7 08 */ addi r0, r3, lbl_803CE708@l
/* 80315958 00312898 90 1E 00 00 */ stw r0, 0(r30)
/* 8031595C 0031289C 38 7E 00 20 */ addi r3, r30, 0x20
.global J3DGXColor
/* 80315960 003128A0 3C 80 80 01 */ lis r4, J3DGXColor@ha
.global J3DGXColor
/* 80315964 003128A4 38 84 E5 38 */ addi r4, r4, J3DGXColor@l
/* 80315968 003128A8 38 A0 00 00 */ li r5, 0
/* 8031596C 003128AC 38 C0 00 04 */ li r6, 4
/* 80315970 003128B0 38 E0 00 02 */ li r7, 2
/* 80315974 003128B4 48 04 C3 ED */ bl func_80361D60
/* 80315978 003128B8 7F C3 F3 78 */ mr r3, r30
/* 8031597C 003128BC 48 00 1B 61 */ bl J3DColorBlockAmbientOn_NS_initialize
lbl_80315980:
/* 80315980 003128C0 7F E5 FB 78 */ mr r5, r31
lbl_80315984:
/* 80315984 003128C4 7C A3 2B 78 */ mr r3, r5
/* 80315988 003128C8 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 8031598C 003128CC 83 C1 00 08 */ lwz r30, 8(r1)
/* 80315990 003128D0 80 01 00 14 */ lwz r0, 0x14(r1)
/* 80315994 003128D4 7C 08 03 A6 */ mtlr r0
/* 80315998 003128D8 38 21 00 10 */ addi r1, r1, 0x10
/* 8031599C 003128DC 4E 80 00 20 */ blr
.global J3DMaterial_NS_createTexGenBlock
J3DMaterial_NS_createTexGenBlock:
/* 803159A0 003128E0 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 803159A4 003128E4 7C 08 02 A6 */ mflr r0
/* 803159A8 003128E8 90 01 00 14 */ stw r0, 0x14(r1)
/* 803159AC 003128EC 93 E1 00 0C */ stw r31, 0xc(r1)
/* 803159B0 003128F0 93 C1 00 08 */ stw r30, 8(r1)
/* 803159B4 003128F4 3C 00 08 00 */ lis r0, 0x800
/* 803159B8 003128F8 7C 03 00 00 */ cmpw r3, r0
/* 803159BC 003128FC 41 82 00 14 */ beq lbl_803159D0
/* 803159C0 00312900 40 80 00 A0 */ bge lbl_80315A60
/* 803159C4 00312904 2C 03 00 00 */ cmpwi r3, 0
/* 803159C8 00312908 41 82 00 98 */ beq lbl_80315A60
/* 803159CC 0031290C 48 00 00 94 */ b lbl_80315A60
lbl_803159D0:
/* 803159D0 00312910 38 60 00 6C */ li r3, 0x6c
/* 803159D4 00312914 4B FB 92 79 */ bl __nw__FUl
/* 803159D8 00312918 7C 7F 1B 79 */ or. r31, r3, r3
/* 803159DC 0031291C 41 82 00 7C */ beq lbl_80315A58
/* 803159E0 00312920 7F FE FB 78 */ mr r30, r31
/* 803159E4 00312924 3C 60 80 3D */ lis r3, lbl_803CDE34@ha
/* 803159E8 00312928 38 03 DE 34 */ addi r0, r3, lbl_803CDE34@l
/* 803159EC 0031292C 90 1F 00 00 */ stw r0, 0(r31)
/* 803159F0 00312930 3C 60 80 3D */ lis r3, lbl_803CE60C@ha
/* 803159F4 00312934 38 03 E6 0C */ addi r0, r3, lbl_803CE60C@l
/* 803159F8 00312938 90 1F 00 00 */ stw r0, 0(r31)
/* 803159FC 0031293C 38 7F 00 08 */ addi r3, r31, 8
.global J3DTexCoord
/* 80315A00 00312940 3C 80 80 01 */ lis r4, J3DTexCoord@ha
.global J3DTexCoord
/* 80315A04 00312944 38 84 E4 64 */ addi r4, r4, J3DTexCoord@l
/* 80315A08 00312948 38 A0 00 00 */ li r5, 0
/* 80315A0C 0031294C 38 C0 00 06 */ li r6, 6
/* 80315A10 00312950 38 E0 00 08 */ li r7, 8
/* 80315A14 00312954 48 04 C3 4D */ bl func_80361D60
/* 80315A18 00312958 7F E3 FB 78 */ mr r3, r31
/* 80315A1C 0031295C 48 00 1C 29 */ bl J3DTexGenBlockPatched_NS_initialize
/* 80315A20 00312960 3C 60 80 3D */ lis r3, lbl_803CE5A0@ha
/* 80315A24 00312964 38 03 E5 A0 */ addi r0, r3, lbl_803CE5A0@l
/* 80315A28 00312968 90 1E 00 00 */ stw r0, 0(r30)
/* 80315A2C 0031296C 3C 60 80 3A */ lis r3, lbl_803A1FE8@ha
/* 80315A30 00312970 8C 03 1F E8 */ lbzu r0, lbl_803A1FE8@l(r3)
/* 80315A34 00312974 98 1E 00 5C */ stb r0, 0x5c(r30)
/* 80315A38 00312978 C0 03 00 04 */ lfs f0, 4(r3)
/* 80315A3C 0031297C D0 1E 00 60 */ stfs f0, 0x60(r30)
/* 80315A40 00312980 C0 03 00 08 */ lfs f0, 8(r3)
/* 80315A44 00312984 D0 1E 00 64 */ stfs f0, 0x64(r30)
/* 80315A48 00312988 C0 03 00 0C */ lfs f0, 0xc(r3)
/* 80315A4C 0031298C D0 1E 00 68 */ stfs f0, 0x68(r30)
/* 80315A50 00312990 7F C3 F3 78 */ mr r3, r30
/* 80315A54 00312994 48 00 1C 21 */ bl J3DTexGenBlock4_NS_initialize
lbl_80315A58:
/* 80315A58 00312998 7F E3 FB 78 */ mr r3, r31
/* 80315A5C 0031299C 48 00 00 90 */ b lbl_80315AEC
lbl_80315A60:
/* 80315A60 003129A0 38 60 00 6C */ li r3, 0x6c
/* 80315A64 003129A4 4B FB 91 E9 */ bl __nw__FUl
/* 80315A68 003129A8 7C 7F 1B 79 */ or. r31, r3, r3
/* 80315A6C 003129AC 41 82 00 7C */ beq lbl_80315AE8
/* 80315A70 003129B0 7F FE FB 78 */ mr r30, r31
/* 80315A74 003129B4 3C 60 80 3D */ lis r3, lbl_803CDE34@ha
/* 80315A78 003129B8 38 03 DE 34 */ addi r0, r3, lbl_803CDE34@l
/* 80315A7C 003129BC 90 1F 00 00 */ stw r0, 0(r31)
/* 80315A80 003129C0 3C 60 80 3D */ lis r3, lbl_803CE60C@ha
/* 80315A84 003129C4 38 03 E6 0C */ addi r0, r3, lbl_803CE60C@l
/* 80315A88 003129C8 90 1F 00 00 */ stw r0, 0(r31)
/* 80315A8C 003129CC 38 7E 00 08 */ addi r3, r30, 8
.global J3DTexCoord
/* 80315A90 003129D0 3C 80 80 01 */ lis r4, J3DTexCoord@ha
.global J3DTexCoord
/* 80315A94 003129D4 38 84 E4 64 */ addi r4, r4, J3DTexCoord@l
/* 80315A98 003129D8 38 A0 00 00 */ li r5, 0
/* 80315A9C 003129DC 38 C0 00 06 */ li r6, 6
/* 80315AA0 003129E0 38 E0 00 08 */ li r7, 8
/* 80315AA4 003129E4 48 04 C2 BD */ bl func_80361D60
/* 80315AA8 003129E8 7F C3 F3 78 */ mr r3, r30
/* 80315AAC 003129EC 48 00 1B 99 */ bl J3DTexGenBlockPatched_NS_initialize
/* 80315AB0 003129F0 3C 60 80 3D */ lis r3, lbl_803CE534@ha
/* 80315AB4 003129F4 38 03 E5 34 */ addi r0, r3, lbl_803CE534@l
/* 80315AB8 003129F8 90 1F 00 00 */ stw r0, 0(r31)
/* 80315ABC 003129FC 3C 60 80 3A */ lis r3, lbl_803A1FE8@ha
/* 80315AC0 00312A00 8C 03 1F E8 */ lbzu r0, lbl_803A1FE8@l(r3)
/* 80315AC4 00312A04 98 1F 00 5C */ stb r0, 0x5c(r31)
/* 80315AC8 00312A08 C0 03 00 04 */ lfs f0, 4(r3)
/* 80315ACC 00312A0C D0 1F 00 60 */ stfs f0, 0x60(r31)
/* 80315AD0 00312A10 C0 03 00 08 */ lfs f0, 8(r3)
/* 80315AD4 00312A14 D0 1F 00 64 */ stfs f0, 0x64(r31)
/* 80315AD8 00312A18 C0 03 00 0C */ lfs f0, 0xc(r3)
/* 80315ADC 00312A1C D0 1F 00 68 */ stfs f0, 0x68(r31)
/* 80315AE0 00312A20 7F E3 FB 78 */ mr r3, r31
/* 80315AE4 00312A24 48 00 1B C1 */ bl J3DTexGenBlockBasic_NS_initialize
lbl_80315AE8:
/* 80315AE8 00312A28 7F E3 FB 78 */ mr r3, r31
lbl_80315AEC:
/* 80315AEC 00312A2C 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 80315AF0 00312A30 83 C1 00 08 */ lwz r30, 8(r1)
/* 80315AF4 00312A34 80 01 00 14 */ lwz r0, 0x14(r1)
/* 80315AF8 00312A38 7C 08 03 A6 */ mtlr r0
/* 80315AFC 00312A3C 38 21 00 10 */ addi r1, r1, 0x10
/* 80315B00 00312A40 4E 80 00 20 */ blr
.global J3DMaterial_NS_createTevBlock
J3DMaterial_NS_createTevBlock:
/* 80315B04 00312A44 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 80315B08 00312A48 7C 08 02 A6 */ mflr r0
/* 80315B0C 00312A4C 90 01 00 14 */ stw r0, 0x14(r1)
/* 80315B10 00312A50 93 E1 00 0C */ stw r31, 0xc(r1)
/* 80315B14 00312A54 38 00 00 00 */ li r0, 0
/* 80315B18 00312A58 2C 03 00 01 */ cmpwi r3, 1
/* 80315B1C 00312A5C 41 81 00 90 */ bgt lbl_80315BAC
/* 80315B20 00312A60 38 60 00 1C */ li r3, 0x1c
/* 80315B24 00312A64 4B FB 91 29 */ bl __nw__FUl
/* 80315B28 00312A68 7C 7F 1B 79 */ or. r31, r3, r3
/* 80315B2C 00312A6C 41 82 00 78 */ beq lbl_80315BA4
/* 80315B30 00312A70 3C 60 80 3D */ lis r3, lbl_803CE958@ha
/* 80315B34 00312A74 38 03 E9 58 */ addi r0, r3, lbl_803CE958@l
/* 80315B38 00312A78 90 1F 00 00 */ stw r0, 0(r31)
/* 80315B3C 00312A7C 3C 60 80 3D */ lis r3, lbl_803CE37C@ha
/* 80315B40 00312A80 38 03 E3 7C */ addi r0, r3, lbl_803CE37C@l
/* 80315B44 00312A84 90 1F 00 00 */ stw r0, 0(r31)
/* 80315B48 00312A88 38 7F 00 0A */ addi r3, r31, 0xa
.global J3DTevOrder
/* 80315B4C 00312A8C 3C 80 80 01 */ lis r4, J3DTevOrder@ha
.global J3DTevOrder
/* 80315B50 00312A90 38 84 E1 40 */ addi r4, r4, J3DTevOrder@l
/* 80315B54 00312A94 38 A0 00 00 */ li r5, 0
/* 80315B58 00312A98 38 C0 00 04 */ li r6, 4
/* 80315B5C 00312A9C 38 E0 00 01 */ li r7, 1
/* 80315B60 00312AA0 48 04 C2 01 */ bl func_80361D60
/* 80315B64 00312AA4 38 7F 00 0E */ addi r3, r31, 0xe
/* 80315B68 00312AA8 3C 80 80 01 */ lis r4, J3DTevStage@ha
/* 80315B6C 00312AAC 38 84 E2 30 */ addi r4, r4, J3DTevStage@l
/* 80315B70 00312AB0 38 A0 00 00 */ li r5, 0
/* 80315B74 00312AB4 38 C0 00 08 */ li r6, 8
/* 80315B78 00312AB8 38 E0 00 01 */ li r7, 1
/* 80315B7C 00312ABC 48 04 C1 E5 */ bl func_80361D60
/* 80315B80 00312AC0 38 7F 00 18 */ addi r3, r31, 0x18
.global J3DIndTevStage
/* 80315B84 00312AC4 3C 80 80 01 */ lis r4, J3DIndTevStage@ha
.global J3DIndTevStage
/* 80315B88 00312AC8 38 84 E1 4C */ addi r4, r4, J3DIndTevStage@l
/* 80315B8C 00312ACC 38 A0 00 00 */ li r5, 0
/* 80315B90 00312AD0 38 C0 00 04 */ li r6, 4
/* 80315B94 00312AD4 38 E0 00 01 */ li r7, 1
/* 80315B98 00312AD8 48 04 C1 C9 */ bl func_80361D60
/* 80315B9C 00312ADC 7F E3 FB 78 */ mr r3, r31
/* 80315BA0 00312AE0 48 00 1C 49 */ bl J3DTevBlock1_NS_initialize
lbl_80315BA4:
/* 80315BA4 00312AE4 7F E0 FB 78 */ mr r0, r31
/* 80315BA8 00312AE8 48 00 02 B8 */ b lbl_80315E60
lbl_80315BAC:
/* 80315BAC 00312AEC 2C 03 00 02 */ cmpwi r3, 2
/* 80315BB0 00312AF0 40 82 00 E4 */ bne lbl_80315C94
/* 80315BB4 00312AF4 38 60 00 6C */ li r3, 0x6c
/* 80315BB8 00312AF8 4B FB 90 95 */ bl __nw__FUl
/* 80315BBC 00312AFC 7C 7F 1B 79 */ or. r31, r3, r3
/* 80315BC0 00312B00 41 82 00 CC */ beq lbl_80315C8C
/* 80315BC4 00312B04 3C 60 80 3D */ lis r3, lbl_803CE958@ha
/* 80315BC8 00312B08 38 03 E9 58 */ addi r0, r3, lbl_803CE958@l
/* 80315BCC 00312B0C 90 1F 00 00 */ stw r0, 0(r31)
/* 80315BD0 00312B10 3C 60 80 3D */ lis r3, lbl_803CE2A0@ha
/* 80315BD4 00312B14 38 03 E2 A0 */ addi r0, r3, lbl_803CE2A0@l
/* 80315BD8 00312B18 90 1F 00 00 */ stw r0, 0(r31)
/* 80315BDC 00312B1C 38 7F 00 0C */ addi r3, r31, 0xc
.global J3DTevOrder
/* 80315BE0 00312B20 3C 80 80 01 */ lis r4, J3DTevOrder@ha
.global J3DTevOrder
/* 80315BE4 00312B24 38 84 E1 40 */ addi r4, r4, J3DTevOrder@l
/* 80315BE8 00312B28 38 A0 00 00 */ li r5, 0
/* 80315BEC 00312B2C 38 C0 00 04 */ li r6, 4
/* 80315BF0 00312B30 38 E0 00 02 */ li r7, 2
/* 80315BF4 00312B34 48 04 C1 6D */ bl func_80361D60
/* 80315BF8 00312B38 38 7F 00 14 */ addi r3, r31, 0x14
.global J3DGXColorS10
/* 80315BFC 00312B3C 3C 80 80 01 */ lis r4, J3DGXColorS10@ha
.global J3DGXColorS10
/* 80315C00 00312B40 38 84 E4 60 */ addi r4, r4, J3DGXColorS10@l
/* 80315C04 00312B44 38 A0 00 00 */ li r5, 0
/* 80315C08 00312B48 38 C0 00 08 */ li r6, 8
/* 80315C0C 00312B4C 38 E0 00 04 */ li r7, 4
/* 80315C10 00312B50 48 04 C1 51 */ bl func_80361D60
/* 80315C14 00312B54 38 7F 00 35 */ addi r3, r31, 0x35
/* 80315C18 00312B58 3C 80 80 01 */ lis r4, J3DTevStage@ha
/* 80315C1C 00312B5C 38 84 E2 30 */ addi r4, r4, J3DTevStage@l
/* 80315C20 00312B60 38 A0 00 00 */ li r5, 0
/* 80315C24 00312B64 38 C0 00 08 */ li r6, 8
/* 80315C28 00312B68 38 E0 00 02 */ li r7, 2
/* 80315C2C 00312B6C 48 04 C1 35 */ bl func_80361D60
/* 80315C30 00312B70 38 7F 00 45 */ addi r3, r31, 0x45
.global J3DGXColor
/* 80315C34 00312B74 3C 80 80 01 */ lis r4, J3DGXColor@ha
.global J3DGXColor
/* 80315C38 00312B78 38 84 E5 38 */ addi r4, r4, J3DGXColor@l
/* 80315C3C 00312B7C 38 A0 00 00 */ li r5, 0
/* 80315C40 00312B80 38 C0 00 04 */ li r6, 4
/* 80315C44 00312B84 38 E0 00 04 */ li r7, 4
/* 80315C48 00312B88 48 04 C1 19 */ bl func_80361D60
/* 80315C4C 00312B8C 38 7F 00 59 */ addi r3, r31, 0x59
.global J3DTevSwapModeTable
/* 80315C50 00312B90 3C 80 80 01 */ lis r4, J3DTevSwapModeTable@ha
.global J3DTevSwapModeTable
/* 80315C54 00312B94 38 84 E1 34 */ addi r4, r4, J3DTevSwapModeTable@l
/* 80315C58 00312B98 38 A0 00 00 */ li r5, 0
/* 80315C5C 00312B9C 38 C0 00 01 */ li r6, 1
/* 80315C60 00312BA0 38 E0 00 04 */ li r7, 4
/* 80315C64 00312BA4 48 04 C0 FD */ bl func_80361D60
/* 80315C68 00312BA8 38 7F 00 60 */ addi r3, r31, 0x60
.global J3DIndTevStage
/* 80315C6C 00312BAC 3C 80 80 01 */ lis r4, J3DIndTevStage@ha
.global J3DIndTevStage
/* 80315C70 00312BB0 38 84 E1 4C */ addi r4, r4, J3DIndTevStage@l
/* 80315C74 00312BB4 38 A0 00 00 */ li r5, 0
/* 80315C78 00312BB8 38 C0 00 04 */ li r6, 4
/* 80315C7C 00312BBC 38 E0 00 02 */ li r7, 2
/* 80315C80 00312BC0 48 04 C0 E1 */ bl func_80361D60
/* 80315C84 00312BC4 7F E3 FB 78 */ mr r3, r31
/* 80315C88 00312BC8 48 00 1B 89 */ bl J3DTevBlock2_NS_initialize
lbl_80315C8C:
/* 80315C8C 00312BCC 7F E0 FB 78 */ mr r0, r31
/* 80315C90 00312BD0 48 00 01 D0 */ b lbl_80315E60
lbl_80315C94:
/* 80315C94 00312BD4 2C 03 00 04 */ cmpwi r3, 4
/* 80315C98 00312BD8 41 81 00 E4 */ bgt lbl_80315D7C
/* 80315C9C 00312BDC 38 60 00 94 */ li r3, 0x94
/* 80315CA0 00312BE0 4B FB 8F AD */ bl __nw__FUl
/* 80315CA4 00312BE4 7C 7F 1B 79 */ or. r31, r3, r3
/* 80315CA8 00312BE8 41 82 00 CC */ beq lbl_80315D74
/* 80315CAC 00312BEC 3C 60 80 3D */ lis r3, lbl_803CE958@ha
/* 80315CB0 00312BF0 38 03 E9 58 */ addi r0, r3, lbl_803CE958@l
/* 80315CB4 00312BF4 90 1F 00 00 */ stw r0, 0(r31)
/* 80315CB8 00312BF8 3C 60 80 3D */ lis r3, lbl_803CE1C4@ha
/* 80315CBC 00312BFC 38 03 E1 C4 */ addi r0, r3, lbl_803CE1C4@l
/* 80315CC0 00312C00 90 1F 00 00 */ stw r0, 0(r31)
/* 80315CC4 00312C04 38 7F 00 10 */ addi r3, r31, 0x10
.global J3DTevOrder
/* 80315CC8 00312C08 3C 80 80 01 */ lis r4, J3DTevOrder@ha
.global J3DTevOrder
/* 80315CCC 00312C0C 38 84 E1 40 */ addi r4, r4, J3DTevOrder@l
/* 80315CD0 00312C10 38 A0 00 00 */ li r5, 0
/* 80315CD4 00312C14 38 C0 00 04 */ li r6, 4
/* 80315CD8 00312C18 38 E0 00 04 */ li r7, 4
/* 80315CDC 00312C1C 48 04 C0 85 */ bl func_80361D60
/* 80315CE0 00312C20 38 7F 00 21 */ addi r3, r31, 0x21
/* 80315CE4 00312C24 3C 80 80 01 */ lis r4, J3DTevStage@ha
/* 80315CE8 00312C28 38 84 E2 30 */ addi r4, r4, J3DTevStage@l
/* 80315CEC 00312C2C 38 A0 00 00 */ li r5, 0
/* 80315CF0 00312C30 38 C0 00 08 */ li r6, 8
/* 80315CF4 00312C34 38 E0 00 04 */ li r7, 4
/* 80315CF8 00312C38 48 04 C0 69 */ bl func_80361D60
/* 80315CFC 00312C3C 38 7F 00 42 */ addi r3, r31, 0x42
.global J3DGXColorS10
/* 80315D00 00312C40 3C 80 80 01 */ lis r4, J3DGXColorS10@ha
.global J3DGXColorS10
/* 80315D04 00312C44 38 84 E4 60 */ addi r4, r4, J3DGXColorS10@l
/* 80315D08 00312C48 38 A0 00 00 */ li r5, 0
/* 80315D0C 00312C4C 38 C0 00 08 */ li r6, 8
/* 80315D10 00312C50 38 E0 00 04 */ li r7, 4
/* 80315D14 00312C54 48 04 C0 4D */ bl func_80361D60
/* 80315D18 00312C58 38 7F 00 62 */ addi r3, r31, 0x62
.global J3DGXColor
/* 80315D1C 00312C5C 3C 80 80 01 */ lis r4, J3DGXColor@ha
.global J3DGXColor
/* 80315D20 00312C60 38 84 E5 38 */ addi r4, r4, J3DGXColor@l
/* 80315D24 00312C64 38 A0 00 00 */ li r5, 0
/* 80315D28 00312C68 38 C0 00 04 */ li r6, 4
/* 80315D2C 00312C6C 38 E0 00 04 */ li r7, 4
/* 80315D30 00312C70 48 04 C0 31 */ bl func_80361D60
/* 80315D34 00312C74 38 7F 00 7A */ addi r3, r31, 0x7a
.global J3DTevSwapModeTable
/* 80315D38 00312C78 3C 80 80 01 */ lis r4, J3DTevSwapModeTable@ha
.global J3DTevSwapModeTable
/* 80315D3C 00312C7C 38 84 E1 34 */ addi r4, r4, J3DTevSwapModeTable@l
/* 80315D40 00312C80 38 A0 00 00 */ li r5, 0
/* 80315D44 00312C84 38 C0 00 01 */ li r6, 1
/* 80315D48 00312C88 38 E0 00 04 */ li r7, 4
/* 80315D4C 00312C8C 48 04 C0 15 */ bl func_80361D60
/* 80315D50 00312C90 38 7F 00 80 */ addi r3, r31, 0x80
.global J3DIndTevStage
/* 80315D54 00312C94 3C 80 80 01 */ lis r4, J3DIndTevStage@ha
.global J3DIndTevStage
/* 80315D58 00312C98 38 84 E1 4C */ addi r4, r4, J3DIndTevStage@l
/* 80315D5C 00312C9C 38 A0 00 00 */ li r5, 0
/* 80315D60 00312CA0 38 C0 00 04 */ li r6, 4
/* 80315D64 00312CA4 38 E0 00 04 */ li r7, 4
/* 80315D68 00312CA8 48 04 BF F9 */ bl func_80361D60
/* 80315D6C 00312CAC 7F E3 FB 78 */ mr r3, r31
/* 80315D70 00312CB0 48 00 1B 7D */ bl J3DTevBlock4_NS_initialize
lbl_80315D74:
/* 80315D74 00312CB4 7F E0 FB 78 */ mr r0, r31
/* 80315D78 00312CB8 48 00 00 E8 */ b lbl_80315E60
lbl_80315D7C:
/* 80315D7C 00312CBC 2C 03 00 10 */ cmpwi r3, 0x10
/* 80315D80 00312CC0 41 81 00 E0 */ bgt lbl_80315E60
/* 80315D84 00312CC4 38 60 01 74 */ li r3, 0x174
/* 80315D88 00312CC8 4B FB 8E C5 */ bl __nw__FUl
/* 80315D8C 00312CCC 7C 7F 1B 79 */ or. r31, r3, r3
/* 80315D90 00312CD0 41 82 00 CC */ beq lbl_80315E5C
/* 80315D94 00312CD4 3C 60 80 3D */ lis r3, lbl_803CE958@ha
/* 80315D98 00312CD8 38 03 E9 58 */ addi r0, r3, lbl_803CE958@l
/* 80315D9C 00312CDC 90 1F 00 00 */ stw r0, 0(r31)
/* 80315DA0 00312CE0 3C 60 80 3D */ lis r3, lbl_803CE0E8@ha
/* 80315DA4 00312CE4 38 03 E0 E8 */ addi r0, r3, lbl_803CE0E8@l
/* 80315DA8 00312CE8 90 1F 00 00 */ stw r0, 0(r31)
/* 80315DAC 00312CEC 38 7F 00 18 */ addi r3, r31, 0x18
.global J3DTevOrder
/* 80315DB0 00312CF0 3C 80 80 01 */ lis r4, J3DTevOrder@ha
.global J3DTevOrder
/* 80315DB4 00312CF4 38 84 E1 40 */ addi r4, r4, J3DTevOrder@l
/* 80315DB8 00312CF8 38 A0 00 00 */ li r5, 0
/* 80315DBC 00312CFC 38 C0 00 04 */ li r6, 4
/* 80315DC0 00312D00 38 E0 00 10 */ li r7, 0x10
/* 80315DC4 00312D04 48 04 BF 9D */ bl func_80361D60
/* 80315DC8 00312D08 38 7F 00 59 */ addi r3, r31, 0x59
/* 80315DCC 00312D0C 3C 80 80 01 */ lis r4, J3DTevStage@ha
/* 80315DD0 00312D10 38 84 E2 30 */ addi r4, r4, J3DTevStage@l
/* 80315DD4 00312D14 38 A0 00 00 */ li r5, 0
/* 80315DD8 00312D18 38 C0 00 08 */ li r6, 8
/* 80315DDC 00312D1C 38 E0 00 10 */ li r7, 0x10
/* 80315DE0 00312D20 48 04 BF 81 */ bl func_80361D60
/* 80315DE4 00312D24 38 7F 00 DA */ addi r3, r31, 0xda
.global J3DGXColorS10
/* 80315DE8 00312D28 3C 80 80 01 */ lis r4, J3DGXColorS10@ha
.global J3DGXColorS10
/* 80315DEC 00312D2C 38 84 E4 60 */ addi r4, r4, J3DGXColorS10@l
/* 80315DF0 00312D30 38 A0 00 00 */ li r5, 0
/* 80315DF4 00312D34 38 C0 00 08 */ li r6, 8
/* 80315DF8 00312D38 38 E0 00 04 */ li r7, 4
/* 80315DFC 00312D3C 48 04 BF 65 */ bl func_80361D60
/* 80315E00 00312D40 38 7F 00 FA */ addi r3, r31, 0xfa
.global J3DGXColor
/* 80315E04 00312D44 3C 80 80 01 */ lis r4, J3DGXColor@ha
.global J3DGXColor
/* 80315E08 00312D48 38 84 E5 38 */ addi r4, r4, J3DGXColor@l
/* 80315E0C 00312D4C 38 A0 00 00 */ li r5, 0
/* 80315E10 00312D50 38 C0 00 04 */ li r6, 4
/* 80315E14 00312D54 38 E0 00 04 */ li r7, 4
/* 80315E18 00312D58 48 04 BF 49 */ bl func_80361D60
/* 80315E1C 00312D5C 38 7F 01 2A */ addi r3, r31, 0x12a
.global J3DTevSwapModeTable
/* 80315E20 00312D60 3C 80 80 01 */ lis r4, J3DTevSwapModeTable@ha
.global J3DTevSwapModeTable
/* 80315E24 00312D64 38 84 E1 34 */ addi r4, r4, J3DTevSwapModeTable@l
/* 80315E28 00312D68 38 A0 00 00 */ li r5, 0
/* 80315E2C 00312D6C 38 C0 00 01 */ li r6, 1
/* 80315E30 00312D70 38 E0 00 04 */ li r7, 4
/* 80315E34 00312D74 48 04 BF 2D */ bl func_80361D60
/* 80315E38 00312D78 38 7F 01 30 */ addi r3, r31, 0x130
.global J3DIndTevStage
/* 80315E3C 00312D7C 3C 80 80 01 */ lis r4, J3DIndTevStage@ha
.global J3DIndTevStage
/* 80315E40 00312D80 38 84 E1 4C */ addi r4, r4, J3DIndTevStage@l
/* 80315E44 00312D84 38 A0 00 00 */ li r5, 0
/* 80315E48 00312D88 38 C0 00 04 */ li r6, 4
/* 80315E4C 00312D8C 38 E0 00 10 */ li r7, 0x10
/* 80315E50 00312D90 48 04 BF 11 */ bl func_80361D60
/* 80315E54 00312D94 7F E3 FB 78 */ mr r3, r31
/* 80315E58 00312D98 48 00 1B A9 */ bl J3DTevBlock16_NS_initialize
lbl_80315E5C:
/* 80315E5C 00312D9C 7F E0 FB 78 */ mr r0, r31
lbl_80315E60:
/* 80315E60 00312DA0 7C 03 03 78 */ mr r3, r0
/* 80315E64 00312DA4 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 80315E68 00312DA8 80 01 00 14 */ lwz r0, 0x14(r1)
/* 80315E6C 00312DAC 7C 08 03 A6 */ mtlr r0
/* 80315E70 00312DB0 38 21 00 10 */ addi r1, r1, 0x10
/* 80315E74 00312DB4 4E 80 00 20 */ blr
.global J3DMaterial_NS_createIndBlock
J3DMaterial_NS_createIndBlock:
/* 80315E78 00312DB8 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 80315E7C 00312DBC 7C 08 02 A6 */ mflr r0
/* 80315E80 00312DC0 90 01 00 14 */ stw r0, 0x14(r1)
/* 80315E84 00312DC4 93 E1 00 0C */ stw r31, 0xc(r1)
/* 80315E88 00312DC8 2C 03 00 00 */ cmpwi r3, 0
/* 80315E8C 00312DCC 41 82 00 98 */ beq lbl_80315F24
/* 80315E90 00312DD0 38 60 00 7C */ li r3, 0x7c
/* 80315E94 00312DD4 4B FB 8D B9 */ bl __nw__FUl
/* 80315E98 00312DD8 7C 7F 1B 79 */ or. r31, r3, r3
/* 80315E9C 00312DDC 41 82 00 80 */ beq lbl_80315F1C
/* 80315EA0 00312DE0 3C 60 80 3D */ lis r3, lbl_803CDDE8@ha
/* 80315EA4 00312DE4 38 03 DD E8 */ addi r0, r3, lbl_803CDDE8@l
/* 80315EA8 00312DE8 90 1F 00 00 */ stw r0, 0(r31)
/* 80315EAC 00312DEC 3C 60 80 3D */ lis r3, lbl_803CE90C@ha
/* 80315EB0 00312DF0 38 03 E9 0C */ addi r0, r3, lbl_803CE90C@l
/* 80315EB4 00312DF4 90 1F 00 00 */ stw r0, 0(r31)
/* 80315EB8 00312DF8 38 7F 00 05 */ addi r3, r31, 5
.global J3DIndTexOrder
/* 80315EBC 00312DFC 3C 80 80 01 */ lis r4, J3DIndTexOrder@ha
.global J3DIndTexOrder
/* 80315EC0 00312E00 38 84 E1 28 */ addi r4, r4, J3DIndTexOrder@l
/* 80315EC4 00312E04 38 A0 00 00 */ li r5, 0
/* 80315EC8 00312E08 38 C0 00 04 */ li r6, 4
/* 80315ECC 00312E0C 38 E0 00 04 */ li r7, 4
/* 80315ED0 00312E10 48 04 BE 91 */ bl func_80361D60
/* 80315ED4 00312E14 38 7F 00 18 */ addi r3, r31, 0x18
.global J3DIndTexMtx
/* 80315ED8 00312E18 3C 80 80 01 */ lis r4, J3DIndTexMtx@ha
.global J3DIndTexMtx
/* 80315EDC 00312E1C 38 84 E0 F0 */ addi r4, r4, J3DIndTexMtx@l
.global J3DIndTexMtx_NS_dtor
/* 80315EE0 00312E20 3C A0 80 01 */ lis r5, J3DIndTexMtx_NS_dtor@ha
.global J3DIndTexMtx_NS_dtor
/* 80315EE4 00312E24 38 A5 E0 64 */ addi r5, r5, J3DIndTexMtx_NS_dtor@l
/* 80315EE8 00312E28 38 C0 00 1C */ li r6, 0x1c
/* 80315EEC 00312E2C 38 E0 00 03 */ li r7, 3
/* 80315EF0 00312E30 48 04 BE 71 */ bl func_80361D60
/* 80315EF4 00312E34 38 7F 00 6C */ addi r3, r31, 0x6c
.global J3DIndTexCoordScale
/* 80315EF8 00312E38 3C 80 80 01 */ lis r4, J3DIndTexCoordScale@ha
.global J3DIndTexCoordScale
/* 80315EFC 00312E3C 38 84 E0 E4 */ addi r4, r4, J3DIndTexCoordScale@l
.global J3DIndTexCoordScale_NS_dtor
/* 80315F00 00312E40 3C A0 80 01 */ lis r5, J3DIndTexCoordScale_NS_dtor@ha
.global J3DIndTexCoordScale_NS_dtor
/* 80315F04 00312E44 38 A5 E0 24 */ addi r5, r5, J3DIndTexCoordScale_NS_dtor@l
/* 80315F08 00312E48 38 C0 00 04 */ li r6, 4
/* 80315F0C 00312E4C 38 E0 00 04 */ li r7, 4
/* 80315F10 00312E50 48 04 BE 51 */ bl func_80361D60
/* 80315F14 00312E54 7F E3 FB 78 */ mr r3, r31
/* 80315F18 00312E58 48 00 1C 11 */ bl J3DIndBlockFull_NS_initialize
lbl_80315F1C:
/* 80315F1C 00312E5C 7F E3 FB 78 */ mr r3, r31
/* 80315F20 00312E60 48 00 00 2C */ b lbl_80315F4C
lbl_80315F24:
/* 80315F24 00312E64 38 60 00 04 */ li r3, 4
/* 80315F28 00312E68 4B FB 8D 25 */ bl __nw__FUl
/* 80315F2C 00312E6C 28 03 00 00 */ cmplwi r3, 0
/* 80315F30 00312E70 41 82 00 1C */ beq lbl_80315F4C
/* 80315F34 00312E74 3C 80 80 3D */ lis r4, lbl_803CDDE8@ha
/* 80315F38 00312E78 38 04 DD E8 */ addi r0, r4, lbl_803CDDE8@l
/* 80315F3C 00312E7C 90 03 00 00 */ stw r0, 0(r3)
/* 80315F40 00312E80 3C 80 80 3D */ lis r4, lbl_803CDD9C@ha
/* 80315F44 00312E84 38 04 DD 9C */ addi r0, r4, lbl_803CDD9C@l
/* 80315F48 00312E88 90 03 00 00 */ stw r0, 0(r3)
lbl_80315F4C:
/* 80315F4C 00312E8C 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 80315F50 00312E90 80 01 00 14 */ lwz r0, 0x14(r1)
/* 80315F54 00312E94 7C 08 03 A6 */ mtlr r0
/* 80315F58 00312E98 38 21 00 10 */ addi r1, r1, 0x10
/* 80315F5C 00312E9C 4E 80 00 20 */ blr
.global J3DMaterial_NS_createPEBlock
J3DMaterial_NS_createPEBlock:
/* 80315F60 00312EA0 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 80315F64 00312EA4 7C 08 02 A6 */ mflr r0
/* 80315F68 00312EA8 90 01 00 14 */ stw r0, 0x14(r1)
/* 80315F6C 00312EAC 93 E1 00 0C */ stw r31, 0xc(r1)
/* 80315F70 00312EB0 3B E0 00 00 */ li r31, 0
/* 80315F74 00312EB4 28 03 00 00 */ cmplwi r3, 0
/* 80315F78 00312EB8 40 82 00 A0 */ bne lbl_80316018
/* 80315F7C 00312EBC 54 80 07 FF */ clrlwi. r0, r4, 0x1f
/* 80315F80 00312EC0 41 82 00 30 */ beq lbl_80315FB0
/* 80315F84 00312EC4 38 60 00 04 */ li r3, 4
/* 80315F88 00312EC8 4B FB 8C C5 */ bl __nw__FUl
/* 80315F8C 00312ECC 28 03 00 00 */ cmplwi r3, 0
/* 80315F90 00312ED0 41 82 01 5C */ beq lbl_803160EC
/* 80315F94 00312ED4 3C 80 80 3D */ lis r4, lbl_803CDD20@ha
/* 80315F98 00312ED8 38 04 DD 20 */ addi r0, r4, lbl_803CDD20@l
/* 80315F9C 00312EDC 90 03 00 00 */ stw r0, 0(r3)
/* 80315FA0 00312EE0 3C 80 80 3D */ lis r4, lbl_803CE890@ha
/* 80315FA4 00312EE4 38 04 E8 90 */ addi r0, r4, lbl_803CE890@l
/* 80315FA8 00312EE8 90 03 00 00 */ stw r0, 0(r3)
/* 80315FAC 00312EEC 48 00 01 40 */ b lbl_803160EC
lbl_80315FB0:
/* 80315FB0 00312EF0 54 80 07 BD */ rlwinm. r0, r4, 0, 0x1e, 0x1e
/* 80315FB4 00312EF4 41 82 00 30 */ beq lbl_80315FE4
/* 80315FB8 00312EF8 38 60 00 04 */ li r3, 4
/* 80315FBC 00312EFC 4B FB 8C 91 */ bl __nw__FUl
/* 80315FC0 00312F00 28 03 00 00 */ cmplwi r3, 0
/* 80315FC4 00312F04 41 82 01 28 */ beq lbl_803160EC
/* 80315FC8 00312F08 3C 80 80 3D */ lis r4, lbl_803CDD20@ha
/* 80315FCC 00312F0C 38 04 DD 20 */ addi r0, r4, lbl_803CDD20@l
/* 80315FD0 00312F10 90 03 00 00 */ stw r0, 0(r3)
/* 80315FD4 00312F14 3C 80 80 3D */ lis r4, lbl_803CE814@ha
/* 80315FD8 00312F18 38 04 E8 14 */ addi r0, r4, lbl_803CE814@l
/* 80315FDC 00312F1C 90 03 00 00 */ stw r0, 0(r3)
/* 80315FE0 00312F20 48 00 01 0C */ b lbl_803160EC
lbl_80315FE4:
/* 80315FE4 00312F24 54 80 07 7B */ rlwinm. r0, r4, 0, 0x1d, 0x1d
/* 80315FE8 00312F28 41 82 00 30 */ beq lbl_80316018
/* 80315FEC 00312F2C 38 60 00 04 */ li r3, 4
/* 80315FF0 00312F30 4B FB 8C 5D */ bl __nw__FUl
/* 80315FF4 00312F34 28 03 00 00 */ cmplwi r3, 0
/* 80315FF8 00312F38 41 82 00 F4 */ beq lbl_803160EC
/* 80315FFC 00312F3C 3C 80 80 3D */ lis r4, lbl_803CDD20@ha
/* 80316000 00312F40 38 04 DD 20 */ addi r0, r4, lbl_803CDD20@l
/* 80316004 00312F44 90 03 00 00 */ stw r0, 0(r3)
/* 80316008 00312F48 3C 80 80 3D */ lis r4, lbl_803CE798@ha
/* 8031600C 00312F4C 38 04 E7 98 */ addi r0, r4, lbl_803CE798@l
/* 80316010 00312F50 90 03 00 00 */ stw r0, 0(r3)
/* 80316014 00312F54 48 00 00 D8 */ b lbl_803160EC
lbl_80316018:
/* 80316018 00312F58 3C 03 F0 00 */ addis r0, r3, 0xf000
/* 8031601C 00312F5C 28 00 00 00 */ cmplwi r0, 0
/* 80316020 00312F60 40 82 00 6C */ bne lbl_8031608C
/* 80316024 00312F64 38 60 00 40 */ li r3, 0x40
/* 80316028 00312F68 4B FB 8C 25 */ bl __nw__FUl
/* 8031602C 00312F6C 7C 7F 1B 79 */ or. r31, r3, r3
/* 80316030 00312F70 41 82 00 B8 */ beq lbl_803160E8
/* 80316034 00312F74 3C 60 80 3D */ lis r3, lbl_803CDD20@ha
/* 80316038 00312F78 38 03 DD 20 */ addi r0, r3, lbl_803CDD20@l
/* 8031603C 00312F7C 90 1F 00 00 */ stw r0, 0(r31)
/* 80316040 00312F80 3C 60 80 3D */ lis r3, lbl_803CDFF0@ha
/* 80316044 00312F84 38 03 DF F0 */ addi r0, r3, lbl_803CDFF0@l
/* 80316048 00312F88 90 1F 00 00 */ stw r0, 0(r31)
/* 8031604C 00312F8C 38 7F 00 04 */ addi r3, r31, 4
/* 80316050 00312F90 3C 80 80 3A */ lis r4, lbl_803A1FBC@ha
/* 80316054 00312F94 38 84 1F BC */ addi r4, r4, lbl_803A1FBC@l
/* 80316058 00312F98 48 00 F7 A9 */ bl J3DFogInfo_NS___as
/* 8031605C 00312F9C A0 02 C9 FA */ lhz r0, lbl_804563FA-_SDA2_BASE_(r2)
/* 80316060 00312FA0 B0 1F 00 30 */ sth r0, 0x30(r31)
/* 80316064 00312FA4 38 00 00 00 */ li r0, 0
/* 80316068 00312FA8 98 1F 00 32 */ stb r0, 0x32(r31)
/* 8031606C 00312FAC 98 1F 00 33 */ stb r0, 0x33(r31)
/* 80316070 00312FB0 80 02 C9 EC */ lwz r0, lbl_804563EC-_SDA2_BASE_(r2)
/* 80316074 00312FB4 90 1F 00 34 */ stw r0, 0x34(r31)
/* 80316078 00312FB8 A0 02 C9 FC */ lhz r0, lbl_804563FC-_SDA2_BASE_(r2)
/* 8031607C 00312FBC B0 1F 00 38 */ sth r0, 0x38(r31)
/* 80316080 00312FC0 7F E3 FB 78 */ mr r3, r31
/* 80316084 00312FC4 48 00 1A D5 */ bl J3DPEBlockFull_NS_initialize
/* 80316088 00312FC8 48 00 00 60 */ b lbl_803160E8
lbl_8031608C:
/* 8031608C 00312FCC 3C 03 E0 00 */ addis r0, r3, 0xe000
/* 80316090 00312FD0 28 00 00 00 */ cmplwi r0, 0
/* 80316094 00312FD4 40 82 00 54 */ bne lbl_803160E8
/* 80316098 00312FD8 38 60 00 10 */ li r3, 0x10
/* 8031609C 00312FDC 4B FB 8B B1 */ bl __nw__FUl
/* 803160A0 00312FE0 7C 7F 1B 79 */ or. r31, r3, r3
/* 803160A4 00312FE4 41 82 00 44 */ beq lbl_803160E8
/* 803160A8 00312FE8 3C 80 80 3D */ lis r4, lbl_803CDD20@ha
/* 803160AC 00312FEC 38 04 DD 20 */ addi r0, r4, lbl_803CDD20@l
/* 803160B0 00312FF0 90 1F 00 00 */ stw r0, 0(r31)
/* 803160B4 00312FF4 3C 80 80 3D */ lis r4, lbl_803CE06C@ha
/* 803160B8 00312FF8 38 04 E0 6C */ addi r0, r4, lbl_803CE06C@l
/* 803160BC 00312FFC 90 1F 00 00 */ stw r0, 0(r31)
/* 803160C0 00313000 A0 02 C9 FA */ lhz r0, lbl_804563FA-_SDA2_BASE_(r2)
/* 803160C4 00313004 B0 1F 00 04 */ sth r0, 4(r31)
/* 803160C8 00313008 38 00 00 00 */ li r0, 0
/* 803160CC 0031300C 98 1F 00 06 */ stb r0, 6(r31)
/* 803160D0 00313010 98 1F 00 07 */ stb r0, 7(r31)
/* 803160D4 00313014 80 02 C9 EC */ lwz r0, lbl_804563EC-_SDA2_BASE_(r2)
/* 803160D8 00313018 90 1F 00 08 */ stw r0, 8(r31)
/* 803160DC 0031301C A0 02 C9 FC */ lhz r0, lbl_804563FC-_SDA2_BASE_(r2)
/* 803160E0 00313020 B0 1F 00 0C */ sth r0, 0xc(r31)
/* 803160E4 00313024 48 00 1A 51 */ bl J3DPEBlockFogOff_NS_initialize
lbl_803160E8:
/* 803160E8 00313028 7F E3 FB 78 */ mr r3, r31
lbl_803160EC:
/* 803160EC 0031302C 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 803160F0 00313030 80 01 00 14 */ lwz r0, 0x14(r1)
/* 803160F4 00313034 7C 08 03 A6 */ mtlr r0
/* 803160F8 00313038 38 21 00 10 */ addi r1, r1, 0x10
/* 803160FC 0031303C 4E 80 00 20 */ blr
.global J3DMaterial_NS_calcSizeColorBlock
J3DMaterial_NS_calcSizeColorBlock:
/* 80316100 00313040 38 A0 00 00 */ li r5, 0
/* 80316104 00313044 2C 03 00 00 */ cmpwi r3, 0
/* 80316108 00313048 41 82 00 2C */ beq lbl_80316134
/* 8031610C 0031304C 40 80 00 18 */ bge lbl_80316124
/* 80316110 00313050 3C 80 80 00 */ lis r4, 0x80000001@ha
/* 80316114 00313054 38 04 00 01 */ addi r0, r4, 0x80000001@l
/* 80316118 00313058 7C 03 00 00 */ cmpw r3, r0
/* 8031611C 0031305C 40 80 00 2C */ bge lbl_80316148
/* 80316120 00313060 48 00 00 24 */ b lbl_80316144
lbl_80316124:
/* 80316124 00313064 3C 00 40 00 */ lis r0, 0x4000
/* 80316128 00313068 7C 03 00 00 */ cmpw r3, r0
/* 8031612C 0031306C 41 82 00 10 */ beq lbl_8031613C
/* 80316130 00313070 48 00 00 18 */ b lbl_80316148
lbl_80316134:
/* 80316134 00313074 38 A0 00 20 */ li r5, 0x20
/* 80316138 00313078 48 00 00 10 */ b lbl_80316148
lbl_8031613C:
/* 8031613C 0031307C 38 A0 00 4C */ li r5, 0x4c
/* 80316140 00313080 48 00 00 08 */ b lbl_80316148
lbl_80316144:
/* 80316144 00313084 38 A0 00 28 */ li r5, 0x28
lbl_80316148:
/* 80316148 00313088 7C A3 2B 78 */ mr r3, r5
/* 8031614C 0031308C 4E 80 00 20 */ blr
.global J3DMaterial_NS_calcSizeTexGenBlock
J3DMaterial_NS_calcSizeTexGenBlock:
/* 80316150 00313090 3C 00 08 00 */ lis r0, 0x800
/* 80316154 00313094 7C 03 00 00 */ cmpw r3, r0
/* 80316158 00313098 41 82 00 14 */ beq lbl_8031616C
/* 8031615C 0031309C 40 80 00 18 */ bge lbl_80316174
/* 80316160 003130A0 2C 03 00 00 */ cmpwi r3, 0
/* 80316164 003130A4 41 82 00 10 */ beq lbl_80316174
/* 80316168 003130A8 48 00 00 0C */ b lbl_80316174
lbl_8031616C:
/* 8031616C 003130AC 38 60 00 6C */ li r3, 0x6c
/* 80316170 003130B0 4E 80 00 20 */ blr
lbl_80316174:
/* 80316174 003130B4 38 60 00 6C */ li r3, 0x6c
/* 80316178 003130B8 4E 80 00 20 */ blr
.global J3DMaterial_NS_calcSizeTevBlock
J3DMaterial_NS_calcSizeTevBlock:
/* 8031617C 003130BC 38 00 00 00 */ li r0, 0
/* 80316180 003130C0 2C 03 00 01 */ cmpwi r3, 1
/* 80316184 003130C4 41 81 00 0C */ bgt lbl_80316190
/* 80316188 003130C8 38 00 00 1C */ li r0, 0x1c
/* 8031618C 003130CC 48 00 00 30 */ b lbl_803161BC
lbl_80316190:
/* 80316190 003130D0 2C 03 00 02 */ cmpwi r3, 2
/* 80316194 003130D4 40 82 00 0C */ bne lbl_803161A0
/* 80316198 003130D8 38 00 00 6C */ li r0, 0x6c
/* 8031619C 003130DC 48 00 00 20 */ b lbl_803161BC
lbl_803161A0:
/* 803161A0 003130E0 2C 03 00 04 */ cmpwi r3, 4
/* 803161A4 003130E4 41 81 00 0C */ bgt lbl_803161B0
/* 803161A8 003130E8 38 00 00 94 */ li r0, 0x94
/* 803161AC 003130EC 48 00 00 10 */ b lbl_803161BC
lbl_803161B0:
/* 803161B0 003130F0 2C 03 00 10 */ cmpwi r3, 0x10
/* 803161B4 003130F4 41 81 00 08 */ bgt lbl_803161BC
/* 803161B8 003130F8 38 00 01 74 */ li r0, 0x174
lbl_803161BC:
/* 803161BC 003130FC 7C 03 03 78 */ mr r3, r0
/* 803161C0 00313100 4E 80 00 20 */ blr
.global J3DMaterial_NS_calcSizeIndBlock
J3DMaterial_NS_calcSizeIndBlock:
/* 803161C4 00313104 2C 03 00 00 */ cmpwi r3, 0
/* 803161C8 00313108 38 60 00 04 */ li r3, 4
/* 803161CC 0031310C 4D 82 00 20 */ beqlr
/* 803161D0 00313110 38 60 00 7C */ li r3, 0x7c
/* 803161D4 00313114 4E 80 00 20 */ blr
.global J3DMaterial_NS_calcSizePEBlock
J3DMaterial_NS_calcSizePEBlock:
/* 803161D8 00313118 38 A0 00 00 */ li r5, 0
/* 803161DC 0031311C 28 03 00 00 */ cmplwi r3, 0
/* 803161E0 00313120 40 82 00 34 */ bne lbl_80316214
/* 803161E4 00313124 54 80 07 FF */ clrlwi. r0, r4, 0x1f
/* 803161E8 00313128 41 82 00 0C */ beq lbl_803161F4
/* 803161EC 0031312C 38 A0 00 04 */ li r5, 4
/* 803161F0 00313130 48 00 00 48 */ b lbl_80316238
lbl_803161F4:
/* 803161F4 00313134 54 80 07 BD */ rlwinm. r0, r4, 0, 0x1e, 0x1e
/* 803161F8 00313138 41 82 00 0C */ beq lbl_80316204
/* 803161FC 0031313C 38 A0 00 04 */ li r5, 4
/* 80316200 00313140 48 00 00 38 */ b lbl_80316238
lbl_80316204:
/* 80316204 00313144 54 80 07 7B */ rlwinm. r0, r4, 0, 0x1d, 0x1d
/* 80316208 00313148 41 82 00 30 */ beq lbl_80316238
/* 8031620C 0031314C 38 A0 00 04 */ li r5, 4
/* 80316210 00313150 48 00 00 28 */ b lbl_80316238
lbl_80316214:
/* 80316214 00313154 3C 03 F0 00 */ addis r0, r3, 0xf000
/* 80316218 00313158 28 00 00 00 */ cmplwi r0, 0
/* 8031621C 0031315C 40 82 00 0C */ bne lbl_80316228
/* 80316220 00313160 38 A0 00 40 */ li r5, 0x40
/* 80316224 00313164 48 00 00 14 */ b lbl_80316238
lbl_80316228:
/* 80316228 00313168 3C 03 E0 00 */ addis r0, r3, 0xe000
/* 8031622C 0031316C 28 00 00 00 */ cmplwi r0, 0
/* 80316230 00313170 40 82 00 08 */ bne lbl_80316238
/* 80316234 00313174 38 A0 00 10 */ li r5, 0x10
lbl_80316238:
/* 80316238 00313178 7C A3 2B 78 */ mr r3, r5
/* 8031623C 0031317C 4E 80 00 20 */ blr
.global J3DMaterial_NS_initialize
J3DMaterial_NS_initialize:
/* 80316240 00313180 38 A0 00 00 */ li r5, 0
/* 80316244 00313184 90 A3 00 08 */ stw r5, 8(r3)
/* 80316248 00313188 90 A3 00 04 */ stw r5, 4(r3)
/* 8031624C 0031318C 90 A3 00 0C */ stw r5, 0xc(r3)
/* 80316250 00313190 38 00 00 01 */ li r0, 1
/* 80316254 00313194 90 03 00 10 */ stw r0, 0x10(r3)
/* 80316258 00313198 3C 80 00 01 */ lis r4, 0x0000FFFF@ha
/* 8031625C 0031319C 38 04 FF FF */ addi r0, r4, 0x0000FFFF@l
/* 80316260 003131A0 B0 03 00 14 */ sth r0, 0x14(r3)
/* 80316264 003131A4 90 A3 00 18 */ stw r5, 0x18(r3)
/* 80316268 003131A8 90 A3 00 20 */ stw r5, 0x20(r3)
/* 8031626C 003131AC 90 A3 00 24 */ stw r5, 0x24(r3)
/* 80316270 003131B0 90 A3 00 28 */ stw r5, 0x28(r3)
/* 80316274 003131B4 90 A3 00 2C */ stw r5, 0x2c(r3)
/* 80316278 003131B8 90 A3 00 30 */ stw r5, 0x30(r3)
/* 8031627C 003131BC 90 A3 00 34 */ stw r5, 0x34(r3)
/* 80316280 003131C0 90 A3 00 38 */ stw r5, 0x38(r3)
/* 80316284 003131C4 90 A3 00 3C */ stw r5, 0x3c(r3)
/* 80316288 003131C8 90 A3 00 48 */ stw r5, 0x48(r3)
/* 8031628C 003131CC 4E 80 00 20 */ blr
.global J3DMaterial_NS_countDLSize
J3DMaterial_NS_countDLSize:
/* 80316290 003131D0 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 80316294 003131D4 7C 08 02 A6 */ mflr r0
/* 80316298 003131D8 90 01 00 24 */ stw r0, 0x24(r1)
/* 8031629C 003131DC 39 61 00 20 */ addi r11, r1, 0x20
/* 803162A0 003131E0 48 04 BF 3D */ bl _savegpr_29
/* 803162A4 003131E4 7C 7D 1B 78 */ mr r29, r3
/* 803162A8 003131E8 80 63 00 28 */ lwz r3, 0x28(r3)
/* 803162AC 003131EC 81 83 00 00 */ lwz r12, 0(r3)
/* 803162B0 003131F0 81 8C 00 30 */ lwz r12, 0x30(r12)
/* 803162B4 003131F4 7D 89 03 A6 */ mtctr r12
/* 803162B8 003131F8 4E 80 04 21 */ bctrl
/* 803162BC 003131FC 7C 7F 1B 78 */ mr r31, r3
/* 803162C0 00313200 80 7D 00 24 */ lwz r3, 0x24(r29)
/* 803162C4 00313204 81 83 00 00 */ lwz r12, 0(r3)
/* 803162C8 00313208 81 8C 00 30 */ lwz r12, 0x30(r12)
/* 803162CC 0031320C 7D 89 03 A6 */ mtctr r12
/* 803162D0 00313210 4E 80 04 21 */ bctrl
/* 803162D4 00313214 7C 7E 1B 78 */ mr r30, r3
/* 803162D8 00313218 80 7D 00 2C */ lwz r3, 0x2c(r29)
/* 803162DC 0031321C 81 83 00 00 */ lwz r12, 0(r3)
/* 803162E0 00313220 81 8C 00 44 */ lwz r12, 0x44(r12)
/* 803162E4 00313224 7D 89 03 A6 */ mtctr r12
/* 803162E8 00313228 4E 80 04 21 */ bctrl
/* 803162EC 0031322C 7F FF 1A 14 */ add r31, r31, r3
/* 803162F0 00313230 80 7D 00 30 */ lwz r3, 0x30(r29)
/* 803162F4 00313234 81 83 00 00 */ lwz r12, 0(r3)
/* 803162F8 00313238 81 8C 00 14 */ lwz r12, 0x14(r12)
/* 803162FC 0031323C 7D 89 03 A6 */ mtctr r12
/* 80316300 00313240 4E 80 04 21 */ bctrl
/* 80316304 00313244 7F FF 1A 14 */ add r31, r31, r3
/* 80316308 00313248 80 7D 00 34 */ lwz r3, 0x34(r29)
/* 8031630C 0031324C 81 83 00 00 */ lwz r12, 0(r3)
/* 80316310 00313250 81 8C 00 20 */ lwz r12, 0x20(r12)
/* 80316314 00313254 7D 89 03 A6 */ mtctr r12
/* 80316318 00313258 4E 80 04 21 */ bctrl
/* 8031631C 0031325C 7C 7F 1A 14 */ add r3, r31, r3
/* 80316320 00313260 38 03 00 1F */ addi r0, r3, 0x1f
/* 80316324 00313264 7C 1E 02 14 */ add r0, r30, r0
/* 80316328 00313268 54 03 00 34 */ rlwinm r3, r0, 0, 0, 0x1a
/* 8031632C 0031326C 39 61 00 20 */ addi r11, r1, 0x20
/* 80316330 00313270 48 04 BE F9 */ bl _restgpr_29
/* 80316334 00313274 80 01 00 24 */ lwz r0, 0x24(r1)
/* 80316338 00313278 7C 08 03 A6 */ mtlr r0
/* 8031633C 0031327C 38 21 00 20 */ addi r1, r1, 0x20
/* 80316340 00313280 4E 80 00 20 */ blr
.global J3DMaterial_NS_makeDisplayList_private
J3DMaterial_NS_makeDisplayList_private:
/* 80316344 00313284 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 80316348 00313288 7C 08 02 A6 */ mflr r0
/* 8031634C 0031328C 90 01 00 24 */ stw r0, 0x24(r1)
/* 80316350 00313290 39 61 00 20 */ addi r11, r1, 0x20
/* 80316354 00313294 48 04 BE 7D */ bl _savegpr_26
/* 80316358 00313298 7C 7E 1B 78 */ mr r30, r3
/* 8031635C 0031329C 7C 9F 23 78 */ mr r31, r4
/* 80316360 003132A0 7F E3 FB 78 */ mr r3, r31
/* 80316364 003132A4 4B FF C2 E1 */ bl J3DDisplayListObj_NS_beginDL
/* 80316368 003132A8 80 7E 00 2C */ lwz r3, 0x2c(r30)
/* 8031636C 003132AC 81 83 00 00 */ lwz r12, 0(r3)
/* 80316370 003132B0 81 8C 00 0C */ lwz r12, 0xc(r12)
/* 80316374 003132B4 7D 89 03 A6 */ mtctr r12
/* 80316378 003132B8 4E 80 04 21 */ bctrl
/* 8031637C 003132BC 80 7E 00 30 */ lwz r3, 0x30(r30)
/* 80316380 003132C0 81 83 00 00 */ lwz r12, 0(r3)
/* 80316384 003132C4 81 8C 00 10 */ lwz r12, 0x10(r12)
/* 80316388 003132C8 7D 89 03 A6 */ mtctr r12
/* 8031638C 003132CC 4E 80 04 21 */ bctrl
/* 80316390 003132D0 80 7E 00 34 */ lwz r3, 0x34(r30)
/* 80316394 003132D4 81 83 00 00 */ lwz r12, 0(r3)
/* 80316398 003132D8 81 8C 00 0C */ lwz r12, 0xc(r12)
/* 8031639C 003132DC 7D 89 03 A6 */ mtctr r12
/* 803163A0 003132E0 4E 80 04 21 */ bctrl
/* 803163A4 003132E4 80 7E 00 24 */ lwz r3, 0x24(r30)
/* 803163A8 003132E8 81 83 00 00 */ lwz r12, 0(r3)
/* 803163AC 003132EC 81 8C 00 78 */ lwz r12, 0x78(r12)
/* 803163B0 003132F0 7D 89 03 A6 */ mtctr r12
/* 803163B4 003132F4 4E 80 04 21 */ bctrl
/* 803163B8 003132F8 54 7A 06 3E */ clrlwi r26, r3, 0x18
/* 803163BC 003132FC 80 7E 00 30 */ lwz r3, 0x30(r30)
/* 803163C0 00313300 81 83 00 00 */ lwz r12, 0(r3)
/* 803163C4 00313304 81 8C 00 20 */ lwz r12, 0x20(r12)
/* 803163C8 00313308 7D 89 03 A6 */ mtctr r12
/* 803163CC 0031330C 4E 80 04 21 */ bctrl
/* 803163D0 00313310 7C 7B 1B 78 */ mr r27, r3
/* 803163D4 00313314 80 7E 00 2C */ lwz r3, 0x2c(r30)
/* 803163D8 00313318 81 83 00 00 */ lwz r12, 0(r3)
/* 803163DC 0031331C 81 8C 00 98 */ lwz r12, 0x98(r12)
/* 803163E0 00313320 7D 89 03 A6 */ mtctr r12
/* 803163E4 00313324 4E 80 04 21 */ bctrl
/* 803163E8 00313328 7C 7C 1B 78 */ mr r28, r3
/* 803163EC 0031332C 80 7E 00 24 */ lwz r3, 0x24(r30)
/* 803163F0 00313330 81 83 00 00 */ lwz r12, 0(r3)
/* 803163F4 00313334 81 8C 00 58 */ lwz r12, 0x58(r12)
/* 803163F8 00313338 7D 89 03 A6 */ mtctr r12
/* 803163FC 0031333C 4E 80 04 21 */ bctrl
/* 80316400 00313340 7C 7D 1B 78 */ mr r29, r3
/* 80316404 00313344 80 7E 00 28 */ lwz r3, 0x28(r30)
/* 80316408 00313348 81 83 00 00 */ lwz r12, 0(r3)
/* 8031640C 0031334C 81 8C 00 40 */ lwz r12, 0x40(r12)
/* 80316410 00313350 7D 89 03 A6 */ mtctr r12
/* 80316414 00313354 4E 80 04 21 */ bctrl
/* 80316418 00313358 54 63 06 3E */ clrlwi r3, r3, 0x18
/* 8031641C 0031335C 7F A4 EB 78 */ mr r4, r29
/* 80316420 00313360 7F 85 E3 78 */ mr r5, r28
/* 80316424 00313364 7F 66 DB 78 */ mr r6, r27
/* 80316428 00313368 7F 47 D3 78 */ mr r7, r26
/* 8031642C 0031336C 4B FF 6C 6D */ bl J3DGDSetGenMode
/* 80316430 00313370 80 7E 00 28 */ lwz r3, 0x28(r30)
/* 80316434 00313374 81 83 00 00 */ lwz r12, 0(r3)
/* 80316438 00313378 81 8C 00 1C */ lwz r12, 0x1c(r12)
/* 8031643C 0031337C 7D 89 03 A6 */ mtctr r12
/* 80316440 00313380 4E 80 04 21 */ bctrl
/* 80316444 00313384 80 7E 00 24 */ lwz r3, 0x24(r30)
/* 80316448 00313388 81 83 00 00 */ lwz r12, 0(r3)
/* 8031644C 0031338C 81 8C 00 08 */ lwz r12, 8(r12)
/* 80316450 00313390 7D 89 03 A6 */ mtctr r12
/* 80316454 00313394 4E 80 04 21 */ bctrl
/* 80316458 00313398 80 7E 00 24 */ lwz r3, 0x24(r30)
/* 8031645C 0031339C 81 83 00 00 */ lwz r12, 0(r3)
/* 80316460 003133A0 81 8C 00 58 */ lwz r12, 0x58(r12)
/* 80316464 003133A4 7D 89 03 A6 */ mtctr r12
/* 80316468 003133A8 4E 80 04 21 */ bctrl
/* 8031646C 003133AC 38 C0 00 10 */ li r6, 0x10
/* 80316470 003133B0 80 AD 94 00 */ lwz r5, lbl_80451980-_SDA_BASE_(r13)
/* 80316474 003133B4 80 85 00 08 */ lwz r4, 8(r5)
/* 80316478 003133B8 38 04 00 01 */ addi r0, r4, 1
/* 8031647C 003133BC 90 05 00 08 */ stw r0, 8(r5)
/* 80316480 003133C0 98 C4 00 00 */ stb r6, 0(r4)
/* 80316484 003133C4 38 E0 00 00 */ li r7, 0
/* 80316488 003133C8 80 AD 94 00 */ lwz r5, lbl_80451980-_SDA_BASE_(r13)
/* 8031648C 003133CC 80 85 00 08 */ lwz r4, 8(r5)
/* 80316490 003133D0 38 04 00 01 */ addi r0, r4, 1
/* 80316494 003133D4 90 05 00 08 */ stw r0, 8(r5)
/* 80316498 003133D8 98 E4 00 00 */ stb r7, 0(r4)
/* 8031649C 003133DC 80 AD 94 00 */ lwz r5, lbl_80451980-_SDA_BASE_(r13)
/* 803164A0 003133E0 80 85 00 08 */ lwz r4, 8(r5)
/* 803164A4 003133E4 38 04 00 01 */ addi r0, r4, 1
/* 803164A8 003133E8 90 05 00 08 */ stw r0, 8(r5)
/* 803164AC 003133EC 98 E4 00 00 */ stb r7, 0(r4)
/* 803164B0 003133F0 80 AD 94 00 */ lwz r5, lbl_80451980-_SDA_BASE_(r13)
/* 803164B4 003133F4 80 85 00 08 */ lwz r4, 8(r5)
/* 803164B8 003133F8 38 04 00 01 */ addi r0, r4, 1
/* 803164BC 003133FC 90 05 00 08 */ stw r0, 8(r5)
/* 803164C0 00313400 98 C4 00 00 */ stb r6, 0(r4)
/* 803164C4 00313404 38 C0 00 09 */ li r6, 9
/* 803164C8 00313408 80 AD 94 00 */ lwz r5, lbl_80451980-_SDA_BASE_(r13)
/* 803164CC 0031340C 80 85 00 08 */ lwz r4, 8(r5)
/* 803164D0 00313410 38 04 00 01 */ addi r0, r4, 1
/* 803164D4 00313414 90 05 00 08 */ stw r0, 8(r5)
/* 803164D8 00313418 98 C4 00 00 */ stb r6, 0(r4)
/* 803164DC 0031341C 80 AD 94 00 */ lwz r5, lbl_80451980-_SDA_BASE_(r13)
/* 803164E0 00313420 80 85 00 08 */ lwz r4, 8(r5)
/* 803164E4 00313424 38 04 00 01 */ addi r0, r4, 1
/* 803164E8 00313428 90 05 00 08 */ stw r0, 8(r5)
/* 803164EC 0031342C 98 E4 00 00 */ stb r7, 0(r4)
/* 803164F0 00313430 80 AD 94 00 */ lwz r5, lbl_80451980-_SDA_BASE_(r13)
/* 803164F4 00313434 80 85 00 08 */ lwz r4, 8(r5)
/* 803164F8 00313438 38 04 00 01 */ addi r0, r4, 1
/* 803164FC 0031343C 90 05 00 08 */ stw r0, 8(r5)
/* 80316500 00313440 98 E4 00 00 */ stb r7, 0(r4)
/* 80316504 00313444 80 AD 94 00 */ lwz r5, lbl_80451980-_SDA_BASE_(r13)
/* 80316508 00313448 80 85 00 08 */ lwz r4, 8(r5)
/* 8031650C 0031344C 38 04 00 01 */ addi r0, r4, 1
/* 80316510 00313450 90 05 00 08 */ stw r0, 8(r5)
/* 80316514 00313454 98 E4 00 00 */ stb r7, 0(r4)
/* 80316518 00313458 80 AD 94 00 */ lwz r5, lbl_80451980-_SDA_BASE_(r13)
/* 8031651C 0031345C 80 85 00 08 */ lwz r4, 8(r5)
/* 80316520 00313460 38 04 00 01 */ addi r0, r4, 1
/* 80316524 00313464 90 05 00 08 */ stw r0, 8(r5)
/* 80316528 00313468 98 64 00 00 */ stb r3, 0(r4)
/* 8031652C 0031346C 80 7E 00 28 */ lwz r3, 0x28(r30)
/* 80316530 00313470 81 83 00 00 */ lwz r12, 0(r3)
/* 80316534 00313474 81 8C 00 40 */ lwz r12, 0x40(r12)
/* 80316538 00313478 7D 89 03 A6 */ mtctr r12
/* 8031653C 0031347C 4E 80 04 21 */ bctrl
/* 80316540 00313480 38 C0 00 10 */ li r6, 0x10
/* 80316544 00313484 80 AD 94 00 */ lwz r5, lbl_80451980-_SDA_BASE_(r13)
/* 80316548 00313488 80 85 00 08 */ lwz r4, 8(r5)
/* 8031654C 0031348C 38 04 00 01 */ addi r0, r4, 1
/* 80316550 00313490 90 05 00 08 */ stw r0, 8(r5)
/* 80316554 00313494 98 C4 00 00 */ stb r6, 0(r4)
/* 80316558 00313498 38 E0 00 00 */ li r7, 0
/* 8031655C 0031349C 80 AD 94 00 */ lwz r5, lbl_80451980-_SDA_BASE_(r13)
/* 80316560 003134A0 80 85 00 08 */ lwz r4, 8(r5)
/* 80316564 003134A4 38 04 00 01 */ addi r0, r4, 1
/* 80316568 003134A8 90 05 00 08 */ stw r0, 8(r5)
/* 8031656C 003134AC 98 E4 00 00 */ stb r7, 0(r4)
/* 80316570 003134B0 80 AD 94 00 */ lwz r5, lbl_80451980-_SDA_BASE_(r13)
/* 80316574 003134B4 80 85 00 08 */ lwz r4, 8(r5)
/* 80316578 003134B8 38 04 00 01 */ addi r0, r4, 1
/* 8031657C 003134BC 90 05 00 08 */ stw r0, 8(r5)
/* 80316580 003134C0 98 E4 00 00 */ stb r7, 0(r4)
/* 80316584 003134C4 80 AD 94 00 */ lwz r5, lbl_80451980-_SDA_BASE_(r13)
/* 80316588 003134C8 80 85 00 08 */ lwz r4, 8(r5)
/* 8031658C 003134CC 38 04 00 01 */ addi r0, r4, 1
/* 80316590 003134D0 90 05 00 08 */ stw r0, 8(r5)
/* 80316594 003134D4 98 C4 00 00 */ stb r6, 0(r4)
/* 80316598 003134D8 38 C0 00 3F */ li r6, 0x3f
/* 8031659C 003134DC 80 AD 94 00 */ lwz r5, lbl_80451980-_SDA_BASE_(r13)
/* 803165A0 003134E0 80 85 00 08 */ lwz r4, 8(r5)
/* 803165A4 003134E4 38 04 00 01 */ addi r0, r4, 1
/* 803165A8 003134E8 90 05 00 08 */ stw r0, 8(r5)
/* 803165AC 003134EC 98 C4 00 00 */ stb r6, 0(r4)
/* 803165B0 003134F0 80 AD 94 00 */ lwz r5, lbl_80451980-_SDA_BASE_(r13)
/* 803165B4 003134F4 80 85 00 08 */ lwz r4, 8(r5)
/* 803165B8 003134F8 38 04 00 01 */ addi r0, r4, 1
/* 803165BC 003134FC 90 05 00 08 */ stw r0, 8(r5)
/* 803165C0 00313500 98 E4 00 00 */ stb r7, 0(r4)
/* 803165C4 00313504 80 AD 94 00 */ lwz r5, lbl_80451980-_SDA_BASE_(r13)
/* 803165C8 00313508 80 85 00 08 */ lwz r4, 8(r5)
/* 803165CC 0031350C 38 04 00 01 */ addi r0, r4, 1
/* 803165D0 00313510 90 05 00 08 */ stw r0, 8(r5)
/* 803165D4 00313514 98 E4 00 00 */ stb r7, 0(r4)
/* 803165D8 00313518 80 AD 94 00 */ lwz r5, lbl_80451980-_SDA_BASE_(r13)
/* 803165DC 0031351C 80 85 00 08 */ lwz r4, 8(r5)
/* 803165E0 00313520 38 04 00 01 */ addi r0, r4, 1
/* 803165E4 00313524 90 05 00 08 */ stw r0, 8(r5)
/* 803165E8 00313528 98 E4 00 00 */ stb r7, 0(r4)
/* 803165EC 0031352C 80 AD 94 00 */ lwz r5, lbl_80451980-_SDA_BASE_(r13)
/* 803165F0 00313530 80 85 00 08 */ lwz r4, 8(r5)
/* 803165F4 00313534 38 04 00 01 */ addi r0, r4, 1
/* 803165F8 00313538 90 05 00 08 */ stw r0, 8(r5)
/* 803165FC 0031353C 98 64 00 00 */ stb r3, 0(r4)
/* 80316600 00313540 7F E3 FB 78 */ mr r3, r31
/* 80316604 00313544 4B FF C0 95 */ bl J3DDisplayListObj_NS_endDL
/* 80316608 00313548 39 61 00 20 */ addi r11, r1, 0x20
/* 8031660C 0031354C 48 04 BC 11 */ bl _restgpr_26
/* 80316610 00313550 80 01 00 24 */ lwz r0, 0x24(r1)
/* 80316614 00313554 7C 08 03 A6 */ mtlr r0
/* 80316618 00313558 38 21 00 20 */ addi r1, r1, 0x20
/* 8031661C 0031355C 4E 80 00 20 */ blr
/* 80316620 00313560 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 80316624 00313564 7C 08 02 A6 */ mflr r0
/* 80316628 00313568 90 01 00 14 */ stw r0, 0x14(r1)
/* 8031662C 0031356C 3C 80 80 43 */ lis r4, lbl_80434AC8@ha
/* 80316630 00313570 38 84 4A C8 */ addi r4, r4, lbl_80434AC8@l
/* 80316634 00313574 80 A4 00 3C */ lwz r5, 0x3c(r4)
/* 80316638 00313578 80 05 00 10 */ lwz r0, 0x10(r5)
/* 8031663C 0031357C 54 00 07 FF */ clrlwi. r0, r0, 0x1f
/* 80316640 00313580 40 82 00 18 */ bne lbl_80316658
/* 80316644 00313584 80 03 00 20 */ lwz r0, 0x20(r3)
/* 80316648 00313588 90 05 00 34 */ stw r0, 0x34(r5)
/* 8031664C 0031358C 80 84 00 3C */ lwz r4, 0x3c(r4)
/* 80316650 00313590 80 84 00 20 */ lwz r4, 0x20(r4)
/* 80316654 00313594 4B FF FC F1 */ bl J3DMaterial_NS_makeDisplayList_private
lbl_80316658:
/* 80316658 00313598 80 01 00 14 */ lwz r0, 0x14(r1)
/* 8031665C 0031359C 7C 08 03 A6 */ mtlr r0
/* 80316660 003135A0 38 21 00 10 */ addi r1, r1, 0x10
/* 80316664 003135A4 4E 80 00 20 */ blr
/* 80316668 003135A8 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 8031666C 003135AC 7C 08 02 A6 */ mflr r0
/* 80316670 003135B0 90 01 00 14 */ stw r0, 0x14(r1)
/* 80316674 003135B4 80 83 00 48 */ lwz r4, 0x48(r3)
/* 80316678 003135B8 4B FF FC CD */ bl J3DMaterial_NS_makeDisplayList_private
/* 8031667C 003135BC 80 01 00 14 */ lwz r0, 0x14(r1)
/* 80316680 003135C0 7C 08 03 A6 */ mtlr r0
/* 80316684 003135C4 38 21 00 10 */ addi r1, r1, 0x10
/* 80316688 003135C8 4E 80 00 20 */ blr
/* 8031668C 003135CC 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 80316690 003135D0 7C 08 02 A6 */ mflr r0
/* 80316694 003135D4 90 01 00 14 */ stw r0, 0x14(r1)
/* 80316698 003135D8 80 03 00 10 */ lwz r0, 0x10(r3)
/* 8031669C 003135DC 3C 80 80 43 */ lis r4, lbl_80434AC8@ha
/* 803166A0 003135E0 38 84 4A C8 */ addi r4, r4, lbl_80434AC8@l
/* 803166A4 003135E4 90 04 00 54 */ stw r0, 0x54(r4)
/* 803166A8 003135E8 80 04 00 34 */ lwz r0, 0x34(r4)
/* 803166AC 003135EC 54 00 07 BD */ rlwinm. r0, r0, 0, 0x1e, 0x1e
/* 803166B0 003135F0 40 82 00 1C */ bne lbl_803166CC
/* 803166B4 003135F4 80 63 00 28 */ lwz r3, 0x28(r3)
/* 803166B8 003135F8 81 83 00 00 */ lwz r12, 0(r3)
/* 803166BC 003135FC 81 8C 00 5C */ lwz r12, 0x5c(r12)
/* 803166C0 00313600 7D 89 03 A6 */ mtctr r12
/* 803166C4 00313604 4E 80 04 21 */ bctrl
/* 803166C8 00313608 48 00 DA 99 */ bl loadNBTScale
lbl_803166CC:
/* 803166CC 0031360C 80 01 00 14 */ lwz r0, 0x14(r1)
/* 803166D0 00313610 7C 08 03 A6 */ mtlr r0
/* 803166D4 00313614 38 21 00 10 */ addi r1, r1, 0x10
/* 803166D8 00313618 4E 80 00 20 */ blr
/* 803166DC 0031361C 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 803166E0 00313620 7C 08 02 A6 */ mflr r0
/* 803166E4 00313624 90 01 00 14 */ stw r0, 0x14(r1)
/* 803166E8 00313628 93 E1 00 0C */ stw r31, 0xc(r1)
/* 803166EC 0031362C 7C 7F 1B 78 */ mr r31, r3
/* 803166F0 00313630 80 03 00 10 */ lwz r0, 0x10(r3)
/* 803166F4 00313634 3C 60 80 43 */ lis r3, lbl_80434AC8@ha
/* 803166F8 00313638 38 63 4A C8 */ addi r3, r3, lbl_80434AC8@l
/* 803166FC 0031363C 90 03 00 54 */ stw r0, 0x54(r3)
/* 80316700 00313640 80 03 00 34 */ lwz r0, 0x34(r3)
/* 80316704 00313644 54 00 07 BD */ rlwinm. r0, r0, 0, 0x1e, 0x1e
/* 80316708 00313648 40 82 00 24 */ bne lbl_8031672C
/* 8031670C 0031364C 80 7F 00 48 */ lwz r3, 0x48(r31)
/* 80316710 00313650 4B FF BF 09 */ bl J3DDisplayListObj_NS_callDL
/* 80316714 00313654 80 7F 00 28 */ lwz r3, 0x28(r31)
/* 80316718 00313658 81 83 00 00 */ lwz r12, 0(r3)
/* 8031671C 0031365C 81 8C 00 5C */ lwz r12, 0x5c(r12)
/* 80316720 00313660 7D 89 03 A6 */ mtctr r12
/* 80316724 00313664 4E 80 04 21 */ bctrl
/* 80316728 00313668 48 00 DA 39 */ bl loadNBTScale
lbl_8031672C:
/* 8031672C 0031366C 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 80316730 00313670 80 01 00 14 */ lwz r0, 0x14(r1)
/* 80316734 00313674 7C 08 03 A6 */ mtlr r0
/* 80316738 00313678 38 21 00 10 */ addi r1, r1, 0x10
/* 8031673C 0031367C 4E 80 00 20 */ blr
/* 80316740 00313680 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 80316744 00313684 7C 08 02 A6 */ mflr r0
/* 80316748 00313688 90 01 00 14 */ stw r0, 0x14(r1)
/* 8031674C 0031368C 93 E1 00 0C */ stw r31, 0xc(r1)
/* 80316750 00313690 93 C1 00 08 */ stw r30, 8(r1)
/* 80316754 00313694 7C 7E 1B 78 */ mr r30, r3
/* 80316758 00313698 80 03 00 20 */ lwz r0, 0x20(r3)
/* 8031675C 0031369C 3C 60 80 43 */ lis r3, lbl_80434AC8@ha
/* 80316760 003136A0 3B E3 4A C8 */ addi r31, r3, lbl_80434AC8@l
/* 80316764 003136A4 80 7F 00 3C */ lwz r3, 0x3c(r31)
/* 80316768 003136A8 90 03 00 34 */ stw r0, 0x34(r3)
/* 8031676C 003136AC 80 7F 00 3C */ lwz r3, 0x3c(r31)
/* 80316770 003136B0 80 63 00 20 */ lwz r3, 0x20(r3)
/* 80316774 003136B4 4B FF BF 81 */ bl J3DDisplayListObj_NS_beginPatch
/* 80316778 003136B8 80 7E 00 2C */ lwz r3, 0x2c(r30)
/* 8031677C 003136BC 81 83 00 00 */ lwz r12, 0(r3)
/* 80316780 003136C0 81 8C 00 28 */ lwz r12, 0x28(r12)
/* 80316784 003136C4 7D 89 03 A6 */ mtctr r12
/* 80316788 003136C8 4E 80 04 21 */ bctrl
/* 8031678C 003136CC 80 7E 00 24 */ lwz r3, 0x24(r30)
/* 80316790 003136D0 81 83 00 00 */ lwz r12, 0(r3)
/* 80316794 003136D4 81 8C 00 10 */ lwz r12, 0x10(r12)
/* 80316798 003136D8 7D 89 03 A6 */ mtctr r12
/* 8031679C 003136DC 4E 80 04 21 */ bctrl
/* 803167A0 003136E0 80 7E 00 28 */ lwz r3, 0x28(r30)
/* 803167A4 003136E4 81 83 00 00 */ lwz r12, 0(r3)
/* 803167A8 003136E8 81 8C 00 20 */ lwz r12, 0x20(r12)
/* 803167AC 003136EC 7D 89 03 A6 */ mtctr r12
/* 803167B0 003136F0 4E 80 04 21 */ bctrl
/* 803167B4 003136F4 80 7F 00 3C */ lwz r3, 0x3c(r31)
/* 803167B8 003136F8 80 63 00 20 */ lwz r3, 0x20(r3)
/* 803167BC 003136FC 4B FF BF 59 */ bl J3DDisplayListObj_NS_endPatch
/* 803167C0 00313700 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 803167C4 00313704 83 C1 00 08 */ lwz r30, 8(r1)
/* 803167C8 00313708 80 01 00 14 */ lwz r0, 0x14(r1)
/* 803167CC 0031370C 7C 08 03 A6 */ mtlr r0
/* 803167D0 00313710 38 21 00 10 */ addi r1, r1, 0x10
/* 803167D4 00313714 4E 80 00 20 */ blr
/* 803167D8 00313718 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 803167DC 0031371C 7C 08 02 A6 */ mflr r0
/* 803167E0 00313720 90 01 00 24 */ stw r0, 0x24(r1)
/* 803167E4 00313724 39 61 00 20 */ addi r11, r1, 0x20
/* 803167E8 00313728 48 04 B9 ED */ bl _savegpr_27
/* 803167EC 0031372C 7C 7D 1B 78 */ mr r29, r3
/* 803167F0 00313730 7C 9E 23 78 */ mr r30, r4
/* 803167F4 00313734 3C 60 80 43 */ lis r3, lbl_80434AC8@ha
/* 803167F8 00313738 3B E3 4A C8 */ addi r31, r3, lbl_80434AC8@l
/* 803167FC 0031373C 80 7F 00 3C */ lwz r3, 0x3c(r31)
/* 80316800 00313740 80 83 00 28 */ lwz r4, 0x28(r3)
/* 80316804 00313744 80 04 00 20 */ lwz r0, 0x20(r4)
/* 80316808 00313748 28 00 00 00 */ cmplwi r0, 0
/* 8031680C 0031374C 41 82 01 B8 */ beq lbl_803169C4
/* 80316810 00313750 4B FF C2 15 */ bl J3DMatPacket_NS_beginDiff
/* 80316814 00313754 80 7D 00 2C */ lwz r3, 0x2c(r29)
/* 80316818 00313758 7F C4 F3 78 */ mr r4, r30
/* 8031681C 0031375C 81 83 00 00 */ lwz r12, 0(r3)
/* 80316820 00313760 81 8C 00 10 */ lwz r12, 0x10(r12)
/* 80316824 00313764 7D 89 03 A6 */ mtctr r12
/* 80316828 00313768 4E 80 04 21 */ bctrl
/* 8031682C 0031376C 80 7D 00 30 */ lwz r3, 0x30(r29)
/* 80316830 00313770 7F C4 F3 78 */ mr r4, r30
/* 80316834 00313774 81 83 00 00 */ lwz r12, 0(r3)
/* 80316838 00313778 81 8C 00 0C */ lwz r12, 0xc(r12)
/* 8031683C 0031377C 7D 89 03 A6 */ mtctr r12
/* 80316840 00313780 4E 80 04 21 */ bctrl
/* 80316844 00313784 80 7D 00 34 */ lwz r3, 0x34(r29)
/* 80316848 00313788 7F C4 F3 78 */ mr r4, r30
/* 8031684C 0031378C 81 83 00 00 */ lwz r12, 0(r3)
/* 80316850 00313790 81 8C 00 14 */ lwz r12, 0x14(r12)
/* 80316854 00313794 7D 89 03 A6 */ mtctr r12
/* 80316858 00313798 4E 80 04 21 */ bctrl
/* 8031685C 0031379C 57 C0 01 8D */ rlwinm. r0, r30, 0, 6, 6
/* 80316860 003137A0 41 82 01 2C */ beq lbl_8031698C
/* 80316864 003137A4 80 7D 00 30 */ lwz r3, 0x30(r29)
/* 80316868 003137A8 81 83 00 00 */ lwz r12, 0(r3)
/* 8031686C 003137AC 81 8C 00 20 */ lwz r12, 0x20(r12)
/* 80316870 003137B0 7D 89 03 A6 */ mtctr r12
/* 80316874 003137B4 4E 80 04 21 */ bctrl
/* 80316878 003137B8 7C 7B 1B 78 */ mr r27, r3
/* 8031687C 003137BC 80 7D 00 2C */ lwz r3, 0x2c(r29)
/* 80316880 003137C0 81 83 00 00 */ lwz r12, 0(r3)
/* 80316884 003137C4 81 8C 00 98 */ lwz r12, 0x98(r12)
/* 80316888 003137C8 7D 89 03 A6 */ mtctr r12
/* 8031688C 003137CC 4E 80 04 21 */ bctrl
/* 80316890 003137D0 7C 7C 1B 78 */ mr r28, r3
/* 80316894 003137D4 80 7D 00 28 */ lwz r3, 0x28(r29)
/* 80316898 003137D8 81 83 00 00 */ lwz r12, 0(r3)
/* 8031689C 003137DC 81 8C 00 40 */ lwz r12, 0x40(r12)
/* 803168A0 003137E0 7D 89 03 A6 */ mtctr r12
/* 803168A4 003137E4 4E 80 04 21 */ bctrl
/* 803168A8 003137E8 54 63 06 3E */ clrlwi r3, r3, 0x18
/* 803168AC 003137EC 7F 84 E3 78 */ mr r4, r28
/* 803168B0 003137F0 7F 65 DB 78 */ mr r5, r27
/* 803168B4 003137F4 4B FF 69 5D */ bl J3DGDSetGenMode_3Param
/* 803168B8 003137F8 80 7D 00 28 */ lwz r3, 0x28(r29)
/* 803168BC 003137FC 81 83 00 00 */ lwz r12, 0(r3)
/* 803168C0 00313800 81 8C 00 40 */ lwz r12, 0x40(r12)
/* 803168C4 00313804 7D 89 03 A6 */ mtctr r12
/* 803168C8 00313808 4E 80 04 21 */ bctrl
/* 803168CC 0031380C 38 C0 00 10 */ li r6, 0x10
/* 803168D0 00313810 80 AD 94 00 */ lwz r5, lbl_80451980-_SDA_BASE_(r13)
/* 803168D4 00313814 80 85 00 08 */ lwz r4, 8(r5)
/* 803168D8 00313818 38 04 00 01 */ addi r0, r4, 1
/* 803168DC 0031381C 90 05 00 08 */ stw r0, 8(r5)
/* 803168E0 00313820 98 C4 00 00 */ stb r6, 0(r4)
/* 803168E4 00313824 38 E0 00 00 */ li r7, 0
/* 803168E8 00313828 80 AD 94 00 */ lwz r5, lbl_80451980-_SDA_BASE_(r13)
/* 803168EC 0031382C 80 85 00 08 */ lwz r4, 8(r5)
/* 803168F0 00313830 38 04 00 01 */ addi r0, r4, 1
/* 803168F4 00313834 90 05 00 08 */ stw r0, 8(r5)
/* 803168F8 00313838 98 E4 00 00 */ stb r7, 0(r4)
/* 803168FC 0031383C 80 AD 94 00 */ lwz r5, lbl_80451980-_SDA_BASE_(r13)
/* 80316900 00313840 80 85 00 08 */ lwz r4, 8(r5)
/* 80316904 00313844 38 04 00 01 */ addi r0, r4, 1
/* 80316908 00313848 90 05 00 08 */ stw r0, 8(r5)
/* 8031690C 0031384C 98 E4 00 00 */ stb r7, 0(r4)
/* 80316910 00313850 80 AD 94 00 */ lwz r5, lbl_80451980-_SDA_BASE_(r13)
/* 80316914 00313854 80 85 00 08 */ lwz r4, 8(r5)
/* 80316918 00313858 38 04 00 01 */ addi r0, r4, 1
/* 8031691C 0031385C 90 05 00 08 */ stw r0, 8(r5)
/* 80316920 00313860 98 C4 00 00 */ stb r6, 0(r4)
/* 80316924 00313864 38 C0 00 3F */ li r6, 0x3f
/* 80316928 00313868 80 AD 94 00 */ lwz r5, lbl_80451980-_SDA_BASE_(r13)
/* 8031692C 0031386C 80 85 00 08 */ lwz r4, 8(r5)
/* 80316930 00313870 38 04 00 01 */ addi r0, r4, 1
/* 80316934 00313874 90 05 00 08 */ stw r0, 8(r5)
/* 80316938 00313878 98 C4 00 00 */ stb r6, 0(r4)
/* 8031693C 0031387C 80 AD 94 00 */ lwz r5, lbl_80451980-_SDA_BASE_(r13)
/* 80316940 00313880 80 85 00 08 */ lwz r4, 8(r5)
/* 80316944 00313884 38 04 00 01 */ addi r0, r4, 1
/* 80316948 00313888 90 05 00 08 */ stw r0, 8(r5)
/* 8031694C 0031388C 98 E4 00 00 */ stb r7, 0(r4)
/* 80316950 00313890 80 AD 94 00 */ lwz r5, lbl_80451980-_SDA_BASE_(r13)
/* 80316954 00313894 80 85 00 08 */ lwz r4, 8(r5)
/* 80316958 00313898 38 04 00 01 */ addi r0, r4, 1
/* 8031695C 0031389C 90 05 00 08 */ stw r0, 8(r5)
/* 80316960 003138A0 98 E4 00 00 */ stb r7, 0(r4)
/* 80316964 003138A4 80 AD 94 00 */ lwz r5, lbl_80451980-_SDA_BASE_(r13)
/* 80316968 003138A8 80 85 00 08 */ lwz r4, 8(r5)
/* 8031696C 003138AC 38 04 00 01 */ addi r0, r4, 1
/* 80316970 003138B0 90 05 00 08 */ stw r0, 8(r5)
/* 80316974 003138B4 98 E4 00 00 */ stb r7, 0(r4)
/* 80316978 003138B8 80 AD 94 00 */ lwz r5, lbl_80451980-_SDA_BASE_(r13)
/* 8031697C 003138BC 80 85 00 08 */ lwz r4, 8(r5)
/* 80316980 003138C0 38 04 00 01 */ addi r0, r4, 1
/* 80316984 003138C4 90 05 00 08 */ stw r0, 8(r5)
/* 80316988 003138C8 98 64 00 00 */ stb r3, 0(r4)
lbl_8031698C:
/* 8031698C 003138CC 80 7D 00 28 */ lwz r3, 0x28(r29)
/* 80316990 003138D0 7F C4 F3 78 */ mr r4, r30
/* 80316994 003138D4 81 83 00 00 */ lwz r12, 0(r3)
/* 80316998 003138D8 81 8C 00 24 */ lwz r12, 0x24(r12)
/* 8031699C 003138DC 7D 89 03 A6 */ mtctr r12
/* 803169A0 003138E0 4E 80 04 21 */ bctrl
/* 803169A4 003138E4 80 7D 00 24 */ lwz r3, 0x24(r29)
/* 803169A8 003138E8 7F C4 F3 78 */ mr r4, r30
/* 803169AC 003138EC 81 83 00 00 */ lwz r12, 0(r3)
/* 803169B0 003138F0 81 8C 00 1C */ lwz r12, 0x1c(r12)
/* 803169B4 003138F4 7D 89 03 A6 */ mtctr r12
/* 803169B8 003138F8 4E 80 04 21 */ bctrl
/* 803169BC 003138FC 80 7F 00 3C */ lwz r3, 0x3c(r31)
/* 803169C0 00313900 4B FF C0 8D */ bl J3DMatPacket_NS_endDiff
lbl_803169C4:
/* 803169C4 00313904 39 61 00 20 */ addi r11, r1, 0x20
/* 803169C8 00313908 48 04 B8 59 */ bl _restgpr_27
/* 803169CC 0031390C 80 01 00 24 */ lwz r0, 0x24(r1)
/* 803169D0 00313910 7C 08 03 A6 */ mtlr r0
/* 803169D4 00313914 38 21 00 20 */ addi r1, r1, 0x20
/* 803169D8 00313918 4E 80 00 20 */ blr
/* 803169DC 0031391C 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 803169E0 00313920 7C 08 02 A6 */ mflr r0
/* 803169E4 00313924 90 01 00 14 */ stw r0, 0x14(r1)
/* 803169E8 00313928 93 E1 00 0C */ stw r31, 0xc(r1)
/* 803169EC 0031392C 7C 7F 1B 78 */ mr r31, r3
/* 803169F0 00313930 3C 60 80 43 */ lis r3, lbl_80434AC8@ha
/* 803169F4 00313934 38 63 4A C8 */ addi r3, r3, lbl_80434AC8@l
/* 803169F8 00313938 80 03 00 34 */ lwz r0, 0x34(r3)
/* 803169FC 0031393C 54 00 00 43 */ rlwinm. r0, r0, 0, 1, 1
/* 80316A00 00313940 41 82 00 1C */ beq lbl_80316A1C
/* 80316A04 00313944 80 7F 00 28 */ lwz r3, 0x28(r31)
/* 80316A08 00313948 81 83 00 00 */ lwz r12, 0(r3)
/* 80316A0C 0031394C 81 8C 00 14 */ lwz r12, 0x14(r12)
/* 80316A10 00313950 7D 89 03 A6 */ mtctr r12
/* 80316A14 00313954 4E 80 04 21 */ bctrl
/* 80316A18 00313958 48 00 00 18 */ b lbl_80316A30
lbl_80316A1C:
/* 80316A1C 0031395C 80 7F 00 28 */ lwz r3, 0x28(r31)
/* 80316A20 00313960 81 83 00 00 */ lwz r12, 0(r3)
/* 80316A24 00313964 81 8C 00 0C */ lwz r12, 0xc(r12)
/* 80316A28 00313968 7D 89 03 A6 */ mtctr r12
/* 80316A2C 0031396C 4E 80 04 21 */ bctrl
lbl_80316A30:
/* 80316A30 00313970 7F E3 FB 78 */ mr r3, r31
/* 80316A34 00313974 48 00 00 95 */ bl J3DMaterial_NS_calcCurrentMtx
/* 80316A38 00313978 7F E3 FB 78 */ mr r3, r31
/* 80316A3C 0031397C 48 00 00 75 */ bl J3DMaterial_NS_setCurrentMtx
/* 80316A40 00313980 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 80316A44 00313984 80 01 00 14 */ lwz r0, 0x14(r1)
/* 80316A48 00313988 7C 08 03 A6 */ mtlr r0
/* 80316A4C 0031398C 38 21 00 10 */ addi r1, r1, 0x10
/* 80316A50 00313990 4E 80 00 20 */ blr
/* 80316A54 00313994 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 80316A58 00313998 7C 08 02 A6 */ mflr r0
/* 80316A5C 0031399C 90 01 00 14 */ stw r0, 0x14(r1)
/* 80316A60 003139A0 3C A0 80 43 */ lis r5, lbl_80434AC8@ha
/* 80316A64 003139A4 38 A5 4A C8 */ addi r5, r5, lbl_80434AC8@l
/* 80316A68 003139A8 80 05 00 34 */ lwz r0, 0x34(r5)
/* 80316A6C 003139AC 54 00 00 43 */ rlwinm. r0, r0, 0, 1, 1
/* 80316A70 003139B0 41 82 00 1C */ beq lbl_80316A8C
/* 80316A74 003139B4 80 63 00 28 */ lwz r3, 0x28(r3)
/* 80316A78 003139B8 81 83 00 00 */ lwz r12, 0(r3)
/* 80316A7C 003139BC 81 8C 00 18 */ lwz r12, 0x18(r12)
/* 80316A80 003139C0 7D 89 03 A6 */ mtctr r12
/* 80316A84 003139C4 4E 80 04 21 */ bctrl
/* 80316A88 003139C8 48 00 00 18 */ b lbl_80316AA0
lbl_80316A8C:
/* 80316A8C 003139CC 80 63 00 28 */ lwz r3, 0x28(r3)
/* 80316A90 003139D0 81 83 00 00 */ lwz r12, 0(r3)
/* 80316A94 003139D4 81 8C 00 10 */ lwz r12, 0x10(r12)
/* 80316A98 003139D8 7D 89 03 A6 */ mtctr r12
/* 80316A9C 003139DC 4E 80 04 21 */ bctrl
lbl_80316AA0:
/* 80316AA0 003139E0 80 01 00 14 */ lwz r0, 0x14(r1)
/* 80316AA4 003139E4 7C 08 03 A6 */ mtlr r0
/* 80316AA8 003139E8 38 21 00 10 */ addi r1, r1, 0x10
/* 80316AAC 003139EC 4E 80 00 20 */ blr
.global J3DMaterial_NS_setCurrentMtx
J3DMaterial_NS_setCurrentMtx:
/* 80316AB0 003139F0 80 83 00 08 */ lwz r4, 8(r3)
/* 80316AB4 003139F4 80 03 00 40 */ lwz r0, 0x40(r3)
/* 80316AB8 003139F8 90 04 00 40 */ stw r0, 0x40(r4)
/* 80316ABC 003139FC 80 03 00 44 */ lwz r0, 0x44(r3)
/* 80316AC0 00313A00 90 04 00 44 */ stw r0, 0x44(r4)
/* 80316AC4 00313A04 4E 80 00 20 */ blr
.global J3DMaterial_NS_calcCurrentMtx
J3DMaterial_NS_calcCurrentMtx:
/* 80316AC8 00313A08 94 21 FF D0 */ stwu r1, -0x30(r1)
/* 80316ACC 00313A0C 7C 08 02 A6 */ mflr r0
/* 80316AD0 00313A10 90 01 00 34 */ stw r0, 0x34(r1)
/* 80316AD4 00313A14 39 61 00 30 */ addi r11, r1, 0x30
/* 80316AD8 00313A18 48 04 B6 F1 */ bl _savegpr_24
/* 80316ADC 00313A1C 7C 7B 1B 78 */ mr r27, r3
/* 80316AE0 00313A20 3C 60 80 43 */ lis r3, lbl_80434AC8@ha
/* 80316AE4 00313A24 38 63 4A C8 */ addi r3, r3, lbl_80434AC8@l
/* 80316AE8 00313A28 80 03 00 34 */ lwz r0, 0x34(r3)
/* 80316AEC 00313A2C 54 00 00 43 */ rlwinm. r0, r0, 0, 1, 1
/* 80316AF0 00313A30 40 82 01 28 */ bne lbl_80316C18
/* 80316AF4 00313A34 80 7B 00 28 */ lwz r3, 0x28(r27)
/* 80316AF8 00313A38 38 80 00 07 */ li r4, 7
/* 80316AFC 00313A3C 81 83 00 00 */ lwz r12, 0(r3)
/* 80316B00 00313A40 81 8C 00 48 */ lwz r12, 0x48(r12)
/* 80316B04 00313A44 7D 89 03 A6 */ mtctr r12
/* 80316B08 00313A48 4E 80 04 21 */ bctrl
/* 80316B0C 00313A4C 8B 83 00 02 */ lbz r28, 2(r3)
/* 80316B10 00313A50 80 7B 00 28 */ lwz r3, 0x28(r27)
/* 80316B14 00313A54 38 80 00 06 */ li r4, 6
/* 80316B18 00313A58 81 83 00 00 */ lwz r12, 0(r3)
/* 80316B1C 00313A5C 81 8C 00 48 */ lwz r12, 0x48(r12)
/* 80316B20 00313A60 7D 89 03 A6 */ mtctr r12
/* 80316B24 00313A64 4E 80 04 21 */ bctrl
/* 80316B28 00313A68 8B A3 00 02 */ lbz r29, 2(r3)
/* 80316B2C 00313A6C 80 7B 00 28 */ lwz r3, 0x28(r27)
/* 80316B30 00313A70 38 80 00 05 */ li r4, 5
/* 80316B34 00313A74 81 83 00 00 */ lwz r12, 0(r3)
/* 80316B38 00313A78 81 8C 00 48 */ lwz r12, 0x48(r12)
/* 80316B3C 00313A7C 7D 89 03 A6 */ mtctr r12
/* 80316B40 00313A80 4E 80 04 21 */ bctrl
/* 80316B44 00313A84 8B E3 00 02 */ lbz r31, 2(r3)
/* 80316B48 00313A88 80 7B 00 28 */ lwz r3, 0x28(r27)
/* 80316B4C 00313A8C 38 80 00 04 */ li r4, 4
/* 80316B50 00313A90 81 83 00 00 */ lwz r12, 0(r3)
/* 80316B54 00313A94 81 8C 00 48 */ lwz r12, 0x48(r12)
/* 80316B58 00313A98 7D 89 03 A6 */ mtctr r12
/* 80316B5C 00313A9C 4E 80 04 21 */ bctrl
/* 80316B60 00313AA0 8B C3 00 02 */ lbz r30, 2(r3)
/* 80316B64 00313AA4 80 7B 00 28 */ lwz r3, 0x28(r27)
/* 80316B68 00313AA8 38 80 00 03 */ li r4, 3
/* 80316B6C 00313AAC 81 83 00 00 */ lwz r12, 0(r3)
/* 80316B70 00313AB0 81 8C 00 48 */ lwz r12, 0x48(r12)
/* 80316B74 00313AB4 7D 89 03 A6 */ mtctr r12
/* 80316B78 00313AB8 4E 80 04 21 */ bctrl
/* 80316B7C 00313ABC 8B 43 00 02 */ lbz r26, 2(r3)
/* 80316B80 00313AC0 80 7B 00 28 */ lwz r3, 0x28(r27)
/* 80316B84 00313AC4 38 80 00 02 */ li r4, 2
/* 80316B88 00313AC8 81 83 00 00 */ lwz r12, 0(r3)
/* 80316B8C 00313ACC 81 8C 00 48 */ lwz r12, 0x48(r12)
/* 80316B90 00313AD0 7D 89 03 A6 */ mtctr r12
/* 80316B94 00313AD4 4E 80 04 21 */ bctrl
/* 80316B98 00313AD8 8B 23 00 02 */ lbz r25, 2(r3)
/* 80316B9C 00313ADC 80 7B 00 28 */ lwz r3, 0x28(r27)
/* 80316BA0 00313AE0 38 80 00 01 */ li r4, 1
/* 80316BA4 00313AE4 81 83 00 00 */ lwz r12, 0(r3)
/* 80316BA8 00313AE8 81 8C 00 48 */ lwz r12, 0x48(r12)
/* 80316BAC 00313AEC 7D 89 03 A6 */ mtctr r12
/* 80316BB0 00313AF0 4E 80 04 21 */ bctrl
/* 80316BB4 00313AF4 8B 03 00 02 */ lbz r24, 2(r3)
/* 80316BB8 00313AF8 80 7B 00 28 */ lwz r3, 0x28(r27)
/* 80316BBC 00313AFC 38 80 00 00 */ li r4, 0
/* 80316BC0 00313B00 81 83 00 00 */ lwz r12, 0(r3)
/* 80316BC4 00313B04 81 8C 00 48 */ lwz r12, 0x48(r12)
/* 80316BC8 00313B08 7D 89 03 A6 */ mtctr r12
/* 80316BCC 00313B0C 4E 80 04 21 */ bctrl
/* 80316BD0 00313B10 88 03 00 02 */ lbz r0, 2(r3)
/* 80316BD4 00313B14 57 45 C0 0E */ slwi r5, r26, 0x18
/* 80316BD8 00313B18 57 24 91 9A */ rlwinm r4, r25, 0x12, 6, 0xd
/* 80316BDC 00313B1C 54 03 30 32 */ slwi r3, r0, 6
/* 80316BE0 00313B20 57 00 63 26 */ rlwinm r0, r24, 0xc, 0xc, 0x13
/* 80316BE4 00313B24 7C 60 03 78 */ or r0, r3, r0
/* 80316BE8 00313B28 7C 80 03 78 */ or r0, r4, r0
/* 80316BEC 00313B2C 7C A0 03 78 */ or r0, r5, r0
/* 80316BF0 00313B30 90 1B 00 40 */ stw r0, 0x40(r27)
/* 80316BF4 00313B34 57 85 91 9A */ rlwinm r5, r28, 0x12, 6, 0xd
/* 80316BF8 00313B38 57 A4 63 26 */ rlwinm r4, r29, 0xc, 0xc, 0x13
/* 80316BFC 00313B3C 57 C3 06 3E */ clrlwi r3, r30, 0x18
/* 80316C00 00313B40 57 E0 34 B2 */ rlwinm r0, r31, 6, 0x12, 0x19
/* 80316C04 00313B44 7C 60 03 78 */ or r0, r3, r0
/* 80316C08 00313B48 7C 80 03 78 */ or r0, r4, r0
/* 80316C0C 00313B4C 7C A0 03 78 */ or r0, r5, r0
/* 80316C10 00313B50 90 1B 00 44 */ stw r0, 0x44(r27)
/* 80316C14 00313B54 48 00 01 3C */ b lbl_80316D50
lbl_80316C18:
/* 80316C18 00313B58 80 7B 00 28 */ lwz r3, 0x28(r27)
/* 80316C1C 00313B5C 38 80 00 07 */ li r4, 7
/* 80316C20 00313B60 81 83 00 00 */ lwz r12, 0(r3)
/* 80316C24 00313B64 81 8C 00 48 */ lwz r12, 0x48(r12)
/* 80316C28 00313B68 7D 89 03 A6 */ mtctr r12
/* 80316C2C 00313B6C 4E 80 04 21 */ bctrl
/* 80316C30 00313B70 A0 03 00 04 */ lhz r0, 4(r3)
/* 80316C34 00313B74 54 1F 06 3E */ clrlwi r31, r0, 0x18
/* 80316C38 00313B78 80 7B 00 28 */ lwz r3, 0x28(r27)
/* 80316C3C 00313B7C 38 80 00 06 */ li r4, 6
/* 80316C40 00313B80 81 83 00 00 */ lwz r12, 0(r3)
/* 80316C44 00313B84 81 8C 00 48 */ lwz r12, 0x48(r12)
/* 80316C48 00313B88 7D 89 03 A6 */ mtctr r12
/* 80316C4C 00313B8C 4E 80 04 21 */ bctrl
/* 80316C50 00313B90 A0 03 00 04 */ lhz r0, 4(r3)
/* 80316C54 00313B94 54 1E 06 3E */ clrlwi r30, r0, 0x18
/* 80316C58 00313B98 80 7B 00 28 */ lwz r3, 0x28(r27)
/* 80316C5C 00313B9C 38 80 00 05 */ li r4, 5
/* 80316C60 00313BA0 81 83 00 00 */ lwz r12, 0(r3)
/* 80316C64 00313BA4 81 8C 00 48 */ lwz r12, 0x48(r12)
/* 80316C68 00313BA8 7D 89 03 A6 */ mtctr r12
/* 80316C6C 00313BAC 4E 80 04 21 */ bctrl
/* 80316C70 00313BB0 A0 03 00 04 */ lhz r0, 4(r3)
/* 80316C74 00313BB4 54 1D 06 3E */ clrlwi r29, r0, 0x18
/* 80316C78 00313BB8 80 7B 00 28 */ lwz r3, 0x28(r27)
/* 80316C7C 00313BBC 38 80 00 04 */ li r4, 4
/* 80316C80 00313BC0 81 83 00 00 */ lwz r12, 0(r3)
/* 80316C84 00313BC4 81 8C 00 48 */ lwz r12, 0x48(r12)
/* 80316C88 00313BC8 7D 89 03 A6 */ mtctr r12
/* 80316C8C 00313BCC 4E 80 04 21 */ bctrl
/* 80316C90 00313BD0 A0 03 00 04 */ lhz r0, 4(r3)
/* 80316C94 00313BD4 54 1C 06 3E */ clrlwi r28, r0, 0x18
/* 80316C98 00313BD8 80 7B 00 28 */ lwz r3, 0x28(r27)
/* 80316C9C 00313BDC 38 80 00 03 */ li r4, 3
/* 80316CA0 00313BE0 81 83 00 00 */ lwz r12, 0(r3)
/* 80316CA4 00313BE4 81 8C 00 48 */ lwz r12, 0x48(r12)
/* 80316CA8 00313BE8 7D 89 03 A6 */ mtctr r12
/* 80316CAC 00313BEC 4E 80 04 21 */ bctrl
/* 80316CB0 00313BF0 A0 03 00 04 */ lhz r0, 4(r3)
/* 80316CB4 00313BF4 54 18 06 3E */ clrlwi r24, r0, 0x18
/* 80316CB8 00313BF8 80 7B 00 28 */ lwz r3, 0x28(r27)
/* 80316CBC 00313BFC 38 80 00 02 */ li r4, 2
/* 80316CC0 00313C00 81 83 00 00 */ lwz r12, 0(r3)
/* 80316CC4 00313C04 81 8C 00 48 */ lwz r12, 0x48(r12)
/* 80316CC8 00313C08 7D 89 03 A6 */ mtctr r12
/* 80316CCC 00313C0C 4E 80 04 21 */ bctrl
/* 80316CD0 00313C10 A0 03 00 04 */ lhz r0, 4(r3)
/* 80316CD4 00313C14 54 19 06 3E */ clrlwi r25, r0, 0x18
/* 80316CD8 00313C18 80 7B 00 28 */ lwz r3, 0x28(r27)
/* 80316CDC 00313C1C 38 80 00 01 */ li r4, 1
/* 80316CE0 00313C20 81 83 00 00 */ lwz r12, 0(r3)
/* 80316CE4 00313C24 81 8C 00 48 */ lwz r12, 0x48(r12)
/* 80316CE8 00313C28 7D 89 03 A6 */ mtctr r12
/* 80316CEC 00313C2C 4E 80 04 21 */ bctrl
/* 80316CF0 00313C30 A0 03 00 04 */ lhz r0, 4(r3)
/* 80316CF4 00313C34 54 1A 06 3E */ clrlwi r26, r0, 0x18
/* 80316CF8 00313C38 80 7B 00 28 */ lwz r3, 0x28(r27)
/* 80316CFC 00313C3C 38 80 00 00 */ li r4, 0
/* 80316D00 00313C40 81 83 00 00 */ lwz r12, 0(r3)
/* 80316D04 00313C44 81 8C 00 48 */ lwz r12, 0x48(r12)
/* 80316D08 00313C48 7D 89 03 A6 */ mtctr r12
/* 80316D0C 00313C4C 4E 80 04 21 */ bctrl
/* 80316D10 00313C50 A0 03 00 04 */ lhz r0, 4(r3)
/* 80316D14 00313C54 57 05 C0 0E */ slwi r5, r24, 0x18
/* 80316D18 00313C58 57 24 91 9A */ rlwinm r4, r25, 0x12, 6, 0xd
/* 80316D1C 00313C5C 54 03 34 B2 */ rlwinm r3, r0, 6, 0x12, 0x19
/* 80316D20 00313C60 57 40 63 26 */ rlwinm r0, r26, 0xc, 0xc, 0x13
/* 80316D24 00313C64 7C 60 03 78 */ or r0, r3, r0
/* 80316D28 00313C68 7C 80 03 78 */ or r0, r4, r0
/* 80316D2C 00313C6C 7C A0 03 78 */ or r0, r5, r0
/* 80316D30 00313C70 90 1B 00 40 */ stw r0, 0x40(r27)
/* 80316D34 00313C74 57 E4 91 9A */ rlwinm r4, r31, 0x12, 6, 0xd
/* 80316D38 00313C78 57 C3 63 26 */ rlwinm r3, r30, 0xc, 0xc, 0x13
/* 80316D3C 00313C7C 57 A0 34 B2 */ rlwinm r0, r29, 6, 0x12, 0x19
/* 80316D40 00313C80 7F 80 03 78 */ or r0, r28, r0
/* 80316D44 00313C84 7C 60 03 78 */ or r0, r3, r0
/* 80316D48 00313C88 7C 80 03 78 */ or r0, r4, r0
/* 80316D4C 00313C8C 90 1B 00 44 */ stw r0, 0x44(r27)
lbl_80316D50:
/* 80316D50 00313C90 39 61 00 30 */ addi r11, r1, 0x30
/* 80316D54 00313C94 48 04 B4 C1 */ bl _restgpr_24
/* 80316D58 00313C98 80 01 00 34 */ lwz r0, 0x34(r1)
/* 80316D5C 00313C9C 7C 08 03 A6 */ mtlr r0
/* 80316D60 00313CA0 38 21 00 30 */ addi r1, r1, 0x30
/* 80316D64 00313CA4 4E 80 00 20 */ blr
.global J3DMaterial_NS_copy
J3DMaterial_NS_copy:
/* 80316D68 00313CA8 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 80316D6C 00313CAC 7C 08 02 A6 */ mflr r0
/* 80316D70 00313CB0 90 01 00 14 */ stw r0, 0x14(r1)
/* 80316D74 00313CB4 93 E1 00 0C */ stw r31, 0xc(r1)
/* 80316D78 00313CB8 93 C1 00 08 */ stw r30, 8(r1)
/* 80316D7C 00313CBC 7C 7E 1B 78 */ mr r30, r3
/* 80316D80 00313CC0 7C 9F 23 78 */ mr r31, r4
/* 80316D84 00313CC4 80 63 00 24 */ lwz r3, 0x24(r3)
/* 80316D88 00313CC8 80 84 00 24 */ lwz r4, 0x24(r4)
/* 80316D8C 00313CCC 81 83 00 00 */ lwz r12, 0(r3)
/* 80316D90 00313CD0 81 8C 00 0C */ lwz r12, 0xc(r12)
/* 80316D94 00313CD4 7D 89 03 A6 */ mtctr r12
/* 80316D98 00313CD8 4E 80 04 21 */ bctrl
/* 80316D9C 00313CDC 80 7E 00 28 */ lwz r3, 0x28(r30)
/* 80316DA0 00313CE0 80 9F 00 28 */ lwz r4, 0x28(r31)
/* 80316DA4 00313CE4 81 83 00 00 */ lwz r12, 0(r3)
/* 80316DA8 00313CE8 81 8C 00 08 */ lwz r12, 8(r12)
/* 80316DAC 00313CEC 7D 89 03 A6 */ mtctr r12
/* 80316DB0 00313CF0 4E 80 04 21 */ bctrl
/* 80316DB4 00313CF4 80 7E 00 2C */ lwz r3, 0x2c(r30)
/* 80316DB8 00313CF8 80 9F 00 2C */ lwz r4, 0x2c(r31)
/* 80316DBC 00313CFC 81 83 00 00 */ lwz r12, 0(r3)
/* 80316DC0 00313D00 81 8C 00 08 */ lwz r12, 8(r12)
/* 80316DC4 00313D04 7D 89 03 A6 */ mtctr r12
/* 80316DC8 00313D08 4E 80 04 21 */ bctrl
/* 80316DCC 00313D0C 80 7E 00 30 */ lwz r3, 0x30(r30)
/* 80316DD0 00313D10 80 9F 00 30 */ lwz r4, 0x30(r31)
/* 80316DD4 00313D14 81 83 00 00 */ lwz r12, 0(r3)
/* 80316DD8 00313D18 81 8C 00 08 */ lwz r12, 8(r12)
/* 80316DDC 00313D1C 7D 89 03 A6 */ mtctr r12
/* 80316DE0 00313D20 4E 80 04 21 */ bctrl
/* 80316DE4 00313D24 80 7E 00 34 */ lwz r3, 0x34(r30)
/* 80316DE8 00313D28 80 9F 00 34 */ lwz r4, 0x34(r31)
/* 80316DEC 00313D2C 81 83 00 00 */ lwz r12, 0(r3)
/* 80316DF0 00313D30 81 8C 00 08 */ lwz r12, 8(r12)
/* 80316DF4 00313D34 7D 89 03 A6 */ mtctr r12
/* 80316DF8 00313D38 4E 80 04 21 */ bctrl
/* 80316DFC 00313D3C 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 80316E00 00313D40 83 C1 00 08 */ lwz r30, 8(r1)
/* 80316E04 00313D44 80 01 00 14 */ lwz r0, 0x14(r1)
/* 80316E08 00313D48 7C 08 03 A6 */ mtlr r0
/* 80316E0C 00313D4C 38 21 00 10 */ addi r1, r1, 0x10
/* 80316E10 00313D50 4E 80 00 20 */ blr
/* 80316E14 00313D54 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 80316E18 00313D58 7C 08 02 A6 */ mflr r0
/* 80316E1C 00313D5C 90 01 00 14 */ stw r0, 0x14(r1)
/* 80316E20 00313D60 80 83 00 20 */ lwz r4, 0x20(r3)
/* 80316E24 00313D64 7C 80 20 F8 */ nor r0, r4, r4
/* 80316E28 00313D68 54 00 00 01 */ rlwinm. r0, r0, 0, 0, 0
/* 80316E2C 00313D6C 40 82 00 34 */ bne lbl_80316E60
/* 80316E30 00313D70 54 80 00 7E */ clrlwi r0, r4, 1
/* 80316E34 00313D74 90 03 00 20 */ stw r0, 0x20(r3)
/* 80316E38 00313D78 80 83 00 38 */ lwz r4, 0x38(r3)
/* 80316E3C 00313D7C 80 04 00 10 */ lwz r0, 0x10(r4)
/* 80316E40 00313D80 90 03 00 10 */ stw r0, 0x10(r3)
/* 80316E44 00313D84 80 83 00 38 */ lwz r4, 0x38(r3)
/* 80316E48 00313D88 80 04 00 18 */ lwz r0, 0x18(r4)
/* 80316E4C 00313D8C 90 03 00 18 */ stw r0, 0x18(r3)
/* 80316E50 00313D90 38 00 00 00 */ li r0, 0
/* 80316E54 00313D94 90 03 00 3C */ stw r0, 0x3c(r3)
/* 80316E58 00313D98 80 83 00 38 */ lwz r4, 0x38(r3)
/* 80316E5C 00313D9C 4B FF FF 0D */ bl J3DMaterial_NS_copy
lbl_80316E60:
/* 80316E60 00313DA0 80 01 00 14 */ lwz r0, 0x14(r1)
/* 80316E64 00313DA4 7C 08 03 A6 */ mtlr r0
/* 80316E68 00313DA8 38 21 00 10 */ addi r1, r1, 0x10
/* 80316E6C 00313DAC 4E 80 00 20 */ blr
/* 80316E70 00313DB0 80 83 00 20 */ lwz r4, 0x20(r3)
/* 80316E74 00313DB4 54 80 00 03 */ rlwinm. r0, r4, 0, 0, 1
/* 80316E78 00313DB8 4C 82 00 20 */ bnelr
/* 80316E7C 00313DBC 64 80 80 00 */ oris r0, r4, 0x8000
/* 80316E80 00313DC0 90 03 00 20 */ stw r0, 0x20(r3)
/* 80316E84 00313DC4 38 00 00 00 */ li r0, 0
/* 80316E88 00313DC8 90 03 00 3C */ stw r0, 0x3c(r3)
/* 80316E8C 00313DCC 4E 80 00 20 */ blr
.global J3DMaterial_NS_newSharedDisplayList
J3DMaterial_NS_newSharedDisplayList:
/* 80316E90 00313DD0 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 80316E94 00313DD4 7C 08 02 A6 */ mflr r0
/* 80316E98 00313DD8 90 01 00 14 */ stw r0, 0x14(r1)
/* 80316E9C 00313DDC 93 E1 00 0C */ stw r31, 0xc(r1)
/* 80316EA0 00313DE0 93 C1 00 08 */ stw r30, 8(r1)
/* 80316EA4 00313DE4 7C 7E 1B 78 */ mr r30, r3
/* 80316EA8 00313DE8 7C 9F 23 78 */ mr r31, r4
/* 80316EAC 00313DEC 80 03 00 48 */ lwz r0, 0x48(r3)
/* 80316EB0 00313DF0 28 00 00 00 */ cmplwi r0, 0
/* 80316EB4 00313DF4 40 82 00 54 */ bne lbl_80316F08
/* 80316EB8 00313DF8 38 60 00 10 */ li r3, 0x10
/* 80316EBC 00313DFC 4B FB 7D 91 */ bl __nw__FUl
/* 80316EC0 00313E00 28 03 00 00 */ cmplwi r3, 0
/* 80316EC4 00313E04 41 82 00 18 */ beq lbl_80316EDC
/* 80316EC8 00313E08 38 00 00 00 */ li r0, 0
/* 80316ECC 00313E0C 90 03 00 00 */ stw r0, 0(r3)
/* 80316ED0 00313E10 90 03 00 04 */ stw r0, 4(r3)
/* 80316ED4 00313E14 90 03 00 08 */ stw r0, 8(r3)
/* 80316ED8 00313E18 90 03 00 0C */ stw r0, 0xc(r3)
lbl_80316EDC:
/* 80316EDC 00313E1C 90 7E 00 48 */ stw r3, 0x48(r30)
/* 80316EE0 00313E20 80 7E 00 48 */ lwz r3, 0x48(r30)
/* 80316EE4 00313E24 28 03 00 00 */ cmplwi r3, 0
/* 80316EE8 00313E28 40 82 00 0C */ bne lbl_80316EF4
/* 80316EEC 00313E2C 38 60 00 04 */ li r3, 4
/* 80316EF0 00313E30 48 00 00 1C */ b lbl_80316F0C
lbl_80316EF4:
/* 80316EF4 00313E34 7F E4 FB 78 */ mr r4, r31
/* 80316EF8 00313E38 4B FF B5 91 */ bl J3DDisplayListObj_NS_newDisplayList
/* 80316EFC 00313E3C 2C 03 00 00 */ cmpwi r3, 0
/* 80316F00 00313E40 41 82 00 08 */ beq lbl_80316F08
/* 80316F04 00313E44 48 00 00 08 */ b lbl_80316F0C
lbl_80316F08:
/* 80316F08 00313E48 38 60 00 00 */ li r3, 0
lbl_80316F0C:
/* 80316F0C 00313E4C 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 80316F10 00313E50 83 C1 00 08 */ lwz r30, 8(r1)
/* 80316F14 00313E54 80 01 00 14 */ lwz r0, 0x14(r1)
/* 80316F18 00313E58 7C 08 03 A6 */ mtlr r0
/* 80316F1C 00313E5C 38 21 00 10 */ addi r1, r1, 0x10
/* 80316F20 00313E60 4E 80 00 20 */ blr
.global J3DMaterial_NS_newSingleSharedDisplayList
J3DMaterial_NS_newSingleSharedDisplayList:
/* 80316F24 00313E64 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 80316F28 00313E68 7C 08 02 A6 */ mflr r0
/* 80316F2C 00313E6C 90 01 00 14 */ stw r0, 0x14(r1)
/* 80316F30 00313E70 93 E1 00 0C */ stw r31, 0xc(r1)
/* 80316F34 00313E74 93 C1 00 08 */ stw r30, 8(r1)
/* 80316F38 00313E78 7C 7E 1B 78 */ mr r30, r3
/* 80316F3C 00313E7C 7C 9F 23 78 */ mr r31, r4
/* 80316F40 00313E80 80 03 00 48 */ lwz r0, 0x48(r3)
/* 80316F44 00313E84 28 00 00 00 */ cmplwi r0, 0
/* 80316F48 00313E88 40 82 00 54 */ bne lbl_80316F9C
/* 80316F4C 00313E8C 38 60 00 10 */ li r3, 0x10
/* 80316F50 00313E90 4B FB 7C FD */ bl __nw__FUl
/* 80316F54 00313E94 28 03 00 00 */ cmplwi r3, 0
/* 80316F58 00313E98 41 82 00 18 */ beq lbl_80316F70
/* 80316F5C 00313E9C 38 00 00 00 */ li r0, 0
/* 80316F60 00313EA0 90 03 00 00 */ stw r0, 0(r3)
/* 80316F64 00313EA4 90 03 00 04 */ stw r0, 4(r3)
/* 80316F68 00313EA8 90 03 00 08 */ stw r0, 8(r3)
/* 80316F6C 00313EAC 90 03 00 0C */ stw r0, 0xc(r3)
lbl_80316F70:
/* 80316F70 00313EB0 90 7E 00 48 */ stw r3, 0x48(r30)
/* 80316F74 00313EB4 80 7E 00 48 */ lwz r3, 0x48(r30)
/* 80316F78 00313EB8 28 03 00 00 */ cmplwi r3, 0
/* 80316F7C 00313EBC 40 82 00 0C */ bne lbl_80316F88
/* 80316F80 00313EC0 38 60 00 04 */ li r3, 4
/* 80316F84 00313EC4 48 00 00 1C */ b lbl_80316FA0
lbl_80316F88:
/* 80316F88 00313EC8 7F E4 FB 78 */ mr r4, r31
/* 80316F8C 00313ECC 4B FF B5 7D */ bl J3DDisplayListObj_NS_newSingleDisplayList
/* 80316F90 00313ED0 2C 03 00 00 */ cmpwi r3, 0
/* 80316F94 00313ED4 41 82 00 08 */ beq lbl_80316F9C
/* 80316F98 00313ED8 48 00 00 08 */ b lbl_80316FA0
lbl_80316F9C:
/* 80316F9C 00313EDC 38 60 00 00 */ li r3, 0
lbl_80316FA0:
/* 80316FA0 00313EE0 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 80316FA4 00313EE4 83 C1 00 08 */ lwz r30, 8(r1)
/* 80316FA8 00313EE8 80 01 00 14 */ lwz r0, 0x14(r1)
/* 80316FAC 00313EEC 7C 08 03 A6 */ mtlr r0
/* 80316FB0 00313EF0 38 21 00 10 */ addi r1, r1, 0x10
/* 80316FB4 00313EF4 4E 80 00 20 */ blr
.global J3DPatchedMaterial_NS_initialize
J3DPatchedMaterial_NS_initialize:
/* 80316FB8 00313EF8 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 80316FBC 00313EFC 7C 08 02 A6 */ mflr r0
/* 80316FC0 00313F00 90 01 00 14 */ stw r0, 0x14(r1)
/* 80316FC4 00313F04 4B FF F2 7D */ bl J3DMaterial_NS_initialize
/* 80316FC8 00313F08 80 01 00 14 */ lwz r0, 0x14(r1)
/* 80316FCC 00313F0C 7C 08 03 A6 */ mtlr r0
/* 80316FD0 00313F10 38 21 00 10 */ addi r1, r1, 0x10
/* 80316FD4 00313F14 4E 80 00 20 */ blr
/* 80316FD8 00313F18 4E 80 00 20 */ blr
/* 80316FDC 00313F1C 4E 80 00 20 */ blr
/* 80316FE0 00313F20 80 03 00 10 */ lwz r0, 0x10(r3)
/* 80316FE4 00313F24 3C 60 80 43 */ lis r3, lbl_80434AC8@ha
/* 80316FE8 00313F28 38 63 4A C8 */ addi r3, r3, lbl_80434AC8@l
/* 80316FEC 00313F2C 90 03 00 54 */ stw r0, 0x54(r3)
/* 80316FF0 00313F30 80 03 00 34 */ lwz r0, 0x34(r3)
/* 80316FF4 00313F34 54 00 07 BD */ rlwinm. r0, r0, 0, 0x1e, 0x1e
/* 80316FF8 00313F38 4E 80 00 20 */ blr
/* 80316FFC 00313F3C 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 80317000 00313F40 7C 08 02 A6 */ mflr r0
/* 80317004 00313F44 90 01 00 14 */ stw r0, 0x14(r1)
/* 80317008 00313F48 80 03 00 10 */ lwz r0, 0x10(r3)
/* 8031700C 00313F4C 3C 80 80 43 */ lis r4, lbl_80434AC8@ha
/* 80317010 00313F50 38 84 4A C8 */ addi r4, r4, lbl_80434AC8@l
/* 80317014 00313F54 90 04 00 54 */ stw r0, 0x54(r4)
/* 80317018 00313F58 80 04 00 34 */ lwz r0, 0x34(r4)
/* 8031701C 00313F5C 54 00 07 BD */ rlwinm. r0, r0, 0, 0x1e, 0x1e
/* 80317020 00313F60 40 82 00 0C */ bne lbl_8031702C
/* 80317024 00313F64 80 63 00 48 */ lwz r3, 0x48(r3)
/* 80317028 00313F68 4B FF B5 F1 */ bl J3DDisplayListObj_NS_callDL
lbl_8031702C:
/* 8031702C 00313F6C 80 01 00 14 */ lwz r0, 0x14(r1)
/* 80317030 00313F70 7C 08 03 A6 */ mtlr r0
/* 80317034 00313F74 38 21 00 10 */ addi r1, r1, 0x10
/* 80317038 00313F78 4E 80 00 20 */ blr
/* 8031703C 00313F7C 4E 80 00 20 */ blr
/* 80317040 00313F80 4E 80 00 20 */ blr
.global J3DLockedMaterial_NS_initialize
J3DLockedMaterial_NS_initialize:
/* 80317044 00313F84 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 80317048 00313F88 7C 08 02 A6 */ mflr r0
/* 8031704C 00313F8C 90 01 00 14 */ stw r0, 0x14(r1)
/* 80317050 00313F90 4B FF F1 F1 */ bl J3DMaterial_NS_initialize
/* 80317054 00313F94 80 01 00 14 */ lwz r0, 0x14(r1)
/* 80317058 00313F98 7C 08 03 A6 */ mtlr r0
/* 8031705C 00313F9C 38 21 00 10 */ addi r1, r1, 0x10
/* 80317060 00313FA0 4E 80 00 20 */ blr
/* 80317064 00313FA4 4E 80 00 20 */ blr
/* 80317068 00313FA8 4E 80 00 20 */ blr
/* 8031706C 00313FAC 80 03 00 10 */ lwz r0, 0x10(r3)
/* 80317070 00313FB0 3C 60 80 43 */ lis r3, lbl_80434AC8@ha
/* 80317074 00313FB4 38 63 4A C8 */ addi r3, r3, lbl_80434AC8@l
/* 80317078 00313FB8 90 03 00 54 */ stw r0, 0x54(r3)
/* 8031707C 00313FBC 80 03 00 34 */ lwz r0, 0x34(r3)
/* 80317080 00313FC0 54 00 07 BD */ rlwinm. r0, r0, 0, 0x1e, 0x1e
/* 80317084 00313FC4 4E 80 00 20 */ blr
/* 80317088 00313FC8 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 8031708C 00313FCC 7C 08 02 A6 */ mflr r0
/* 80317090 00313FD0 90 01 00 14 */ stw r0, 0x14(r1)
/* 80317094 00313FD4 80 03 00 10 */ lwz r0, 0x10(r3)
/* 80317098 00313FD8 3C 80 80 43 */ lis r4, lbl_80434AC8@ha
/* 8031709C 00313FDC 38 84 4A C8 */ addi r4, r4, lbl_80434AC8@l
/* 803170A0 00313FE0 90 04 00 54 */ stw r0, 0x54(r4)
/* 803170A4 00313FE4 80 04 00 34 */ lwz r0, 0x34(r4)
/* 803170A8 00313FE8 54 00 07 BD */ rlwinm. r0, r0, 0, 0x1e, 0x1e
/* 803170AC 00313FEC 40 82 00 0C */ bne lbl_803170B8
/* 803170B0 00313FF0 80 63 00 48 */ lwz r3, 0x48(r3)
/* 803170B4 00313FF4 4B FF B5 65 */ bl J3DDisplayListObj_NS_callDL
lbl_803170B8:
/* 803170B8 00313FF8 80 01 00 14 */ lwz r0, 0x14(r1)
/* 803170BC 00313FFC 7C 08 03 A6 */ mtlr r0
/* 803170C0 00314000 38 21 00 10 */ addi r1, r1, 0x10
/* 803170C4 00314004 4E 80 00 20 */ blr
/* 803170C8 00314008 4E 80 00 20 */ blr
/* 803170CC 0031400C 4E 80 00 20 */ blr
/* 803170D0 00314010 4E 80 00 20 */ blr
/* 803170D4 00314014 4E 80 00 20 */ blr
/* 803170D8 00314018 4E 80 00 20 */ blr
/* 803170DC 0031401C 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 803170E0 00314020 7C 08 02 A6 */ mflr r0
/* 803170E4 00314024 90 01 00 14 */ stw r0, 0x14(r1)
/* 803170E8 00314028 93 E1 00 0C */ stw r31, 0xc(r1)
/* 803170EC 0031402C 7C 7F 1B 79 */ or. r31, r3, r3
/* 803170F0 00314030 41 82 00 30 */ beq lbl_80317120
/* 803170F4 00314034 3C 60 80 3D */ lis r3, lbl_803CEA34@ha
/* 803170F8 00314038 38 03 EA 34 */ addi r0, r3, lbl_803CEA34@l
/* 803170FC 0031403C 90 1F 00 00 */ stw r0, 0(r31)
/* 80317100 00314040 41 82 00 10 */ beq lbl_80317110
/* 80317104 00314044 3C 60 80 3D */ lis r3, lbl_803CDEA0@ha
/* 80317108 00314048 38 03 DE A0 */ addi r0, r3, lbl_803CDEA0@l
/* 8031710C 0031404C 90 1F 00 00 */ stw r0, 0(r31)
lbl_80317110:
/* 80317110 00314050 7C 80 07 35 */ extsh. r0, r4
/* 80317114 00314054 40 81 00 0C */ ble lbl_80317120
/* 80317118 00314058 7F E3 FB 78 */ mr r3, r31
/* 8031711C 0031405C 4B FB 7C 21 */ bl __dl__FPv
lbl_80317120:
/* 80317120 00314060 7F E3 FB 78 */ mr r3, r31
/* 80317124 00314064 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 80317128 00314068 80 01 00 14 */ lwz r0, 0x14(r1)
/* 8031712C 0031406C 7C 08 03 A6 */ mtlr r0
/* 80317130 00314070 38 21 00 10 */ addi r1, r1, 0x10
/* 80317134 00314074 4E 80 00 20 */ blr
/* 80317138 00314078 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 8031713C 0031407C 7C 08 02 A6 */ mflr r0
/* 80317140 00314080 90 01 00 14 */ stw r0, 0x14(r1)
/* 80317144 00314084 93 E1 00 0C */ stw r31, 0xc(r1)
/* 80317148 00314088 7C 7F 1B 79 */ or. r31, r3, r3
/* 8031714C 0031408C 41 82 00 1C */ beq lbl_80317168
/* 80317150 00314090 3C A0 80 3D */ lis r5, lbl_803CDEA0@ha
/* 80317154 00314094 38 05 DE A0 */ addi r0, r5, lbl_803CDEA0@l
/* 80317158 00314098 90 1F 00 00 */ stw r0, 0(r31)
/* 8031715C 0031409C 7C 80 07 35 */ extsh. r0, r4
/* 80317160 003140A0 40 81 00 08 */ ble lbl_80317168
/* 80317164 003140A4 4B FB 7B D9 */ bl __dl__FPv
lbl_80317168:
/* 80317168 003140A8 7F E3 FB 78 */ mr r3, r31
/* 8031716C 003140AC 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 80317170 003140B0 80 01 00 14 */ lwz r0, 0x14(r1)
/* 80317174 003140B4 7C 08 03 A6 */ mtlr r0
/* 80317178 003140B8 38 21 00 10 */ addi r1, r1, 0x10
/* 8031717C 003140BC 4E 80 00 20 */ blr
/* 80317180 003140C0 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 80317184 003140C4 7C 08 02 A6 */ mflr r0
/* 80317188 003140C8 90 01 00 14 */ stw r0, 0x14(r1)
/* 8031718C 003140CC 93 E1 00 0C */ stw r31, 0xc(r1)
/* 80317190 003140D0 7C 7F 1B 79 */ or. r31, r3, r3
/* 80317194 003140D4 41 82 00 30 */ beq lbl_803171C4
/* 80317198 003140D8 3C 60 80 3D */ lis r3, lbl_803CE60C@ha
/* 8031719C 003140DC 38 03 E6 0C */ addi r0, r3, lbl_803CE60C@l
/* 803171A0 003140E0 90 1F 00 00 */ stw r0, 0(r31)
/* 803171A4 003140E4 41 82 00 10 */ beq lbl_803171B4
/* 803171A8 003140E8 3C 60 80 3D */ lis r3, lbl_803CDE34@ha
/* 803171AC 003140EC 38 03 DE 34 */ addi r0, r3, lbl_803CDE34@l
/* 803171B0 003140F0 90 1F 00 00 */ stw r0, 0(r31)
lbl_803171B4:
/* 803171B4 003140F4 7C 80 07 35 */ extsh. r0, r4
/* 803171B8 003140F8 40 81 00 0C */ ble lbl_803171C4
/* 803171BC 003140FC 7F E3 FB 78 */ mr r3, r31
/* 803171C0 00314100 4B FB 7B 7D */ bl __dl__FPv
lbl_803171C4:
/* 803171C4 00314104 7F E3 FB 78 */ mr r3, r31
/* 803171C8 00314108 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 803171CC 0031410C 80 01 00 14 */ lwz r0, 0x14(r1)
/* 803171D0 00314110 7C 08 03 A6 */ mtlr r0
/* 803171D4 00314114 38 21 00 10 */ addi r1, r1, 0x10
/* 803171D8 00314118 4E 80 00 20 */ blr
/* 803171DC 0031411C 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 803171E0 00314120 7C 08 02 A6 */ mflr r0
/* 803171E4 00314124 90 01 00 14 */ stw r0, 0x14(r1)
/* 803171E8 00314128 93 E1 00 0C */ stw r31, 0xc(r1)
/* 803171EC 0031412C 7C 7F 1B 79 */ or. r31, r3, r3
/* 803171F0 00314130 41 82 00 1C */ beq lbl_8031720C
/* 803171F4 00314134 3C A0 80 3D */ lis r5, lbl_803CDE34@ha
/* 803171F8 00314138 38 05 DE 34 */ addi r0, r5, lbl_803CDE34@l
/* 803171FC 0031413C 90 1F 00 00 */ stw r0, 0(r31)
/* 80317200 00314140 7C 80 07 35 */ extsh. r0, r4
/* 80317204 00314144 40 81 00 08 */ ble lbl_8031720C
/* 80317208 00314148 4B FB 7B 35 */ bl __dl__FPv
lbl_8031720C:
/* 8031720C 0031414C 7F E3 FB 78 */ mr r3, r31
/* 80317210 00314150 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 80317214 00314154 80 01 00 14 */ lwz r0, 0x14(r1)
/* 80317218 00314158 7C 08 03 A6 */ mtlr r0
/* 8031721C 0031415C 38 21 00 10 */ addi r1, r1, 0x10
/* 80317220 00314160 4E 80 00 20 */ blr
/* 80317224 00314164 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 80317228 00314168 7C 08 02 A6 */ mflr r0
/* 8031722C 0031416C 90 01 00 14 */ stw r0, 0x14(r1)
/* 80317230 00314170 93 E1 00 0C */ stw r31, 0xc(r1)
/* 80317234 00314174 7C 7F 1B 79 */ or. r31, r3, r3
/* 80317238 00314178 41 82 00 1C */ beq lbl_80317254
/* 8031723C 0031417C 3C A0 80 3D */ lis r5, lbl_803CE958@ha
/* 80317240 00314180 38 05 E9 58 */ addi r0, r5, lbl_803CE958@l
/* 80317244 00314184 90 1F 00 00 */ stw r0, 0(r31)
/* 80317248 00314188 7C 80 07 35 */ extsh. r0, r4
/* 8031724C 0031418C 40 81 00 08 */ ble lbl_80317254
/* 80317250 00314190 4B FB 7A ED */ bl __dl__FPv
lbl_80317254:
/* 80317254 00314194 7F E3 FB 78 */ mr r3, r31
/* 80317258 00314198 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 8031725C 0031419C 80 01 00 14 */ lwz r0, 0x14(r1)
/* 80317260 003141A0 7C 08 03 A6 */ mtlr r0
/* 80317264 003141A4 38 21 00 10 */ addi r1, r1, 0x10
/* 80317268 003141A8 4E 80 00 20 */ blr
/* 8031726C 003141AC 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 80317270 003141B0 7C 08 02 A6 */ mflr r0
/* 80317274 003141B4 90 01 00 14 */ stw r0, 0x14(r1)
/* 80317278 003141B8 93 E1 00 0C */ stw r31, 0xc(r1)
/* 8031727C 003141BC 7C 7F 1B 79 */ or. r31, r3, r3
/* 80317280 003141C0 41 82 00 1C */ beq lbl_8031729C
/* 80317284 003141C4 3C A0 80 3D */ lis r5, lbl_803CDDE8@ha
/* 80317288 003141C8 38 05 DD E8 */ addi r0, r5, lbl_803CDDE8@l
/* 8031728C 003141CC 90 1F 00 00 */ stw r0, 0(r31)
/* 80317290 003141D0 7C 80 07 35 */ extsh. r0, r4
/* 80317294 003141D4 40 81 00 08 */ ble lbl_8031729C
/* 80317298 003141D8 4B FB 7A A5 */ bl __dl__FPv
lbl_8031729C:
/* 8031729C 003141DC 7F E3 FB 78 */ mr r3, r31
/* 803172A0 003141E0 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 803172A4 003141E4 80 01 00 14 */ lwz r0, 0x14(r1)
/* 803172A8 003141E8 7C 08 03 A6 */ mtlr r0
/* 803172AC 003141EC 38 21 00 10 */ addi r1, r1, 0x10
/* 803172B0 003141F0 4E 80 00 20 */ blr
/* 803172B4 003141F4 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 803172B8 003141F8 7C 08 02 A6 */ mflr r0
/* 803172BC 003141FC 90 01 00 14 */ stw r0, 0x14(r1)
/* 803172C0 00314200 93 E1 00 0C */ stw r31, 0xc(r1)
/* 803172C4 00314204 7C 7F 1B 79 */ or. r31, r3, r3
/* 803172C8 00314208 41 82 00 1C */ beq lbl_803172E4
/* 803172CC 0031420C 3C A0 80 3D */ lis r5, lbl_803CDD20@ha
/* 803172D0 00314210 38 05 DD 20 */ addi r0, r5, lbl_803CDD20@l
/* 803172D4 00314214 90 1F 00 00 */ stw r0, 0(r31)
/* 803172D8 00314218 7C 80 07 35 */ extsh. r0, r4
/* 803172DC 0031421C 40 81 00 08 */ ble lbl_803172E4
/* 803172E0 00314220 4B FB 7A 5D */ bl __dl__FPv
lbl_803172E4:
/* 803172E4 00314224 7F E3 FB 78 */ mr r3, r31
/* 803172E8 00314228 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 803172EC 0031422C 80 01 00 14 */ lwz r0, 0x14(r1)
/* 803172F0 00314230 7C 08 03 A6 */ mtlr r0
/* 803172F4 00314234 38 21 00 10 */ addi r1, r1, 0x10
/* 803172F8 00314238 4E 80 00 20 */ blr
/* 803172FC 0031423C 38 60 00 00 */ li r3, 0
/* 80317300 00314240 4E 80 00 20 */ blr
/* 80317304 00314244 38 60 00 00 */ li r3, 0
/* 80317308 00314248 4E 80 00 20 */ blr
/* 8031730C 0031424C 38 60 00 00 */ li r3, 0
/* 80317310 00314250 4E 80 00 20 */ blr
/* 80317314 00314254 38 60 00 00 */ li r3, 0
/* 80317318 00314258 4E 80 00 20 */ blr
/* 8031731C 0031425C 38 60 00 00 */ li r3, 0
/* 80317320 00314260 4E 80 00 20 */ blr
/* 80317324 00314264 4E 80 00 20 */ blr
/* 80317328 00314268 38 60 00 02 */ li r3, 2
/* 8031732C 0031426C 4E 80 00 20 */ blr
/* 80317330 00314270 4E 80 00 20 */ blr
/* 80317334 00314274 38 60 00 00 */ li r3, 0
/* 80317338 00314278 4E 80 00 20 */ blr
/* 8031733C 0031427C 4E 80 00 20 */ blr
/* 80317340 00314280 4E 80 00 20 */ blr
/* 80317344 00314284 4E 80 00 20 */ blr
/* 80317348 00314288 4E 80 00 20 */ blr
/* 8031734C 0031428C 4E 80 00 20 */ blr
/* 80317350 00314290 4E 80 00 20 */ blr
/* 80317354 00314294 4E 80 00 20 */ blr
/* 80317358 00314298 4E 80 00 20 */ blr
/* 8031735C 0031429C 4E 80 00 20 */ blr
/* 80317360 003142A0 4E 80 00 20 */ blr
/* 80317364 003142A4 4E 80 00 20 */ blr
/* 80317368 003142A8 4E 80 00 20 */ blr
/* 8031736C 003142AC 4E 80 00 20 */ blr
/* 80317370 003142B0 4E 80 00 20 */ blr
/* 80317374 003142B4 4E 80 00 20 */ blr
/* 80317378 003142B8 4E 80 00 20 */ blr
/* 8031737C 003142BC 4E 80 00 20 */ blr
/* 80317380 003142C0 4E 80 00 20 */ blr
/* 80317384 003142C4 38 60 00 00 */ li r3, 0
/* 80317388 003142C8 4E 80 00 20 */ blr
/* 8031738C 003142CC 38 60 00 00 */ li r3, 0
/* 80317390 003142D0 4E 80 00 20 */ blr
/* 80317394 003142D4 4E 80 00 20 */ blr
/* 80317398 003142D8 4E 80 00 20 */ blr
/* 8031739C 003142DC 4E 80 00 20 */ blr
/* 803173A0 003142E0 4E 80 00 20 */ blr
/* 803173A4 003142E4 3C 60 49 42 */ lis r3, 0x49424C4E@ha
/* 803173A8 003142E8 38 63 4C 4E */ addi r3, r3, 0x49424C4E@l
/* 803173AC 003142EC 4E 80 00 20 */ blr
/* 803173B0 003142F0 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 803173B4 003142F4 7C 08 02 A6 */ mflr r0
/* 803173B8 003142F8 90 01 00 14 */ stw r0, 0x14(r1)
/* 803173BC 003142FC 93 E1 00 0C */ stw r31, 0xc(r1)
/* 803173C0 00314300 7C 7F 1B 79 */ or. r31, r3, r3
/* 803173C4 00314304 41 82 00 30 */ beq lbl_803173F4
/* 803173C8 00314308 3C 60 80 3D */ lis r3, lbl_803CDD9C@ha
/* 803173CC 0031430C 38 03 DD 9C */ addi r0, r3, lbl_803CDD9C@l
/* 803173D0 00314310 90 1F 00 00 */ stw r0, 0(r31)
/* 803173D4 00314314 41 82 00 10 */ beq lbl_803173E4
/* 803173D8 00314318 3C 60 80 3D */ lis r3, lbl_803CDDE8@ha
/* 803173DC 0031431C 38 03 DD E8 */ addi r0, r3, lbl_803CDDE8@l
/* 803173E0 00314320 90 1F 00 00 */ stw r0, 0(r31)
lbl_803173E4:
/* 803173E4 00314324 7C 80 07 35 */ extsh. r0, r4
/* 803173E8 00314328 40 81 00 0C */ ble lbl_803173F4
/* 803173EC 0031432C 7F E3 FB 78 */ mr r3, r31
/* 803173F0 00314330 4B FB 79 4D */ bl __dl__FPv
lbl_803173F4:
/* 803173F4 00314334 7F E3 FB 78 */ mr r3, r31
/* 803173F8 00314338 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 803173FC 0031433C 80 01 00 14 */ lwz r0, 0x14(r1)
/* 80317400 00314340 7C 08 03 A6 */ mtlr r0
/* 80317404 00314344 38 21 00 10 */ addi r1, r1, 0x10
/* 80317408 00314348 4E 80 00 20 */ blr
/* 8031740C 0031434C 4E 80 00 20 */ blr
/* 80317410 00314350 4E 80 00 20 */ blr
/* 80317414 00314354 4E 80 00 20 */ blr
/* 80317418 00314358 4E 80 00 20 */ blr
/* 8031741C 0031435C 4E 80 00 20 */ blr
/* 80317420 00314360 4E 80 00 20 */ blr
/* 80317424 00314364 4E 80 00 20 */ blr
/* 80317428 00314368 38 60 00 00 */ li r3, 0
/* 8031742C 0031436C 4E 80 00 20 */ blr
/* 80317430 00314370 4E 80 00 20 */ blr
/* 80317434 00314374 4E 80 00 20 */ blr
/* 80317438 00314378 4E 80 00 20 */ blr
/* 8031743C 0031437C 4E 80 00 20 */ blr
/* 80317440 00314380 4E 80 00 20 */ blr
/* 80317444 00314384 4E 80 00 20 */ blr
/* 80317448 00314388 4E 80 00 20 */ blr
/* 8031744C 0031438C 4E 80 00 20 */ blr
/* 80317450 00314390 4E 80 00 20 */ blr
/* 80317454 00314394 38 60 00 00 */ li r3, 0
/* 80317458 00314398 4E 80 00 20 */ blr
/* 8031745C 0031439C 4E 80 00 20 */ blr
/* 80317460 003143A0 4E 80 00 20 */ blr
/* 80317464 003143A4 38 60 00 00 */ li r3, 0
/* 80317468 003143A8 4E 80 00 20 */ blr
/* 8031746C 003143AC 38 60 00 00 */ li r3, 0
/* 80317470 003143B0 4E 80 00 20 */ blr
/* 80317474 003143B4 4E 80 00 20 */ blr
/* 80317478 003143B8 4E 80 00 20 */ blr