tp/asm/J3DGraphLoader/J3DShapeFactory.s

592 lines
28 KiB
ArmAsm

.include "macros.inc"
.section .text, "ax" # 80337350
.global J3DShapeFactory
J3DShapeFactory:
/* 80337350 00334290 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 80337354 00334294 7C 08 02 A6 */ mflr r0
/* 80337358 00334298 90 01 00 14 */ stw r0, 0x14(r1)
/* 8033735C 0033429C 93 E1 00 0C */ stw r31, 0xc(r1)
/* 80337360 003342A0 93 C1 00 08 */ stw r30, 8(r1)
/* 80337364 003342A4 7C 7E 1B 78 */ mr r30, r3
/* 80337368 003342A8 7C 9F 23 78 */ mr r31, r4
/* 8033736C 003342AC 7F E3 FB 78 */ mr r3, r31
/* 80337370 003342B0 80 84 00 0C */ lwz r4, 0xc(r4)
/* 80337374 003342B4 4B FF F3 F1 */ bl JSUConvertOffsetToPtr_X71_
/* 80337378 003342B8 90 7E 00 00 */ stw r3, 0(r30)
/* 8033737C 003342BC 7F E3 FB 78 */ mr r3, r31
/* 80337380 003342C0 80 9F 00 10 */ lwz r4, 0x10(r31)
/* 80337384 003342C4 4B FF F3 F9 */ bl JSUConvertOffsetToPtr_X72_
/* 80337388 003342C8 90 7E 00 04 */ stw r3, 4(r30)
/* 8033738C 003342CC 7F E3 FB 78 */ mr r3, r31
/* 80337390 003342D0 80 9F 00 18 */ lwz r4, 0x18(r31)
/* 80337394 003342D4 48 00 07 95 */ bl JSUConvertOffsetToPtr_X77_
/* 80337398 003342D8 90 7E 00 08 */ stw r3, 8(r30)
/* 8033739C 003342DC 7F E3 FB 78 */ mr r3, r31
/* 803373A0 003342E0 80 9F 00 1C */ lwz r4, 0x1c(r31)
/* 803373A4 003342E4 4B FF F3 D9 */ bl JSUConvertOffsetToPtr_X72_
/* 803373A8 003342E8 90 7E 00 0C */ stw r3, 0xc(r30)
/* 803373AC 003342EC 7F E3 FB 78 */ mr r3, r31
/* 803373B0 003342F0 80 9F 00 20 */ lwz r4, 0x20(r31)
/* 803373B4 003342F4 48 00 07 5D */ bl JSUConvertOffsetToPtr_X76_
/* 803373B8 003342F8 90 7E 00 10 */ stw r3, 0x10(r30)
/* 803373BC 003342FC 7F E3 FB 78 */ mr r3, r31
/* 803373C0 00334300 80 9F 00 24 */ lwz r4, 0x24(r31)
/* 803373C4 00334304 48 00 07 35 */ bl JSUConvertOffsetToPtr_X75_
/* 803373C8 00334308 90 7E 00 14 */ stw r3, 0x14(r30)
/* 803373CC 0033430C 7F E3 FB 78 */ mr r3, r31
/* 803373D0 00334310 80 9F 00 28 */ lwz r4, 0x28(r31)
/* 803373D4 00334314 48 00 07 0D */ bl JSUConvertOffsetToPtr_X74_
/* 803373D8 00334318 90 7E 00 18 */ stw r3, 0x18(r30)
/* 803373DC 0033431C 38 00 00 00 */ li r0, 0
/* 803373E0 00334320 90 1E 00 1C */ stw r0, 0x1c(r30)
/* 803373E4 00334324 7F C3 F3 78 */ mr r3, r30
/* 803373E8 00334328 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 803373EC 0033432C 83 C1 00 08 */ lwz r30, 8(r1)
/* 803373F0 00334330 80 01 00 14 */ lwz r0, 0x14(r1)
/* 803373F4 00334334 7C 08 03 A6 */ mtlr r0
/* 803373F8 00334338 38 21 00 10 */ addi r1, r1, 0x10
/* 803373FC 0033433C 4E 80 00 20 */ blr
.global J3DShapeFactory_NS_create
J3DShapeFactory_NS_create:
/* 80337400 00334340 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 80337404 00334344 7C 08 02 A6 */ mflr r0
/* 80337408 00334348 90 01 00 24 */ stw r0, 0x24(r1)
/* 8033740C 0033434C 39 61 00 20 */ addi r11, r1, 0x20
/* 80337410 00334350 48 02 AD C1 */ bl _savegpr_26
/* 80337414 00334354 7C 7B 1B 78 */ mr r27, r3
/* 80337418 00334358 7C 9C 23 78 */ mr r28, r4
/* 8033741C 0033435C 7C BD 2B 78 */ mr r29, r5
/* 80337420 00334360 38 60 00 68 */ li r3, 0x68
/* 80337424 00334364 4B F9 78 29 */ bl __nw__FUl
/* 80337428 00334368 7C 7F 1B 79 */ or. r31, r3, r3
/* 8033742C 0033436C 41 82 00 2C */ beq lbl_80337458
/* 80337430 00334370 3C 80 80 3D */ lis r4, lbl_803CDC78@ha
/* 80337434 00334374 38 04 DC 78 */ addi r0, r4, lbl_803CDC78@l
/* 80337438 00334378 90 1F 00 00 */ stw r0, 0(r31)
/* 8033743C 0033437C 3C 80 3C F4 */ lis r4, 0x3CF3CF00@ha
/* 80337440 00334380 38 04 CF 00 */ addi r0, r4, 0x3CF3CF00@l
/* 80337444 00334384 90 1F 00 40 */ stw r0, 0x40(r31)
/* 80337448 00334388 3C 80 00 F4 */ lis r4, 0x00F3CF3C@ha
/* 8033744C 0033438C 38 04 CF 3C */ addi r0, r4, 0x00F3CF3C@l
/* 80337450 00334390 90 1F 00 44 */ stw r0, 0x44(r31)
/* 80337454 00334394 4B FD D6 F5 */ bl J3DShape_NS_initialize
lbl_80337458:
/* 80337458 00334398 80 9B 00 00 */ lwz r4, 0(r27)
/* 8033745C 0033439C 80 7B 00 04 */ lwz r3, 4(r27)
/* 80337460 003343A0 57 9E 08 3C */ slwi r30, r28, 1
/* 80337464 003343A4 7C 03 F2 2E */ lhzx r0, r3, r30
/* 80337468 003343A8 1C 00 00 28 */ mulli r0, r0, 0x28
/* 8033746C 003343AC 7C 64 02 14 */ add r3, r4, r0
/* 80337470 003343B0 A0 03 00 02 */ lhz r0, 2(r3)
/* 80337474 003343B4 B0 1F 00 0A */ sth r0, 0xa(r31)
/* 80337478 003343B8 80 9B 00 00 */ lwz r4, 0(r27)
/* 8033747C 003343BC 80 7B 00 04 */ lwz r3, 4(r27)
/* 80337480 003343C0 7C 03 F2 2E */ lhzx r0, r3, r30
/* 80337484 003343C4 1C 00 00 28 */ mulli r0, r0, 0x28
/* 80337488 003343C8 7C 64 02 14 */ add r3, r4, r0
/* 8033748C 003343CC C0 03 00 0C */ lfs f0, 0xc(r3)
/* 80337490 003343D0 D0 1F 00 10 */ stfs f0, 0x10(r31)
/* 80337494 003343D4 80 BB 00 08 */ lwz r5, 8(r27)
/* 80337498 003343D8 80 9B 00 00 */ lwz r4, 0(r27)
/* 8033749C 003343DC 80 7B 00 04 */ lwz r3, 4(r27)
/* 803374A0 003343E0 7C 03 F2 2E */ lhzx r0, r3, r30
/* 803374A4 003343E4 1C 00 00 28 */ mulli r0, r0, 0x28
/* 803374A8 003343E8 7C 64 02 14 */ add r3, r4, r0
/* 803374AC 003343EC A0 03 00 04 */ lhz r0, 4(r3)
/* 803374B0 003343F0 7C 05 02 14 */ add r0, r5, r0
/* 803374B4 003343F4 90 1F 00 30 */ stw r0, 0x30(r31)
/* 803374B8 003343F8 A0 1F 00 0A */ lhz r0, 0xa(r31)
/* 803374BC 003343FC 54 03 10 3A */ slwi r3, r0, 2
/* 803374C0 00334400 4B F9 78 05 */ bl __nwa__FUl
/* 803374C4 00334404 90 7F 00 38 */ stw r3, 0x38(r31)
/* 803374C8 00334408 A0 1F 00 0A */ lhz r0, 0xa(r31)
/* 803374CC 0033440C 54 03 10 3A */ slwi r3, r0, 2
/* 803374D0 00334410 4B F9 77 F5 */ bl __nwa__FUl
/* 803374D4 00334414 90 7F 00 3C */ stw r3, 0x3c(r31)
/* 803374D8 00334418 80 9B 00 00 */ lwz r4, 0(r27)
/* 803374DC 0033441C 80 7B 00 04 */ lwz r3, 4(r27)
/* 803374E0 00334420 7C 03 F2 2E */ lhzx r0, r3, r30
/* 803374E4 00334424 1C 60 00 28 */ mulli r3, r0, 0x28
/* 803374E8 00334428 38 63 00 10 */ addi r3, r3, 0x10
/* 803374EC 0033442C 7C 64 1A 14 */ add r3, r4, r3
/* 803374F0 00334430 C0 03 00 00 */ lfs f0, 0(r3)
/* 803374F4 00334434 D0 1F 00 14 */ stfs f0, 0x14(r31)
/* 803374F8 00334438 C0 03 00 04 */ lfs f0, 4(r3)
/* 803374FC 0033443C D0 1F 00 18 */ stfs f0, 0x18(r31)
/* 80337500 00334440 C0 03 00 08 */ lfs f0, 8(r3)
/* 80337504 00334444 D0 1F 00 1C */ stfs f0, 0x1c(r31)
/* 80337508 00334448 80 9B 00 00 */ lwz r4, 0(r27)
/* 8033750C 0033444C 80 7B 00 04 */ lwz r3, 4(r27)
/* 80337510 00334450 7C 03 F2 2E */ lhzx r0, r3, r30
/* 80337514 00334454 1C 60 00 28 */ mulli r3, r0, 0x28
/* 80337518 00334458 38 63 00 1C */ addi r3, r3, 0x1c
/* 8033751C 0033445C 7C 64 1A 14 */ add r3, r4, r3
/* 80337520 00334460 C0 03 00 00 */ lfs f0, 0(r3)
/* 80337524 00334464 D0 1F 00 20 */ stfs f0, 0x20(r31)
/* 80337528 00334468 C0 03 00 04 */ lfs f0, 4(r3)
/* 8033752C 0033446C D0 1F 00 24 */ stfs f0, 0x24(r31)
/* 80337530 00334470 C0 03 00 08 */ lfs f0, 8(r3)
/* 80337534 00334474 D0 1F 00 28 */ stfs f0, 0x28(r31)
/* 80337538 00334478 80 7B 00 1C */ lwz r3, 0x1c(r27)
/* 8033753C 0033447C 1C 1C 00 C0 */ mulli r0, r28, 0xc0
/* 80337540 00334480 7C 03 02 14 */ add r0, r3, r0
/* 80337544 00334484 90 1F 00 2C */ stw r0, 0x2c(r31)
/* 80337548 00334488 3B 40 00 00 */ li r26, 0
/* 8033754C 0033448C 3B C0 00 00 */ li r30, 0
/* 80337550 00334490 48 00 00 40 */ b lbl_80337590
lbl_80337554:
/* 80337554 00334494 7F 63 DB 78 */ mr r3, r27
/* 80337558 00334498 7F A4 EB 78 */ mr r4, r29
/* 8033755C 0033449C 7F 85 E3 78 */ mr r5, r28
/* 80337560 003344A0 7F 46 D3 78 */ mr r6, r26
/* 80337564 003344A4 48 00 00 59 */ bl J3DShapeFactory_NS_newShapeMtx
/* 80337568 003344A8 80 9F 00 38 */ lwz r4, 0x38(r31)
/* 8033756C 003344AC 7C 64 F1 2E */ stwx r3, r4, r30
/* 80337570 003344B0 7F 63 DB 78 */ mr r3, r27
/* 80337574 003344B4 7F 84 E3 78 */ mr r4, r28
/* 80337578 003344B8 7F 45 D3 78 */ mr r5, r26
/* 8033757C 003344BC 48 00 02 D1 */ bl J3DShapeFactory_NS_newShapeDraw
/* 80337580 003344C0 80 9F 00 3C */ lwz r4, 0x3c(r31)
/* 80337584 003344C4 7C 64 F1 2E */ stwx r3, r4, r30
/* 80337588 003344C8 3B 5A 00 01 */ addi r26, r26, 1
/* 8033758C 003344CC 3B DE 00 04 */ addi r30, r30, 4
lbl_80337590:
/* 80337590 003344D0 A0 1F 00 0A */ lhz r0, 0xa(r31)
/* 80337594 003344D4 7C 1A 00 00 */ cmpw r26, r0
/* 80337598 003344D8 41 80 FF BC */ blt lbl_80337554
/* 8033759C 003344DC B3 9F 00 08 */ sth r28, 8(r31)
/* 803375A0 003344E0 7F E3 FB 78 */ mr r3, r31
/* 803375A4 003344E4 39 61 00 20 */ addi r11, r1, 0x20
/* 803375A8 003344E8 48 02 AC 75 */ bl _restgpr_26
/* 803375AC 003344EC 80 01 00 24 */ lwz r0, 0x24(r1)
/* 803375B0 003344F0 7C 08 03 A6 */ mtlr r0
/* 803375B4 003344F4 38 21 00 20 */ addi r1, r1, 0x20
/* 803375B8 003344F8 4E 80 00 20 */ blr
.global J3DShapeFactory_NS_newShapeMtx
J3DShapeFactory_NS_newShapeMtx:
/* 803375BC 003344FC 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 803375C0 00334500 7C 08 02 A6 */ mflr r0
/* 803375C4 00334504 90 01 00 24 */ stw r0, 0x24(r1)
/* 803375C8 00334508 39 61 00 20 */ addi r11, r1, 0x20
/* 803375CC 0033450C 48 02 AC 11 */ bl _savegpr_29
/* 803375D0 00334510 7C 7D 1B 78 */ mr r29, r3
/* 803375D4 00334514 3B E0 00 00 */ li r31, 0
/* 803375D8 00334518 80 E3 00 00 */ lwz r7, 0(r3)
/* 803375DC 0033451C 80 63 00 04 */ lwz r3, 4(r3)
/* 803375E0 00334520 54 A0 08 3C */ slwi r0, r5, 1
/* 803375E4 00334524 7C 03 02 2E */ lhzx r0, r3, r0
/* 803375E8 00334528 1C 00 00 28 */ mulli r0, r0, 0x28
/* 803375EC 0033452C 7C E7 02 14 */ add r7, r7, r0
/* 803375F0 00334530 80 BD 00 14 */ lwz r5, 0x14(r29)
/* 803375F4 00334534 A0 07 00 06 */ lhz r0, 6(r7)
/* 803375F8 00334538 54 03 18 38 */ slwi r3, r0, 3
/* 803375FC 0033453C 54 C0 18 38 */ slwi r0, r6, 3
/* 80337600 00334540 7F C3 02 14 */ add r30, r3, r0
/* 80337604 00334544 7F C5 F2 14 */ add r30, r5, r30
/* 80337608 00334548 54 80 06 F6 */ rlwinm r0, r4, 0, 0x1b, 0x1b
/* 8033760C 0033454C 2C 00 00 10 */ cmpwi r0, 0x10
/* 80337610 00334550 41 82 00 14 */ beq lbl_80337624
/* 80337614 00334554 40 80 01 70 */ bge lbl_80337784
/* 80337618 00334558 2C 00 00 00 */ cmpwi r0, 0
/* 8033761C 0033455C 41 82 01 68 */ beq lbl_80337784
/* 80337620 00334560 48 00 01 64 */ b lbl_80337784
lbl_80337624:
/* 80337624 00334564 88 07 00 00 */ lbz r0, 0(r7)
/* 80337628 00334568 2C 00 00 02 */ cmpwi r0, 2
/* 8033762C 0033456C 41 82 00 A0 */ beq lbl_803376CC
/* 80337630 00334570 40 80 00 14 */ bge lbl_80337644
/* 80337634 00334574 2C 00 00 00 */ cmpwi r0, 0
/* 80337638 00334578 41 82 00 18 */ beq lbl_80337650
/* 8033763C 0033457C 40 80 00 4C */ bge lbl_80337688
/* 80337640 00334580 48 00 01 30 */ b lbl_80337770
lbl_80337644:
/* 80337644 00334584 2C 00 00 04 */ cmpwi r0, 4
/* 80337648 00334588 40 80 01 28 */ bge lbl_80337770
/* 8033764C 0033458C 48 00 00 C4 */ b lbl_80337710
lbl_80337650:
/* 80337650 00334590 38 60 00 08 */ li r3, 8
/* 80337654 00334594 4B F9 75 F9 */ bl __nw__FUl
/* 80337658 00334598 28 03 00 00 */ cmplwi r3, 0
/* 8033765C 0033459C 41 82 00 24 */ beq lbl_80337680
/* 80337660 003345A0 A0 BE 00 00 */ lhz r5, 0(r30)
/* 80337664 003345A4 3C 80 80 3D */ lis r4, lbl_803CDC44@ha
/* 80337668 003345A8 38 04 DC 44 */ addi r0, r4, lbl_803CDC44@l
/* 8033766C 003345AC 90 03 00 00 */ stw r0, 0(r3)
/* 80337670 003345B0 B0 A3 00 04 */ sth r5, 4(r3)
/* 80337674 003345B4 3C 80 80 3D */ lis r4, lbl_803CDC1C@ha
/* 80337678 003345B8 38 04 DC 1C */ addi r0, r4, lbl_803CDC1C@l
/* 8033767C 003345BC 90 03 00 00 */ stw r0, 0(r3)
lbl_80337680:
/* 80337680 003345C0 7C 7F 1B 78 */ mr r31, r3
/* 80337684 003345C4 48 00 01 AC */ b lbl_80337830
lbl_80337688:
/* 80337688 003345C8 38 60 00 08 */ li r3, 8
/* 8033768C 003345CC 4B F9 75 C1 */ bl __nw__FUl
/* 80337690 003345D0 28 03 00 00 */ cmplwi r3, 0
/* 80337694 003345D4 41 82 00 30 */ beq lbl_803376C4
/* 80337698 003345D8 A0 BE 00 00 */ lhz r5, 0(r30)
/* 8033769C 003345DC 3C 80 80 3D */ lis r4, lbl_803CDC44@ha
/* 803376A0 003345E0 38 04 DC 44 */ addi r0, r4, lbl_803CDC44@l
/* 803376A4 003345E4 90 03 00 00 */ stw r0, 0(r3)
/* 803376A8 003345E8 B0 A3 00 04 */ sth r5, 4(r3)
/* 803376AC 003345EC 3C 80 80 3D */ lis r4, lbl_803CDC1C@ha
/* 803376B0 003345F0 38 04 DC 1C */ addi r0, r4, lbl_803CDC1C@l
/* 803376B4 003345F4 90 03 00 00 */ stw r0, 0(r3)
/* 803376B8 003345F8 3C 80 80 3D */ lis r4, lbl_803CDBAC@ha
/* 803376BC 003345FC 38 04 DB AC */ addi r0, r4, lbl_803CDBAC@l
/* 803376C0 00334600 90 03 00 00 */ stw r0, 0(r3)
lbl_803376C4:
/* 803376C4 00334604 7C 7F 1B 78 */ mr r31, r3
/* 803376C8 00334608 48 00 01 68 */ b lbl_80337830
lbl_803376CC:
/* 803376CC 0033460C 38 60 00 08 */ li r3, 8
/* 803376D0 00334610 4B F9 75 7D */ bl __nw__FUl
/* 803376D4 00334614 28 03 00 00 */ cmplwi r3, 0
/* 803376D8 00334618 41 82 00 30 */ beq lbl_80337708
/* 803376DC 0033461C A0 BE 00 00 */ lhz r5, 0(r30)
/* 803376E0 00334620 3C 80 80 3D */ lis r4, lbl_803CDC44@ha
/* 803376E4 00334624 38 04 DC 44 */ addi r0, r4, lbl_803CDC44@l
/* 803376E8 00334628 90 03 00 00 */ stw r0, 0(r3)
/* 803376EC 0033462C B0 A3 00 04 */ sth r5, 4(r3)
/* 803376F0 00334630 3C 80 80 3D */ lis r4, lbl_803CDC1C@ha
/* 803376F4 00334634 38 04 DC 1C */ addi r0, r4, lbl_803CDC1C@l
/* 803376F8 00334638 90 03 00 00 */ stw r0, 0(r3)
/* 803376FC 0033463C 3C 80 80 3D */ lis r4, lbl_803CDB84@ha
/* 80337700 00334640 38 04 DB 84 */ addi r0, r4, lbl_803CDB84@l
/* 80337704 00334644 90 03 00 00 */ stw r0, 0(r3)
lbl_80337708:
/* 80337708 00334648 7C 7F 1B 78 */ mr r31, r3
/* 8033770C 0033464C 48 00 01 24 */ b lbl_80337830
lbl_80337710:
/* 80337710 00334650 38 60 00 10 */ li r3, 0x10
/* 80337714 00334654 4B F9 75 39 */ bl __nw__FUl
/* 80337718 00334658 28 03 00 00 */ cmplwi r3, 0
/* 8033771C 0033465C 41 82 00 4C */ beq lbl_80337768
/* 80337720 00334660 80 9D 00 0C */ lwz r4, 0xc(r29)
/* 80337724 00334664 80 1E 00 04 */ lwz r0, 4(r30)
/* 80337728 00334668 54 00 08 3C */ slwi r0, r0, 1
/* 8033772C 0033466C 7C E4 02 14 */ add r7, r4, r0
/* 80337730 00334670 A0 DE 00 02 */ lhz r6, 2(r30)
/* 80337734 00334674 A0 BE 00 00 */ lhz r5, 0(r30)
/* 80337738 00334678 3C 80 80 3D */ lis r4, lbl_803CDC44@ha
/* 8033773C 0033467C 38 04 DC 44 */ addi r0, r4, lbl_803CDC44@l
/* 80337740 00334680 90 03 00 00 */ stw r0, 0(r3)
/* 80337744 00334684 B0 A3 00 04 */ sth r5, 4(r3)
/* 80337748 00334688 3C 80 80 3D */ lis r4, lbl_803CDC1C@ha
/* 8033774C 0033468C 38 04 DC 1C */ addi r0, r4, lbl_803CDC1C@l
/* 80337750 00334690 90 03 00 00 */ stw r0, 0(r3)
/* 80337754 00334694 3C 80 80 3D */ lis r4, lbl_803CDBD4@ha
/* 80337758 00334698 38 04 DB D4 */ addi r0, r4, lbl_803CDBD4@l
/* 8033775C 0033469C 90 03 00 00 */ stw r0, 0(r3)
/* 80337760 003346A0 B0 C3 00 08 */ sth r6, 8(r3)
/* 80337764 003346A4 90 E3 00 0C */ stw r7, 0xc(r3)
lbl_80337768:
/* 80337768 003346A8 7C 7F 1B 78 */ mr r31, r3
/* 8033776C 003346AC 48 00 00 C4 */ b lbl_80337830
lbl_80337770:
/* 80337770 003346B0 3C 60 80 3A */ lis r3, lbl_803A2100@ha
/* 80337774 003346B4 38 63 21 00 */ addi r3, r3, lbl_803A2100@l
/* 80337778 003346B8 4C C6 31 82 */ crclr 6
/* 8033777C 003346BC 4B CC F3 41 */ bl OSReport
/* 80337780 003346C0 48 00 00 B0 */ b lbl_80337830
lbl_80337784:
/* 80337784 003346C4 88 07 00 00 */ lbz r0, 0(r7)
/* 80337788 003346C8 2C 00 00 03 */ cmpwi r0, 3
/* 8033778C 003346CC 41 82 00 40 */ beq lbl_803377CC
/* 80337790 003346D0 40 80 00 90 */ bge lbl_80337820
/* 80337794 003346D4 2C 00 00 00 */ cmpwi r0, 0
/* 80337798 003346D8 40 80 00 08 */ bge lbl_803377A0
/* 8033779C 003346DC 48 00 00 84 */ b lbl_80337820
lbl_803377A0:
/* 803377A0 003346E0 38 60 00 08 */ li r3, 8
/* 803377A4 003346E4 4B F9 74 A9 */ bl __nw__FUl
/* 803377A8 003346E8 28 03 00 00 */ cmplwi r3, 0
/* 803377AC 003346EC 41 82 00 18 */ beq lbl_803377C4
/* 803377B0 003346F0 A0 BE 00 00 */ lhz r5, 0(r30)
/* 803377B4 003346F4 3C 80 80 3D */ lis r4, lbl_803CDC44@ha
/* 803377B8 003346F8 38 04 DC 44 */ addi r0, r4, lbl_803CDC44@l
/* 803377BC 003346FC 90 03 00 00 */ stw r0, 0(r3)
/* 803377C0 00334700 B0 A3 00 04 */ sth r5, 4(r3)
lbl_803377C4:
/* 803377C4 00334704 7C 7F 1B 78 */ mr r31, r3
/* 803377C8 00334708 48 00 00 68 */ b lbl_80337830
lbl_803377CC:
/* 803377CC 0033470C 38 60 00 10 */ li r3, 0x10
/* 803377D0 00334710 4B F9 74 7D */ bl __nw__FUl
/* 803377D4 00334714 28 03 00 00 */ cmplwi r3, 0
/* 803377D8 00334718 41 82 00 40 */ beq lbl_80337818
/* 803377DC 0033471C 80 9D 00 0C */ lwz r4, 0xc(r29)
/* 803377E0 00334720 80 1E 00 04 */ lwz r0, 4(r30)
/* 803377E4 00334724 54 00 08 3C */ slwi r0, r0, 1
/* 803377E8 00334728 7C E4 02 14 */ add r7, r4, r0
/* 803377EC 0033472C A0 DE 00 02 */ lhz r6, 2(r30)
/* 803377F0 00334730 A0 BE 00 00 */ lhz r5, 0(r30)
/* 803377F4 00334734 3C 80 80 3D */ lis r4, lbl_803CDC44@ha
/* 803377F8 00334738 38 04 DC 44 */ addi r0, r4, lbl_803CDC44@l
/* 803377FC 0033473C 90 03 00 00 */ stw r0, 0(r3)
/* 80337800 00334740 B0 A3 00 04 */ sth r5, 4(r3)
/* 80337804 00334744 3C 80 80 3D */ lis r4, lbl_803CDBFC@ha
/* 80337808 00334748 38 04 DB FC */ addi r0, r4, lbl_803CDBFC@l
/* 8033780C 0033474C 90 03 00 00 */ stw r0, 0(r3)
/* 80337810 00334750 B0 C3 00 08 */ sth r6, 8(r3)
/* 80337814 00334754 90 E3 00 0C */ stw r7, 0xc(r3)
lbl_80337818:
/* 80337818 00334758 7C 7F 1B 78 */ mr r31, r3
/* 8033781C 0033475C 48 00 00 14 */ b lbl_80337830
lbl_80337820:
/* 80337820 00334760 3C 60 80 3A */ lis r3, lbl_803A2100@ha
/* 80337824 00334764 38 63 21 00 */ addi r3, r3, lbl_803A2100@l
/* 80337828 00334768 4C C6 31 82 */ crclr 6
/* 8033782C 0033476C 4B CC F2 91 */ bl OSReport
lbl_80337830:
/* 80337830 00334770 7F E3 FB 78 */ mr r3, r31
/* 80337834 00334774 39 61 00 20 */ addi r11, r1, 0x20
/* 80337838 00334778 48 02 A9 F1 */ bl _restgpr_29
/* 8033783C 0033477C 80 01 00 24 */ lwz r0, 0x24(r1)
/* 80337840 00334780 7C 08 03 A6 */ mtlr r0
/* 80337844 00334784 38 21 00 20 */ addi r1, r1, 0x20
/* 80337848 00334788 4E 80 00 20 */ blr
.global J3DShapeFactory_NS_newShapeDraw
J3DShapeFactory_NS_newShapeDraw:
/* 8033784C 0033478C 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 80337850 00334790 7C 08 02 A6 */ mflr r0
/* 80337854 00334794 90 01 00 14 */ stw r0, 0x14(r1)
/* 80337858 00334798 93 E1 00 0C */ stw r31, 0xc(r1)
/* 8033785C 0033479C 93 C1 00 08 */ stw r30, 8(r1)
/* 80337860 003347A0 7C 7E 1B 78 */ mr r30, r3
/* 80337864 003347A4 80 E3 00 18 */ lwz r7, 0x18(r3)
/* 80337868 003347A8 80 C3 00 00 */ lwz r6, 0(r3)
/* 8033786C 003347AC 80 63 00 04 */ lwz r3, 4(r3)
/* 80337870 003347B0 54 80 08 3C */ slwi r0, r4, 1
/* 80337874 003347B4 7C 03 02 2E */ lhzx r0, r3, r0
/* 80337878 003347B8 1C 60 00 28 */ mulli r3, r0, 0x28
/* 8033787C 003347BC 38 03 00 08 */ addi r0, r3, 8
/* 80337880 003347C0 7C 06 02 2E */ lhzx r0, r6, r0
/* 80337884 003347C4 54 03 18 38 */ slwi r3, r0, 3
/* 80337888 003347C8 54 A0 18 38 */ slwi r0, r5, 3
/* 8033788C 003347CC 7F E3 02 14 */ add r31, r3, r0
/* 80337890 003347D0 7F E7 FA 14 */ add r31, r7, r31
/* 80337894 003347D4 38 60 00 0C */ li r3, 0xc
/* 80337898 003347D8 4B F9 73 B5 */ bl __nw__FUl
/* 8033789C 003347DC 7C 60 1B 79 */ or. r0, r3, r3
/* 803378A0 003347E0 41 82 00 1C */ beq lbl_803378BC
/* 803378A4 003347E4 80 9E 00 10 */ lwz r4, 0x10(r30)
/* 803378A8 003347E8 80 1F 00 04 */ lwz r0, 4(r31)
/* 803378AC 003347EC 7C 84 02 14 */ add r4, r4, r0
/* 803378B0 003347F0 80 BF 00 00 */ lwz r5, 0(r31)
/* 803378B4 003347F4 4B FD D2 09 */ bl J3DShapeDraw
/* 803378B8 003347F8 7C 60 1B 78 */ mr r0, r3
lbl_803378BC:
/* 803378BC 003347FC 7C 03 03 78 */ mr r3, r0
/* 803378C0 00334800 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 803378C4 00334804 83 C1 00 08 */ lwz r30, 8(r1)
/* 803378C8 00334808 80 01 00 14 */ lwz r0, 0x14(r1)
/* 803378CC 0033480C 7C 08 03 A6 */ mtlr r0
/* 803378D0 00334810 38 21 00 10 */ addi r1, r1, 0x10
/* 803378D4 00334814 4E 80 00 20 */ blr
.global J3DShapeFactory_NS_allocVcdVatCmdBuffer
J3DShapeFactory_NS_allocVcdVatCmdBuffer:
/* 803378D8 00334818 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 803378DC 0033481C 7C 08 02 A6 */ mflr r0
/* 803378E0 00334820 90 01 00 14 */ stw r0, 0x14(r1)
/* 803378E4 00334824 93 E1 00 0C */ stw r31, 0xc(r1)
/* 803378E8 00334828 93 C1 00 08 */ stw r30, 8(r1)
/* 803378EC 0033482C 7C 7E 1B 78 */ mr r30, r3
/* 803378F0 00334830 1F E4 00 C0 */ mulli r31, r4, 0xc0
/* 803378F4 00334834 7F E3 FB 78 */ mr r3, r31
/* 803378F8 00334838 38 80 00 20 */ li r4, 0x20
/* 803378FC 0033483C 4B F9 73 F1 */ bl __nwa__FUli
/* 80337900 00334840 90 7E 00 1C */ stw r3, 0x1c(r30)
/* 80337904 00334844 38 60 00 00 */ li r3, 0
/* 80337908 00334848 57 E4 F0 BE */ srwi r4, r31, 2
/* 8033790C 0033484C 7C 60 1B 78 */ mr r0, r3
/* 80337910 00334850 7C 89 03 A6 */ mtctr r4
/* 80337914 00334854 28 04 00 00 */ cmplwi r4, 0
/* 80337918 00334858 40 81 00 14 */ ble lbl_8033792C
lbl_8033791C:
/* 8033791C 0033485C 80 9E 00 1C */ lwz r4, 0x1c(r30)
/* 80337920 00334860 7C 04 19 2E */ stwx r0, r4, r3
/* 80337924 00334864 38 63 00 04 */ addi r3, r3, 4
/* 80337928 00334868 42 00 FF F4 */ bdnz lbl_8033791C
lbl_8033792C:
/* 8033792C 0033486C 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 80337930 00334870 83 C1 00 08 */ lwz r30, 8(r1)
/* 80337934 00334874 80 01 00 14 */ lwz r0, 0x14(r1)
/* 80337938 00334878 7C 08 03 A6 */ mtlr r0
/* 8033793C 0033487C 38 21 00 10 */ addi r1, r1, 0x10
/* 80337940 00334880 4E 80 00 20 */ blr
.global J3DShapeFactory_NS_calcSize
J3DShapeFactory_NS_calcSize:
/* 80337944 00334884 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 80337948 00334888 7C 08 02 A6 */ mflr r0
/* 8033794C 0033488C 90 01 00 24 */ stw r0, 0x24(r1)
/* 80337950 00334890 39 61 00 20 */ addi r11, r1, 0x20
/* 80337954 00334894 48 02 A8 7D */ bl _savegpr_26
/* 80337958 00334898 7C 7A 1B 78 */ mr r26, r3
/* 8033795C 0033489C 7C 9B 23 78 */ mr r27, r4
/* 80337960 003348A0 7C BC 2B 78 */ mr r28, r5
/* 80337964 003348A4 80 83 00 00 */ lwz r4, 0(r3)
/* 80337968 003348A8 80 63 00 04 */ lwz r3, 4(r3)
/* 8033796C 003348AC 57 60 08 3C */ slwi r0, r27, 1
/* 80337970 003348B0 7C 03 02 2E */ lhzx r0, r3, r0
/* 80337974 003348B4 1C 00 00 28 */ mulli r0, r0, 0x28
/* 80337978 003348B8 7C 64 02 14 */ add r3, r4, r0
/* 8033797C 003348BC A3 C3 00 02 */ lhz r30, 2(r3)
/* 80337980 003348C0 57 C3 10 3A */ slwi r3, r30, 2
/* 80337984 003348C4 3B E3 00 68 */ addi r31, r3, 0x68
/* 80337988 003348C8 7F FF 1A 14 */ add r31, r31, r3
/* 8033798C 003348CC 3B A0 00 00 */ li r29, 0
/* 80337990 003348D0 48 00 00 24 */ b lbl_803379B4
lbl_80337994:
/* 80337994 003348D4 7F 43 D3 78 */ mr r3, r26
/* 80337998 003348D8 7F 84 E3 78 */ mr r4, r28
/* 8033799C 003348DC 7F 65 DB 78 */ mr r5, r27
/* 803379A0 003348E0 7F A6 EB 78 */ mr r6, r29
/* 803379A4 003348E4 48 00 00 45 */ bl J3DShapeFactory_NS_calcSizeShapeMtx
/* 803379A8 003348E8 7F FF 1A 14 */ add r31, r31, r3
/* 803379AC 003348EC 3B FF 00 0C */ addi r31, r31, 0xc
/* 803379B0 003348F0 3B BD 00 01 */ addi r29, r29, 1
lbl_803379B4:
/* 803379B4 003348F4 7C 1D F0 40 */ cmplw r29, r30
/* 803379B8 003348F8 41 80 FF DC */ blt lbl_80337994
/* 803379BC 003348FC 7F E3 FB 78 */ mr r3, r31
/* 803379C0 00334900 39 61 00 20 */ addi r11, r1, 0x20
/* 803379C4 00334904 48 02 A8 59 */ bl _restgpr_26
/* 803379C8 00334908 80 01 00 24 */ lwz r0, 0x24(r1)
/* 803379CC 0033490C 7C 08 03 A6 */ mtlr r0
/* 803379D0 00334910 38 21 00 20 */ addi r1, r1, 0x20
/* 803379D4 00334914 4E 80 00 20 */ blr
.global J3DShapeFactory_NS_calcSizeVcdVatCmdBuffer
J3DShapeFactory_NS_calcSizeVcdVatCmdBuffer:
/* 803379D8 00334918 1C 64 00 C0 */ mulli r3, r4, 0xc0
/* 803379DC 0033491C 38 03 00 1F */ addi r0, r3, 0x1f
/* 803379E0 00334920 54 03 00 34 */ rlwinm r3, r0, 0, 0, 0x1a
/* 803379E4 00334924 4E 80 00 20 */ blr
.global J3DShapeFactory_NS_calcSizeShapeMtx
J3DShapeFactory_NS_calcSizeShapeMtx:
/* 803379E8 00334928 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 803379EC 0033492C 7C 08 02 A6 */ mflr r0
/* 803379F0 00334930 90 01 00 14 */ stw r0, 0x14(r1)
/* 803379F4 00334934 93 E1 00 0C */ stw r31, 0xc(r1)
/* 803379F8 00334938 80 C3 00 00 */ lwz r6, 0(r3)
/* 803379FC 0033493C 80 63 00 04 */ lwz r3, 4(r3)
/* 80337A00 00334940 54 A0 08 3C */ slwi r0, r5, 1
/* 80337A04 00334944 7C 03 02 2E */ lhzx r0, r3, r0
/* 80337A08 00334948 1C 00 00 28 */ mulli r0, r0, 0x28
/* 80337A0C 0033494C 3B E0 00 00 */ li r31, 0
/* 80337A10 00334950 54 83 06 F6 */ rlwinm r3, r4, 0, 0x1b, 0x1b
/* 80337A14 00334954 2C 03 00 10 */ cmpwi r3, 0x10
/* 80337A18 00334958 41 82 00 14 */ beq lbl_80337A2C
/* 80337A1C 0033495C 40 80 00 70 */ bge lbl_80337A8C
/* 80337A20 00334960 2C 03 00 00 */ cmpwi r3, 0
/* 80337A24 00334964 41 82 00 68 */ beq lbl_80337A8C
/* 80337A28 00334968 48 00 00 64 */ b lbl_80337A8C
lbl_80337A2C:
/* 80337A2C 0033496C 7C 06 00 AE */ lbzx r0, r6, r0
/* 80337A30 00334970 2C 00 00 02 */ cmpwi r0, 2
/* 80337A34 00334974 41 82 00 34 */ beq lbl_80337A68
/* 80337A38 00334978 40 80 00 14 */ bge lbl_80337A4C
/* 80337A3C 0033497C 2C 00 00 00 */ cmpwi r0, 0
/* 80337A40 00334980 41 82 00 18 */ beq lbl_80337A58
/* 80337A44 00334984 40 80 00 1C */ bge lbl_80337A60
/* 80337A48 00334988 48 00 00 30 */ b lbl_80337A78
lbl_80337A4C:
/* 80337A4C 0033498C 2C 00 00 04 */ cmpwi r0, 4
/* 80337A50 00334990 40 80 00 28 */ bge lbl_80337A78
/* 80337A54 00334994 48 00 00 1C */ b lbl_80337A70
lbl_80337A58:
/* 80337A58 00334998 3B E0 00 08 */ li r31, 8
/* 80337A5C 0033499C 48 00 00 6C */ b lbl_80337AC8
lbl_80337A60:
/* 80337A60 003349A0 3B E0 00 08 */ li r31, 8
/* 80337A64 003349A4 48 00 00 64 */ b lbl_80337AC8
lbl_80337A68:
/* 80337A68 003349A8 3B E0 00 08 */ li r31, 8
/* 80337A6C 003349AC 48 00 00 5C */ b lbl_80337AC8
lbl_80337A70:
/* 80337A70 003349B0 3B E0 00 10 */ li r31, 0x10
/* 80337A74 003349B4 48 00 00 54 */ b lbl_80337AC8
lbl_80337A78:
/* 80337A78 003349B8 3C 60 80 3A */ lis r3, lbl_803A2100@ha
/* 80337A7C 003349BC 38 63 21 00 */ addi r3, r3, lbl_803A2100@l
/* 80337A80 003349C0 4C C6 31 82 */ crclr 6
/* 80337A84 003349C4 4B CC F0 39 */ bl OSReport
/* 80337A88 003349C8 48 00 00 40 */ b lbl_80337AC8
lbl_80337A8C:
/* 80337A8C 003349CC 7C 06 00 AE */ lbzx r0, r6, r0
/* 80337A90 003349D0 2C 00 00 03 */ cmpwi r0, 3
/* 80337A94 003349D4 41 82 00 1C */ beq lbl_80337AB0
/* 80337A98 003349D8 40 80 00 20 */ bge lbl_80337AB8
/* 80337A9C 003349DC 2C 00 00 00 */ cmpwi r0, 0
/* 80337AA0 003349E0 40 80 00 08 */ bge lbl_80337AA8
/* 80337AA4 003349E4 48 00 00 14 */ b lbl_80337AB8
lbl_80337AA8:
/* 80337AA8 003349E8 3B E0 00 08 */ li r31, 8
/* 80337AAC 003349EC 48 00 00 1C */ b lbl_80337AC8
lbl_80337AB0:
/* 80337AB0 003349F0 3B E0 00 10 */ li r31, 0x10
/* 80337AB4 003349F4 48 00 00 14 */ b lbl_80337AC8
lbl_80337AB8:
/* 80337AB8 003349F8 3C 60 80 3A */ lis r3, lbl_803A2100@ha
/* 80337ABC 003349FC 38 63 21 00 */ addi r3, r3, lbl_803A2100@l
/* 80337AC0 00334A00 4C C6 31 82 */ crclr 6
/* 80337AC4 00334A04 4B CC EF F9 */ bl OSReport
lbl_80337AC8:
/* 80337AC8 00334A08 7F E3 FB 78 */ mr r3, r31
/* 80337ACC 00334A0C 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 80337AD0 00334A10 80 01 00 14 */ lwz r0, 0x14(r1)
/* 80337AD4 00334A14 7C 08 03 A6 */ mtlr r0
/* 80337AD8 00334A18 38 21 00 10 */ addi r1, r1, 0x10
/* 80337ADC 00334A1C 4E 80 00 20 */ blr
.global JSUConvertOffsetToPtr_X74_
JSUConvertOffsetToPtr_X74_:
/* 80337AE0 00334A20 28 04 00 00 */ cmplwi r4, 0
/* 80337AE4 00334A24 40 82 00 0C */ bne lbl_80337AF0
/* 80337AE8 00334A28 38 60 00 00 */ li r3, 0
/* 80337AEC 00334A2C 4E 80 00 20 */ blr
lbl_80337AF0:
/* 80337AF0 00334A30 7C 63 22 14 */ add r3, r3, r4
/* 80337AF4 00334A34 4E 80 00 20 */ blr
.global JSUConvertOffsetToPtr_X75_
JSUConvertOffsetToPtr_X75_:
/* 80337AF8 00334A38 28 04 00 00 */ cmplwi r4, 0
/* 80337AFC 00334A3C 40 82 00 0C */ bne lbl_80337B08
/* 80337B00 00334A40 38 60 00 00 */ li r3, 0
/* 80337B04 00334A44 4E 80 00 20 */ blr
lbl_80337B08:
/* 80337B08 00334A48 7C 63 22 14 */ add r3, r3, r4
/* 80337B0C 00334A4C 4E 80 00 20 */ blr
.global JSUConvertOffsetToPtr_X76_
JSUConvertOffsetToPtr_X76_:
/* 80337B10 00334A50 28 04 00 00 */ cmplwi r4, 0
/* 80337B14 00334A54 40 82 00 0C */ bne lbl_80337B20
/* 80337B18 00334A58 38 60 00 00 */ li r3, 0
/* 80337B1C 00334A5C 4E 80 00 20 */ blr
lbl_80337B20:
/* 80337B20 00334A60 7C 63 22 14 */ add r3, r3, r4
/* 80337B24 00334A64 4E 80 00 20 */ blr
.global JSUConvertOffsetToPtr_X77_
JSUConvertOffsetToPtr_X77_:
/* 80337B28 00334A68 28 04 00 00 */ cmplwi r4, 0
/* 80337B2C 00334A6C 40 82 00 0C */ bne lbl_80337B38
/* 80337B30 00334A70 38 60 00 00 */ li r3, 0
/* 80337B34 00334A74 4E 80 00 20 */ blr
lbl_80337B38:
/* 80337B38 00334A78 7C 63 22 14 */ add r3, r3, r4
/* 80337B3C 00334A7C 4E 80 00 20 */ blr