mirror of https://github.com/zeldaret/tp.git
204 lines
9.2 KiB
ArmAsm
204 lines
9.2 KiB
ArmAsm
.include "macros.inc"
|
|
|
|
.section .text, "ax" # 80023b70
|
|
|
|
|
|
/* 80023B70 00020AB0 94 21 FF F0 */ stwu r1, -0x10(r1)
|
|
/* 80023B74 00020AB4 7C 08 02 A6 */ mflr r0
|
|
/* 80023B78 00020AB8 90 01 00 14 */ stw r0, 0x14(r1)
|
|
/* 80023B7C 00020ABC A8 63 00 50 */ lha r3, 0x50(r3)
|
|
/* 80023B80 00020AC0 4B FF E4 D1 */ bl fpcLd_Load
|
|
/* 80023B84 00020AC4 2C 03 00 04 */ cmpwi r3, 4
|
|
/* 80023B88 00020AC8 41 82 00 20 */ beq lbl_80023BA8
|
|
/* 80023B8C 00020ACC 40 80 00 24 */ bge lbl_80023BB0
|
|
/* 80023B90 00020AD0 2C 03 00 00 */ cmpwi r3, 0
|
|
/* 80023B94 00020AD4 41 82 00 0C */ beq lbl_80023BA0
|
|
/* 80023B98 00020AD8 48 00 00 18 */ b lbl_80023BB0
|
|
/* 80023B9C 00020ADC 48 00 00 14 */ b lbl_80023BB0
|
|
lbl_80023BA0:
|
|
/* 80023BA0 00020AE0 38 60 00 00 */ li r3, 0
|
|
/* 80023BA4 00020AE4 48 00 00 10 */ b lbl_80023BB4
|
|
lbl_80023BA8:
|
|
/* 80023BA8 00020AE8 38 60 00 02 */ li r3, 2
|
|
/* 80023BAC 00020AEC 48 00 00 08 */ b lbl_80023BB4
|
|
lbl_80023BB0:
|
|
/* 80023BB0 00020AF0 38 60 00 05 */ li r3, 5
|
|
lbl_80023BB4:
|
|
/* 80023BB4 00020AF4 80 01 00 14 */ lwz r0, 0x14(r1)
|
|
/* 80023BB8 00020AF8 7C 08 03 A6 */ mtlr r0
|
|
/* 80023BBC 00020AFC 38 21 00 10 */ addi r1, r1, 0x10
|
|
/* 80023BC0 00020B00 4E 80 00 20 */ blr
|
|
/* 80023BC4 00020B04 94 21 FF F0 */ stwu r1, -0x10(r1)
|
|
/* 80023BC8 00020B08 7C 08 02 A6 */ mflr r0
|
|
/* 80023BCC 00020B0C 90 01 00 14 */ stw r0, 0x14(r1)
|
|
/* 80023BD0 00020B10 93 E1 00 0C */ stw r31, 0xc(r1)
|
|
/* 80023BD4 00020B14 7C 7F 1B 78 */ mr r31, r3
|
|
/* 80023BD8 00020B18 80 63 00 44 */ lwz r3, 0x44(r3)
|
|
/* 80023BDC 00020B1C 4B FF DB 11 */ bl fpcLy_SetCurrentLayer
|
|
/* 80023BE0 00020B20 A8 7F 00 50 */ lha r3, 0x50(r31)
|
|
/* 80023BE4 00020B24 80 9F 00 3C */ lwz r4, 0x3c(r31)
|
|
/* 80023BE8 00020B28 80 BF 00 54 */ lwz r5, 0x54(r31)
|
|
/* 80023BEC 00020B2C 4B FF CC 35 */ bl fpcBs_Create
|
|
/* 80023BF0 00020B30 90 7F 00 40 */ stw r3, 0x40(r31)
|
|
/* 80023BF4 00020B34 80 7F 00 40 */ lwz r3, 0x40(r31)
|
|
/* 80023BF8 00020B38 28 03 00 00 */ cmplwi r3, 0
|
|
/* 80023BFC 00020B3C 40 82 00 14 */ bne lbl_80023C10
|
|
/* 80023C00 00020B40 A8 7F 00 50 */ lha r3, 0x50(r31)
|
|
/* 80023C04 00020B44 4B FF E4 29 */ bl fpcLd_Free
|
|
/* 80023C08 00020B48 38 60 00 05 */ li r3, 5
|
|
/* 80023C0C 00020B4C 48 00 00 0C */ b lbl_80023C18
|
|
lbl_80023C10:
|
|
/* 80023C10 00020B50 93 E3 00 14 */ stw r31, 0x14(r3)
|
|
/* 80023C14 00020B54 38 60 00 02 */ li r3, 2
|
|
lbl_80023C18:
|
|
/* 80023C18 00020B58 83 E1 00 0C */ lwz r31, 0xc(r1)
|
|
/* 80023C1C 00020B5C 80 01 00 14 */ lwz r0, 0x14(r1)
|
|
/* 80023C20 00020B60 7C 08 03 A6 */ mtlr r0
|
|
/* 80023C24 00020B64 38 21 00 10 */ addi r1, r1, 0x10
|
|
/* 80023C28 00020B68 4E 80 00 20 */ blr
|
|
/* 80023C2C 00020B6C 94 21 FF F0 */ stwu r1, -0x10(r1)
|
|
/* 80023C30 00020B70 7C 08 02 A6 */ mflr r0
|
|
/* 80023C34 00020B74 90 01 00 14 */ stw r0, 0x14(r1)
|
|
/* 80023C38 00020B78 93 E1 00 0C */ stw r31, 0xc(r1)
|
|
/* 80023C3C 00020B7C 7C 7F 1B 78 */ mr r31, r3
|
|
/* 80023C40 00020B80 80 63 00 44 */ lwz r3, 0x44(r3)
|
|
/* 80023C44 00020B84 4B FF DA A9 */ bl fpcLy_SetCurrentLayer
|
|
/* 80023C48 00020B88 80 7F 00 40 */ lwz r3, 0x40(r31)
|
|
/* 80023C4C 00020B8C 4B FF CC D1 */ bl fpcBs_SubCreate
|
|
/* 80023C50 00020B90 83 E1 00 0C */ lwz r31, 0xc(r1)
|
|
/* 80023C54 00020B94 80 01 00 14 */ lwz r0, 0x14(r1)
|
|
/* 80023C58 00020B98 7C 08 03 A6 */ mtlr r0
|
|
/* 80023C5C 00020B9C 38 21 00 10 */ addi r1, r1, 0x10
|
|
/* 80023C60 00020BA0 4E 80 00 20 */ blr
|
|
/* 80023C64 00020BA4 94 21 FF F0 */ stwu r1, -0x10(r1)
|
|
/* 80023C68 00020BA8 7C 08 02 A6 */ mflr r0
|
|
/* 80023C6C 00020BAC 90 01 00 14 */ stw r0, 0x14(r1)
|
|
/* 80023C70 00020BB0 93 E1 00 0C */ stw r31, 0xc(r1)
|
|
/* 80023C74 00020BB4 83 E3 00 40 */ lwz r31, 0x40(r3)
|
|
/* 80023C78 00020BB8 80 6D 87 C0 */ lwz r3, lbl_80450D40-_SDA_BASE_(r13)
|
|
/* 80023C7C 00020BBC 80 9F 00 B4 */ lwz r4, 0xb4(r31)
|
|
/* 80023C80 00020BC0 4B FF C9 CD */ bl fpcBs_Is_JustOfType
|
|
/* 80023C84 00020BC4 2C 03 00 01 */ cmpwi r3, 1
|
|
/* 80023C88 00020BC8 40 82 00 1C */ bne lbl_80023CA4
|
|
/* 80023C8C 00020BCC 38 7F 00 BC */ addi r3, r31, 0xbc
|
|
/* 80023C90 00020BD0 4B FF DA 11 */ bl fpcLy_IsCreatingMesg
|
|
/* 80023C94 00020BD4 2C 03 00 01 */ cmpwi r3, 1
|
|
/* 80023C98 00020BD8 40 82 00 0C */ bne lbl_80023CA4
|
|
/* 80023C9C 00020BDC 38 60 00 00 */ li r3, 0
|
|
/* 80023CA0 00020BE0 48 00 00 08 */ b lbl_80023CA8
|
|
lbl_80023CA4:
|
|
/* 80023CA4 00020BE4 38 60 00 02 */ li r3, 2
|
|
lbl_80023CA8:
|
|
/* 80023CA8 00020BE8 83 E1 00 0C */ lwz r31, 0xc(r1)
|
|
/* 80023CAC 00020BEC 80 01 00 14 */ lwz r0, 0x14(r1)
|
|
/* 80023CB0 00020BF0 7C 08 03 A6 */ mtlr r0
|
|
/* 80023CB4 00020BF4 38 21 00 10 */ addi r1, r1, 0x10
|
|
/* 80023CB8 00020BF8 4E 80 00 20 */ blr
|
|
/* 80023CBC 00020BFC 94 21 FF F0 */ stwu r1, -0x10(r1)
|
|
/* 80023CC0 00020C00 7C 08 02 A6 */ mflr r0
|
|
/* 80023CC4 00020C04 90 01 00 14 */ stw r0, 0x14(r1)
|
|
/* 80023CC8 00020C08 7C 64 1B 78 */ mr r4, r3
|
|
/* 80023CCC 00020C0C 81 83 00 58 */ lwz r12, 0x58(r3)
|
|
/* 80023CD0 00020C10 28 0C 00 00 */ cmplwi r12, 0
|
|
/* 80023CD4 00020C14 41 82 00 24 */ beq lbl_80023CF8
|
|
/* 80023CD8 00020C18 80 64 00 40 */ lwz r3, 0x40(r4)
|
|
/* 80023CDC 00020C1C 80 84 00 5C */ lwz r4, 0x5c(r4)
|
|
/* 80023CE0 00020C20 7D 89 03 A6 */ mtctr r12
|
|
/* 80023CE4 00020C24 4E 80 04 21 */ bctrl
|
|
/* 80023CE8 00020C28 2C 03 00 00 */ cmpwi r3, 0
|
|
/* 80023CEC 00020C2C 40 82 00 0C */ bne lbl_80023CF8
|
|
/* 80023CF0 00020C30 38 60 00 00 */ li r3, 0
|
|
/* 80023CF4 00020C34 48 00 00 08 */ b lbl_80023CFC
|
|
lbl_80023CF8:
|
|
/* 80023CF8 00020C38 38 60 00 02 */ li r3, 2
|
|
lbl_80023CFC:
|
|
/* 80023CFC 00020C3C 80 01 00 14 */ lwz r0, 0x14(r1)
|
|
/* 80023D00 00020C40 7C 08 03 A6 */ mtlr r0
|
|
/* 80023D04 00020C44 38 21 00 10 */ addi r1, r1, 0x10
|
|
/* 80023D08 00020C48 4E 80 00 20 */ blr
|
|
/* 80023D0C 00020C4C 38 60 00 02 */ li r3, 2
|
|
/* 80023D10 00020C50 4E 80 00 20 */ blr
|
|
|
|
.global fpcSCtRq_Handler
|
|
fpcSCtRq_Handler:
|
|
/* 80023D14 00020C54 94 21 FF F0 */ stwu r1, -0x10(r1)
|
|
/* 80023D18 00020C58 7C 08 02 A6 */ mflr r0
|
|
/* 80023D1C 00020C5C 90 01 00 14 */ stw r0, 0x14(r1)
|
|
/* 80023D20 00020C60 93 E1 00 0C */ stw r31, 0xc(r1)
|
|
/* 80023D24 00020C64 7C 7F 1B 78 */ mr r31, r3
|
|
/* 80023D28 00020C68 38 7F 00 48 */ addi r3, r31, 0x48
|
|
/* 80023D2C 00020C6C 7F E4 FB 78 */ mr r4, r31
|
|
/* 80023D30 00020C70 48 24 29 A9 */ bl cPhs_Do
|
|
/* 80023D34 00020C74 2C 03 00 03 */ cmpwi r3, 3
|
|
/* 80023D38 00020C78 41 82 00 38 */ beq lbl_80023D70
|
|
/* 80023D3C 00020C7C 40 80 00 14 */ bge lbl_80023D50
|
|
/* 80023D40 00020C80 2C 03 00 01 */ cmpwi r3, 1
|
|
/* 80023D44 00020C84 41 82 00 2C */ beq lbl_80023D70
|
|
/* 80023D48 00020C88 40 80 00 18 */ bge lbl_80023D60
|
|
/* 80023D4C 00020C8C 48 00 00 24 */ b lbl_80023D70
|
|
lbl_80023D50:
|
|
/* 80023D50 00020C90 2C 03 00 05 */ cmpwi r3, 5
|
|
/* 80023D54 00020C94 41 82 00 1C */ beq lbl_80023D70
|
|
/* 80023D58 00020C98 40 80 00 18 */ bge lbl_80023D70
|
|
/* 80023D5C 00020C9C 48 00 00 10 */ b lbl_80023D6C
|
|
lbl_80023D60:
|
|
/* 80023D60 00020CA0 7F E3 FB 78 */ mr r3, r31
|
|
/* 80023D64 00020CA4 4B FF FF B1 */ bl fpcSCtRq_Handler
|
|
/* 80023D68 00020CA8 48 00 00 08 */ b lbl_80023D70
|
|
lbl_80023D6C:
|
|
/* 80023D6C 00020CAC 38 60 00 04 */ li r3, 4
|
|
lbl_80023D70:
|
|
/* 80023D70 00020CB0 83 E1 00 0C */ lwz r31, 0xc(r1)
|
|
/* 80023D74 00020CB4 80 01 00 14 */ lwz r0, 0x14(r1)
|
|
/* 80023D78 00020CB8 7C 08 03 A6 */ mtlr r0
|
|
/* 80023D7C 00020CBC 38 21 00 10 */ addi r1, r1, 0x10
|
|
/* 80023D80 00020CC0 4E 80 00 20 */ blr
|
|
/* 80023D84 00020CC4 38 60 00 01 */ li r3, 1
|
|
/* 80023D88 00020CC8 4E 80 00 20 */ blr
|
|
/* 80023D8C 00020CCC 38 60 00 01 */ li r3, 1
|
|
/* 80023D90 00020CD0 4E 80 00 20 */ blr
|
|
|
|
.global fpcSCtRq_Request
|
|
fpcSCtRq_Request:
|
|
/* 80023D94 00020CD4 94 21 FF E0 */ stwu r1, -0x20(r1)
|
|
/* 80023D98 00020CD8 7C 08 02 A6 */ mflr r0
|
|
/* 80023D9C 00020CDC 90 01 00 24 */ stw r0, 0x24(r1)
|
|
/* 80023DA0 00020CE0 39 61 00 20 */ addi r11, r1, 0x20
|
|
/* 80023DA4 00020CE4 48 33 E4 31 */ bl _savegpr_27
|
|
/* 80023DA8 00020CE8 7C 9B 23 78 */ mr r27, r4
|
|
/* 80023DAC 00020CEC 7C BC 2B 78 */ mr r28, r5
|
|
/* 80023DB0 00020CF0 7C DD 33 78 */ mr r29, r6
|
|
/* 80023DB4 00020CF4 7C FE 3B 78 */ mr r30, r7
|
|
/* 80023DB8 00020CF8 7F 60 07 34 */ extsh r0, r27
|
|
/* 80023DBC 00020CFC 2C 00 7F FF */ cmpwi r0, 0x7fff
|
|
/* 80023DC0 00020D00 41 80 00 0C */ blt lbl_80023DCC
|
|
/* 80023DC4 00020D04 38 60 FF FF */ li r3, -1
|
|
/* 80023DC8 00020D08 48 00 00 48 */ b lbl_80023E10
|
|
lbl_80023DCC:
|
|
/* 80023DCC 00020D0C 38 80 00 60 */ li r4, 0x60
|
|
/* 80023DD0 00020D10 3C A0 80 3A */ lis r5, lbl_803A3AF0@ha
|
|
/* 80023DD4 00020D14 38 A5 3A F0 */ addi r5, r5, lbl_803A3AF0@l
|
|
/* 80023DD8 00020D18 4B FF CF D9 */ bl fpcCtRq_Create
|
|
/* 80023DDC 00020D1C 7C 7F 1B 79 */ or. r31, r3, r3
|
|
/* 80023DE0 00020D20 40 82 00 0C */ bne lbl_80023DEC
|
|
/* 80023DE4 00020D24 38 60 FF FF */ li r3, -1
|
|
/* 80023DE8 00020D28 48 00 00 28 */ b lbl_80023E10
|
|
lbl_80023DEC:
|
|
/* 80023DEC 00020D2C 38 7F 00 48 */ addi r3, r31, 0x48
|
|
/* 80023DF0 00020D30 3C 80 80 3A */ lis r4, lbl_803A3AFC@ha
|
|
/* 80023DF4 00020D34 38 84 3A FC */ addi r4, r4, lbl_803A3AFC@l
|
|
/* 80023DF8 00020D38 48 24 28 39 */ bl cPhs_Set
|
|
/* 80023DFC 00020D3C B3 7F 00 50 */ sth r27, 0x50(r31)
|
|
/* 80023E00 00020D40 93 9F 00 58 */ stw r28, 0x58(r31)
|
|
/* 80023E04 00020D44 93 BF 00 5C */ stw r29, 0x5c(r31)
|
|
/* 80023E08 00020D48 93 DF 00 54 */ stw r30, 0x54(r31)
|
|
/* 80023E0C 00020D4C 80 7F 00 3C */ lwz r3, 0x3c(r31)
|
|
lbl_80023E10:
|
|
/* 80023E10 00020D50 39 61 00 20 */ addi r11, r1, 0x20
|
|
/* 80023E14 00020D54 48 33 E4 0D */ bl _restgpr_27
|
|
/* 80023E18 00020D58 80 01 00 24 */ lwz r0, 0x24(r1)
|
|
/* 80023E1C 00020D5C 7C 08 03 A6 */ mtlr r0
|
|
/* 80023E20 00020D60 38 21 00 20 */ addi r1, r1, 0x20
|
|
/* 80023E24 00020D64 4E 80 00 20 */ blr
|
|
|