mirror of https://github.com/PrimeDecomp/prime.git
204 lines
9.6 KiB
ArmAsm
204 lines
9.6 KiB
ArmAsm
.include "macros.inc"
|
|
|
|
.section .data
|
|
|
|
.global lbl_803ED6F8
|
|
lbl_803ED6F8:
|
|
# ROM: 0x3EA6F8
|
|
.4byte 0
|
|
.4byte 0
|
|
.4byte __dt__16CTextInstructionFv
|
|
.4byte Invoke__16CTextInstructionCFR16CFontRenderStateP17CTextRenderBuffer
|
|
.4byte PageInvoke__12CInstructionCFR16CFontRenderStateP17CTextRenderBuffer
|
|
.4byte "GetAssets__12CInstructionCFRQ24rstl42vector<6CToken,Q24rstl17rmemory_allocator>"
|
|
.4byte GetAssetCount__12CInstructionCFv
|
|
.4byte 0
|
|
|
|
.section .text, "ax" # 0x80003640 - 0x803CB1C0
|
|
|
|
.global __dt__16CTextInstructionFv
|
|
__dt__16CTextInstructionFv:
|
|
/* 80304064 00300FC4 94 21 FF F0 */ stwu r1, -0x10(r1)
|
|
/* 80304068 00300FC8 7C 08 02 A6 */ mflr r0
|
|
/* 8030406C 00300FCC 90 01 00 14 */ stw r0, 0x14(r1)
|
|
/* 80304070 00300FD0 93 E1 00 0C */ stw r31, 0xc(r1)
|
|
/* 80304074 00300FD4 7C 7F 1B 79 */ or. r31, r3, r3
|
|
/* 80304078 00300FD8 41 82 00 30 */ beq lbl_803040A8
|
|
/* 8030407C 00300FDC 3C 60 80 3F */ lis r3, lbl_803ED6F8@ha
|
|
/* 80304080 00300FE0 38 03 D6 F8 */ addi r0, r3, lbl_803ED6F8@l
|
|
/* 80304084 00300FE4 90 1F 00 00 */ stw r0, 0(r31)
|
|
/* 80304088 00300FE8 41 82 00 10 */ beq lbl_80304098
|
|
/* 8030408C 00300FEC 3C 60 80 3E */ lis r3, lbl_803D9A6C@ha
|
|
/* 80304090 00300FF0 38 03 9A 6C */ addi r0, r3, lbl_803D9A6C@l
|
|
/* 80304094 00300FF4 90 1F 00 00 */ stw r0, 0(r31)
|
|
lbl_80304098:
|
|
/* 80304098 00300FF8 7C 80 07 35 */ extsh. r0, r4
|
|
/* 8030409C 00300FFC 40 81 00 0C */ ble lbl_803040A8
|
|
/* 803040A0 00301000 7F E3 FB 78 */ mr r3, r31
|
|
/* 803040A4 00301004 48 01 18 8D */ bl Free__7CMemoryFPCv
|
|
lbl_803040A8:
|
|
/* 803040A8 00301008 80 01 00 14 */ lwz r0, 0x14(r1)
|
|
/* 803040AC 0030100C 7F E3 FB 78 */ mr r3, r31
|
|
/* 803040B0 00301010 83 E1 00 0C */ lwz r31, 0xc(r1)
|
|
/* 803040B4 00301014 7C 08 03 A6 */ mtlr r0
|
|
/* 803040B8 00301018 38 21 00 10 */ addi r1, r1, 0x10
|
|
/* 803040BC 0030101C 4E 80 00 20 */ blr
|
|
|
|
.global __ct__16CTextInstructionFPCwi
|
|
__ct__16CTextInstructionFPCwi:
|
|
/* 803040C0 00301020 3C E0 80 3E */ lis r7, lbl_803D9A6C@ha
|
|
/* 803040C4 00301024 3C C0 80 3F */ lis r6, lbl_803ED6F8@ha
|
|
/* 803040C8 00301028 38 E7 9A 6C */ addi r7, r7, lbl_803D9A6C@l
|
|
/* 803040CC 0030102C 2C 05 00 00 */ cmpwi r5, 0
|
|
/* 803040D0 00301030 90 E3 00 00 */ stw r7, 0(r3)
|
|
/* 803040D4 00301034 38 06 D6 F8 */ addi r0, r6, lbl_803ED6F8@l
|
|
/* 803040D8 00301038 39 20 00 00 */ li r9, 0
|
|
/* 803040DC 0030103C 90 03 00 00 */ stw r0, 0(r3)
|
|
/* 803040E0 00301040 90 A3 00 04 */ stw r5, 4(r3)
|
|
/* 803040E4 00301044 4C 81 00 20 */ blelr
|
|
/* 803040E8 00301048 2C 05 00 08 */ cmpwi r5, 8
|
|
/* 803040EC 0030104C 38 C5 FF F8 */ addi r6, r5, -8
|
|
/* 803040F0 00301050 40 81 00 70 */ ble lbl_80304160
|
|
/* 803040F4 00301054 38 06 00 07 */ addi r0, r6, 7
|
|
/* 803040F8 00301058 7C 87 23 78 */ mr r7, r4
|
|
/* 803040FC 0030105C 54 00 E8 FE */ srwi r0, r0, 3
|
|
/* 80304100 00301060 7C 68 1B 78 */ mr r8, r3
|
|
/* 80304104 00301064 7C 09 03 A6 */ mtctr r0
|
|
/* 80304108 00301068 2C 06 00 00 */ cmpwi r6, 0
|
|
/* 8030410C 0030106C 40 81 00 54 */ ble lbl_80304160
|
|
lbl_80304110:
|
|
/* 80304110 00301070 A0 07 00 00 */ lhz r0, 0(r7)
|
|
/* 80304114 00301074 39 29 00 08 */ addi r9, r9, 8
|
|
/* 80304118 00301078 B0 08 00 08 */ sth r0, 8(r8)
|
|
/* 8030411C 0030107C A0 07 00 02 */ lhz r0, 2(r7)
|
|
/* 80304120 00301080 B0 08 00 0A */ sth r0, 0xa(r8)
|
|
/* 80304124 00301084 A0 07 00 04 */ lhz r0, 4(r7)
|
|
/* 80304128 00301088 B0 08 00 0C */ sth r0, 0xc(r8)
|
|
/* 8030412C 0030108C A0 07 00 06 */ lhz r0, 6(r7)
|
|
/* 80304130 00301090 B0 08 00 0E */ sth r0, 0xe(r8)
|
|
/* 80304134 00301094 A0 07 00 08 */ lhz r0, 8(r7)
|
|
/* 80304138 00301098 B0 08 00 10 */ sth r0, 0x10(r8)
|
|
/* 8030413C 0030109C A0 07 00 0A */ lhz r0, 0xa(r7)
|
|
/* 80304140 003010A0 B0 08 00 12 */ sth r0, 0x12(r8)
|
|
/* 80304144 003010A4 A0 07 00 0C */ lhz r0, 0xc(r7)
|
|
/* 80304148 003010A8 B0 08 00 14 */ sth r0, 0x14(r8)
|
|
/* 8030414C 003010AC A0 07 00 0E */ lhz r0, 0xe(r7)
|
|
/* 80304150 003010B0 38 E7 00 10 */ addi r7, r7, 0x10
|
|
/* 80304154 003010B4 B0 08 00 16 */ sth r0, 0x16(r8)
|
|
/* 80304158 003010B8 39 08 00 10 */ addi r8, r8, 0x10
|
|
/* 8030415C 003010BC 42 00 FF B4 */ bdnz lbl_80304110
|
|
lbl_80304160:
|
|
/* 80304160 003010C0 55 26 08 3C */ slwi r6, r9, 1
|
|
/* 80304164 003010C4 7C 09 28 50 */ subf r0, r9, r5
|
|
/* 80304168 003010C8 7C 84 32 14 */ add r4, r4, r6
|
|
/* 8030416C 003010CC 7C C3 32 14 */ add r6, r3, r6
|
|
/* 80304170 003010D0 7C 09 03 A6 */ mtctr r0
|
|
/* 80304174 003010D4 7C 09 28 00 */ cmpw r9, r5
|
|
/* 80304178 003010D8 4C 80 00 20 */ bgelr
|
|
lbl_8030417C:
|
|
/* 8030417C 003010DC A0 04 00 00 */ lhz r0, 0(r4)
|
|
/* 80304180 003010E0 38 84 00 02 */ addi r4, r4, 2
|
|
/* 80304184 003010E4 B0 06 00 08 */ sth r0, 8(r6)
|
|
/* 80304188 003010E8 38 C6 00 02 */ addi r6, r6, 2
|
|
/* 8030418C 003010EC 42 00 FF F0 */ bdnz lbl_8030417C
|
|
/* 80304190 003010F0 4E 80 00 20 */ blr
|
|
|
|
.global Invoke__16CTextInstructionCFR16CFontRenderStateP17CTextRenderBuffer
|
|
Invoke__16CTextInstructionCFR16CFontRenderStateP17CTextRenderBuffer:
|
|
/* 80304194 003010F4 94 21 FF C0 */ stwu r1, -0x40(r1)
|
|
/* 80304198 003010F8 7C 08 02 A6 */ mflr r0
|
|
/* 8030419C 003010FC 90 01 00 44 */ stw r0, 0x44(r1)
|
|
/* 803041A0 00301100 BF 41 00 28 */ stmw r26, 0x28(r1)
|
|
/* 803041A4 00301104 7C 7D 1B 78 */ mr r29, r3
|
|
/* 803041A8 00301108 7C 9E 23 78 */ mr r30, r4
|
|
/* 803041AC 0030110C 7C BF 2B 78 */ mr r31, r5
|
|
/* 803041B0 00301110 80 64 00 88 */ lwz r3, 0x88(r4)
|
|
/* 803041B4 00301114 80 03 00 14 */ lwz r0, 0x14(r3)
|
|
/* 803041B8 00301118 2C 00 00 00 */ cmpwi r0, 0
|
|
/* 803041BC 0030111C 40 82 00 58 */ bne lbl_80304214
|
|
/* 803041C0 00301120 80 7E 00 DC */ lwz r3, 0xdc(r30)
|
|
/* 803041C4 00301124 4B FF B7 39 */ bl GetBaseline__16CLineInstructionFv
|
|
/* 803041C8 00301128 83 7E 00 D8 */ lwz r27, 0xd8(r30)
|
|
/* 803041CC 0030112C 7C 7C 1B 78 */ mr r28, r3
|
|
/* 803041D0 00301130 83 5E 00 D4 */ lwz r26, 0xd4(r30)
|
|
/* 803041D4 00301134 38 7E 00 48 */ addi r3, r30, 0x48
|
|
/* 803041D8 00301138 48 03 CC 35 */ bl GetObj__6CTokenFv
|
|
/* 803041DC 0030113C 80 1D 00 04 */ lwz r0, 4(r29)
|
|
/* 803041E0 00301140 7F C4 F3 78 */ mr r4, r30
|
|
/* 803041E4 00301144 7F 45 D3 78 */ mr r5, r26
|
|
/* 803041E8 00301148 7F E9 FB 78 */ mr r9, r31
|
|
/* 803041EC 0030114C 90 01 00 08 */ stw r0, 8(r1)
|
|
/* 803041F0 00301150 7C DC DA 14 */ add r6, r28, r27
|
|
/* 803041F4 00301154 38 E1 00 1C */ addi r7, r1, 0x1c
|
|
/* 803041F8 00301158 39 01 00 18 */ addi r8, r1, 0x18
|
|
/* 803041FC 0030115C 80 63 00 04 */ lwz r3, 4(r3)
|
|
/* 80304200 00301160 39 5D 00 08 */ addi r10, r29, 8
|
|
/* 80304204 00301164 4B FF C3 6D */ bl DrawString__11CRasterFontCFRC18CDrawStringOptionsiiRiRiP17CTextRenderBufferPCwi
|
|
/* 80304208 00301168 80 01 00 1C */ lwz r0, 0x1c(r1)
|
|
/* 8030420C 0030116C 90 1E 00 D4 */ stw r0, 0xd4(r30)
|
|
/* 80304210 00301170 48 00 00 70 */ b lbl_80304280
|
|
lbl_80304214:
|
|
/* 80304214 00301174 38 7E 00 48 */ addi r3, r30, 0x48
|
|
/* 80304218 00301178 48 03 CB F5 */ bl GetObj__6CTokenFv
|
|
/* 8030421C 0030117C 80 9E 00 DC */ lwz r4, 0xdc(r30)
|
|
/* 80304220 00301180 80 63 00 04 */ lwz r3, 4(r3)
|
|
/* 80304224 00301184 83 44 00 08 */ lwz r26, 8(r4)
|
|
/* 80304228 00301188 4B FF C4 DD */ bl GetMonoWidth__11CRasterFontCFv
|
|
/* 8030422C 0030118C 7C 63 D0 50 */ subf r3, r3, r26
|
|
/* 80304230 00301190 83 5E 00 D8 */ lwz r26, 0xd8(r30)
|
|
/* 80304234 00301194 54 60 0F FE */ srwi r0, r3, 0x1f
|
|
/* 80304238 00301198 83 7E 00 D4 */ lwz r27, 0xd4(r30)
|
|
/* 8030423C 0030119C 7C 00 1A 14 */ add r0, r0, r3
|
|
/* 80304240 003011A0 38 7E 00 48 */ addi r3, r30, 0x48
|
|
/* 80304244 003011A4 7C 1C 0E 70 */ srawi r28, r0, 1
|
|
/* 80304248 003011A8 48 03 CB C5 */ bl GetObj__6CTokenFv
|
|
/* 8030424C 003011AC 80 1D 00 04 */ lwz r0, 4(r29)
|
|
/* 80304250 003011B0 7F C4 F3 78 */ mr r4, r30
|
|
/* 80304254 003011B4 7F 46 D3 78 */ mr r6, r26
|
|
/* 80304258 003011B8 7F E9 FB 78 */ mr r9, r31
|
|
/* 8030425C 003011BC 90 01 00 08 */ stw r0, 8(r1)
|
|
/* 80304260 003011C0 7C BC DA 14 */ add r5, r28, r27
|
|
/* 80304264 003011C4 38 E1 00 14 */ addi r7, r1, 0x14
|
|
/* 80304268 003011C8 39 01 00 10 */ addi r8, r1, 0x10
|
|
/* 8030426C 003011CC 80 63 00 04 */ lwz r3, 4(r3)
|
|
/* 80304270 003011D0 39 5D 00 08 */ addi r10, r29, 8
|
|
/* 80304274 003011D4 4B FF C2 FD */ bl DrawString__11CRasterFontCFRC18CDrawStringOptionsiiRiRiP17CTextRenderBufferPCwi
|
|
/* 80304278 003011D8 80 01 00 10 */ lwz r0, 0x10(r1)
|
|
/* 8030427C 003011DC 90 1E 00 D8 */ stw r0, 0xd8(r30)
|
|
lbl_80304280:
|
|
/* 80304280 003011E0 BB 41 00 28 */ lmw r26, 0x28(r1)
|
|
/* 80304284 003011E4 80 01 00 44 */ lwz r0, 0x44(r1)
|
|
/* 80304288 003011E8 7C 08 03 A6 */ mtlr r0
|
|
/* 8030428C 003011EC 38 21 00 40 */ addi r1, r1, 0x40
|
|
/* 80304290 003011F0 4E 80 00 20 */ blr
|
|
|
|
.global Create__16CTextInstructionFPCwi
|
|
Create__16CTextInstructionFPCwi:
|
|
/* 80304294 003011F4 94 21 FF F0 */ stwu r1, -0x10(r1)
|
|
/* 80304298 003011F8 7C 08 02 A6 */ mflr r0
|
|
/* 8030429C 003011FC 38 A0 00 00 */ li r5, 0
|
|
/* 803042A0 00301200 90 01 00 14 */ stw r0, 0x14(r1)
|
|
/* 803042A4 00301204 93 E1 00 0C */ stw r31, 0xc(r1)
|
|
/* 803042A8 00301208 7C 9F 23 78 */ mr r31, r4
|
|
/* 803042AC 0030120C 3C 80 80 3D */ lis r4, lbl_803D6E98@ha
|
|
/* 803042B0 00301210 93 C1 00 08 */ stw r30, 8(r1)
|
|
/* 803042B4 00301214 7C 7E 1B 78 */ mr r30, r3
|
|
/* 803042B8 00301218 57 E3 08 3C */ slwi r3, r31, 1
|
|
/* 803042BC 0030121C 38 84 6E 98 */ addi r4, r4, lbl_803D6E98@l
|
|
/* 803042C0 00301220 38 63 00 0E */ addi r3, r3, 0xe
|
|
/* 803042C4 00301224 48 01 15 55 */ bl __nwa__FUlPCcPCc
|
|
/* 803042C8 00301228 7C 60 1B 79 */ or. r0, r3, r3
|
|
/* 803042CC 0030122C 41 82 00 14 */ beq lbl_803042E0
|
|
/* 803042D0 00301230 7F C4 F3 78 */ mr r4, r30
|
|
/* 803042D4 00301234 7F E5 FB 78 */ mr r5, r31
|
|
/* 803042D8 00301238 4B FF FD E9 */ bl __ct__16CTextInstructionFPCwi
|
|
/* 803042DC 0030123C 7C 60 1B 78 */ mr r0, r3
|
|
lbl_803042E0:
|
|
/* 803042E0 00301240 7C 03 03 78 */ mr r3, r0
|
|
/* 803042E4 00301244 80 01 00 14 */ lwz r0, 0x14(r1)
|
|
/* 803042E8 00301248 83 E1 00 0C */ lwz r31, 0xc(r1)
|
|
/* 803042EC 0030124C 83 C1 00 08 */ lwz r30, 8(r1)
|
|
/* 803042F0 00301250 7C 08 03 A6 */ mtlr r0
|
|
/* 803042F4 00301254 38 21 00 10 */ addi r1, r1, 0x10
|
|
/* 803042F8 00301258 4E 80 00 20 */ blr
|