prime/asm/Kyoto/CFactoryMgr.s

1136 lines
52 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" # 0x80003640 - 0x803CB1C0
.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__15CMemoryInStreamFPvUlQ215CMemoryInStream10EOwnerShip
/* 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__15CMemoryInStreamFPvUlQ215CMemoryInStream10EOwnerShip
/* 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__15CMemoryInStreamFPvUlQ215CMemoryInStream10EOwnerShip
/* 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