prime/asm/Kyoto/CFactoryMgr.s

1186 lines
53 KiB
ArmAsm

.include "macros.inc"
.section .sdata
.global lbl_805A8900
lbl_805A8900:
# ROM: 0x3F62A0
.byte 0x01
.global lbl_805A8901
lbl_805A8901:
# ROM: 0x3F62A1
.byte 0x00
.global lbl_805A8902
lbl_805A8902:
# ROM: 0x3F62A2
.byte 0x01
.global lbl_805A8903
lbl_805A8903:
# ROM: 0x3F62A3
.byte 0x01
.global lbl_805A8904
lbl_805A8904:
# ROM: 0x3F62A4
.byte 0x00
.global lbl_805A8905
lbl_805A8905:
# ROM: 0x3F62A5
.byte 0x01, 0x00, 0x00
.global lbl_805A8908
lbl_805A8908:
# ROM: 0x3F62A8
.4byte 0x00000002
.section .text, "ax"
.global FourCCToTypeIdx__11CFactoryMgrFUi
FourCCToTypeIdx__11CFactoryMgrFUi:
/* 803385CC 0033552C 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 803385D0 00335530 90 61 00 08 */ stw r3, 8(r1)
/* 803385D4 00335534 88 01 00 08 */ lbz r0, 8(r1)
/* 803385D8 00335538 7C 00 07 74 */ extsb r0, r0
/* 803385DC 0033553C 2C 00 FF FF */ cmpwi r0, -1
/* 803385E0 00335540 40 82 00 0C */ bne lbl_803385EC
/* 803385E4 00335544 38 00 FF FF */ li r0, -1
/* 803385E8 00335548 48 00 00 14 */ b lbl_803385FC
lbl_803385EC:
/* 803385EC 0033554C 3C 60 80 3F */ lis r3, lbl_803F2C20@ha
/* 803385F0 00335550 54 00 06 3E */ clrlwi r0, r0, 0x18
/* 803385F4 00335554 38 63 2C 20 */ addi r3, r3, lbl_803F2C20@l
/* 803385F8 00335558 7C 03 00 AE */ lbzx r0, r3, r0
lbl_803385FC:
/* 803385FC 0033555C 88 81 00 09 */ lbz r4, 9(r1)
/* 80338600 00335560 98 01 00 08 */ stb r0, 8(r1)
/* 80338604 00335564 7C 84 07 74 */ extsb r4, r4
/* 80338608 00335568 2C 04 FF FF */ cmpwi r4, -1
/* 8033860C 0033556C 40 82 00 0C */ bne lbl_80338618
/* 80338610 00335570 38 00 FF FF */ li r0, -1
/* 80338614 00335574 48 00 00 14 */ b lbl_80338628
lbl_80338618:
/* 80338618 00335578 3C 60 80 3F */ lis r3, lbl_803F2C20@ha
/* 8033861C 0033557C 54 80 06 3E */ clrlwi r0, r4, 0x18
/* 80338620 00335580 38 63 2C 20 */ addi r3, r3, lbl_803F2C20@l
/* 80338624 00335584 7C 03 00 AE */ lbzx r0, r3, r0
lbl_80338628:
/* 80338628 00335588 88 81 00 0A */ lbz r4, 0xa(r1)
/* 8033862C 0033558C 98 01 00 09 */ stb r0, 9(r1)
/* 80338630 00335590 7C 84 07 74 */ extsb r4, r4
/* 80338634 00335594 2C 04 FF FF */ cmpwi r4, -1
/* 80338638 00335598 40 82 00 0C */ bne lbl_80338644
/* 8033863C 0033559C 38 00 FF FF */ li r0, -1
/* 80338640 003355A0 48 00 00 14 */ b lbl_80338654
lbl_80338644:
/* 80338644 003355A4 3C 60 80 3F */ lis r3, lbl_803F2C20@ha
/* 80338648 003355A8 54 80 06 3E */ clrlwi r0, r4, 0x18
/* 8033864C 003355AC 38 63 2C 20 */ addi r3, r3, lbl_803F2C20@l
/* 80338650 003355B0 7C 03 00 AE */ lbzx r0, r3, r0
lbl_80338654:
/* 80338654 003355B4 88 81 00 0B */ lbz r4, 0xb(r1)
/* 80338658 003355B8 98 01 00 0A */ stb r0, 0xa(r1)
/* 8033865C 003355BC 7C 84 07 74 */ extsb r4, r4
/* 80338660 003355C0 2C 04 FF FF */ cmpwi r4, -1
/* 80338664 003355C4 40 82 00 0C */ bne lbl_80338670
/* 80338668 003355C8 38 00 FF FF */ li r0, -1
/* 8033866C 003355CC 48 00 00 14 */ b lbl_80338680
lbl_80338670:
/* 80338670 003355D0 3C 60 80 3F */ lis r3, lbl_803F2C20@ha
/* 80338674 003355D4 54 80 06 3E */ clrlwi r0, r4, 0x18
/* 80338678 003355D8 38 63 2C 20 */ addi r3, r3, lbl_803F2C20@l
/* 8033867C 003355DC 7C 03 00 AE */ lbzx r0, r3, r0
lbl_80338680:
/* 80338680 003355E0 98 01 00 0B */ stb r0, 0xb(r1)
/* 80338684 003355E4 3C 60 80 3D */ lis r3, lbl_803D7988@ha
/* 80338688 003355E8 38 00 00 13 */ li r0, 0x13
/* 8033868C 003355EC 38 83 79 88 */ addi r4, r3, lbl_803D7988@l
/* 80338690 003355F0 80 A1 00 08 */ lwz r5, 8(r1)
/* 80338694 003355F4 38 60 00 00 */ li r3, 0
/* 80338698 003355F8 7C 09 03 A6 */ mtctr r0
lbl_8033869C:
/* 8033869C 003355FC 80 04 00 00 */ lwz r0, 0(r4)
/* 803386A0 00335600 7C 05 00 40 */ cmplw r5, r0
/* 803386A4 00335604 40 82 00 08 */ bne lbl_803386AC
/* 803386A8 00335608 48 00 00 28 */ b lbl_803386D0
lbl_803386AC:
/* 803386AC 0033560C 84 04 00 04 */ lwzu r0, 4(r4)
/* 803386B0 00335610 38 63 00 01 */ addi r3, r3, 1
/* 803386B4 00335614 7C 05 00 40 */ cmplw r5, r0
/* 803386B8 00335618 40 82 00 08 */ bne lbl_803386C0
/* 803386BC 0033561C 48 00 00 14 */ b lbl_803386D0
lbl_803386C0:
/* 803386C0 00335620 38 84 00 04 */ addi r4, r4, 4
/* 803386C4 00335624 38 63 00 01 */ addi r3, r3, 1
/* 803386C8 00335628 42 00 FF D4 */ bdnz lbl_8033869C
/* 803386CC 0033562C 38 60 FF FF */ li r3, -1
lbl_803386D0:
/* 803386D0 00335630 38 21 00 10 */ addi r1, r1, 0x10
/* 803386D4 00335634 4E 80 00 20 */ blr
.global TypeIdxToFourCC__11CFactoryMgrFUi
TypeIdxToFourCC__11CFactoryMgrFUi:
/* 803386D8 00335638 3C 80 80 3D */ lis r4, lbl_803D7988@ha
/* 803386DC 0033563C 54 60 10 3A */ slwi r0, r3, 2
/* 803386E0 00335640 38 64 79 88 */ addi r3, r4, lbl_803D7988@l
/* 803386E4 00335644 7C 63 00 2E */ lwzx r3, r3, r0
/* 803386E8 00335648 4E 80 00 20 */ blr
.global MakeObjectFromMemory__11CFactoryMgrFRC10SObjectTagPvibRC15CVParamTransfer
MakeObjectFromMemory__11CFactoryMgrFRC10SObjectTagPvibRC15CVParamTransfer:
/* 803386EC 0033564C 94 21 FE F0 */ stwu r1, -0x110(r1)
/* 803386F0 00335650 7C 08 02 A6 */ mflr r0
/* 803386F4 00335654 90 01 01 14 */ stw r0, 0x114(r1)
/* 803386F8 00335658 BF 21 00 F4 */ stmw r25, 0xf4(r1)
/* 803386FC 0033565C 7C BE 2B 78 */ mr r30, r5
/* 80338700 00335660 7C DA 33 78 */ mr r26, r6
/* 80338704 00335664 7C 7D 1B 78 */ mr r29, r3
/* 80338708 00335668 7C FB 3B 78 */ mr r27, r7
/* 8033870C 0033566C 7D 3F 4B 78 */ mr r31, r9
/* 80338710 00335670 38 C0 00 00 */ li r6, 0
/* 80338714 00335674 81 44 00 24 */ lwz r10, 0x24(r4)
/* 80338718 00335678 80 A5 00 00 */ lwz r5, 0(r5)
/* 8033871C 0033567C 48 00 00 20 */ b lbl_8033873C
lbl_80338720:
/* 80338720 00335680 80 0A 00 10 */ lwz r0, 0x10(r10)
/* 80338724 00335684 7C 00 28 00 */ cmpw r0, r5
/* 80338728 00335688 41 80 00 10 */ blt lbl_80338738
/* 8033872C 0033568C 7D 46 53 78 */ mr r6, r10
/* 80338730 00335690 81 4A 00 00 */ lwz r10, 0(r10)
/* 80338734 00335694 48 00 00 08 */ b lbl_8033873C
lbl_80338738:
/* 80338738 00335698 81 4A 00 04 */ lwz r10, 4(r10)
lbl_8033873C:
/* 8033873C 0033569C 28 0A 00 00 */ cmplwi r10, 0
/* 80338740 003356A0 40 82 FF E0 */ bne lbl_80338720
/* 80338744 003356A4 28 06 00 00 */ cmplwi r6, 0
/* 80338748 003356A8 38 60 00 00 */ li r3, 0
/* 8033874C 003356AC 41 82 00 10 */ beq lbl_8033875C
/* 80338750 003356B0 80 06 00 10 */ lwz r0, 0x10(r6)
/* 80338754 003356B4 7C 05 00 00 */ cmpw r5, r0
/* 80338758 003356B8 40 80 00 08 */ bge lbl_80338760
lbl_8033875C:
/* 8033875C 003356BC 38 60 00 01 */ li r3, 1
lbl_80338760:
/* 80338760 003356C0 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 80338764 003356C4 41 82 00 08 */ beq lbl_8033876C
/* 80338768 003356C8 38 C0 00 00 */ li r6, 0
lbl_8033876C:
/* 8033876C 003356CC 38 00 00 00 */ li r0, 0
/* 80338770 003356D0 38 64 00 1C */ addi r3, r4, 0x1c
/* 80338774 003356D4 7C 06 00 40 */ cmplw r6, r0
/* 80338778 003356D8 90 C1 00 40 */ stw r6, 0x40(r1)
/* 8033877C 003356DC 90 61 00 44 */ stw r3, 0x44(r1)
/* 80338780 003356E0 90 01 00 38 */ stw r0, 0x38(r1)
/* 80338784 003356E4 90 61 00 3C */ stw r3, 0x3c(r1)
/* 80338788 003356E8 40 82 00 0C */ bne lbl_80338794
/* 8033878C 003356EC 7C 03 18 40 */ cmplw r3, r3
/* 80338790 003356F0 41 82 00 08 */ beq lbl_80338798
lbl_80338794:
/* 80338794 003356F4 38 00 00 01 */ li r0, 1
lbl_80338798:
/* 80338798 003356F8 54 00 06 3F */ clrlwi. r0, r0, 0x18
/* 8033879C 003356FC 41 82 02 08 */ beq lbl_803389A4
/* 803387A0 00335700 55 00 06 3F */ clrlwi. r0, r8, 0x18
/* 803387A4 00335704 83 86 00 14 */ lwz r28, 0x14(r6)
/* 803387A8 00335708 41 82 01 7C */ beq lbl_80338924
/* 803387AC 0033570C 3C 80 80 3D */ lis r4, lbl_803D7A20@ha
/* 803387B0 00335710 38 60 00 24 */ li r3, 0x24
/* 803387B4 00335714 38 84 7A 20 */ addi r4, r4, lbl_803D7A20@l
/* 803387B8 00335718 38 A0 00 00 */ li r5, 0
/* 803387BC 0033571C 4B FD D0 B1 */ bl __nw__FUlPCcPCc
/* 803387C0 00335720 7C 64 1B 79 */ or. r4, r3, r3
/* 803387C4 00335724 41 82 00 18 */ beq lbl_803387DC
/* 803387C8 00335728 7F 44 D3 78 */ mr r4, r26
/* 803387CC 0033572C 7F 65 DB 78 */ mr r5, r27
/* 803387D0 00335730 38 C0 00 00 */ li r6, 0
/* 803387D4 00335734 48 00 6A 39 */ bl __ct__15CMemoryInStreamFPCvUlQ215CMemoryInStream10EOwnerShip
/* 803387D8 00335738 7C 64 1B 78 */ mr r4, r3
lbl_803387DC:
/* 803387DC 0033573C 7C 04 00 D0 */ neg r0, r4
/* 803387E0 00335740 90 81 00 5C */ stw r4, 0x5c(r1)
/* 803387E4 00335744 7C 00 23 78 */ or r0, r0, r4
/* 803387E8 00335748 7C 83 23 78 */ mr r3, r4
/* 803387EC 0033574C 54 00 0F FE */ srwi r0, r0, 0x1f
/* 803387F0 00335750 98 01 00 58 */ stb r0, 0x58(r1)
/* 803387F4 00335754 48 00 64 91 */ bl ReadLong__12CInputStreamFv
/* 803387F8 00335758 3C 80 80 3D */ lis r4, lbl_803D7A20@ha
/* 803387FC 0033575C 7C 7A 1B 78 */ mr r26, r3
/* 80338800 00335760 38 A0 00 00 */ li r5, 0
/* 80338804 00335764 38 84 7A 20 */ addi r4, r4, lbl_803D7A20@l
/* 80338808 00335768 4B FD D0 11 */ bl __nwa__FUlPCcPCc
/* 8033880C 0033576C 7C 03 00 D0 */ neg r0, r3
/* 80338810 00335770 88 C1 00 58 */ lbz r6, 0x58(r1)
/* 80338814 00335774 7C 00 1B 78 */ or r0, r0, r3
/* 80338818 00335778 80 A1 00 5C */ lwz r5, 0x5c(r1)
/* 8033881C 0033577C 54 07 0F FE */ srwi r7, r0, 0x1f
/* 80338820 00335780 38 00 00 00 */ li r0, 0
/* 80338824 00335784 90 61 00 54 */ stw r3, 0x54(r1)
/* 80338828 00335788 38 61 00 B8 */ addi r3, r1, 0xb8
/* 8033882C 0033578C 38 81 00 30 */ addi r4, r1, 0x30
/* 80338830 00335790 98 E1 00 50 */ stb r7, 0x50(r1)
/* 80338834 00335794 98 C1 00 30 */ stb r6, 0x30(r1)
/* 80338838 00335798 90 A1 00 34 */ stw r5, 0x34(r1)
/* 8033883C 0033579C 98 01 00 58 */ stb r0, 0x58(r1)
/* 80338840 003357A0 48 00 70 C1 */ bl "__ct__15CZipInputStreamFQ24rstl24auto_ptr<12CInputStream>"
/* 80338844 003357A4 88 01 00 30 */ lbz r0, 0x30(r1)
/* 80338848 003357A8 28 00 00 00 */ cmplwi r0, 0
/* 8033884C 003357AC 41 82 00 24 */ beq lbl_80338870
/* 80338850 003357B0 80 61 00 34 */ lwz r3, 0x34(r1)
/* 80338854 003357B4 28 03 00 00 */ cmplwi r3, 0
/* 80338858 003357B8 41 82 00 18 */ beq lbl_80338870
/* 8033885C 003357BC 81 83 00 00 */ lwz r12, 0(r3)
/* 80338860 003357C0 38 80 00 01 */ li r4, 1
/* 80338864 003357C4 81 8C 00 08 */ lwz r12, 8(r12)
/* 80338868 003357C8 7D 89 03 A6 */ mtctr r12
/* 8033886C 003357CC 4E 80 04 21 */ bctrl
lbl_80338870:
/* 80338870 003357D0 80 81 00 54 */ lwz r4, 0x54(r1)
/* 80338874 003357D4 7F 45 D3 78 */ mr r5, r26
/* 80338878 003357D8 38 61 00 B8 */ addi r3, r1, 0xb8
/* 8033887C 003357DC 48 00 66 D9 */ bl Get__12CInputStreamFPvUl
/* 80338880 003357E0 38 61 00 B8 */ addi r3, r1, 0xb8
/* 80338884 003357E4 38 80 FF FF */ li r4, -1
/* 80338888 003357E8 48 00 6F B9 */ bl __dt__15CZipInputStreamFv
/* 8033888C 003357EC 7F 8C E3 78 */ mr r12, r28
/* 80338890 003357F0 7F C4 F3 78 */ mr r4, r30
/* 80338894 003357F4 7F 46 D3 78 */ mr r6, r26
/* 80338898 003357F8 7F E7 FB 78 */ mr r7, r31
/* 8033889C 003357FC 38 61 00 28 */ addi r3, r1, 0x28
/* 803388A0 00335800 38 A1 00 50 */ addi r5, r1, 0x50
/* 803388A4 00335804 7D 89 03 A6 */ mtctr r12
/* 803388A8 00335808 4E 80 04 21 */ bctrl
/* 803388AC 0033580C 88 61 00 28 */ lbz r3, 0x28(r1)
/* 803388B0 00335810 38 00 00 00 */ li r0, 0
/* 803388B4 00335814 98 7D 00 00 */ stb r3, 0(r29)
/* 803388B8 00335818 80 61 00 2C */ lwz r3, 0x2c(r1)
/* 803388BC 0033581C 90 7D 00 04 */ stw r3, 4(r29)
/* 803388C0 00335820 98 01 00 28 */ stb r0, 0x28(r1)
/* 803388C4 00335824 48 00 00 1C */ b lbl_803388E0
/* 803388C8 00335828 41 82 00 18 */ beq lbl_803388E0
/* 803388CC 0033582C 81 83 00 00 */ lwz r12, 0(r3)
/* 803388D0 00335830 38 80 00 01 */ li r4, 1
/* 803388D4 00335834 81 8C 00 08 */ lwz r12, 8(r12)
/* 803388D8 00335838 7D 89 03 A6 */ mtctr r12
/* 803388DC 0033583C 4E 80 04 21 */ bctrl
lbl_803388E0:
/* 803388E0 00335840 88 01 00 50 */ lbz r0, 0x50(r1)
/* 803388E4 00335844 28 00 00 00 */ cmplwi r0, 0
/* 803388E8 00335848 41 82 00 0C */ beq lbl_803388F4
/* 803388EC 0033584C 80 61 00 54 */ lwz r3, 0x54(r1)
/* 803388F0 00335850 4B FD D0 41 */ bl Free__7CMemoryFPCv
lbl_803388F4:
/* 803388F4 00335854 88 01 00 58 */ lbz r0, 0x58(r1)
/* 803388F8 00335858 28 00 00 00 */ cmplwi r0, 0
/* 803388FC 0033585C 41 82 02 70 */ beq lbl_80338B6C
/* 80338900 00335860 80 61 00 5C */ lwz r3, 0x5c(r1)
/* 80338904 00335864 28 03 00 00 */ cmplwi r3, 0
/* 80338908 00335868 41 82 02 64 */ beq lbl_80338B6C
/* 8033890C 0033586C 81 83 00 00 */ lwz r12, 0(r3)
/* 80338910 00335870 38 80 00 01 */ li r4, 1
/* 80338914 00335874 81 8C 00 08 */ lwz r12, 8(r12)
/* 80338918 00335878 7D 89 03 A6 */ mtctr r12
/* 8033891C 0033587C 4E 80 04 21 */ bctrl
/* 80338920 00335880 48 00 02 4C */ b lbl_80338B6C
lbl_80338924:
/* 80338924 00335884 7C 1A 00 D0 */ neg r0, r26
/* 80338928 00335888 7F 8C E3 78 */ mr r12, r28
/* 8033892C 0033588C 7C 00 D3 78 */ or r0, r0, r26
/* 80338930 00335890 7F C4 F3 78 */ mr r4, r30
/* 80338934 00335894 54 00 0F FE */ srwi r0, r0, 0x1f
/* 80338938 00335898 7F 66 DB 78 */ mr r6, r27
/* 8033893C 0033589C 7F E7 FB 78 */ mr r7, r31
/* 80338940 003358A0 98 01 00 48 */ stb r0, 0x48(r1)
/* 80338944 003358A4 38 61 00 20 */ addi r3, r1, 0x20
/* 80338948 003358A8 38 A1 00 48 */ addi r5, r1, 0x48
/* 8033894C 003358AC 93 41 00 4C */ stw r26, 0x4c(r1)
/* 80338950 003358B0 7D 89 03 A6 */ mtctr r12
/* 80338954 003358B4 4E 80 04 21 */ bctrl
/* 80338958 003358B8 88 61 00 20 */ lbz r3, 0x20(r1)
/* 8033895C 003358BC 38 00 00 00 */ li r0, 0
/* 80338960 003358C0 98 7D 00 00 */ stb r3, 0(r29)
/* 80338964 003358C4 80 61 00 24 */ lwz r3, 0x24(r1)
/* 80338968 003358C8 90 7D 00 04 */ stw r3, 4(r29)
/* 8033896C 003358CC 98 01 00 20 */ stb r0, 0x20(r1)
/* 80338970 003358D0 48 00 00 1C */ b lbl_8033898C
/* 80338974 003358D4 41 82 00 18 */ beq lbl_8033898C
/* 80338978 003358D8 81 83 00 00 */ lwz r12, 0(r3)
/* 8033897C 003358DC 38 80 00 01 */ li r4, 1
/* 80338980 003358E0 81 8C 00 08 */ lwz r12, 8(r12)
/* 80338984 003358E4 7D 89 03 A6 */ mtctr r12
/* 80338988 003358E8 4E 80 04 21 */ bctrl
lbl_8033898C:
/* 8033898C 003358EC 88 01 00 48 */ lbz r0, 0x48(r1)
/* 80338990 003358F0 28 00 00 00 */ cmplwi r0, 0
/* 80338994 003358F4 41 82 01 D8 */ beq lbl_80338B6C
/* 80338998 003358F8 80 61 00 4C */ lwz r3, 0x4c(r1)
/* 8033899C 003358FC 4B FD CF 95 */ bl Free__7CMemoryFPCv
/* 803389A0 00335900 48 00 01 CC */ b lbl_80338B6C
lbl_803389A4:
/* 803389A4 00335904 80 BE 00 00 */ lwz r5, 0(r30)
/* 803389A8 00335908 38 C0 00 00 */ li r6, 0
/* 803389AC 0033590C 80 64 00 10 */ lwz r3, 0x10(r4)
/* 803389B0 00335910 48 00 00 20 */ b lbl_803389D0
lbl_803389B4:
/* 803389B4 00335914 80 03 00 10 */ lwz r0, 0x10(r3)
/* 803389B8 00335918 7C 00 28 00 */ cmpw r0, r5
/* 803389BC 0033591C 41 80 00 10 */ blt lbl_803389CC
/* 803389C0 00335920 7C 66 1B 78 */ mr r6, r3
/* 803389C4 00335924 80 63 00 00 */ lwz r3, 0(r3)
/* 803389C8 00335928 48 00 00 08 */ b lbl_803389D0
lbl_803389CC:
/* 803389CC 0033592C 80 63 00 04 */ lwz r3, 4(r3)
lbl_803389D0:
/* 803389D0 00335930 28 03 00 00 */ cmplwi r3, 0
/* 803389D4 00335934 40 82 FF E0 */ bne lbl_803389B4
/* 803389D8 00335938 28 06 00 00 */ cmplwi r6, 0
/* 803389DC 0033593C 38 60 00 00 */ li r3, 0
/* 803389E0 00335940 41 82 00 10 */ beq lbl_803389F0
/* 803389E4 00335944 80 06 00 10 */ lwz r0, 0x10(r6)
/* 803389E8 00335948 7C 05 00 00 */ cmpw r5, r0
/* 803389EC 0033594C 40 80 00 08 */ bge lbl_803389F4
lbl_803389F0:
/* 803389F0 00335950 38 60 00 01 */ li r3, 1
lbl_803389F4:
/* 803389F4 00335954 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 803389F8 00335958 41 82 00 08 */ beq lbl_80338A00
/* 803389FC 0033595C 38 C0 00 00 */ li r6, 0
lbl_80338A00:
/* 80338A00 00335960 55 00 06 3F */ clrlwi. r0, r8, 0x18
/* 80338A04 00335964 83 26 00 14 */ lwz r25, 0x14(r6)
/* 80338A08 00335968 41 82 00 E8 */ beq lbl_80338AF0
/* 80338A0C 0033596C 3C 80 80 3D */ lis r4, lbl_803D7A20@ha
/* 80338A10 00335970 38 60 00 24 */ li r3, 0x24
/* 80338A14 00335974 38 84 7A 20 */ addi r4, r4, lbl_803D7A20@l
/* 80338A18 00335978 38 A0 00 00 */ li r5, 0
/* 80338A1C 0033597C 4B FD CE 51 */ bl __nw__FUlPCcPCc
/* 80338A20 00335980 7C 7C 1B 79 */ or. r28, r3, r3
/* 80338A24 00335984 41 82 00 18 */ beq lbl_80338A3C
/* 80338A28 00335988 7F 44 D3 78 */ mr r4, r26
/* 80338A2C 0033598C 7F 65 DB 78 */ mr r5, r27
/* 80338A30 00335990 38 C0 00 00 */ li r6, 0
/* 80338A34 00335994 48 00 67 D9 */ bl __ct__15CMemoryInStreamFPCvUlQ215CMemoryInStream10EOwnerShip
/* 80338A38 00335998 7C 7C 1B 78 */ mr r28, r3
lbl_80338A3C:
/* 80338A3C 0033599C 7F 83 E3 78 */ mr r3, r28
/* 80338A40 003359A0 48 00 62 45 */ bl ReadLong__12CInputStreamFv
/* 80338A44 003359A4 7C 1C 00 D0 */ neg r0, r28
/* 80338A48 003359A8 93 81 00 1C */ stw r28, 0x1c(r1)
/* 80338A4C 003359AC 7C 00 E3 78 */ or r0, r0, r28
/* 80338A50 003359B0 38 61 00 84 */ addi r3, r1, 0x84
/* 80338A54 003359B4 54 00 0F FE */ srwi r0, r0, 0x1f
/* 80338A58 003359B8 38 81 00 18 */ addi r4, r1, 0x18
/* 80338A5C 003359BC 98 01 00 18 */ stb r0, 0x18(r1)
/* 80338A60 003359C0 48 00 6E A1 */ bl "__ct__15CZipInputStreamFQ24rstl24auto_ptr<12CInputStream>"
/* 80338A64 003359C4 88 01 00 18 */ lbz r0, 0x18(r1)
/* 80338A68 003359C8 28 00 00 00 */ cmplwi r0, 0
/* 80338A6C 003359CC 41 82 00 24 */ beq lbl_80338A90
/* 80338A70 003359D0 80 61 00 1C */ lwz r3, 0x1c(r1)
/* 80338A74 003359D4 28 03 00 00 */ cmplwi r3, 0
/* 80338A78 003359D8 41 82 00 18 */ beq lbl_80338A90
/* 80338A7C 003359DC 81 83 00 00 */ lwz r12, 0(r3)
/* 80338A80 003359E0 38 80 00 01 */ li r4, 1
/* 80338A84 003359E4 81 8C 00 08 */ lwz r12, 8(r12)
/* 80338A88 003359E8 7D 89 03 A6 */ mtctr r12
/* 80338A8C 003359EC 4E 80 04 21 */ bctrl
lbl_80338A90:
/* 80338A90 003359F0 7F 2C CB 78 */ mr r12, r25
/* 80338A94 003359F4 7F C4 F3 78 */ mr r4, r30
/* 80338A98 003359F8 7F E6 FB 78 */ mr r6, r31
/* 80338A9C 003359FC 38 61 00 10 */ addi r3, r1, 0x10
/* 80338AA0 00335A00 38 A1 00 84 */ addi r5, r1, 0x84
/* 80338AA4 00335A04 7D 89 03 A6 */ mtctr r12
/* 80338AA8 00335A08 4E 80 04 21 */ bctrl
/* 80338AAC 00335A0C 88 61 00 10 */ lbz r3, 0x10(r1)
/* 80338AB0 00335A10 38 00 00 00 */ li r0, 0
/* 80338AB4 00335A14 98 7D 00 00 */ stb r3, 0(r29)
/* 80338AB8 00335A18 80 61 00 14 */ lwz r3, 0x14(r1)
/* 80338ABC 00335A1C 90 7D 00 04 */ stw r3, 4(r29)
/* 80338AC0 00335A20 98 01 00 10 */ stb r0, 0x10(r1)
/* 80338AC4 00335A24 48 00 00 1C */ b lbl_80338AE0
/* 80338AC8 00335A28 41 82 00 18 */ beq lbl_80338AE0
/* 80338ACC 00335A2C 81 83 00 00 */ lwz r12, 0(r3)
/* 80338AD0 00335A30 38 80 00 01 */ li r4, 1
/* 80338AD4 00335A34 81 8C 00 08 */ lwz r12, 8(r12)
/* 80338AD8 00335A38 7D 89 03 A6 */ mtctr r12
/* 80338ADC 00335A3C 4E 80 04 21 */ bctrl
lbl_80338AE0:
/* 80338AE0 00335A40 38 61 00 84 */ addi r3, r1, 0x84
/* 80338AE4 00335A44 38 80 FF FF */ li r4, -1
/* 80338AE8 00335A48 48 00 6D 59 */ bl __dt__15CZipInputStreamFv
/* 80338AEC 00335A4C 48 00 00 80 */ b lbl_80338B6C
lbl_80338AF0:
/* 80338AF0 00335A50 7F 44 D3 78 */ mr r4, r26
/* 80338AF4 00335A54 7F 65 DB 78 */ mr r5, r27
/* 80338AF8 00335A58 38 61 00 60 */ addi r3, r1, 0x60
/* 80338AFC 00335A5C 38 C0 00 00 */ li r6, 0
/* 80338B00 00335A60 48 00 67 0D */ bl __ct__15CMemoryInStreamFPCvUlQ215CMemoryInStream10EOwnerShip
/* 80338B04 00335A64 7F 2C CB 78 */ mr r12, r25
/* 80338B08 00335A68 7F C4 F3 78 */ mr r4, r30
/* 80338B0C 00335A6C 7F E6 FB 78 */ mr r6, r31
/* 80338B10 00335A70 38 61 00 08 */ addi r3, r1, 8
/* 80338B14 00335A74 38 A1 00 60 */ addi r5, r1, 0x60
/* 80338B18 00335A78 7D 89 03 A6 */ mtctr r12
/* 80338B1C 00335A7C 4E 80 04 21 */ bctrl
/* 80338B20 00335A80 88 61 00 08 */ lbz r3, 8(r1)
/* 80338B24 00335A84 38 00 00 00 */ li r0, 0
/* 80338B28 00335A88 98 7D 00 00 */ stb r3, 0(r29)
/* 80338B2C 00335A8C 80 61 00 0C */ lwz r3, 0xc(r1)
/* 80338B30 00335A90 90 7D 00 04 */ stw r3, 4(r29)
/* 80338B34 00335A94 98 01 00 08 */ stb r0, 8(r1)
/* 80338B38 00335A98 48 00 00 1C */ b lbl_80338B54
/* 80338B3C 00335A9C 41 82 00 18 */ beq lbl_80338B54
/* 80338B40 00335AA0 81 83 00 00 */ lwz r12, 0(r3)
/* 80338B44 00335AA4 38 80 00 01 */ li r4, 1
/* 80338B48 00335AA8 81 8C 00 08 */ lwz r12, 8(r12)
/* 80338B4C 00335AAC 7D 89 03 A6 */ mtctr r12
/* 80338B50 00335AB0 4E 80 04 21 */ bctrl
lbl_80338B54:
/* 80338B54 00335AB4 3C 80 80 3F */ lis r4, __vt__15CMemoryInStream@ha
/* 80338B58 00335AB8 38 61 00 60 */ addi r3, r1, 0x60
/* 80338B5C 00335ABC 38 04 E3 98 */ addi r0, r4, __vt__15CMemoryInStream@l
/* 80338B60 00335AC0 38 80 00 00 */ li r4, 0
/* 80338B64 00335AC4 90 01 00 60 */ stw r0, 0x60(r1)
/* 80338B68 00335AC8 48 00 65 45 */ bl __dt__12CInputStreamFv
lbl_80338B6C:
/* 80338B6C 00335ACC BB 21 00 F4 */ lmw r25, 0xf4(r1)
/* 80338B70 00335AD0 80 01 01 14 */ lwz r0, 0x114(r1)
/* 80338B74 00335AD4 7C 08 03 A6 */ mtlr r0
/* 80338B78 00335AD8 38 21 01 10 */ addi r1, r1, 0x110
/* 80338B7C 00335ADC 4E 80 00 20 */ blr
.global MakeObject__11CFactoryMgrFRC10SObjectTagR12CInputStreamRC15CVParamTransfer
MakeObject__11CFactoryMgrFRC10SObjectTagR12CInputStreamRC15CVParamTransfer:
/* 80338B80 00335AE0 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 80338B84 00335AE4 7C 08 02 A6 */ mflr r0
/* 80338B88 00335AE8 39 20 00 00 */ li r9, 0
/* 80338B8C 00335AEC 90 01 00 24 */ stw r0, 0x24(r1)
/* 80338B90 00335AF0 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 80338B94 00335AF4 7C 7F 1B 78 */ mr r31, r3
/* 80338B98 00335AF8 80 84 00 10 */ lwz r4, 0x10(r4)
/* 80338B9C 00335AFC 81 05 00 00 */ lwz r8, 0(r5)
/* 80338BA0 00335B00 48 00 00 20 */ b lbl_80338BC0
lbl_80338BA4:
/* 80338BA4 00335B04 80 04 00 10 */ lwz r0, 0x10(r4)
/* 80338BA8 00335B08 7C 00 40 00 */ cmpw r0, r8
/* 80338BAC 00335B0C 41 80 00 10 */ blt lbl_80338BBC
/* 80338BB0 00335B10 7C 89 23 78 */ mr r9, r4
/* 80338BB4 00335B14 80 84 00 00 */ lwz r4, 0(r4)
/* 80338BB8 00335B18 48 00 00 08 */ b lbl_80338BC0
lbl_80338BBC:
/* 80338BBC 00335B1C 80 84 00 04 */ lwz r4, 4(r4)
lbl_80338BC0:
/* 80338BC0 00335B20 28 04 00 00 */ cmplwi r4, 0
/* 80338BC4 00335B24 40 82 FF E0 */ bne lbl_80338BA4
/* 80338BC8 00335B28 28 09 00 00 */ cmplwi r9, 0
/* 80338BCC 00335B2C 7C A4 2B 78 */ mr r4, r5
/* 80338BD0 00335B30 7C C5 33 78 */ mr r5, r6
/* 80338BD4 00335B34 7C E6 3B 78 */ mr r6, r7
/* 80338BD8 00335B38 38 61 00 08 */ addi r3, r1, 8
/* 80338BDC 00335B3C 38 E0 00 00 */ li r7, 0
/* 80338BE0 00335B40 41 82 00 10 */ beq lbl_80338BF0
/* 80338BE4 00335B44 80 09 00 10 */ lwz r0, 0x10(r9)
/* 80338BE8 00335B48 7C 08 00 00 */ cmpw r8, r0
/* 80338BEC 00335B4C 40 80 00 08 */ bge lbl_80338BF4
lbl_80338BF0:
/* 80338BF0 00335B50 38 E0 00 01 */ li r7, 1
lbl_80338BF4:
/* 80338BF4 00335B54 54 E0 06 3F */ clrlwi. r0, r7, 0x18
/* 80338BF8 00335B58 41 82 00 08 */ beq lbl_80338C00
/* 80338BFC 00335B5C 39 20 00 00 */ li r9, 0
lbl_80338C00:
/* 80338C00 00335B60 81 89 00 14 */ lwz r12, 0x14(r9)
/* 80338C04 00335B64 7D 89 03 A6 */ mtctr r12
/* 80338C08 00335B68 4E 80 04 21 */ bctrl
/* 80338C0C 00335B6C 88 61 00 08 */ lbz r3, 8(r1)
/* 80338C10 00335B70 38 00 00 00 */ li r0, 0
/* 80338C14 00335B74 98 7F 00 00 */ stb r3, 0(r31)
/* 80338C18 00335B78 80 61 00 0C */ lwz r3, 0xc(r1)
/* 80338C1C 00335B7C 90 7F 00 04 */ stw r3, 4(r31)
/* 80338C20 00335B80 98 01 00 08 */ stb r0, 8(r1)
/* 80338C24 00335B84 48 00 00 1C */ b lbl_80338C40
/* 80338C28 00335B88 41 82 00 18 */ beq lbl_80338C40
/* 80338C2C 00335B8C 81 83 00 00 */ lwz r12, 0(r3)
/* 80338C30 00335B90 38 80 00 01 */ li r4, 1
/* 80338C34 00335B94 81 8C 00 08 */ lwz r12, 8(r12)
/* 80338C38 00335B98 7D 89 03 A6 */ mtctr r12
/* 80338C3C 00335B9C 4E 80 04 21 */ bctrl
lbl_80338C40:
/* 80338C40 00335BA0 80 01 00 24 */ lwz r0, 0x24(r1)
/* 80338C44 00335BA4 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 80338C48 00335BA8 7C 08 03 A6 */ mtlr r0
/* 80338C4C 00335BAC 38 21 00 20 */ addi r1, r1, 0x20
/* 80338C50 00335BB0 4E 80 00 20 */ blr
.global CanMakeMemory__11CFactoryMgrFRC10SObjectTag
CanMakeMemory__11CFactoryMgrFRC10SObjectTag:
/* 80338C54 00335BB4 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 80338C58 00335BB8 38 C3 00 1C */ addi r6, r3, 0x1c
/* 80338C5C 00335BBC 38 A0 00 00 */ li r5, 0
/* 80338C60 00335BC0 80 84 00 00 */ lwz r4, 0(r4)
/* 80338C64 00335BC4 80 63 00 24 */ lwz r3, 0x24(r3)
/* 80338C68 00335BC8 48 00 00 20 */ b lbl_80338C88
lbl_80338C6C:
/* 80338C6C 00335BCC 80 03 00 10 */ lwz r0, 0x10(r3)
/* 80338C70 00335BD0 7C 00 20 00 */ cmpw r0, r4
/* 80338C74 00335BD4 41 80 00 10 */ blt lbl_80338C84
/* 80338C78 00335BD8 7C 65 1B 78 */ mr r5, r3
/* 80338C7C 00335BDC 80 63 00 00 */ lwz r3, 0(r3)
/* 80338C80 00335BE0 48 00 00 08 */ b lbl_80338C88
lbl_80338C84:
/* 80338C84 00335BE4 80 63 00 04 */ lwz r3, 4(r3)
lbl_80338C88:
/* 80338C88 00335BE8 28 03 00 00 */ cmplwi r3, 0
/* 80338C8C 00335BEC 40 82 FF E0 */ bne lbl_80338C6C
/* 80338C90 00335BF0 28 05 00 00 */ cmplwi r5, 0
/* 80338C94 00335BF4 38 60 00 00 */ li r3, 0
/* 80338C98 00335BF8 41 82 00 10 */ beq lbl_80338CA8
/* 80338C9C 00335BFC 80 05 00 10 */ lwz r0, 0x10(r5)
/* 80338CA0 00335C00 7C 04 00 00 */ cmpw r4, r0
/* 80338CA4 00335C04 40 80 00 08 */ bge lbl_80338CAC
lbl_80338CA8:
/* 80338CA8 00335C08 38 60 00 01 */ li r3, 1
lbl_80338CAC:
/* 80338CAC 00335C0C 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 80338CB0 00335C10 41 82 00 08 */ beq lbl_80338CB8
/* 80338CB4 00335C14 38 A0 00 00 */ li r5, 0
lbl_80338CB8:
/* 80338CB8 00335C18 28 05 00 00 */ cmplwi r5, 0
/* 80338CBC 00335C1C 90 A1 00 08 */ stw r5, 8(r1)
/* 80338CC0 00335C20 38 60 00 00 */ li r3, 0
/* 80338CC4 00335C24 90 C1 00 0C */ stw r6, 0xc(r1)
/* 80338CC8 00335C28 40 82 00 0C */ bne lbl_80338CD4
/* 80338CCC 00335C2C 7C 06 30 40 */ cmplw r6, r6
/* 80338CD0 00335C30 41 82 00 08 */ beq lbl_80338CD8
lbl_80338CD4:
/* 80338CD4 00335C34 38 60 00 01 */ li r3, 1
lbl_80338CD8:
/* 80338CD8 00335C38 38 21 00 10 */ addi r1, r1, 0x10
/* 80338CDC 00335C3C 4E 80 00 20 */ blr
.global "AddFactory__11CFactoryMgrFUiPFRC10SObjectTagRCQ24rstl12auto_ptr<Uc>iRC15CVParamTransfer_C16CFactoryFnReturn"
"AddFactory__11CFactoryMgrFUiPFRC10SObjectTagRCQ24rstl12auto_ptr<Uc>iRC15CVParamTransfer_C16CFactoryFnReturn":
/* 80338CE0 00335C40 94 21 FF D0 */ stwu r1, -0x30(r1)
/* 80338CE4 00335C44 7C 08 02 A6 */ mflr r0
/* 80338CE8 00335C48 7C 67 1B 78 */ mr r7, r3
/* 80338CEC 00335C4C 38 C0 00 00 */ li r6, 0
/* 80338CF0 00335C50 90 01 00 34 */ stw r0, 0x34(r1)
/* 80338CF4 00335C54 80 63 00 24 */ lwz r3, 0x24(r3)
/* 80338CF8 00335C58 48 00 00 20 */ b lbl_80338D18
lbl_80338CFC:
/* 80338CFC 00335C5C 80 03 00 10 */ lwz r0, 0x10(r3)
/* 80338D00 00335C60 7C 00 20 00 */ cmpw r0, r4
/* 80338D04 00335C64 41 80 00 10 */ blt lbl_80338D14
/* 80338D08 00335C68 7C 66 1B 78 */ mr r6, r3
/* 80338D0C 00335C6C 80 63 00 00 */ lwz r3, 0(r3)
/* 80338D10 00335C70 48 00 00 08 */ b lbl_80338D18
lbl_80338D14:
/* 80338D14 00335C74 80 63 00 04 */ lwz r3, 4(r3)
lbl_80338D18:
/* 80338D18 00335C78 28 03 00 00 */ cmplwi r3, 0
/* 80338D1C 00335C7C 40 82 FF E0 */ bne lbl_80338CFC
/* 80338D20 00335C80 28 06 00 00 */ cmplwi r6, 0
/* 80338D24 00335C84 38 60 00 00 */ li r3, 0
/* 80338D28 00335C88 41 82 00 10 */ beq lbl_80338D38
/* 80338D2C 00335C8C 80 06 00 10 */ lwz r0, 0x10(r6)
/* 80338D30 00335C90 7C 04 00 00 */ cmpw r4, r0
/* 80338D34 00335C94 40 80 00 08 */ bge lbl_80338D3C
lbl_80338D38:
/* 80338D38 00335C98 38 60 00 01 */ li r3, 1
lbl_80338D3C:
/* 80338D3C 00335C9C 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 80338D40 00335CA0 41 82 00 08 */ beq lbl_80338D48
/* 80338D44 00335CA4 38 C0 00 00 */ li r6, 0
lbl_80338D48:
/* 80338D48 00335CA8 38 00 00 00 */ li r0, 0
/* 80338D4C 00335CAC 38 67 00 1C */ addi r3, r7, 0x1c
/* 80338D50 00335CB0 7C 06 00 40 */ cmplw r6, r0
/* 80338D54 00335CB4 90 01 00 10 */ stw r0, 0x10(r1)
/* 80338D58 00335CB8 90 61 00 14 */ stw r3, 0x14(r1)
/* 80338D5C 00335CBC 40 82 00 0C */ bne lbl_80338D68
/* 80338D60 00335CC0 7C 03 18 40 */ cmplw r3, r3
/* 80338D64 00335CC4 41 82 00 08 */ beq lbl_80338D6C
lbl_80338D68:
/* 80338D68 00335CC8 38 00 00 01 */ li r0, 1
lbl_80338D6C:
/* 80338D6C 00335CCC 54 00 06 3F */ clrlwi. r0, r0, 0x18
/* 80338D70 00335CD0 40 82 00 20 */ bne lbl_80338D90
/* 80338D74 00335CD4 90 81 00 08 */ stw r4, 8(r1)
/* 80338D78 00335CD8 38 61 00 18 */ addi r3, r1, 0x18
/* 80338D7C 00335CDC 38 87 00 14 */ addi r4, r7, 0x14
/* 80338D80 00335CE0 38 C1 00 08 */ addi r6, r1, 8
/* 80338D84 00335CE4 90 A1 00 0C */ stw r5, 0xc(r1)
/* 80338D88 00335CE8 80 A7 00 24 */ lwz r5, 0x24(r7)
/* 80338D8C 00335CEC 48 00 04 E5 */ bl sub_80339270
lbl_80338D90:
/* 80338D90 00335CF0 80 01 00 34 */ lwz r0, 0x34(r1)
/* 80338D94 00335CF4 7C 08 03 A6 */ mtlr r0
/* 80338D98 00335CF8 38 21 00 30 */ addi r1, r1, 0x30
/* 80338D9C 00335CFC 4E 80 00 20 */ blr
.global AddFactory__11CFactoryMgrFUiPFRC10SObjectTagR12CInputStreamRC15CVParamTransfer_C16CFactoryFnReturn
AddFactory__11CFactoryMgrFUiPFRC10SObjectTagR12CInputStreamRC15CVParamTransfer_C16CFactoryFnReturn:
/* 80338DA0 00335D00 94 21 FF D0 */ stwu r1, -0x30(r1)
/* 80338DA4 00335D04 7C 08 02 A6 */ mflr r0
/* 80338DA8 00335D08 7C 67 1B 78 */ mr r7, r3
/* 80338DAC 00335D0C 38 C0 00 00 */ li r6, 0
/* 80338DB0 00335D10 90 01 00 34 */ stw r0, 0x34(r1)
/* 80338DB4 00335D14 80 63 00 10 */ lwz r3, 0x10(r3)
/* 80338DB8 00335D18 48 00 00 20 */ b lbl_80338DD8
lbl_80338DBC:
/* 80338DBC 00335D1C 80 03 00 10 */ lwz r0, 0x10(r3)
/* 80338DC0 00335D20 7C 00 20 00 */ cmpw r0, r4
/* 80338DC4 00335D24 41 80 00 10 */ blt lbl_80338DD4
/* 80338DC8 00335D28 7C 66 1B 78 */ mr r6, r3
/* 80338DCC 00335D2C 80 63 00 00 */ lwz r3, 0(r3)
/* 80338DD0 00335D30 48 00 00 08 */ b lbl_80338DD8
lbl_80338DD4:
/* 80338DD4 00335D34 80 63 00 04 */ lwz r3, 4(r3)
lbl_80338DD8:
/* 80338DD8 00335D38 28 03 00 00 */ cmplwi r3, 0
/* 80338DDC 00335D3C 40 82 FF E0 */ bne lbl_80338DBC
/* 80338DE0 00335D40 28 06 00 00 */ cmplwi r6, 0
/* 80338DE4 00335D44 38 60 00 00 */ li r3, 0
/* 80338DE8 00335D48 41 82 00 10 */ beq lbl_80338DF8
/* 80338DEC 00335D4C 80 06 00 10 */ lwz r0, 0x10(r6)
/* 80338DF0 00335D50 7C 04 00 00 */ cmpw r4, r0
/* 80338DF4 00335D54 40 80 00 08 */ bge lbl_80338DFC
lbl_80338DF8:
/* 80338DF8 00335D58 38 60 00 01 */ li r3, 1
lbl_80338DFC:
/* 80338DFC 00335D5C 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 80338E00 00335D60 41 82 00 08 */ beq lbl_80338E08
/* 80338E04 00335D64 38 C0 00 00 */ li r6, 0
lbl_80338E08:
/* 80338E08 00335D68 38 00 00 00 */ li r0, 0
/* 80338E0C 00335D6C 38 67 00 08 */ addi r3, r7, 8
/* 80338E10 00335D70 7C 06 00 40 */ cmplw r6, r0
/* 80338E14 00335D74 90 01 00 10 */ stw r0, 0x10(r1)
/* 80338E18 00335D78 90 61 00 14 */ stw r3, 0x14(r1)
/* 80338E1C 00335D7C 40 82 00 0C */ bne lbl_80338E28
/* 80338E20 00335D80 7C 03 18 40 */ cmplw r3, r3
/* 80338E24 00335D84 41 82 00 08 */ beq lbl_80338E2C
lbl_80338E28:
/* 80338E28 00335D88 38 00 00 01 */ li r0, 1
lbl_80338E2C:
/* 80338E2C 00335D8C 54 00 06 3F */ clrlwi. r0, r0, 0x18
/* 80338E30 00335D90 40 82 00 20 */ bne lbl_80338E50
/* 80338E34 00335D94 90 81 00 08 */ stw r4, 8(r1)
/* 80338E38 00335D98 7C E4 3B 78 */ mr r4, r7
/* 80338E3C 00335D9C 38 61 00 18 */ addi r3, r1, 0x18
/* 80338E40 00335DA0 38 C1 00 08 */ addi r6, r1, 8
/* 80338E44 00335DA4 90 A1 00 0C */ stw r5, 0xc(r1)
/* 80338E48 00335DA8 80 A7 00 10 */ lwz r5, 0x10(r7)
/* 80338E4C 00335DAC 48 00 01 85 */ bl sub_80338fd0
lbl_80338E50:
/* 80338E50 00335DB0 80 01 00 34 */ lwz r0, 0x34(r1)
/* 80338E54 00335DB4 7C 08 03 A6 */ mtlr r0
/* 80338E58 00335DB8 38 21 00 30 */ addi r1, r1, 0x30
/* 80338E5C 00335DBC 4E 80 00 20 */ blr
.global sub_80338e60
sub_80338e60:
/* 80338E60 00335DC0 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 80338E64 00335DC4 7C 08 02 A6 */ mflr r0
/* 80338E68 00335DC8 90 01 00 14 */ stw r0, 0x14(r1)
/* 80338E6C 00335DCC 93 E1 00 0C */ stw r31, 0xc(r1)
/* 80338E70 00335DD0 7C 9F 23 78 */ mr r31, r4
/* 80338E74 00335DD4 93 C1 00 08 */ stw r30, 8(r1)
/* 80338E78 00335DD8 7C 7E 1B 79 */ or. r30, r3, r3
/* 80338E7C 00335DDC 41 82 00 80 */ beq lbl_80338EFC
/* 80338E80 00335DE0 34 1E 00 14 */ addic. r0, r30, 0x14
/* 80338E84 00335DE4 41 82 00 34 */ beq lbl_80338EB8
/* 80338E88 00335DE8 34 1E 00 14 */ addic. r0, r30, 0x14
/* 80338E8C 00335DEC 41 82 00 2C */ beq lbl_80338EB8
/* 80338E90 00335DF0 80 9E 00 24 */ lwz r4, 0x24(r30)
/* 80338E94 00335DF4 28 04 00 00 */ cmplwi r4, 0
/* 80338E98 00335DF8 41 82 00 0C */ beq lbl_80338EA4
/* 80338E9C 00335DFC 38 7E 00 14 */ addi r3, r30, 0x14
/* 80338EA0 00335E00 48 00 03 69 */ bl sub_80339208
lbl_80338EA4:
/* 80338EA4 00335E04 38 00 00 00 */ li r0, 0
/* 80338EA8 00335E08 90 1E 00 24 */ stw r0, 0x24(r30)
/* 80338EAC 00335E0C 90 1E 00 1C */ stw r0, 0x1c(r30)
/* 80338EB0 00335E10 90 1E 00 20 */ stw r0, 0x20(r30)
/* 80338EB4 00335E14 90 1E 00 18 */ stw r0, 0x18(r30)
lbl_80338EB8:
/* 80338EB8 00335E18 28 1E 00 00 */ cmplwi r30, 0
/* 80338EBC 00335E1C 41 82 00 30 */ beq lbl_80338EEC
/* 80338EC0 00335E20 41 82 00 2C */ beq lbl_80338EEC
/* 80338EC4 00335E24 80 9E 00 10 */ lwz r4, 0x10(r30)
/* 80338EC8 00335E28 28 04 00 00 */ cmplwi r4, 0
/* 80338ECC 00335E2C 41 82 00 0C */ beq lbl_80338ED8
/* 80338ED0 00335E30 7F C3 F3 78 */ mr r3, r30
/* 80338ED4 00335E34 48 00 00 95 */ bl sub_80338f68
lbl_80338ED8:
/* 80338ED8 00335E38 38 00 00 00 */ li r0, 0
/* 80338EDC 00335E3C 90 1E 00 10 */ stw r0, 0x10(r30)
/* 80338EE0 00335E40 90 1E 00 08 */ stw r0, 8(r30)
/* 80338EE4 00335E44 90 1E 00 0C */ stw r0, 0xc(r30)
/* 80338EE8 00335E48 90 1E 00 04 */ stw r0, 4(r30)
lbl_80338EEC:
/* 80338EEC 00335E4C 7F E0 07 35 */ extsh. r0, r31
/* 80338EF0 00335E50 40 81 00 0C */ ble lbl_80338EFC
/* 80338EF4 00335E54 7F C3 F3 78 */ mr r3, r30
/* 80338EF8 00335E58 4B FD CA 39 */ bl Free__7CMemoryFPCv
lbl_80338EFC:
/* 80338EFC 00335E5C 80 01 00 14 */ lwz r0, 0x14(r1)
/* 80338F00 00335E60 7F C3 F3 78 */ mr r3, r30
/* 80338F04 00335E64 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 80338F08 00335E68 83 C1 00 08 */ lwz r30, 8(r1)
/* 80338F0C 00335E6C 7C 08 03 A6 */ mtlr r0
/* 80338F10 00335E70 38 21 00 10 */ addi r1, r1, 0x10
/* 80338F14 00335E74 4E 80 00 20 */ blr
.global __ct__11CFactoryMgrFv
__ct__11CFactoryMgrFv:
/* 80338F18 00335E78 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 80338F1C 00335E7C 38 A0 00 00 */ li r5, 0
/* 80338F20 00335E80 88 81 00 0C */ lbz r4, 0xc(r1)
/* 80338F24 00335E84 88 01 00 14 */ lbz r0, 0x14(r1)
/* 80338F28 00335E88 98 83 00 00 */ stb r4, 0(r3)
/* 80338F2C 00335E8C 88 81 00 08 */ lbz r4, 8(r1)
/* 80338F30 00335E90 98 03 00 01 */ stb r0, 1(r3)
/* 80338F34 00335E94 88 01 00 10 */ lbz r0, 0x10(r1)
/* 80338F38 00335E98 90 A3 00 04 */ stw r5, 4(r3)
/* 80338F3C 00335E9C 90 A3 00 08 */ stw r5, 8(r3)
/* 80338F40 00335EA0 90 A3 00 0C */ stw r5, 0xc(r3)
/* 80338F44 00335EA4 90 A3 00 10 */ stw r5, 0x10(r3)
/* 80338F48 00335EA8 98 83 00 14 */ stb r4, 0x14(r3)
/* 80338F4C 00335EAC 98 03 00 15 */ stb r0, 0x15(r3)
/* 80338F50 00335EB0 90 A3 00 18 */ stw r5, 0x18(r3)
/* 80338F54 00335EB4 90 A3 00 1C */ stw r5, 0x1c(r3)
/* 80338F58 00335EB8 90 A3 00 20 */ stw r5, 0x20(r3)
/* 80338F5C 00335EBC 90 A3 00 24 */ stw r5, 0x24(r3)
/* 80338F60 00335EC0 38 21 00 20 */ addi r1, r1, 0x20
/* 80338F64 00335EC4 4E 80 00 20 */ blr
.global sub_80338f68
sub_80338f68:
/* 80338F68 00335EC8 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 80338F6C 00335ECC 7C 08 02 A6 */ mflr r0
/* 80338F70 00335ED0 90 01 00 14 */ stw r0, 0x14(r1)
/* 80338F74 00335ED4 93 E1 00 0C */ stw r31, 0xc(r1)
/* 80338F78 00335ED8 7C 9F 23 78 */ mr r31, r4
/* 80338F7C 00335EDC 93 C1 00 08 */ stw r30, 8(r1)
/* 80338F80 00335EE0 7C 7E 1B 78 */ mr r30, r3
/* 80338F84 00335EE4 80 84 00 00 */ lwz r4, 0(r4)
/* 80338F88 00335EE8 28 04 00 00 */ cmplwi r4, 0
/* 80338F8C 00335EEC 41 82 00 08 */ beq lbl_80338F94
/* 80338F90 00335EF0 4B FF FF D9 */ bl sub_80338f68
lbl_80338F94:
/* 80338F94 00335EF4 80 9F 00 04 */ lwz r4, 4(r31)
/* 80338F98 00335EF8 28 04 00 00 */ cmplwi r4, 0
/* 80338F9C 00335EFC 41 82 00 0C */ beq lbl_80338FA8
/* 80338FA0 00335F00 7F C3 F3 78 */ mr r3, r30
/* 80338FA4 00335F04 4B FF FF C5 */ bl sub_80338f68
lbl_80338FA8:
/* 80338FA8 00335F08 28 1F 00 00 */ cmplwi r31, 0
/* 80338FAC 00335F0C 41 82 00 0C */ beq lbl_80338FB8
/* 80338FB0 00335F10 7F E3 FB 78 */ mr r3, r31
/* 80338FB4 00335F14 4B FD C9 7D */ bl Free__7CMemoryFPCv
lbl_80338FB8:
/* 80338FB8 00335F18 80 01 00 14 */ lwz r0, 0x14(r1)
/* 80338FBC 00335F1C 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 80338FC0 00335F20 83 C1 00 08 */ lwz r30, 8(r1)
/* 80338FC4 00335F24 7C 08 03 A6 */ mtlr r0
/* 80338FC8 00335F28 38 21 00 10 */ addi r1, r1, 0x10
/* 80338FCC 00335F2C 4E 80 00 20 */ blr
.global sub_80338fd0
sub_80338fd0:
/* 80338FD0 00335F30 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 80338FD4 00335F34 7C 08 02 A6 */ mflr r0
/* 80338FD8 00335F38 28 05 00 00 */ cmplwi r5, 0
/* 80338FDC 00335F3C 90 01 00 24 */ stw r0, 0x24(r1)
/* 80338FE0 00335F40 BF 61 00 0C */ stmw r27, 0xc(r1)
/* 80338FE4 00335F44 7C 7C 1B 78 */ mr r28, r3
/* 80338FE8 00335F48 7C 9D 23 78 */ mr r29, r4
/* 80338FEC 00335F4C 7C DE 33 78 */ mr r30, r6
/* 80338FF0 00335F50 40 82 00 88 */ bne lbl_80339078
/* 80338FF4 00335F54 3C 80 80 3D */ lis r4, lbl_803D7A20@ha
/* 80338FF8 00335F58 38 60 00 18 */ li r3, 0x18
/* 80338FFC 00335F5C 38 84 7A 20 */ addi r4, r4, lbl_803D7A20@l
/* 80339000 00335F60 38 A0 00 00 */ li r5, 0
/* 80339004 00335F64 4B FD C8 15 */ bl __nwa__FUlPCcPCc
/* 80339008 00335F68 28 03 00 00 */ cmplwi r3, 0
/* 8033900C 00335F6C 41 82 00 30 */ beq lbl_8033903C
/* 80339010 00335F70 38 00 00 00 */ li r0, 0
/* 80339014 00335F74 34 83 00 10 */ addic. r4, r3, 0x10
/* 80339018 00335F78 90 03 00 00 */ stw r0, 0(r3)
/* 8033901C 00335F7C 90 03 00 04 */ stw r0, 4(r3)
/* 80339020 00335F80 90 03 00 08 */ stw r0, 8(r3)
/* 80339024 00335F84 90 03 00 0C */ stw r0, 0xc(r3)
/* 80339028 00335F88 41 82 00 14 */ beq lbl_8033903C
/* 8033902C 00335F8C 80 1E 00 00 */ lwz r0, 0(r30)
/* 80339030 00335F90 90 04 00 00 */ stw r0, 0(r4)
/* 80339034 00335F94 80 1E 00 04 */ lwz r0, 4(r30)
/* 80339038 00335F98 90 04 00 04 */ stw r0, 4(r4)
lbl_8033903C:
/* 8033903C 00335F9C 90 7D 00 10 */ stw r3, 0x10(r29)
/* 80339040 00335FA0 38 1D 00 08 */ addi r0, r29, 8
/* 80339044 00335FA4 80 7D 00 04 */ lwz r3, 4(r29)
/* 80339048 00335FA8 38 63 00 01 */ addi r3, r3, 1
/* 8033904C 00335FAC 90 7D 00 04 */ stw r3, 4(r29)
/* 80339050 00335FB0 80 7D 00 10 */ lwz r3, 0x10(r29)
/* 80339054 00335FB4 90 7D 00 08 */ stw r3, 8(r29)
/* 80339058 00335FB8 80 7D 00 10 */ lwz r3, 0x10(r29)
/* 8033905C 00335FBC 90 7D 00 0C */ stw r3, 0xc(r29)
/* 80339060 00335FC0 80 7D 00 10 */ lwz r3, 0x10(r29)
/* 80339064 00335FC4 90 7C 00 00 */ stw r3, 0(r28)
/* 80339068 00335FC8 90 1C 00 04 */ stw r0, 4(r28)
/* 8033906C 00335FCC 88 0D 9D 43 */ lbz r0, lbl_805A8903@sda21(r13)
/* 80339070 00335FD0 98 1C 00 08 */ stb r0, 8(r28)
/* 80339074 00335FD4 48 00 01 80 */ b lbl_803391F4
lbl_80339078:
/* 80339078 00335FD8 7C BF 2B 78 */ mr r31, r5
/* 8033907C 00335FDC 3B 60 00 00 */ li r27, 0
/* 80339080 00335FE0 48 00 01 40 */ b lbl_803391C0
lbl_80339084:
/* 80339084 00335FE4 80 9E 00 00 */ lwz r4, 0(r30)
/* 80339088 00335FE8 80 BF 00 10 */ lwz r5, 0x10(r31)
/* 8033908C 00335FEC 7C A0 22 78 */ xor r0, r5, r4
/* 80339090 00335FF0 7C 03 0E 70 */ srawi r3, r0, 1
/* 80339094 00335FF4 7C 00 28 38 */ and r0, r0, r5
/* 80339098 00335FF8 7C 00 18 50 */ subf r0, r0, r3
/* 8033909C 00335FFC 54 00 0F FF */ rlwinm. r0, r0, 1, 0x1f, 0x1f
/* 803390A0 00336000 40 82 00 24 */ bne lbl_803390C4
/* 803390A4 00336004 7C 05 20 00 */ cmpw r5, r4
/* 803390A8 00336008 41 80 00 1C */ blt lbl_803390C4
/* 803390AC 0033600C 93 FC 00 00 */ stw r31, 0(r28)
/* 803390B0 00336010 38 1D 00 08 */ addi r0, r29, 8
/* 803390B4 00336014 90 1C 00 04 */ stw r0, 4(r28)
/* 803390B8 00336018 88 0D 9D 44 */ lbz r0, lbl_805A8904@sda21(r13)
/* 803390BC 0033601C 98 1C 00 08 */ stb r0, 8(r28)
/* 803390C0 00336020 48 00 01 34 */ b lbl_803391F4
lbl_803390C4:
/* 803390C4 00336024 28 00 00 00 */ cmplwi r0, 0
/* 803390C8 00336028 41 82 00 80 */ beq lbl_80339148
/* 803390CC 0033602C 80 1F 00 00 */ lwz r0, 0(r31)
/* 803390D0 00336030 28 00 00 00 */ cmplwi r0, 0
/* 803390D4 00336034 40 82 00 6C */ bne lbl_80339140
/* 803390D8 00336038 3C 80 80 3D */ lis r4, lbl_803D7A20@ha
/* 803390DC 0033603C 38 60 00 18 */ li r3, 0x18
/* 803390E0 00336040 38 84 7A 20 */ addi r4, r4, lbl_803D7A20@l
/* 803390E4 00336044 38 A0 00 00 */ li r5, 0
/* 803390E8 00336048 4B FD C7 31 */ bl __nwa__FUlPCcPCc
/* 803390EC 0033604C 28 03 00 00 */ cmplwi r3, 0
/* 803390F0 00336050 41 82 00 34 */ beq lbl_80339124
/* 803390F4 00336054 38 80 00 00 */ li r4, 0
/* 803390F8 00336058 34 A3 00 10 */ addic. r5, r3, 0x10
/* 803390FC 0033605C 90 83 00 00 */ stw r4, 0(r3)
/* 80339100 00336060 38 00 00 01 */ li r0, 1
/* 80339104 00336064 90 83 00 04 */ stw r4, 4(r3)
/* 80339108 00336068 93 E3 00 08 */ stw r31, 8(r3)
/* 8033910C 0033606C 90 03 00 0C */ stw r0, 0xc(r3)
/* 80339110 00336070 41 82 00 14 */ beq lbl_80339124
/* 80339114 00336074 80 1E 00 00 */ lwz r0, 0(r30)
/* 80339118 00336078 90 05 00 00 */ stw r0, 0(r5)
/* 8033911C 0033607C 80 1E 00 04 */ lwz r0, 4(r30)
/* 80339120 00336080 90 05 00 04 */ stw r0, 4(r5)
lbl_80339124:
/* 80339124 00336084 90 7F 00 00 */ stw r3, 0(r31)
/* 80339128 00336088 7C 7B 1B 78 */ mr r27, r3
/* 8033912C 0033608C 80 1D 00 08 */ lwz r0, 8(r29)
/* 80339130 00336090 7C 1F 00 40 */ cmplw r31, r0
/* 80339134 00336094 40 82 00 8C */ bne lbl_803391C0
/* 80339138 00336098 90 7D 00 08 */ stw r3, 8(r29)
/* 8033913C 0033609C 48 00 00 84 */ b lbl_803391C0
lbl_80339140:
/* 80339140 003360A0 7C 1F 03 78 */ mr r31, r0
/* 80339144 003360A4 48 00 00 7C */ b lbl_803391C0
lbl_80339148:
/* 80339148 003360A8 80 1F 00 04 */ lwz r0, 4(r31)
/* 8033914C 003360AC 28 00 00 00 */ cmplwi r0, 0
/* 80339150 003360B0 40 82 00 6C */ bne lbl_803391BC
/* 80339154 003360B4 3C 80 80 3D */ lis r4, lbl_803D7A20@ha
/* 80339158 003360B8 38 60 00 18 */ li r3, 0x18
/* 8033915C 003360BC 38 84 7A 20 */ addi r4, r4, lbl_803D7A20@l
/* 80339160 003360C0 38 A0 00 00 */ li r5, 0
/* 80339164 003360C4 4B FD C6 B5 */ bl __nwa__FUlPCcPCc
/* 80339168 003360C8 28 03 00 00 */ cmplwi r3, 0
/* 8033916C 003360CC 41 82 00 34 */ beq lbl_803391A0
/* 80339170 003360D0 38 80 00 00 */ li r4, 0
/* 80339174 003360D4 34 A3 00 10 */ addic. r5, r3, 0x10
/* 80339178 003360D8 90 83 00 00 */ stw r4, 0(r3)
/* 8033917C 003360DC 38 00 00 01 */ li r0, 1
/* 80339180 003360E0 90 83 00 04 */ stw r4, 4(r3)
/* 80339184 003360E4 93 E3 00 08 */ stw r31, 8(r3)
/* 80339188 003360E8 90 03 00 0C */ stw r0, 0xc(r3)
/* 8033918C 003360EC 41 82 00 14 */ beq lbl_803391A0
/* 80339190 003360F0 80 1E 00 00 */ lwz r0, 0(r30)
/* 80339194 003360F4 90 05 00 00 */ stw r0, 0(r5)
/* 80339198 003360F8 80 1E 00 04 */ lwz r0, 4(r30)
/* 8033919C 003360FC 90 05 00 04 */ stw r0, 4(r5)
lbl_803391A0:
/* 803391A0 00336100 90 7F 00 04 */ stw r3, 4(r31)
/* 803391A4 00336104 7C 7B 1B 78 */ mr r27, r3
/* 803391A8 00336108 80 1D 00 0C */ lwz r0, 0xc(r29)
/* 803391AC 0033610C 7C 1F 00 40 */ cmplw r31, r0
/* 803391B0 00336110 40 82 00 10 */ bne lbl_803391C0
/* 803391B4 00336114 90 7D 00 0C */ stw r3, 0xc(r29)
/* 803391B8 00336118 48 00 00 08 */ b lbl_803391C0
lbl_803391BC:
/* 803391BC 0033611C 7C 1F 03 78 */ mr r31, r0
lbl_803391C0:
/* 803391C0 00336120 28 1B 00 00 */ cmplwi r27, 0
/* 803391C4 00336124 41 82 FE C0 */ beq lbl_80339084
/* 803391C8 00336128 80 BD 00 04 */ lwz r5, 4(r29)
/* 803391CC 0033612C 7F 64 DB 78 */ mr r4, r27
/* 803391D0 00336130 38 7D 00 08 */ addi r3, r29, 8
/* 803391D4 00336134 38 05 00 01 */ addi r0, r5, 1
/* 803391D8 00336138 90 1D 00 04 */ stw r0, 4(r29)
/* 803391DC 0033613C 48 00 38 BD */ bl rbtree_rebalance__4rstlFPvPv
/* 803391E0 00336140 93 7C 00 00 */ stw r27, 0(r28)
/* 803391E4 00336144 38 1D 00 08 */ addi r0, r29, 8
/* 803391E8 00336148 90 1C 00 04 */ stw r0, 4(r28)
/* 803391EC 0033614C 88 0D 9D 45 */ lbz r0, lbl_805A8905@sda21(r13)
/* 803391F0 00336150 98 1C 00 08 */ stb r0, 8(r28)
lbl_803391F4:
/* 803391F4 00336154 BB 61 00 0C */ lmw r27, 0xc(r1)
/* 803391F8 00336158 80 01 00 24 */ lwz r0, 0x24(r1)
/* 803391FC 0033615C 7C 08 03 A6 */ mtlr r0
/* 80339200 00336160 38 21 00 20 */ addi r1, r1, 0x20
/* 80339204 00336164 4E 80 00 20 */ blr
.global sub_80339208
sub_80339208:
/* 80339208 00336168 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 8033920C 0033616C 7C 08 02 A6 */ mflr r0
/* 80339210 00336170 90 01 00 14 */ stw r0, 0x14(r1)
/* 80339214 00336174 93 E1 00 0C */ stw r31, 0xc(r1)
/* 80339218 00336178 7C 9F 23 78 */ mr r31, r4
/* 8033921C 0033617C 93 C1 00 08 */ stw r30, 8(r1)
/* 80339220 00336180 7C 7E 1B 78 */ mr r30, r3
/* 80339224 00336184 80 84 00 00 */ lwz r4, 0(r4)
/* 80339228 00336188 28 04 00 00 */ cmplwi r4, 0
/* 8033922C 0033618C 41 82 00 08 */ beq lbl_80339234
/* 80339230 00336190 4B FF FF D9 */ bl sub_80339208
lbl_80339234:
/* 80339234 00336194 80 9F 00 04 */ lwz r4, 4(r31)
/* 80339238 00336198 28 04 00 00 */ cmplwi r4, 0
/* 8033923C 0033619C 41 82 00 0C */ beq lbl_80339248
/* 80339240 003361A0 7F C3 F3 78 */ mr r3, r30
/* 80339244 003361A4 4B FF FF C5 */ bl sub_80339208
lbl_80339248:
/* 80339248 003361A8 28 1F 00 00 */ cmplwi r31, 0
/* 8033924C 003361AC 41 82 00 0C */ beq lbl_80339258
/* 80339250 003361B0 7F E3 FB 78 */ mr r3, r31
/* 80339254 003361B4 4B FD C6 DD */ bl Free__7CMemoryFPCv
lbl_80339258:
/* 80339258 003361B8 80 01 00 14 */ lwz r0, 0x14(r1)
/* 8033925C 003361BC 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 80339260 003361C0 83 C1 00 08 */ lwz r30, 8(r1)
/* 80339264 003361C4 7C 08 03 A6 */ mtlr r0
/* 80339268 003361C8 38 21 00 10 */ addi r1, r1, 0x10
/* 8033926C 003361CC 4E 80 00 20 */ blr
.global sub_80339270
sub_80339270:
/* 80339270 003361D0 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 80339274 003361D4 7C 08 02 A6 */ mflr r0
/* 80339278 003361D8 28 05 00 00 */ cmplwi r5, 0
/* 8033927C 003361DC 90 01 00 24 */ stw r0, 0x24(r1)
/* 80339280 003361E0 BF 61 00 0C */ stmw r27, 0xc(r1)
/* 80339284 003361E4 7C 7C 1B 78 */ mr r28, r3
/* 80339288 003361E8 7C 9D 23 78 */ mr r29, r4
/* 8033928C 003361EC 7C DE 33 78 */ mr r30, r6
/* 80339290 003361F0 40 82 00 88 */ bne lbl_80339318
/* 80339294 003361F4 3C 80 80 3D */ lis r4, lbl_803D7A20@ha
/* 80339298 003361F8 38 60 00 18 */ li r3, 0x18
/* 8033929C 003361FC 38 84 7A 20 */ addi r4, r4, lbl_803D7A20@l
/* 803392A0 00336200 38 A0 00 00 */ li r5, 0
/* 803392A4 00336204 4B FD C5 75 */ bl __nwa__FUlPCcPCc
/* 803392A8 00336208 28 03 00 00 */ cmplwi r3, 0
/* 803392AC 0033620C 41 82 00 30 */ beq lbl_803392DC
/* 803392B0 00336210 38 00 00 00 */ li r0, 0
/* 803392B4 00336214 34 83 00 10 */ addic. r4, r3, 0x10
/* 803392B8 00336218 90 03 00 00 */ stw r0, 0(r3)
/* 803392BC 0033621C 90 03 00 04 */ stw r0, 4(r3)
/* 803392C0 00336220 90 03 00 08 */ stw r0, 8(r3)
/* 803392C4 00336224 90 03 00 0C */ stw r0, 0xc(r3)
/* 803392C8 00336228 41 82 00 14 */ beq lbl_803392DC
/* 803392CC 0033622C 80 1E 00 00 */ lwz r0, 0(r30)
/* 803392D0 00336230 90 04 00 00 */ stw r0, 0(r4)
/* 803392D4 00336234 80 1E 00 04 */ lwz r0, 4(r30)
/* 803392D8 00336238 90 04 00 04 */ stw r0, 4(r4)
lbl_803392DC:
/* 803392DC 0033623C 90 7D 00 10 */ stw r3, 0x10(r29)
/* 803392E0 00336240 38 1D 00 08 */ addi r0, r29, 8
/* 803392E4 00336244 80 7D 00 04 */ lwz r3, 4(r29)
/* 803392E8 00336248 38 63 00 01 */ addi r3, r3, 1
/* 803392EC 0033624C 90 7D 00 04 */ stw r3, 4(r29)
/* 803392F0 00336250 80 7D 00 10 */ lwz r3, 0x10(r29)
/* 803392F4 00336254 90 7D 00 08 */ stw r3, 8(r29)
/* 803392F8 00336258 80 7D 00 10 */ lwz r3, 0x10(r29)
/* 803392FC 0033625C 90 7D 00 0C */ stw r3, 0xc(r29)
/* 80339300 00336260 80 7D 00 10 */ lwz r3, 0x10(r29)
/* 80339304 00336264 90 7C 00 00 */ stw r3, 0(r28)
/* 80339308 00336268 90 1C 00 04 */ stw r0, 4(r28)
/* 8033930C 0033626C 88 0D 9D 40 */ lbz r0, lbl_805A8900@sda21(r13)
/* 80339310 00336270 98 1C 00 08 */ stb r0, 8(r28)
/* 80339314 00336274 48 00 01 80 */ b lbl_80339494
lbl_80339318:
/* 80339318 00336278 7C BF 2B 78 */ mr r31, r5
/* 8033931C 0033627C 3B 60 00 00 */ li r27, 0
/* 80339320 00336280 48 00 01 40 */ b lbl_80339460
lbl_80339324:
/* 80339324 00336284 80 9E 00 00 */ lwz r4, 0(r30)
/* 80339328 00336288 80 BF 00 10 */ lwz r5, 0x10(r31)
/* 8033932C 0033628C 7C A0 22 78 */ xor r0, r5, r4
/* 80339330 00336290 7C 03 0E 70 */ srawi r3, r0, 1
/* 80339334 00336294 7C 00 28 38 */ and r0, r0, r5
/* 80339338 00336298 7C 00 18 50 */ subf r0, r0, r3
/* 8033933C 0033629C 54 00 0F FF */ rlwinm. r0, r0, 1, 0x1f, 0x1f
/* 80339340 003362A0 40 82 00 24 */ bne lbl_80339364
/* 80339344 003362A4 7C 05 20 00 */ cmpw r5, r4
/* 80339348 003362A8 41 80 00 1C */ blt lbl_80339364
/* 8033934C 003362AC 93 FC 00 00 */ stw r31, 0(r28)
/* 80339350 003362B0 38 1D 00 08 */ addi r0, r29, 8
/* 80339354 003362B4 90 1C 00 04 */ stw r0, 4(r28)
/* 80339358 003362B8 88 0D 9D 41 */ lbz r0, lbl_805A8901@sda21(r13)
/* 8033935C 003362BC 98 1C 00 08 */ stb r0, 8(r28)
/* 80339360 003362C0 48 00 01 34 */ b lbl_80339494
lbl_80339364:
/* 80339364 003362C4 28 00 00 00 */ cmplwi r0, 0
/* 80339368 003362C8 41 82 00 80 */ beq lbl_803393E8
/* 8033936C 003362CC 80 1F 00 00 */ lwz r0, 0(r31)
/* 80339370 003362D0 28 00 00 00 */ cmplwi r0, 0
/* 80339374 003362D4 40 82 00 6C */ bne lbl_803393E0
/* 80339378 003362D8 3C 80 80 3D */ lis r4, lbl_803D7A20@ha
/* 8033937C 003362DC 38 60 00 18 */ li r3, 0x18
/* 80339380 003362E0 38 84 7A 20 */ addi r4, r4, lbl_803D7A20@l
/* 80339384 003362E4 38 A0 00 00 */ li r5, 0
/* 80339388 003362E8 4B FD C4 91 */ bl __nwa__FUlPCcPCc
/* 8033938C 003362EC 28 03 00 00 */ cmplwi r3, 0
/* 80339390 003362F0 41 82 00 34 */ beq lbl_803393C4
/* 80339394 003362F4 38 80 00 00 */ li r4, 0
/* 80339398 003362F8 34 A3 00 10 */ addic. r5, r3, 0x10
/* 8033939C 003362FC 90 83 00 00 */ stw r4, 0(r3)
/* 803393A0 00336300 38 00 00 01 */ li r0, 1
/* 803393A4 00336304 90 83 00 04 */ stw r4, 4(r3)
/* 803393A8 00336308 93 E3 00 08 */ stw r31, 8(r3)
/* 803393AC 0033630C 90 03 00 0C */ stw r0, 0xc(r3)
/* 803393B0 00336310 41 82 00 14 */ beq lbl_803393C4
/* 803393B4 00336314 80 1E 00 00 */ lwz r0, 0(r30)
/* 803393B8 00336318 90 05 00 00 */ stw r0, 0(r5)
/* 803393BC 0033631C 80 1E 00 04 */ lwz r0, 4(r30)
/* 803393C0 00336320 90 05 00 04 */ stw r0, 4(r5)
lbl_803393C4:
/* 803393C4 00336324 90 7F 00 00 */ stw r3, 0(r31)
/* 803393C8 00336328 7C 7B 1B 78 */ mr r27, r3
/* 803393CC 0033632C 80 1D 00 08 */ lwz r0, 8(r29)
/* 803393D0 00336330 7C 1F 00 40 */ cmplw r31, r0
/* 803393D4 00336334 40 82 00 8C */ bne lbl_80339460
/* 803393D8 00336338 90 7D 00 08 */ stw r3, 8(r29)
/* 803393DC 0033633C 48 00 00 84 */ b lbl_80339460
lbl_803393E0:
/* 803393E0 00336340 7C 1F 03 78 */ mr r31, r0
/* 803393E4 00336344 48 00 00 7C */ b lbl_80339460
lbl_803393E8:
/* 803393E8 00336348 80 1F 00 04 */ lwz r0, 4(r31)
/* 803393EC 0033634C 28 00 00 00 */ cmplwi r0, 0
/* 803393F0 00336350 40 82 00 6C */ bne lbl_8033945C
/* 803393F4 00336354 3C 80 80 3D */ lis r4, lbl_803D7A20@ha
/* 803393F8 00336358 38 60 00 18 */ li r3, 0x18
/* 803393FC 0033635C 38 84 7A 20 */ addi r4, r4, lbl_803D7A20@l
/* 80339400 00336360 38 A0 00 00 */ li r5, 0
/* 80339404 00336364 4B FD C4 15 */ bl __nwa__FUlPCcPCc
/* 80339408 00336368 28 03 00 00 */ cmplwi r3, 0
/* 8033940C 0033636C 41 82 00 34 */ beq lbl_80339440
/* 80339410 00336370 38 80 00 00 */ li r4, 0
/* 80339414 00336374 34 A3 00 10 */ addic. r5, r3, 0x10
/* 80339418 00336378 90 83 00 00 */ stw r4, 0(r3)
/* 8033941C 0033637C 38 00 00 01 */ li r0, 1
/* 80339420 00336380 90 83 00 04 */ stw r4, 4(r3)
/* 80339424 00336384 93 E3 00 08 */ stw r31, 8(r3)
/* 80339428 00336388 90 03 00 0C */ stw r0, 0xc(r3)
/* 8033942C 0033638C 41 82 00 14 */ beq lbl_80339440
/* 80339430 00336390 80 1E 00 00 */ lwz r0, 0(r30)
/* 80339434 00336394 90 05 00 00 */ stw r0, 0(r5)
/* 80339438 00336398 80 1E 00 04 */ lwz r0, 4(r30)
/* 8033943C 0033639C 90 05 00 04 */ stw r0, 4(r5)
lbl_80339440:
/* 80339440 003363A0 90 7F 00 04 */ stw r3, 4(r31)
/* 80339444 003363A4 7C 7B 1B 78 */ mr r27, r3
/* 80339448 003363A8 80 1D 00 0C */ lwz r0, 0xc(r29)
/* 8033944C 003363AC 7C 1F 00 40 */ cmplw r31, r0
/* 80339450 003363B0 40 82 00 10 */ bne lbl_80339460
/* 80339454 003363B4 90 7D 00 0C */ stw r3, 0xc(r29)
/* 80339458 003363B8 48 00 00 08 */ b lbl_80339460
lbl_8033945C:
/* 8033945C 003363BC 7C 1F 03 78 */ mr r31, r0
lbl_80339460:
/* 80339460 003363C0 28 1B 00 00 */ cmplwi r27, 0
/* 80339464 003363C4 41 82 FE C0 */ beq lbl_80339324
/* 80339468 003363C8 80 BD 00 04 */ lwz r5, 4(r29)
/* 8033946C 003363CC 7F 64 DB 78 */ mr r4, r27
/* 80339470 003363D0 38 7D 00 08 */ addi r3, r29, 8
/* 80339474 003363D4 38 05 00 01 */ addi r0, r5, 1
/* 80339478 003363D8 90 1D 00 04 */ stw r0, 4(r29)
/* 8033947C 003363DC 48 00 36 1D */ bl rbtree_rebalance__4rstlFPvPv
/* 80339480 003363E0 93 7C 00 00 */ stw r27, 0(r28)
/* 80339484 003363E4 38 1D 00 08 */ addi r0, r29, 8
/* 80339488 003363E8 90 1C 00 04 */ stw r0, 4(r28)
/* 8033948C 003363EC 88 0D 9D 42 */ lbz r0, lbl_805A8902@sda21(r13)
/* 80339490 003363F0 98 1C 00 08 */ stb r0, 8(r28)
lbl_80339494:
/* 80339494 003363F4 BB 61 00 0C */ lmw r27, 0xc(r1)
/* 80339498 003363F8 80 01 00 24 */ lwz r0, 0x24(r1)
/* 8033949C 003363FC 7C 08 03 A6 */ mtlr r0
/* 803394A0 00336400 38 21 00 20 */ addi r1, r1, 0x20
/* 803394A4 00336404 4E 80 00 20 */ blr
.section .rodata
.global lbl_803D7988
lbl_803D7988:
# ROM: 0x3D4988
.4byte 0x434C534E
.4byte 0x434D444C
.4byte 0x43534B52
.4byte 0x414E494D
.4byte 0x43494E46
.4byte 0x54585452
.4byte 0x504C5454
.4byte 0x464F4E54
.4byte 0x414E4353
.4byte 0x45564E54
.4byte 0x4D414446
.4byte 0x4D4C564C
.4byte 0x4D524541
.4byte 0x4D415057
.4byte 0x4D415041
.4byte 0x53415657
.4byte 0x53415641
.4byte 0x50415254
.4byte 0x57505343
.4byte 0x53574843
.4byte 0x44505343
.4byte 0x454C5343
.4byte 0x43525343
.4byte 0x4146534D
.4byte 0x44434C4E
.4byte 0x41475343
.4byte 0x4154424C
.4byte 0x43534E47
.4byte 0x53545247
.4byte 0x5343414E
.4byte 0x50415448
.4byte 0x44475250
.4byte 0x484D4150
.4byte 0x4354574B
.4byte 0x46524D45
.4byte 0x48494E54
.4byte 0x4D415055
.4byte 0x44554D42
.global lbl_803D7A20
lbl_803D7A20:
# ROM: 0x3D4A20
.asciz "??(??)"
.balign 4