prime/asm/Kyoto/Text/CStringTable.s

325 lines
15 KiB
ArmAsm

.include "macros.inc"
.section .sdata
.global lbl_805A89D8
lbl_805A89D8:
# ROM: 0x3F6378
.asciz "ENGL"
.balign 4
.section .text, "ax"
.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 "__ct<12CStringTable>__16CFactoryFnReturnFP12CStringTable"
/* 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 "__ct<12CStringTable>__16CFactoryFnReturnFP12CStringTable"
"__ct<12CStringTable>__16CFactoryFnReturnFP12CStringTable":
/* 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 "GetIObjObjectFor__22TToken<12CStringTable>FRCQ24rstl24auto_ptr<12CStringTable>"
/* 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 "GetIObjObjectFor__22TToken<12CStringTable>FRCQ24rstl24auto_ptr<12CStringTable>"
"GetIObjObjectFor__22TToken<12CStringTable>FRCQ24rstl24auto_ptr<12CStringTable>":
/* 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 "GetNewDerivedObject__40TObjOwnerDerivedFromIObj<12CStringTable>FRCQ24rstl24auto_ptr<12CStringTable>"
/* 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 "GetNewDerivedObject__40TObjOwnerDerivedFromIObj<12CStringTable>FRCQ24rstl24auto_ptr<12CStringTable>"
"GetNewDerivedObject__40TObjOwnerDerivedFromIObj<12CStringTable>FRCQ24rstl24auto_ptr<12CStringTable>":
/* 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, __vt__4IObj@ha
/* 803566A0 00353600 3C A0 80 3E */ lis r5, __vt__31TObjOwnerDerivedFromIObjUntyped@ha
/* 803566A4 00353604 38 04 8D 6C */ addi r0, r4, __vt__4IObj@l
/* 803566A8 00353608 3C 80 80 3E */ lis r4, "__vt__40TObjOwnerDerivedFromIObj<12CStringTable>"@ha
/* 803566AC 0035360C 90 03 00 00 */ stw r0, 0(r3)
/* 803566B0 00353610 38 C5 8D 78 */ addi r6, r5, __vt__31TObjOwnerDerivedFromIObjUntyped@l
/* 803566B4 00353614 38 A0 00 00 */ li r5, 0
/* 803566B8 00353618 38 04 9A 0C */ addi r0, r4, "__vt__40TObjOwnerDerivedFromIObj<12CStringTable>"@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<Q24rstl11pair<Ui,Ui>,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<Q24rstl11pair<Ui,Ui>,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
.section .rodata
.global lbl_803D8310
lbl_803D8310:
# ROM: 0x3D5310
.4byte 0x0049006E
.4byte 0x00760061
.4byte 0x006C0069
.4byte 0x00640000
.global lbl_803D8320
lbl_803D8320:
# ROM: 0x3D5320
.asciz "??(??)"
.balign 4