donut-decomp/asm/libms/msgfile.s

222 lines
8.9 KiB
ArmAsm
Raw Permalink Normal View History

2022-10-16 16:05:58 +00:00
.include "macros.inc"
.section .text, "ax" # 0x80006A00 - 0x80406260 ; 0x003FF860
2022-10-16 16:31:36 +00:00
.global LMS_InitMessage
LMS_InitMessage:
2022-10-16 16:05:58 +00:00
/* 80174210 00170050 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 80174214 00170054 7C 08 02 A6 */ mflr r0
/* 80174218 00170058 90 01 00 14 */ stw r0, 0x14(r1)
/* 8017421C 0017005C 93 E1 00 0C */ stw r31, 0xc(r1)
/* 80174220 00170060 7C 7F 1B 78 */ mr r31, r3
/* 80174224 00170064 38 60 00 20 */ li r3, 0x20
2022-10-16 16:31:36 +00:00
/* 80174228 00170068 4B FF FF 79 */ bl LMSi_Malloc
/* 8017422C 0017006C 3C 80 80 45 */ lis r4, "@2545"@ha
2022-10-16 16:05:58 +00:00
/* 80174230 00170070 93 E3 00 00 */ stw r31, 0x0(r3)
/* 80174234 00170074 7C 7F 1B 78 */ mr r31, r3
2022-10-16 16:31:36 +00:00
/* 80174238 00170078 38 84 2A E0 */ addi r4, r4, "@2545"@l
/* 8017423C 0017007C 48 00 03 55 */ bl LMSi_AnalyzeMessageBinary
2022-10-16 16:05:58 +00:00
/* 80174240 00170080 7F E3 FB 78 */ mr r3, r31
2022-10-16 16:31:36 +00:00
/* 80174244 00170084 38 8D 86 D0 */ addi r4, r13, "@2546"@sda21
/* 80174248 00170088 48 00 03 89 */ bl LMSi_SearchBlockByName
2022-10-16 16:05:58 +00:00
/* 8017424C 0017008C 90 7F 00 10 */ stw r3, 0x10(r31)
/* 80174250 00170090 7F E3 FB 78 */ mr r3, r31
2022-10-16 16:31:36 +00:00
/* 80174254 00170094 38 8D 86 D8 */ addi r4, r13, "@2547"@sda21
/* 80174258 00170098 48 00 03 79 */ bl LMSi_SearchBlockByName
2022-10-16 16:05:58 +00:00
/* 8017425C 0017009C 90 7F 00 14 */ stw r3, 0x14(r31)
/* 80174260 001700A0 7F E3 FB 78 */ mr r3, r31
2022-10-16 16:31:36 +00:00
/* 80174264 001700A4 38 8D 86 E0 */ addi r4, r13, "@2548"@sda21
/* 80174268 001700A8 48 00 03 69 */ bl LMSi_SearchBlockByName
2022-10-16 16:05:58 +00:00
/* 8017426C 001700AC 90 7F 00 18 */ stw r3, 0x18(r31)
/* 80174270 001700B0 7F E3 FB 78 */ mr r3, r31
2022-10-16 16:31:36 +00:00
/* 80174274 001700B4 38 8D 86 E8 */ addi r4, r13, "@2549_80556B08"@sda21
/* 80174278 001700B8 48 00 03 59 */ bl LMSi_SearchBlockByName
2022-10-16 16:05:58 +00:00
/* 8017427C 001700BC 90 7F 00 1C */ stw r3, 0x1c(r31)
/* 80174280 001700C0 7F E3 FB 78 */ mr r3, r31
/* 80174284 001700C4 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 80174288 001700C8 80 01 00 14 */ lwz r0, 0x14(r1)
/* 8017428C 001700CC 7C 08 03 A6 */ mtlr r0
/* 80174290 001700D0 38 21 00 10 */ addi r1, r1, 0x10
/* 80174294 001700D4 4E 80 00 20 */ blr
/* 80174298 001700D8 00 00 00 00 */ .4byte 0x00000000
/* 8017429C 001700DC 00 00 00 00 */ .4byte 0x00000000
2022-10-16 16:31:36 +00:00
.global LMS_CloseMessage
LMS_CloseMessage:
2022-10-16 16:05:58 +00:00
/* 801742A0 001700E0 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 801742A4 001700E4 7C 08 02 A6 */ mflr r0
/* 801742A8 001700E8 90 01 00 14 */ stw r0, 0x14(r1)
/* 801742AC 001700EC 93 E1 00 0C */ stw r31, 0xc(r1)
/* 801742B0 001700F0 7C 7F 1B 78 */ mr r31, r3
/* 801742B4 001700F4 80 03 00 0C */ lwz r0, 0xc(r3)
/* 801742B8 001700F8 2C 00 00 00 */ cmpwi r0, 0x0
/* 801742BC 001700FC 41 82 00 0C */ beq lbl_801742C8
/* 801742C0 00170100 7C 03 03 78 */ mr r3, r0
2022-10-16 16:31:36 +00:00
/* 801742C4 00170104 4B FF FE ED */ bl LMSi_Free
2022-10-16 16:05:58 +00:00
.global lbl_801742C8
lbl_801742C8:
/* 801742C8 00170108 7F E3 FB 78 */ mr r3, r31
2022-10-16 16:31:36 +00:00
/* 801742CC 0017010C 4B FF FE E5 */ bl LMSi_Free
2022-10-16 16:05:58 +00:00
/* 801742D0 00170110 80 01 00 14 */ lwz r0, 0x14(r1)
/* 801742D4 00170114 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 801742D8 00170118 7C 08 03 A6 */ mtlr r0
/* 801742DC 0017011C 38 21 00 10 */ addi r1, r1, 0x10
/* 801742E0 00170120 4E 80 00 20 */ blr
/* 801742E4 00170124 00 00 00 00 */ .4byte 0x00000000
/* 801742E8 00170128 00 00 00 00 */ .4byte 0x00000000
/* 801742EC 0017012C 00 00 00 00 */ .4byte 0x00000000
2022-10-16 16:31:36 +00:00
.global LMS_GetTextNum
LMS_GetTextNum:
2022-10-16 16:05:58 +00:00
/* 801742F0 00170130 80 03 00 14 */ lwz r0, 0x14(r3)
/* 801742F4 00170134 2C 00 FF FF */ cmpwi r0, -0x1
/* 801742F8 00170138 40 82 00 0C */ bne lbl_80174304
/* 801742FC 0017013C 38 60 FF FF */ li r3, -0x1
/* 80174300 00170140 4E 80 00 20 */ blr
.global lbl_80174304
lbl_80174304:
/* 80174304 00170144 80 63 00 0C */ lwz r3, 0xc(r3)
/* 80174308 00170148 54 00 20 36 */ slwi r0, r0, 4
/* 8017430C 0017014C 7C 63 00 2E */ lwzx r3, r3, r0
/* 80174310 00170150 80 63 00 00 */ lwz r3, 0x0(r3)
/* 80174314 00170154 4E 80 00 20 */ blr
/* 80174318 00170158 00 00 00 00 */ .4byte 0x00000000
/* 8017431C 0017015C 00 00 00 00 */ .4byte 0x00000000
2022-10-16 16:31:36 +00:00
.global LMS_GetTextIndexByLabel
LMS_GetTextIndexByLabel:
2022-10-16 16:05:58 +00:00
/* 80174320 00170160 94 21 FF D0 */ stwu r1, -0x30(r1)
/* 80174324 00170164 7C 08 02 A6 */ mflr r0
/* 80174328 00170168 90 01 00 34 */ stw r0, 0x34(r1)
/* 8017432C 0017016C 39 61 00 30 */ addi r11, r1, 0x30
/* 80174330 00170170 4B E9 30 01 */ bl lbl_80007330
/* 80174334 00170174 80 A3 00 10 */ lwz r5, 0x10(r3)
/* 80174338 00170178 7C 9E 23 78 */ mr r30, r4
/* 8017433C 0017017C 3B E0 00 00 */ li r31, 0x0
/* 80174340 00170180 2C 05 FF FF */ cmpwi r5, -0x1
/* 80174344 00170184 40 82 00 1C */ bne lbl_80174360
/* 80174348 00170188 38 60 FF FE */ li r3, -0x2
/* 8017434C 0017018C 48 00 00 B8 */ b lbl_80174404
/* 80174350 00170190 48 00 00 10 */ b lbl_80174360
/* 80174354 00170194 60 00 00 00 */ nop
.global lbl_80174358
lbl_80174358:
/* 80174358 00170198 3B FF 00 01 */ addi r31, r31, 0x1
/* 8017435C 0017019C 38 84 00 01 */ addi r4, r4, 0x1
.global lbl_80174360
lbl_80174360:
/* 80174360 001701A0 88 04 00 00 */ lbz r0, 0x0(r4)
/* 80174364 001701A4 7C 00 07 75 */ extsb. r0, r0
/* 80174368 001701A8 40 82 FF F0 */ bne lbl_80174358
/* 8017436C 001701AC 83 83 00 0C */ lwz r28, 0xc(r3)
/* 80174370 001701B0 54 BD 20 36 */ slwi r29, r5, 4
/* 80174374 001701B4 7F C3 F3 78 */ mr r3, r30
/* 80174378 001701B8 7C 9C E8 2E */ lwzx r4, r28, r29
/* 8017437C 001701BC 80 84 00 00 */ lwz r4, 0x0(r4)
2022-10-16 16:31:36 +00:00
/* 80174380 001701C0 48 00 02 E1 */ bl LMSi_GetHashTableIndexFromLabel
2022-10-16 16:05:58 +00:00
/* 80174384 001701C4 54 64 08 3C */ slwi r4, r3, 1
/* 80174388 001701C8 7C BC E8 2E */ lwzx r5, r28, r29
/* 8017438C 001701CC 38 64 00 01 */ addi r3, r4, 0x1
/* 80174390 001701D0 3B 60 00 00 */ li r27, 0x0
/* 80174394 001701D4 38 04 00 02 */ addi r0, r4, 0x2
/* 80174398 001701D8 54 63 10 3A */ slwi r3, r3, 2
/* 8017439C 001701DC 54 00 10 3A */ slwi r0, r0, 2
/* 801743A0 001701E0 7F 45 18 2E */ lwzx r26, r5, r3
/* 801743A4 001701E4 7F 25 00 2E */ lwzx r25, r5, r0
/* 801743A8 001701E8 48 00 00 50 */ b lbl_801743F8
.global lbl_801743AC
lbl_801743AC:
/* 801743AC 001701EC 7C 7C E8 2E */ lwzx r3, r28, r29
/* 801743B0 001701F0 7F 03 C8 AE */ lbzx r24, r3, r25
/* 801743B4 001701F4 7C 18 F8 00 */ cmpw r24, r31
/* 801743B8 001701F8 40 82 00 34 */ bne lbl_801743EC
/* 801743BC 001701FC 7C 99 1A 14 */ add r4, r25, r3
/* 801743C0 00170200 7F C3 F3 78 */ mr r3, r30
/* 801743C4 00170204 7F 05 C3 78 */ mr r5, r24
/* 801743C8 00170208 38 84 00 01 */ addi r4, r4, 0x1
2022-10-16 16:31:36 +00:00
/* 801743CC 0017020C 4B FF FD F5 */ bl LMSi_MemCmp
2022-10-16 16:05:58 +00:00
/* 801743D0 00170210 2C 03 00 00 */ cmpwi r3, 0x0
/* 801743D4 00170214 41 82 00 18 */ beq lbl_801743EC
/* 801743D8 00170218 7C 7C E8 2E */ lwzx r3, r28, r29
/* 801743DC 0017021C 7C 19 C2 14 */ add r0, r25, r24
/* 801743E0 00170220 7C 60 1A 14 */ add r3, r0, r3
/* 801743E4 00170224 80 63 00 01 */ lwz r3, 0x1(r3)
/* 801743E8 00170228 48 00 00 1C */ b lbl_80174404
.global lbl_801743EC
lbl_801743EC:
/* 801743EC 0017022C 7C 79 C2 14 */ add r3, r25, r24
/* 801743F0 00170230 3B 7B 00 01 */ addi r27, r27, 0x1
/* 801743F4 00170234 3B 23 00 05 */ addi r25, r3, 0x5
.global lbl_801743F8
lbl_801743F8:
/* 801743F8 00170238 7C 1B D0 40 */ cmplw r27, r26
/* 801743FC 0017023C 41 80 FF B0 */ blt lbl_801743AC
/* 80174400 00170240 38 60 FF FF */ li r3, -0x1
.global lbl_80174404
lbl_80174404:
/* 80174404 00170244 39 61 00 30 */ addi r11, r1, 0x30
/* 80174408 00170248 4B E9 2F 75 */ bl lbl_8000737C
/* 8017440C 0017024C 80 01 00 34 */ lwz r0, 0x34(r1)
/* 80174410 00170250 7C 08 03 A6 */ mtlr r0
/* 80174414 00170254 38 21 00 30 */ addi r1, r1, 0x30
/* 80174418 00170258 4E 80 00 20 */ blr
/* 8017441C 0017025C 00 00 00 00 */ .4byte 0x00000000
2022-10-16 16:31:36 +00:00
.global LMS_GetText
LMS_GetText:
2022-10-16 16:05:58 +00:00
/* 80174420 00170260 80 03 00 14 */ lwz r0, 0x14(r3)
/* 80174424 00170264 2C 00 FF FF */ cmpwi r0, -0x1
/* 80174428 00170268 40 82 00 0C */ bne lbl_80174434
/* 8017442C 0017026C 38 60 00 00 */ li r3, 0x0
/* 80174430 00170270 4E 80 00 20 */ blr
.global lbl_80174434
lbl_80174434:
/* 80174434 00170274 80 63 00 0C */ lwz r3, 0xc(r3)
/* 80174438 00170278 54 00 20 36 */ slwi r0, r0, 4
/* 8017443C 0017027C 7C 63 00 2E */ lwzx r3, r3, r0
/* 80174440 00170280 80 03 00 00 */ lwz r0, 0x0(r3)
/* 80174444 00170284 7C 00 20 00 */ cmpw r0, r4
/* 80174448 00170288 41 81 00 0C */ bgt lbl_80174454
/* 8017444C 0017028C 38 60 00 00 */ li r3, 0x0
/* 80174450 00170290 4E 80 00 20 */ blr
.global lbl_80174454
lbl_80174454:
/* 80174454 00170294 38 04 00 01 */ addi r0, r4, 0x1
/* 80174458 00170298 54 00 10 3A */ slwi r0, r0, 2
/* 8017445C 0017029C 7C 03 00 2E */ lwzx r0, r3, r0
/* 80174460 001702A0 7C 63 02 14 */ add r3, r3, r0
/* 80174464 001702A4 4E 80 00 20 */ blr
/* 80174468 001702A8 00 00 00 00 */ .4byte 0x00000000
/* 8017446C 001702AC 00 00 00 00 */ .4byte 0x00000000
2022-10-17 09:07:38 +00:00
.include "macros.inc"
.section .data, "wa" # 0x80421040 - 0x80496700 ; 0x000756C0
.global "@2545"
"@2545":
.4byte 0x4D736753
.4byte 0x7464426E
.4byte 0
.4byte 0
.include "macros.inc"
.section .sdata, "wa" # 0x80556420 - 0x8055C6E0 ; 0x000062C0
.global "@2546"
"@2546":
.4byte 0x4C424C31
.4byte 0
.global "@2547"
"@2547":
.4byte 0x54585432
.4byte 0
.global "@2548"
"@2548":
.4byte 0x41545231
.4byte 0
.global "@2549_80556B08"
"@2549_80556B08":
.4byte 0x54535931
.4byte 0