.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