.include "macros.inc" .section .text, "ax" # 0x80003640 - 0x803CB1C0 .global FStringTableFactory__FRC10SObjectTagR12CInputStreamRC15CVParamTransfer FStringTableFactory__FRC10SObjectTagR12CInputStreamRC15CVParamTransfer: /* 80356500 00353460 94 21 FF F0 */ stwu r1, -0x10(r1) /* 80356504 00353464 7C 08 02 A6 */ mflr r0 /* 80356508 00353468 3C 80 80 3E */ lis r4, lbl_803D8320@ha /* 8035650C 0035346C 90 01 00 14 */ stw r0, 0x14(r1) /* 80356510 00353470 38 84 83 20 */ addi r4, r4, lbl_803D8320@l /* 80356514 00353474 93 E1 00 0C */ stw r31, 0xc(r1) /* 80356518 00353478 7C BF 2B 78 */ mr r31, r5 /* 8035651C 0035347C 38 A0 00 00 */ li r5, 0 /* 80356520 00353480 93 C1 00 08 */ stw r30, 8(r1) /* 80356524 00353484 7C 7E 1B 78 */ mr r30, r3 /* 80356528 00353488 38 60 00 08 */ li r3, 8 /* 8035652C 0035348C 4B FB F3 41 */ bl __nw__FUlPCcPCc /* 80356530 00353490 7C 64 1B 79 */ or. r4, r3, r3 /* 80356534 00353494 41 82 00 10 */ beq lbl_80356544 /* 80356538 00353498 7F E4 FB 78 */ mr r4, r31 /* 8035653C 0035349C 48 00 01 F5 */ bl __ct__12CStringTableFR12CInputStream /* 80356540 003534A0 7C 64 1B 78 */ mr r4, r3 lbl_80356544: /* 80356544 003534A4 7F C3 F3 78 */ mr r3, r30 /* 80356548 003534A8 48 00 00 1D */ bl sub_80356564 /* 8035654C 003534AC 80 01 00 14 */ lwz r0, 0x14(r1) /* 80356550 003534B0 83 E1 00 0C */ lwz r31, 0xc(r1) /* 80356554 003534B4 83 C1 00 08 */ lwz r30, 8(r1) /* 80356558 003534B8 7C 08 03 A6 */ mtlr r0 /* 8035655C 003534BC 38 21 00 10 */ addi r1, r1, 0x10 /* 80356560 003534C0 4E 80 00 20 */ blr .global sub_80356564 sub_80356564: /* 80356564 003534C4 94 21 FF E0 */ stwu r1, -0x20(r1) /* 80356568 003534C8 7C 08 02 A6 */ mflr r0 /* 8035656C 003534CC 90 01 00 24 */ stw r0, 0x24(r1) /* 80356570 003534D0 7C 04 00 D0 */ neg r0, r4 /* 80356574 003534D4 7C 00 23 78 */ or r0, r0, r4 /* 80356578 003534D8 93 E1 00 1C */ stw r31, 0x1c(r1) /* 8035657C 003534DC 54 00 0F FE */ srwi r0, r0, 0x1f /* 80356580 003534E0 93 C1 00 18 */ stw r30, 0x18(r1) /* 80356584 003534E4 7C 7E 1B 78 */ mr r30, r3 /* 80356588 003534E8 38 61 00 08 */ addi r3, r1, 8 /* 8035658C 003534EC 90 81 00 14 */ stw r4, 0x14(r1) /* 80356590 003534F0 38 81 00 10 */ addi r4, r1, 0x10 /* 80356594 003534F4 98 01 00 10 */ stb r0, 0x10(r1) /* 80356598 003534F8 48 00 00 9D */ bl sub_80356634 /* 8035659C 003534FC 80 61 00 0C */ lwz r3, 0xc(r1) /* 803565A0 00353500 38 00 00 00 */ li r0, 0 /* 803565A4 00353504 98 01 00 08 */ stb r0, 8(r1) /* 803565A8 00353508 7C 03 00 D0 */ neg r0, r3 /* 803565AC 0035350C 7C 00 1B 78 */ or r0, r0, r3 /* 803565B0 00353510 54 00 0F FE */ srwi r0, r0, 0x1f /* 803565B4 00353514 98 1E 00 00 */ stb r0, 0(r30) /* 803565B8 00353518 90 7E 00 04 */ stw r3, 4(r30) /* 803565BC 0035351C 88 01 00 08 */ lbz r0, 8(r1) /* 803565C0 00353520 28 00 00 00 */ cmplwi r0, 0 /* 803565C4 00353524 41 82 00 24 */ beq lbl_803565E8 /* 803565C8 00353528 80 61 00 0C */ lwz r3, 0xc(r1) /* 803565CC 0035352C 28 03 00 00 */ cmplwi r3, 0 /* 803565D0 00353530 41 82 00 18 */ beq lbl_803565E8 /* 803565D4 00353534 81 83 00 00 */ lwz r12, 0(r3) /* 803565D8 00353538 38 80 00 01 */ li r4, 1 /* 803565DC 0035353C 81 8C 00 08 */ lwz r12, 8(r12) /* 803565E0 00353540 7D 89 03 A6 */ mtctr r12 /* 803565E4 00353544 4E 80 04 21 */ bctrl lbl_803565E8: /* 803565E8 00353548 88 01 00 10 */ lbz r0, 0x10(r1) /* 803565EC 0035354C 28 00 00 00 */ cmplwi r0, 0 /* 803565F0 00353550 41 82 00 28 */ beq lbl_80356618 /* 803565F4 00353554 83 E1 00 14 */ lwz r31, 0x14(r1) /* 803565F8 00353558 28 1F 00 00 */ cmplwi r31, 0 /* 803565FC 0035355C 41 82 00 1C */ beq lbl_80356618 /* 80356600 00353560 34 1F 00 04 */ addic. r0, r31, 4 /* 80356604 00353564 41 82 00 0C */ beq lbl_80356610 /* 80356608 00353568 80 7F 00 04 */ lwz r3, 4(r31) /* 8035660C 0035356C 4B FB F3 25 */ bl Free__7CMemoryFPCv lbl_80356610: /* 80356610 00353570 7F E3 FB 78 */ mr r3, r31 /* 80356614 00353574 4B FB F3 1D */ bl Free__7CMemoryFPCv lbl_80356618: /* 80356618 00353578 80 01 00 24 */ lwz r0, 0x24(r1) /* 8035661C 0035357C 7F C3 F3 78 */ mr r3, r30 /* 80356620 00353580 83 E1 00 1C */ lwz r31, 0x1c(r1) /* 80356624 00353584 83 C1 00 18 */ lwz r30, 0x18(r1) /* 80356628 00353588 7C 08 03 A6 */ mtlr r0 /* 8035662C 0035358C 38 21 00 20 */ addi r1, r1, 0x20 /* 80356630 00353590 4E 80 00 20 */ blr .global sub_80356634 sub_80356634: /* 80356634 00353594 94 21 FF F0 */ stwu r1, -0x10(r1) /* 80356638 00353598 7C 08 02 A6 */ mflr r0 /* 8035663C 0035359C 90 01 00 14 */ stw r0, 0x14(r1) /* 80356640 003535A0 93 E1 00 0C */ stw r31, 0xc(r1) /* 80356644 003535A4 7C 7F 1B 78 */ mr r31, r3 /* 80356648 003535A8 48 00 00 19 */ bl sub_80356660 /* 8035664C 003535AC 80 01 00 14 */ lwz r0, 0x14(r1) /* 80356650 003535B0 83 E1 00 0C */ lwz r31, 0xc(r1) /* 80356654 003535B4 7C 08 03 A6 */ mtlr r0 /* 80356658 003535B8 38 21 00 10 */ addi r1, r1, 0x10 /* 8035665C 003535BC 4E 80 00 20 */ blr .global sub_80356660 sub_80356660: /* 80356660 003535C0 94 21 FF F0 */ stwu r1, -0x10(r1) /* 80356664 003535C4 7C 08 02 A6 */ mflr r0 /* 80356668 003535C8 3C A0 80 3E */ lis r5, lbl_803D8320@ha /* 8035666C 003535CC 90 01 00 14 */ stw r0, 0x14(r1) /* 80356670 003535D0 38 05 83 20 */ addi r0, r5, lbl_803D8320@l /* 80356674 003535D4 38 A0 00 00 */ li r5, 0 /* 80356678 003535D8 93 E1 00 0C */ stw r31, 0xc(r1) /* 8035667C 003535DC 7C 9F 23 78 */ mr r31, r4 /* 80356680 003535E0 7C 04 03 78 */ mr r4, r0 /* 80356684 003535E4 93 C1 00 08 */ stw r30, 8(r1) /* 80356688 003535E8 7C 7E 1B 78 */ mr r30, r3 /* 8035668C 003535EC 38 60 00 08 */ li r3, 8 /* 80356690 003535F0 4B FB F1 DD */ bl __nw__FUlPCcPCc /* 80356694 003535F4 28 03 00 00 */ cmplwi r3, 0 /* 80356698 003535F8 41 82 00 38 */ beq lbl_803566D0 /* 8035669C 003535FC 3C 80 80 3E */ lis r4, lbl_803D8D6C@ha /* 803566A0 00353600 3C A0 80 3E */ lis r5, lbl_803D8D78@ha /* 803566A4 00353604 38 04 8D 6C */ addi r0, r4, lbl_803D8D6C@l /* 803566A8 00353608 3C 80 80 3E */ lis r4, lbl_803D9A0C@ha /* 803566AC 0035360C 90 03 00 00 */ stw r0, 0(r3) /* 803566B0 00353610 38 C5 8D 78 */ addi r6, r5, lbl_803D8D78@l /* 803566B4 00353614 38 A0 00 00 */ li r5, 0 /* 803566B8 00353618 38 04 9A 0C */ addi r0, r4, lbl_803D9A0C@l /* 803566BC 0035361C 90 C3 00 00 */ stw r6, 0(r3) /* 803566C0 00353620 98 BF 00 00 */ stb r5, 0(r31) /* 803566C4 00353624 80 9F 00 04 */ lwz r4, 4(r31) /* 803566C8 00353628 90 83 00 04 */ stw r4, 4(r3) /* 803566CC 0035362C 90 03 00 00 */ stw r0, 0(r3) lbl_803566D0: /* 803566D0 00353630 7C 03 00 D0 */ neg r0, r3 /* 803566D4 00353634 7C 00 1B 78 */ or r0, r0, r3 /* 803566D8 00353638 54 00 0F FE */ srwi r0, r0, 0x1f /* 803566DC 0035363C 98 1E 00 00 */ stb r0, 0(r30) /* 803566E0 00353640 90 7E 00 04 */ stw r3, 4(r30) /* 803566E4 00353644 83 E1 00 0C */ lwz r31, 0xc(r1) /* 803566E8 00353648 83 C1 00 08 */ lwz r30, 8(r1) /* 803566EC 0035364C 80 01 00 14 */ lwz r0, 0x14(r1) /* 803566F0 00353650 7C 08 03 A6 */ mtlr r0 /* 803566F4 00353654 38 21 00 10 */ addi r1, r1, 0x10 /* 803566F8 00353658 4E 80 00 20 */ blr .global GetString__12CStringTableCFi GetString__12CStringTableCFi: /* 803566FC 0035365C 2C 04 00 00 */ cmpwi r4, 0 /* 80356700 00353660 41 80 00 10 */ blt lbl_80356710 /* 80356704 00353664 80 03 00 00 */ lwz r0, 0(r3) /* 80356708 00353668 7C 04 00 00 */ cmpw r4, r0 /* 8035670C 0035366C 41 80 00 10 */ blt lbl_8035671C lbl_80356710: /* 80356710 00353670 3C 60 80 3E */ lis r3, lbl_803D8310@ha /* 80356714 00353674 38 63 83 10 */ addi r3, r3, lbl_803D8310@l /* 80356718 00353678 4E 80 00 20 */ blr lbl_8035671C: /* 8035671C 0035367C 80 63 00 04 */ lwz r3, 4(r3) /* 80356720 00353680 54 80 10 3A */ slwi r0, r4, 2 /* 80356724 00353684 7C 03 00 2E */ lwzx r0, r3, r0 /* 80356728 00353688 7C 63 02 14 */ add r3, r3, r0 /* 8035672C 0035368C 4E 80 00 20 */ blr .global __ct__12CStringTableFR12CInputStream __ct__12CStringTableFR12CInputStream: /* 80356730 00353690 94 21 FF C0 */ stwu r1, -0x40(r1) /* 80356734 00353694 7C 08 02 A6 */ mflr r0 /* 80356738 00353698 90 01 00 44 */ stw r0, 0x44(r1) /* 8035673C 0035369C 38 00 00 00 */ li r0, 0 /* 80356740 003536A0 BF 41 00 28 */ stmw r26, 0x28(r1) /* 80356744 003536A4 7C 7E 1B 78 */ mr r30, r3 /* 80356748 003536A8 7C 9F 23 78 */ mr r31, r4 /* 8035674C 003536AC 90 03 00 00 */ stw r0, 0(r3) /* 80356750 003536B0 7F E3 FB 78 */ mr r3, r31 /* 80356754 003536B4 90 1E 00 04 */ stw r0, 4(r30) /* 80356758 003536B8 4B FE 85 2D */ bl ReadLong__12CInputStreamFv /* 8035675C 003536BC 7F E3 FB 78 */ mr r3, r31 /* 80356760 003536C0 4B FE 85 25 */ bl ReadLong__12CInputStreamFv /* 80356764 003536C4 7F E3 FB 78 */ mr r3, r31 /* 80356768 003536C8 4B FE 85 1D */ bl ReadLong__12CInputStreamFv /* 8035676C 003536CC 7C 7B 1B 78 */ mr r27, r3 /* 80356770 003536D0 7F E3 FB 78 */ mr r3, r31 /* 80356774 003536D4 4B FE 85 11 */ bl ReadLong__12CInputStreamFv /* 80356778 003536D8 90 7E 00 00 */ stw r3, 0(r30) /* 8035677C 003536DC 38 00 00 00 */ li r0, 0 /* 80356780 003536E0 7F 64 DB 78 */ mr r4, r27 /* 80356784 003536E4 38 61 00 18 */ addi r3, r1, 0x18 /* 80356788 003536E8 90 01 00 1C */ stw r0, 0x1c(r1) /* 8035678C 003536EC 90 01 00 20 */ stw r0, 0x20(r1) /* 80356790 003536F0 90 01 00 24 */ stw r0, 0x24(r1) /* 80356794 003536F4 4B CB 22 B9 */ bl "reserve__Q24rstl55vector,Q24rstl17rmemory_allocator>Fi" /* 80356798 003536F8 3B 40 00 00 */ li r26, 0 /* 8035679C 003536FC 48 00 00 70 */ b lbl_8035680C lbl_803567A0: /* 803567A0 00353700 7F E3 FB 78 */ mr r3, r31 /* 803567A4 00353704 4B FE 84 E1 */ bl ReadLong__12CInputStreamFv /* 803567A8 00353708 7C 7C 1B 78 */ mr r28, r3 /* 803567AC 0035370C 7F E3 FB 78 */ mr r3, r31 /* 803567B0 00353710 4B FE 84 D5 */ bl ReadLong__12CInputStreamFv /* 803567B4 00353714 80 01 00 1C */ lwz r0, 0x1c(r1) /* 803567B8 00353718 7C 7D 1B 78 */ mr r29, r3 /* 803567BC 0035371C 80 A1 00 20 */ lwz r5, 0x20(r1) /* 803567C0 00353720 7C 00 28 00 */ cmpw r0, r5 /* 803567C4 00353724 41 80 00 1C */ blt lbl_803567E0 /* 803567C8 00353728 2C 05 00 00 */ cmpwi r5, 0 /* 803567CC 0035372C 38 61 00 18 */ addi r3, r1, 0x18 /* 803567D0 00353730 38 80 00 04 */ li r4, 4 /* 803567D4 00353734 41 82 00 08 */ beq lbl_803567DC /* 803567D8 00353738 54 A4 08 3C */ slwi r4, r5, 1 lbl_803567DC: /* 803567DC 0035373C 4B CB 22 71 */ bl "reserve__Q24rstl55vector,Q24rstl17rmemory_allocator>Fi" lbl_803567E0: /* 803567E0 00353740 80 01 00 1C */ lwz r0, 0x1c(r1) /* 803567E4 00353744 80 61 00 24 */ lwz r3, 0x24(r1) /* 803567E8 00353748 54 00 18 38 */ slwi r0, r0, 3 /* 803567EC 0035374C 7C 63 02 15 */ add. r3, r3, r0 /* 803567F0 00353750 41 82 00 0C */ beq lbl_803567FC /* 803567F4 00353754 93 83 00 00 */ stw r28, 0(r3) /* 803567F8 00353758 93 A3 00 04 */ stw r29, 4(r3) lbl_803567FC: /* 803567FC 0035375C 80 61 00 1C */ lwz r3, 0x1c(r1) /* 80356800 00353760 3B 5A 00 01 */ addi r26, r26, 1 /* 80356804 00353764 38 03 00 01 */ addi r0, r3, 1 /* 80356808 00353768 90 01 00 1C */ stw r0, 0x1c(r1) lbl_8035680C: /* 8035680C 0035376C 7C 1A D8 00 */ cmpw r26, r27 /* 80356810 00353770 41 80 FF 90 */ blt lbl_803567A0 /* 80356814 00353774 80 A1 00 24 */ lwz r5, 0x24(r1) /* 80356818 00353778 38 C0 00 00 */ li r6, 0 /* 8035681C 0035377C 80 8D 9E 18 */ lwz r4, lbl_805A89D8@sda21(r13) /* 80356820 00353780 7C A3 2B 78 */ mr r3, r5 /* 80356824 00353784 83 45 00 04 */ lwz r26, 4(r5) /* 80356828 00353788 7F 69 03 A6 */ mtctr r27 /* 8035682C 0035378C 2C 1B 00 00 */ cmpwi r27, 0 /* 80356830 00353790 40 81 00 2C */ ble lbl_8035685C lbl_80356834: /* 80356834 00353794 80 03 00 00 */ lwz r0, 0(r3) /* 80356838 00353798 7C 04 00 40 */ cmplw r4, r0 /* 8035683C 0035379C 40 82 00 14 */ bne lbl_80356850 /* 80356840 003537A0 54 C3 18 38 */ slwi r3, r6, 3 /* 80356844 003537A4 38 03 00 04 */ addi r0, r3, 4 /* 80356848 003537A8 7F 45 00 2E */ lwzx r26, r5, r0 /* 8035684C 003537AC 48 00 00 10 */ b lbl_8035685C lbl_80356850: /* 80356850 003537B0 38 63 00 08 */ addi r3, r3, 8 /* 80356854 003537B4 38 C6 00 01 */ addi r6, r6, 1 /* 80356858 003537B8 42 00 FF DC */ bdnz lbl_80356834 lbl_8035685C: /* 8035685C 003537BC 3B 60 00 00 */ li r27, 0 /* 80356860 003537C0 48 00 00 10 */ b lbl_80356870 lbl_80356864: /* 80356864 003537C4 7F E3 FB 78 */ mr r3, r31 /* 80356868 003537C8 4B FE 84 A5 */ bl ReadChar__12CInputStreamFv /* 8035686C 003537CC 3B 7B 00 01 */ addi r27, r27, 1 lbl_80356870: /* 80356870 003537D0 7C 1B D0 40 */ cmplw r27, r26 /* 80356874 003537D4 41 80 FF F0 */ blt lbl_80356864 /* 80356878 003537D8 7F E3 FB 78 */ mr r3, r31 /* 8035687C 003537DC 4B FE 84 09 */ bl ReadLong__12CInputStreamFv /* 80356880 003537E0 3C 80 80 3E */ lis r4, lbl_803D8320@ha /* 80356884 003537E4 7C 7B 1B 78 */ mr r27, r3 /* 80356888 003537E8 38 A0 00 00 */ li r5, 0 /* 8035688C 003537EC 38 84 83 20 */ addi r4, r4, lbl_803D8320@l /* 80356890 003537F0 4B FB EF 89 */ bl __nwa__FUlPCcPCc /* 80356894 003537F4 7C 7D 1B 78 */ mr r29, r3 /* 80356898 003537F8 80 7E 00 04 */ lwz r3, 4(r30) /* 8035689C 003537FC 4B FB F0 95 */ bl Free__7CMemoryFPCv /* 803568A0 00353800 93 BE 00 04 */ stw r29, 4(r30) /* 803568A4 00353804 7F E3 FB 78 */ mr r3, r31 /* 803568A8 00353808 7F 65 DB 78 */ mr r5, r27 /* 803568AC 0035380C 80 9E 00 04 */ lwz r4, 4(r30) /* 803568B0 00353810 4B FE 85 D1 */ bl ReadBytes__12CInputStreamFPvUl /* 803568B4 00353814 80 01 00 1C */ lwz r0, 0x1c(r1) /* 803568B8 00353818 80 61 00 24 */ lwz r3, 0x24(r1) /* 803568BC 0035381C 54 00 18 38 */ slwi r0, r0, 3 /* 803568C0 00353820 7C 03 02 14 */ add r0, r3, r0 /* 803568C4 00353824 90 61 00 0C */ stw r3, 0xc(r1) /* 803568C8 00353828 7C 64 1B 78 */ mr r4, r3 /* 803568CC 0035382C 90 01 00 14 */ stw r0, 0x14(r1) /* 803568D0 00353830 90 01 00 10 */ stw r0, 0x10(r1) /* 803568D4 00353834 90 61 00 08 */ stw r3, 8(r1) /* 803568D8 00353838 48 00 00 08 */ b lbl_803568E0 lbl_803568DC: /* 803568DC 0035383C 38 84 00 08 */ addi r4, r4, 8 lbl_803568E0: /* 803568E0 00353840 7C 04 00 40 */ cmplw r4, r0 /* 803568E4 00353844 40 82 FF F8 */ bne lbl_803568DC /* 803568E8 00353848 28 03 00 00 */ cmplwi r3, 0 /* 803568EC 0035384C 41 82 00 08 */ beq lbl_803568F4 /* 803568F0 00353850 4B FB F0 41 */ bl Free__7CMemoryFPCv lbl_803568F4: /* 803568F4 00353854 7F C3 F3 78 */ mr r3, r30 /* 803568F8 00353858 BB 41 00 28 */ lmw r26, 0x28(r1) /* 803568FC 0035385C 80 01 00 44 */ lwz r0, 0x44(r1) /* 80356900 00353860 7C 08 03 A6 */ mtlr r0 /* 80356904 00353864 38 21 00 40 */ addi r1, r1, 0x40 /* 80356908 00353868 4E 80 00 20 */ blr