tp/asm/J3DGraphBase/J3DVertex.s

545 lines
25 KiB
ArmAsm

.include "macros.inc"
.section .text, "ax" # 80310ef8
.global J3DVertexData
J3DVertexData:
/* 80310EF8 0030DE38 38 A0 00 00 */ li r5, 0
/* 80310EFC 0030DE3C 90 A3 00 00 */ stw r5, 0(r3)
/* 80310F00 0030DE40 90 A3 00 04 */ stw r5, 4(r3)
/* 80310F04 0030DE44 90 A3 00 08 */ stw r5, 8(r3)
/* 80310F08 0030DE48 90 A3 00 0C */ stw r5, 0xc(r3)
/* 80310F0C 0030DE4C 90 A3 00 10 */ stw r5, 0x10(r3)
/* 80310F10 0030DE50 90 A3 00 14 */ stw r5, 0x14(r3)
/* 80310F14 0030DE54 90 A3 00 18 */ stw r5, 0x18(r3)
/* 80310F18 0030DE58 90 A3 00 1C */ stw r5, 0x1c(r3)
/* 80310F1C 0030DE5C 90 A3 00 20 */ stw r5, 0x20(r3)
/* 80310F20 0030DE60 7C A4 2B 78 */ mr r4, r5
/* 80310F24 0030DE64 38 00 00 02 */ li r0, 2
/* 80310F28 0030DE68 7C 09 03 A6 */ mtctr r0
lbl_80310F2C:
/* 80310F2C 0030DE6C 38 04 00 24 */ addi r0, r4, 0x24
/* 80310F30 0030DE70 7C A3 01 2E */ stwx r5, r3, r0
/* 80310F34 0030DE74 38 84 00 04 */ addi r4, r4, 4
/* 80310F38 0030DE78 42 00 FF F4 */ bdnz lbl_80310F2C
/* 80310F3C 0030DE7C 38 80 00 00 */ li r4, 0
/* 80310F40 0030DE80 38 A0 00 00 */ li r5, 0
/* 80310F44 0030DE84 38 00 00 08 */ li r0, 8
/* 80310F48 0030DE88 7C 09 03 A6 */ mtctr r0
lbl_80310F4C:
/* 80310F4C 0030DE8C 38 04 00 2C */ addi r0, r4, 0x2c
/* 80310F50 0030DE90 7C A3 01 2E */ stwx r5, r3, r0
/* 80310F54 0030DE94 38 84 00 04 */ addi r4, r4, 4
/* 80310F58 0030DE98 42 00 FF F4 */ bdnz lbl_80310F4C
/* 80310F5C 0030DE9C 38 80 00 00 */ li r4, 0
/* 80310F60 0030DEA0 98 83 00 4C */ stb r4, 0x4c(r3)
/* 80310F64 0030DEA4 38 00 00 04 */ li r0, 4
/* 80310F68 0030DEA8 90 03 00 50 */ stw r0, 0x50(r3)
/* 80310F6C 0030DEAC 98 83 00 54 */ stb r4, 0x54(r3)
/* 80310F70 0030DEB0 90 03 00 58 */ stw r0, 0x58(r3)
/* 80310F74 0030DEB4 4E 80 00 20 */ blr
.global J3DVertexBuffer_NS_setVertexData
J3DVertexBuffer_NS_setVertexData:
/* 80310F78 0030DEB8 90 83 00 00 */ stw r4, 0(r3)
/* 80310F7C 0030DEBC 80 04 00 18 */ lwz r0, 0x18(r4)
/* 80310F80 0030DEC0 90 03 00 04 */ stw r0, 4(r3)
/* 80310F84 0030DEC4 80 04 00 1C */ lwz r0, 0x1c(r4)
/* 80310F88 0030DEC8 90 03 00 0C */ stw r0, 0xc(r3)
/* 80310F8C 0030DECC 80 04 00 24 */ lwz r0, 0x24(r4)
/* 80310F90 0030DED0 90 03 00 14 */ stw r0, 0x14(r3)
/* 80310F94 0030DED4 38 A0 00 00 */ li r5, 0
/* 80310F98 0030DED8 90 A3 00 08 */ stw r5, 8(r3)
/* 80310F9C 0030DEDC 90 A3 00 10 */ stw r5, 0x10(r3)
/* 80310FA0 0030DEE0 90 A3 00 18 */ stw r5, 0x18(r3)
/* 80310FA4 0030DEE4 80 04 00 18 */ lwz r0, 0x18(r4)
/* 80310FA8 0030DEE8 90 03 00 1C */ stw r0, 0x1c(r3)
/* 80310FAC 0030DEEC 80 04 00 1C */ lwz r0, 0x1c(r4)
/* 80310FB0 0030DEF0 90 03 00 24 */ stw r0, 0x24(r3)
/* 80310FB4 0030DEF4 90 A3 00 20 */ stw r5, 0x20(r3)
/* 80310FB8 0030DEF8 90 A3 00 28 */ stw r5, 0x28(r3)
/* 80310FBC 0030DEFC 80 03 00 04 */ lwz r0, 4(r3)
/* 80310FC0 0030DF00 90 03 00 2C */ stw r0, 0x2c(r3)
/* 80310FC4 0030DF04 80 03 00 0C */ lwz r0, 0xc(r3)
/* 80310FC8 0030DF08 90 03 00 30 */ stw r0, 0x30(r3)
/* 80310FCC 0030DF0C 80 03 00 14 */ lwz r0, 0x14(r3)
/* 80310FD0 0030DF10 90 03 00 34 */ stw r0, 0x34(r3)
/* 80310FD4 0030DF14 4E 80 00 20 */ blr
.global J3DVertexBuffer_NS_init
J3DVertexBuffer_NS_init:
/* 80310FD8 0030DF18 38 00 00 00 */ li r0, 0
/* 80310FDC 0030DF1C 90 03 00 00 */ stw r0, 0(r3)
/* 80310FE0 0030DF20 90 03 00 08 */ stw r0, 8(r3)
/* 80310FE4 0030DF24 90 03 00 04 */ stw r0, 4(r3)
/* 80310FE8 0030DF28 90 03 00 10 */ stw r0, 0x10(r3)
/* 80310FEC 0030DF2C 90 03 00 0C */ stw r0, 0xc(r3)
/* 80310FF0 0030DF30 90 03 00 18 */ stw r0, 0x18(r3)
/* 80310FF4 0030DF34 90 03 00 14 */ stw r0, 0x14(r3)
/* 80310FF8 0030DF38 90 03 00 20 */ stw r0, 0x20(r3)
/* 80310FFC 0030DF3C 90 03 00 1C */ stw r0, 0x1c(r3)
/* 80311000 0030DF40 90 03 00 28 */ stw r0, 0x28(r3)
/* 80311004 0030DF44 90 03 00 24 */ stw r0, 0x24(r3)
/* 80311008 0030DF48 90 03 00 2C */ stw r0, 0x2c(r3)
/* 8031100C 0030DF4C 90 03 00 30 */ stw r0, 0x30(r3)
/* 80311010 0030DF50 90 03 00 34 */ stw r0, 0x34(r3)
/* 80311014 0030DF54 80 03 00 04 */ lwz r0, 4(r3)
/* 80311018 0030DF58 90 03 00 2C */ stw r0, 0x2c(r3)
/* 8031101C 0030DF5C 80 03 00 0C */ lwz r0, 0xc(r3)
/* 80311020 0030DF60 90 03 00 30 */ stw r0, 0x30(r3)
/* 80311024 0030DF64 80 03 00 14 */ lwz r0, 0x14(r3)
/* 80311028 0030DF68 90 03 00 34 */ stw r0, 0x34(r3)
/* 8031102C 0030DF6C 4E 80 00 20 */ blr
.global J3DVertexBuffer_NS_dtor
J3DVertexBuffer_NS_dtor:
/* 80311030 0030DF70 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 80311034 0030DF74 7C 08 02 A6 */ mflr r0
/* 80311038 0030DF78 90 01 00 14 */ stw r0, 0x14(r1)
/* 8031103C 0030DF7C 93 E1 00 0C */ stw r31, 0xc(r1)
/* 80311040 0030DF80 7C 7F 1B 79 */ or. r31, r3, r3
/* 80311044 0030DF84 41 82 00 10 */ beq lbl_80311054
/* 80311048 0030DF88 7C 80 07 35 */ extsh. r0, r4
/* 8031104C 0030DF8C 40 81 00 08 */ ble lbl_80311054
/* 80311050 0030DF90 4B FB DC ED */ bl __dl__FPv
lbl_80311054:
/* 80311054 0030DF94 7F E3 FB 78 */ mr r3, r31
/* 80311058 0030DF98 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 8031105C 0030DF9C 80 01 00 14 */ lwz r0, 0x14(r1)
/* 80311060 0030DFA0 7C 08 03 A6 */ mtlr r0
/* 80311064 0030DFA4 38 21 00 10 */ addi r1, r1, 0x10
/* 80311068 0030DFA8 4E 80 00 20 */ blr
.global J3DVertexBuffer_NS_setArray
J3DVertexBuffer_NS_setArray:
/* 8031106C 0030DFAC 80 03 00 2C */ lwz r0, 0x2c(r3)
/* 80311070 0030DFB0 3C 80 80 43 */ lis r4, lbl_80434AC8@ha
/* 80311074 0030DFB4 38 84 4A C8 */ addi r4, r4, lbl_80434AC8@l
/* 80311078 0030DFB8 90 04 01 0C */ stw r0, 0x10c(r4)
/* 8031107C 0030DFBC 80 03 00 30 */ lwz r0, 0x30(r3)
/* 80311080 0030DFC0 90 04 01 10 */ stw r0, 0x110(r4)
/* 80311084 0030DFC4 80 03 00 34 */ lwz r0, 0x34(r3)
/* 80311088 0030DFC8 90 04 01 14 */ stw r0, 0x114(r4)
/* 8031108C 0030DFCC 4E 80 00 20 */ blr
.global J3DVertexBuffer_NS_copyLocalVtxPosArray
J3DVertexBuffer_NS_copyLocalVtxPosArray:
/* 80311090 0030DFD0 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 80311094 0030DFD4 7C 08 02 A6 */ mflr r0
/* 80311098 0030DFD8 90 01 00 24 */ stw r0, 0x24(r1)
/* 8031109C 0030DFDC 39 61 00 20 */ addi r11, r1, 0x20
/* 803110A0 0030DFE0 48 05 11 39 */ bl _savegpr_28
/* 803110A4 0030DFE4 7C 7F 1B 78 */ mr r31, r3
/* 803110A8 0030DFE8 54 80 07 FF */ clrlwi. r0, r4, 0x1f
/* 803110AC 0030DFEC 41 82 00 78 */ beq lbl_80311124
/* 803110B0 0030DFF0 3B 80 00 00 */ li r28, 0
/* 803110B4 0030DFF4 3B C0 00 00 */ li r30, 0
lbl_803110B8:
/* 803110B8 0030DFF8 80 7F 00 00 */ lwz r3, 0(r31)
/* 803110BC 0030DFFC 80 03 00 00 */ lwz r0, 0(r3)
/* 803110C0 0030E000 1C 60 00 0C */ mulli r3, r0, 0xc
/* 803110C4 0030E004 38 80 00 20 */ li r4, 0x20
/* 803110C8 0030E008 4B FB DC 25 */ bl __nwa__FUli
/* 803110CC 0030E00C 3B BE 00 04 */ addi r29, r30, 4
/* 803110D0 0030E010 7C 7F E9 2E */ stwx r3, r31, r29
/* 803110D4 0030E014 7C 7F E8 2E */ lwzx r3, r31, r29
/* 803110D8 0030E018 28 03 00 00 */ cmplwi r3, 0
/* 803110DC 0030E01C 40 82 00 0C */ bne lbl_803110E8
/* 803110E0 0030E020 38 60 00 04 */ li r3, 4
/* 803110E4 0030E024 48 00 00 B4 */ b lbl_80311198
lbl_803110E8:
/* 803110E8 0030E028 80 9F 00 00 */ lwz r4, 0(r31)
/* 803110EC 0030E02C 80 04 00 00 */ lwz r0, 0(r4)
/* 803110F0 0030E030 80 84 00 18 */ lwz r4, 0x18(r4)
/* 803110F4 0030E034 1C A0 00 0C */ mulli r5, r0, 0xc
/* 803110F8 0030E038 4B CF 24 49 */ bl memcpy
/* 803110FC 0030E03C 80 7F 00 00 */ lwz r3, 0(r31)
/* 80311100 0030E040 80 03 00 00 */ lwz r0, 0(r3)
/* 80311104 0030E044 7C 7F E8 2E */ lwzx r3, r31, r29
/* 80311108 0030E048 1C 80 00 0C */ mulli r4, r0, 0xc
/* 8031110C 0030E04C 48 02 A4 D1 */ bl DCStoreRange
/* 80311110 0030E050 3B 9C 00 01 */ addi r28, r28, 1
/* 80311114 0030E054 2C 1C 00 02 */ cmpwi r28, 2
/* 80311118 0030E058 3B DE 00 04 */ addi r30, r30, 4
/* 8031111C 0030E05C 41 80 FF 9C */ blt lbl_803110B8
/* 80311120 0030E060 48 00 00 74 */ b lbl_80311194
lbl_80311124:
/* 80311124 0030E064 80 7F 00 00 */ lwz r3, 0(r31)
/* 80311128 0030E068 80 03 00 18 */ lwz r0, 0x18(r3)
/* 8031112C 0030E06C 90 1F 00 04 */ stw r0, 4(r31)
/* 80311130 0030E070 80 1F 00 08 */ lwz r0, 8(r31)
/* 80311134 0030E074 28 00 00 00 */ cmplwi r0, 0
/* 80311138 0030E078 40 82 00 30 */ bne lbl_80311168
/* 8031113C 0030E07C 80 7F 00 00 */ lwz r3, 0(r31)
/* 80311140 0030E080 80 03 00 00 */ lwz r0, 0(r3)
/* 80311144 0030E084 1C 60 00 0C */ mulli r3, r0, 0xc
/* 80311148 0030E088 38 80 00 20 */ li r4, 0x20
/* 8031114C 0030E08C 4B FB DB A1 */ bl __nwa__FUli
/* 80311150 0030E090 90 7F 00 08 */ stw r3, 8(r31)
/* 80311154 0030E094 80 1F 00 08 */ lwz r0, 8(r31)
/* 80311158 0030E098 28 00 00 00 */ cmplwi r0, 0
/* 8031115C 0030E09C 40 82 00 0C */ bne lbl_80311168
/* 80311160 0030E0A0 38 60 00 04 */ li r3, 4
/* 80311164 0030E0A4 48 00 00 34 */ b lbl_80311198
lbl_80311168:
/* 80311168 0030E0A8 80 7F 00 00 */ lwz r3, 0(r31)
/* 8031116C 0030E0AC 80 03 00 00 */ lwz r0, 0(r3)
/* 80311170 0030E0B0 80 83 00 18 */ lwz r4, 0x18(r3)
/* 80311174 0030E0B4 80 7F 00 08 */ lwz r3, 8(r31)
/* 80311178 0030E0B8 1C A0 00 0C */ mulli r5, r0, 0xc
/* 8031117C 0030E0BC 4B CF 23 C5 */ bl memcpy
/* 80311180 0030E0C0 80 7F 00 00 */ lwz r3, 0(r31)
/* 80311184 0030E0C4 80 03 00 00 */ lwz r0, 0(r3)
/* 80311188 0030E0C8 80 7F 00 08 */ lwz r3, 8(r31)
/* 8031118C 0030E0CC 1C 80 00 0C */ mulli r4, r0, 0xc
/* 80311190 0030E0D0 48 02 A4 4D */ bl DCStoreRange
lbl_80311194:
/* 80311194 0030E0D4 38 60 00 00 */ li r3, 0
lbl_80311198:
/* 80311198 0030E0D8 39 61 00 20 */ addi r11, r1, 0x20
/* 8031119C 0030E0DC 48 05 10 89 */ bl _restgpr_28
/* 803111A0 0030E0E0 80 01 00 24 */ lwz r0, 0x24(r1)
/* 803111A4 0030E0E4 7C 08 03 A6 */ mtlr r0
/* 803111A8 0030E0E8 38 21 00 20 */ addi r1, r1, 0x20
/* 803111AC 0030E0EC 4E 80 00 20 */ blr
.global J3DVertexBuffer_NS_copyLocalVtxNrmArray
J3DVertexBuffer_NS_copyLocalVtxNrmArray:
/* 803111B0 0030E0F0 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 803111B4 0030E0F4 7C 08 02 A6 */ mflr r0
/* 803111B8 0030E0F8 90 01 00 24 */ stw r0, 0x24(r1)
/* 803111BC 0030E0FC 39 61 00 20 */ addi r11, r1, 0x20
/* 803111C0 0030E100 48 05 10 19 */ bl _savegpr_28
/* 803111C4 0030E104 7C 7F 1B 78 */ mr r31, r3
/* 803111C8 0030E108 54 80 07 FF */ clrlwi. r0, r4, 0x1f
/* 803111CC 0030E10C 41 82 00 78 */ beq lbl_80311244
/* 803111D0 0030E110 3B 80 00 00 */ li r28, 0
/* 803111D4 0030E114 3B C0 00 00 */ li r30, 0
lbl_803111D8:
/* 803111D8 0030E118 80 7F 00 00 */ lwz r3, 0(r31)
/* 803111DC 0030E11C 80 03 00 04 */ lwz r0, 4(r3)
/* 803111E0 0030E120 1C 60 00 0C */ mulli r3, r0, 0xc
/* 803111E4 0030E124 38 80 00 20 */ li r4, 0x20
/* 803111E8 0030E128 4B FB DB 05 */ bl __nwa__FUli
/* 803111EC 0030E12C 3B BE 00 0C */ addi r29, r30, 0xc
/* 803111F0 0030E130 7C 7F E9 2E */ stwx r3, r31, r29
/* 803111F4 0030E134 7C 7F E8 2E */ lwzx r3, r31, r29
/* 803111F8 0030E138 28 03 00 00 */ cmplwi r3, 0
/* 803111FC 0030E13C 40 82 00 0C */ bne lbl_80311208
/* 80311200 0030E140 38 60 00 04 */ li r3, 4
/* 80311204 0030E144 48 00 00 B4 */ b lbl_803112B8
lbl_80311208:
/* 80311208 0030E148 80 9F 00 00 */ lwz r4, 0(r31)
/* 8031120C 0030E14C 80 04 00 04 */ lwz r0, 4(r4)
/* 80311210 0030E150 80 84 00 1C */ lwz r4, 0x1c(r4)
/* 80311214 0030E154 1C A0 00 0C */ mulli r5, r0, 0xc
/* 80311218 0030E158 4B CF 23 29 */ bl memcpy
/* 8031121C 0030E15C 80 7F 00 00 */ lwz r3, 0(r31)
/* 80311220 0030E160 80 03 00 04 */ lwz r0, 4(r3)
/* 80311224 0030E164 7C 7F E8 2E */ lwzx r3, r31, r29
/* 80311228 0030E168 1C 80 00 0C */ mulli r4, r0, 0xc
/* 8031122C 0030E16C 48 02 A3 B1 */ bl DCStoreRange
/* 80311230 0030E170 3B 9C 00 01 */ addi r28, r28, 1
/* 80311234 0030E174 2C 1C 00 02 */ cmpwi r28, 2
/* 80311238 0030E178 3B DE 00 04 */ addi r30, r30, 4
/* 8031123C 0030E17C 41 80 FF 9C */ blt lbl_803111D8
/* 80311240 0030E180 48 00 00 74 */ b lbl_803112B4
lbl_80311244:
/* 80311244 0030E184 80 7F 00 00 */ lwz r3, 0(r31)
/* 80311248 0030E188 80 03 00 1C */ lwz r0, 0x1c(r3)
/* 8031124C 0030E18C 90 1F 00 0C */ stw r0, 0xc(r31)
/* 80311250 0030E190 80 1F 00 10 */ lwz r0, 0x10(r31)
/* 80311254 0030E194 28 00 00 00 */ cmplwi r0, 0
/* 80311258 0030E198 40 82 00 30 */ bne lbl_80311288
/* 8031125C 0030E19C 80 7F 00 00 */ lwz r3, 0(r31)
/* 80311260 0030E1A0 80 03 00 04 */ lwz r0, 4(r3)
/* 80311264 0030E1A4 1C 60 00 0C */ mulli r3, r0, 0xc
/* 80311268 0030E1A8 38 80 00 20 */ li r4, 0x20
/* 8031126C 0030E1AC 4B FB DA 81 */ bl __nwa__FUli
/* 80311270 0030E1B0 90 7F 00 10 */ stw r3, 0x10(r31)
/* 80311274 0030E1B4 80 1F 00 10 */ lwz r0, 0x10(r31)
/* 80311278 0030E1B8 28 00 00 00 */ cmplwi r0, 0
/* 8031127C 0030E1BC 40 82 00 0C */ bne lbl_80311288
/* 80311280 0030E1C0 38 60 00 04 */ li r3, 4
/* 80311284 0030E1C4 48 00 00 34 */ b lbl_803112B8
lbl_80311288:
/* 80311288 0030E1C8 80 7F 00 00 */ lwz r3, 0(r31)
/* 8031128C 0030E1CC 80 03 00 04 */ lwz r0, 4(r3)
/* 80311290 0030E1D0 80 83 00 1C */ lwz r4, 0x1c(r3)
/* 80311294 0030E1D4 80 7F 00 10 */ lwz r3, 0x10(r31)
/* 80311298 0030E1D8 1C A0 00 0C */ mulli r5, r0, 0xc
/* 8031129C 0030E1DC 4B CF 22 A5 */ bl memcpy
/* 803112A0 0030E1E0 80 7F 00 00 */ lwz r3, 0(r31)
/* 803112A4 0030E1E4 80 03 00 04 */ lwz r0, 4(r3)
/* 803112A8 0030E1E8 80 7F 00 10 */ lwz r3, 0x10(r31)
/* 803112AC 0030E1EC 1C 80 00 0C */ mulli r4, r0, 0xc
/* 803112B0 0030E1F0 48 02 A3 2D */ bl DCStoreRange
lbl_803112B4:
/* 803112B4 0030E1F4 38 60 00 00 */ li r3, 0
lbl_803112B8:
/* 803112B8 0030E1F8 39 61 00 20 */ addi r11, r1, 0x20
/* 803112BC 0030E1FC 48 05 0F 69 */ bl _restgpr_28
/* 803112C0 0030E200 80 01 00 24 */ lwz r0, 0x24(r1)
/* 803112C4 0030E204 7C 08 03 A6 */ mtlr r0
/* 803112C8 0030E208 38 21 00 20 */ addi r1, r1, 0x20
/* 803112CC 0030E20C 4E 80 00 20 */ blr
.global J3DVertexBuffer_NS_copyLocalVtxArray
J3DVertexBuffer_NS_copyLocalVtxArray:
/* 803112D0 0030E210 94 21 FF C0 */ stwu r1, -0x40(r1)
/* 803112D4 0030E214 7C 08 02 A6 */ mflr r0
/* 803112D8 0030E218 90 01 00 44 */ stw r0, 0x44(r1)
/* 803112DC 0030E21C 39 61 00 40 */ addi r11, r1, 0x40
/* 803112E0 0030E220 48 05 0E E9 */ bl _savegpr_24
/* 803112E4 0030E224 7C 7E 1B 78 */ mr r30, r3
/* 803112E8 0030E228 7C 9F 23 78 */ mr r31, r4
/* 803112EC 0030E22C 38 60 00 00 */ li r3, 0
/* 803112F0 0030E230 38 81 00 10 */ addi r4, r1, 0x10
/* 803112F4 0030E234 38 00 00 02 */ li r0, 2
/* 803112F8 0030E238 7C 09 03 A6 */ mtctr r0
lbl_803112FC:
/* 803112FC 0030E23C 38 03 00 04 */ addi r0, r3, 4
/* 80311300 0030E240 7C 1E 00 2E */ lwzx r0, r30, r0
/* 80311304 0030E244 7C 04 19 2E */ stwx r0, r4, r3
/* 80311308 0030E248 38 63 00 04 */ addi r3, r3, 4
/* 8031130C 0030E24C 42 00 FF F0 */ bdnz lbl_803112FC
/* 80311310 0030E250 7F FB F8 F8 */ nor r27, r31, r31
/* 80311314 0030E254 57 60 07 BD */ rlwinm. r0, r27, 0, 0x1e, 0x1e
/* 80311318 0030E258 41 82 00 68 */ beq lbl_80311380
/* 8031131C 0030E25C 7F C3 F3 78 */ mr r3, r30
/* 80311320 0030E260 7F E4 FB 78 */ mr r4, r31
/* 80311324 0030E264 4B FF FD 6D */ bl J3DVertexBuffer_NS_copyLocalVtxPosArray
/* 80311328 0030E268 7C 7A 1B 79 */ or. r26, r3, r3
/* 8031132C 0030E26C 41 82 00 64 */ beq lbl_80311390
/* 80311330 0030E270 3B 20 00 00 */ li r25, 0
/* 80311334 0030E274 3B E0 00 00 */ li r31, 0
/* 80311338 0030E278 3B 81 00 10 */ addi r28, r1, 0x10
lbl_8031133C:
/* 8031133C 0030E27C 7F BC F8 2E */ lwzx r29, r28, r31
/* 80311340 0030E280 3B 7F 00 04 */ addi r27, r31, 4
/* 80311344 0030E284 7C 7E D8 2E */ lwzx r3, r30, r27
/* 80311348 0030E288 7C 1D 18 40 */ cmplw r29, r3
/* 8031134C 0030E28C 41 82 00 1C */ beq lbl_80311368
/* 80311350 0030E290 80 9E 00 00 */ lwz r4, 0(r30)
/* 80311354 0030E294 80 04 00 18 */ lwz r0, 0x18(r4)
/* 80311358 0030E298 7C 03 00 40 */ cmplw r3, r0
/* 8031135C 0030E29C 41 82 00 08 */ beq lbl_80311364
/* 80311360 0030E2A0 4B FB D9 DD */ bl __dl__FPv
lbl_80311364:
/* 80311364 0030E2A4 7F BE D9 2E */ stwx r29, r30, r27
lbl_80311368:
/* 80311368 0030E2A8 3B 39 00 01 */ addi r25, r25, 1
/* 8031136C 0030E2AC 2C 19 00 02 */ cmpwi r25, 2
/* 80311370 0030E2B0 3B FF 00 04 */ addi r31, r31, 4
/* 80311374 0030E2B4 41 80 FF C8 */ blt lbl_8031133C
/* 80311378 0030E2B8 7F 43 D3 78 */ mr r3, r26
/* 8031137C 0030E2BC 48 00 00 E4 */ b lbl_80311460
lbl_80311380:
/* 80311380 0030E2C0 80 7E 00 00 */ lwz r3, 0(r30)
/* 80311384 0030E2C4 80 03 00 18 */ lwz r0, 0x18(r3)
/* 80311388 0030E2C8 90 1E 00 08 */ stw r0, 8(r30)
/* 8031138C 0030E2CC 90 1E 00 04 */ stw r0, 4(r30)
lbl_80311390:
/* 80311390 0030E2D0 38 60 00 00 */ li r3, 0
/* 80311394 0030E2D4 38 81 00 08 */ addi r4, r1, 8
/* 80311398 0030E2D8 38 00 00 02 */ li r0, 2
/* 8031139C 0030E2DC 7C 09 03 A6 */ mtctr r0
lbl_803113A0:
/* 803113A0 0030E2E0 38 03 00 0C */ addi r0, r3, 0xc
/* 803113A4 0030E2E4 7C 1E 00 2E */ lwzx r0, r30, r0
/* 803113A8 0030E2E8 7C 04 19 2E */ stwx r0, r4, r3
/* 803113AC 0030E2EC 38 63 00 04 */ addi r3, r3, 4
/* 803113B0 0030E2F0 42 00 FF F0 */ bdnz lbl_803113A0
/* 803113B4 0030E2F4 57 60 07 7B */ rlwinm. r0, r27, 0, 0x1d, 0x1d
/* 803113B8 0030E2F8 41 82 00 94 */ beq lbl_8031144C
/* 803113BC 0030E2FC 7F C3 F3 78 */ mr r3, r30
/* 803113C0 0030E300 7F E4 FB 78 */ mr r4, r31
/* 803113C4 0030E304 4B FF FD ED */ bl J3DVertexBuffer_NS_copyLocalVtxNrmArray
/* 803113C8 0030E308 7C 79 1B 79 */ or. r25, r3, r3
/* 803113CC 0030E30C 41 82 00 90 */ beq lbl_8031145C
/* 803113D0 0030E310 3B 00 00 00 */ li r24, 0
/* 803113D4 0030E314 3B E0 00 00 */ li r31, 0
/* 803113D8 0030E318 3B 81 00 10 */ addi r28, r1, 0x10
/* 803113DC 0030E31C 3B A1 00 08 */ addi r29, r1, 8
lbl_803113E0:
/* 803113E0 0030E320 7F 7C F8 2E */ lwzx r27, r28, r31
/* 803113E4 0030E324 7F 5E FA 14 */ add r26, r30, r31
/* 803113E8 0030E328 80 7A 00 04 */ lwz r3, 4(r26)
/* 803113EC 0030E32C 7C 1B 18 40 */ cmplw r27, r3
/* 803113F0 0030E330 41 82 00 1C */ beq lbl_8031140C
/* 803113F4 0030E334 80 9E 00 00 */ lwz r4, 0(r30)
/* 803113F8 0030E338 80 04 00 18 */ lwz r0, 0x18(r4)
/* 803113FC 0030E33C 7C 03 00 40 */ cmplw r3, r0
/* 80311400 0030E340 41 82 00 08 */ beq lbl_80311408
/* 80311404 0030E344 4B FB D9 39 */ bl __dl__FPv
lbl_80311408:
/* 80311408 0030E348 93 7A 00 04 */ stw r27, 4(r26)
lbl_8031140C:
/* 8031140C 0030E34C 7F 7D F8 2E */ lwzx r27, r29, r31
/* 80311410 0030E350 80 7A 00 0C */ lwz r3, 0xc(r26)
/* 80311414 0030E354 7C 1B 18 40 */ cmplw r27, r3
/* 80311418 0030E358 41 82 00 1C */ beq lbl_80311434
/* 8031141C 0030E35C 80 9E 00 00 */ lwz r4, 0(r30)
/* 80311420 0030E360 80 04 00 1C */ lwz r0, 0x1c(r4)
/* 80311424 0030E364 7C 03 00 40 */ cmplw r3, r0
/* 80311428 0030E368 41 82 00 08 */ beq lbl_80311430
/* 8031142C 0030E36C 4B FB D9 11 */ bl __dl__FPv
lbl_80311430:
/* 80311430 0030E370 93 7A 00 0C */ stw r27, 0xc(r26)
lbl_80311434:
/* 80311434 0030E374 3B 18 00 01 */ addi r24, r24, 1
/* 80311438 0030E378 2C 18 00 02 */ cmpwi r24, 2
/* 8031143C 0030E37C 3B FF 00 04 */ addi r31, r31, 4
/* 80311440 0030E380 41 80 FF A0 */ blt lbl_803113E0
/* 80311444 0030E384 7F 23 CB 78 */ mr r3, r25
/* 80311448 0030E388 48 00 00 18 */ b lbl_80311460
lbl_8031144C:
/* 8031144C 0030E38C 80 7E 00 00 */ lwz r3, 0(r30)
/* 80311450 0030E390 80 03 00 1C */ lwz r0, 0x1c(r3)
/* 80311454 0030E394 90 1E 00 10 */ stw r0, 0x10(r30)
/* 80311458 0030E398 90 1E 00 0C */ stw r0, 0xc(r30)
lbl_8031145C:
/* 8031145C 0030E39C 38 60 00 00 */ li r3, 0
lbl_80311460:
/* 80311460 0030E3A0 39 61 00 40 */ addi r11, r1, 0x40
/* 80311464 0030E3A4 48 05 0D B1 */ bl _restgpr_24
/* 80311468 0030E3A8 80 01 00 44 */ lwz r0, 0x44(r1)
/* 8031146C 0030E3AC 7C 08 03 A6 */ mtlr r0
/* 80311470 0030E3B0 38 21 00 40 */ addi r1, r1, 0x40
/* 80311474 0030E3B4 4E 80 00 20 */ blr
.global J3DVertexBuffer_NS_allocTransformedVtxPosArray
J3DVertexBuffer_NS_allocTransformedVtxPosArray:
/* 80311478 0030E3B8 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 8031147C 0030E3BC 7C 08 02 A6 */ mflr r0
/* 80311480 0030E3C0 90 01 00 24 */ stw r0, 0x24(r1)
/* 80311484 0030E3C4 39 61 00 20 */ addi r11, r1, 0x20
/* 80311488 0030E3C8 48 05 0D 55 */ bl _savegpr_29
/* 8031148C 0030E3CC 7C 7D 1B 78 */ mr r29, r3
/* 80311490 0030E3D0 80 03 00 1C */ lwz r0, 0x1c(r3)
/* 80311494 0030E3D4 28 00 00 00 */ cmplwi r0, 0
/* 80311498 0030E3D8 41 82 00 18 */ beq lbl_803114B0
/* 8031149C 0030E3DC 80 1D 00 20 */ lwz r0, 0x20(r29)
/* 803114A0 0030E3E0 28 00 00 00 */ cmplwi r0, 0
/* 803114A4 0030E3E4 41 82 00 0C */ beq lbl_803114B0
/* 803114A8 0030E3E8 38 60 00 00 */ li r3, 0
/* 803114AC 0030E3EC 48 00 00 68 */ b lbl_80311514
lbl_803114B0:
/* 803114B0 0030E3F0 3B C0 00 00 */ li r30, 0
/* 803114B4 0030E3F4 3B E0 00 00 */ li r31, 0
lbl_803114B8:
/* 803114B8 0030E3F8 2C 1E 00 00 */ cmpwi r30, 0
/* 803114BC 0030E3FC 41 82 00 14 */ beq lbl_803114D0
/* 803114C0 0030E400 38 1F 00 1C */ addi r0, r31, 0x1c
/* 803114C4 0030E404 7C 1D 00 2E */ lwzx r0, r29, r0
/* 803114C8 0030E408 28 00 00 00 */ cmplwi r0, 0
/* 803114CC 0030E40C 40 82 00 34 */ bne lbl_80311500
lbl_803114D0:
/* 803114D0 0030E410 80 7D 00 00 */ lwz r3, 0(r29)
/* 803114D4 0030E414 80 03 00 00 */ lwz r0, 0(r3)
/* 803114D8 0030E418 1C 60 00 0C */ mulli r3, r0, 0xc
/* 803114DC 0030E41C 38 80 00 20 */ li r4, 0x20
/* 803114E0 0030E420 4B FB D8 0D */ bl __nwa__FUli
/* 803114E4 0030E424 38 1F 00 1C */ addi r0, r31, 0x1c
/* 803114E8 0030E428 7C 7D 01 2E */ stwx r3, r29, r0
/* 803114EC 0030E42C 7C 1D 00 2E */ lwzx r0, r29, r0
/* 803114F0 0030E430 28 00 00 00 */ cmplwi r0, 0
/* 803114F4 0030E434 40 82 00 0C */ bne lbl_80311500
/* 803114F8 0030E438 38 60 00 04 */ li r3, 4
/* 803114FC 0030E43C 48 00 00 18 */ b lbl_80311514
lbl_80311500:
/* 80311500 0030E440 3B DE 00 01 */ addi r30, r30, 1
/* 80311504 0030E444 2C 1E 00 02 */ cmpwi r30, 2
/* 80311508 0030E448 3B FF 00 04 */ addi r31, r31, 4
/* 8031150C 0030E44C 41 80 FF AC */ blt lbl_803114B8
/* 80311510 0030E450 38 60 00 00 */ li r3, 0
lbl_80311514:
/* 80311514 0030E454 39 61 00 20 */ addi r11, r1, 0x20
/* 80311518 0030E458 48 05 0D 11 */ bl _restgpr_29
/* 8031151C 0030E45C 80 01 00 24 */ lwz r0, 0x24(r1)
/* 80311520 0030E460 7C 08 03 A6 */ mtlr r0
/* 80311524 0030E464 38 21 00 20 */ addi r1, r1, 0x20
/* 80311528 0030E468 4E 80 00 20 */ blr
.global J3DVertexBuffer_NS_allocTransformedVtxNrmArray
J3DVertexBuffer_NS_allocTransformedVtxNrmArray:
/* 8031152C 0030E46C 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 80311530 0030E470 7C 08 02 A6 */ mflr r0
/* 80311534 0030E474 90 01 00 24 */ stw r0, 0x24(r1)
/* 80311538 0030E478 39 61 00 20 */ addi r11, r1, 0x20
/* 8031153C 0030E47C 48 05 0C A1 */ bl _savegpr_29
/* 80311540 0030E480 7C 7D 1B 78 */ mr r29, r3
/* 80311544 0030E484 80 03 00 24 */ lwz r0, 0x24(r3)
/* 80311548 0030E488 28 00 00 00 */ cmplwi r0, 0
/* 8031154C 0030E48C 41 82 00 18 */ beq lbl_80311564
/* 80311550 0030E490 80 1D 00 28 */ lwz r0, 0x28(r29)
/* 80311554 0030E494 28 00 00 00 */ cmplwi r0, 0
/* 80311558 0030E498 41 82 00 0C */ beq lbl_80311564
/* 8031155C 0030E49C 38 60 00 00 */ li r3, 0
/* 80311560 0030E4A0 48 00 00 68 */ b lbl_803115C8
lbl_80311564:
/* 80311564 0030E4A4 3B C0 00 00 */ li r30, 0
/* 80311568 0030E4A8 3B E0 00 00 */ li r31, 0
lbl_8031156C:
/* 8031156C 0030E4AC 2C 1E 00 00 */ cmpwi r30, 0
/* 80311570 0030E4B0 41 82 00 14 */ beq lbl_80311584
/* 80311574 0030E4B4 38 1F 00 24 */ addi r0, r31, 0x24
/* 80311578 0030E4B8 7C 1D 00 2E */ lwzx r0, r29, r0
/* 8031157C 0030E4BC 28 00 00 00 */ cmplwi r0, 0
/* 80311580 0030E4C0 40 82 00 34 */ bne lbl_803115B4
lbl_80311584:
/* 80311584 0030E4C4 80 7D 00 00 */ lwz r3, 0(r29)
/* 80311588 0030E4C8 80 03 00 04 */ lwz r0, 4(r3)
/* 8031158C 0030E4CC 1C 60 00 0C */ mulli r3, r0, 0xc
/* 80311590 0030E4D0 38 80 00 20 */ li r4, 0x20
/* 80311594 0030E4D4 4B FB D7 59 */ bl __nwa__FUli
/* 80311598 0030E4D8 38 1F 00 24 */ addi r0, r31, 0x24
/* 8031159C 0030E4DC 7C 7D 01 2E */ stwx r3, r29, r0
/* 803115A0 0030E4E0 7C 1D 00 2E */ lwzx r0, r29, r0
/* 803115A4 0030E4E4 28 00 00 00 */ cmplwi r0, 0
/* 803115A8 0030E4E8 40 82 00 0C */ bne lbl_803115B4
/* 803115AC 0030E4EC 38 60 00 04 */ li r3, 4
/* 803115B0 0030E4F0 48 00 00 18 */ b lbl_803115C8
lbl_803115B4:
/* 803115B4 0030E4F4 3B DE 00 01 */ addi r30, r30, 1
/* 803115B8 0030E4F8 2C 1E 00 02 */ cmpwi r30, 2
/* 803115BC 0030E4FC 3B FF 00 04 */ addi r31, r31, 4
/* 803115C0 0030E500 41 80 FF AC */ blt lbl_8031156C
/* 803115C4 0030E504 38 60 00 00 */ li r3, 0
lbl_803115C8:
/* 803115C8 0030E508 39 61 00 20 */ addi r11, r1, 0x20
/* 803115CC 0030E50C 48 05 0C 5D */ bl _restgpr_29
/* 803115D0 0030E510 80 01 00 24 */ lwz r0, 0x24(r1)
/* 803115D4 0030E514 7C 08 03 A6 */ mtlr r0
/* 803115D8 0030E518 38 21 00 20 */ addi r1, r1, 0x20
/* 803115DC 0030E51C 4E 80 00 20 */ blr
.global J3DDrawMtxData
J3DDrawMtxData:
/* 803115E0 0030E520 38 00 00 00 */ li r0, 0
/* 803115E4 0030E524 B0 03 00 00 */ sth r0, 0(r3)
/* 803115E8 0030E528 90 03 00 04 */ stw r0, 4(r3)
/* 803115EC 0030E52C 90 03 00 08 */ stw r0, 8(r3)
/* 803115F0 0030E530 4E 80 00 20 */ blr
.global J3DDrawMtxData_NS_dtor
J3DDrawMtxData_NS_dtor:
/* 803115F4 0030E534 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 803115F8 0030E538 7C 08 02 A6 */ mflr r0
/* 803115FC 0030E53C 90 01 00 14 */ stw r0, 0x14(r1)
/* 80311600 0030E540 93 E1 00 0C */ stw r31, 0xc(r1)
/* 80311604 0030E544 7C 7F 1B 79 */ or. r31, r3, r3
/* 80311608 0030E548 41 82 00 10 */ beq lbl_80311618
/* 8031160C 0030E54C 7C 80 07 35 */ extsh. r0, r4
/* 80311610 0030E550 40 81 00 08 */ ble lbl_80311618
/* 80311614 0030E554 4B FB D7 29 */ bl __dl__FPv
lbl_80311618:
/* 80311618 0030E558 7F E3 FB 78 */ mr r3, r31
/* 8031161C 0030E55C 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 80311620 0030E560 80 01 00 14 */ lwz r0, 0x14(r1)
/* 80311624 0030E564 7C 08 03 A6 */ mtlr r0
/* 80311628 0030E568 38 21 00 10 */ addi r1, r1, 0x10
/* 8031162C 0030E56C 4E 80 00 20 */ blr