split m_Do_dvd_thread

This commit is contained in:
Pheenoh
2021-01-31 16:25:52 -05:00
parent e0bc0c8bf6
commit 7dd80fd76e
35 changed files with 1238 additions and 999 deletions
-997
View File
@@ -1,997 +0,0 @@
.include "macros.inc"
.section .text, "ax" # 800157fc
.global mDoDvdThd_NS_main
mDoDvdThd_NS_main:
/* 800157FC 0001273C 94 21 FF 70 */ stwu r1, -0x90(r1)
/* 80015800 00012740 7C 08 02 A6 */ mflr r0
/* 80015804 00012744 90 01 00 94 */ stw r0, 0x94(r1)
/* 80015808 00012748 93 E1 00 8C */ stw r31, 0x8c(r1)
/* 8001580C 0001274C 7C 7F 1B 78 */ mr r31, r3
/* 80015810 00012750 48 32 B4 75 */ bl OSGetCurrentThread
/* 80015814 00012754 7C 64 1B 78 */ mr r4, r3
/* 80015818 00012758 38 61 00 08 */ addi r3, r1, 8
/* 8001581C 0001275C 38 A0 00 00 */ li r5, 0
/* 80015820 00012760 48 2B BE 99 */ bl __ct__9JKRThreadFP8OSThreadi
/* 80015824 00012764 38 61 00 08 */ addi r3, r1, 8
/* 80015828 00012768 38 80 FF FF */ li r4, -1
/* 8001582C 0001276C 48 2B BF 2D */ bl __dt__9JKRThreadFv
/* 80015830 00012770 4B FF 94 B5 */ bl mDoExt_getAssertHeap
/* 80015834 00012774 48 2B 8C 05 */ bl becomeCurrentHeap__7JKRHeapFv
/* 80015838 00012778 7F E3 FB 78 */ mr r3, r31
/* 8001583C 0001277C 48 00 02 9D */ bl mDoDvdThd_param_c_NS_mainLoop
/* 80015840 00012780 38 60 00 00 */ li r3, 0
/* 80015844 00012784 83 E1 00 8C */ lwz r31, 0x8c(r1)
/* 80015848 00012788 80 01 00 94 */ lwz r0, 0x94(r1)
/* 8001584C 0001278C 7C 08 03 A6 */ mtlr r0
/* 80015850 00012790 38 21 00 90 */ addi r1, r1, 0x90
/* 80015854 00012794 4E 80 00 20 */ blr
.global mDoDvdThd_NS_create
mDoDvdThd_NS_create:
/* 80015858 00012798 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 8001585C 0001279C 7C 08 02 A6 */ mflr r0
/* 80015860 000127A0 90 01 00 14 */ stw r0, 0x14(r1)
/* 80015864 000127A4 93 E1 00 0C */ stw r31, 0xc(r1)
/* 80015868 000127A8 7C 68 1B 78 */ mr r8, r3
/* 8001586C 000127AC 3C 60 80 3E */ lis r3, lbl_803DD940@ha
/* 80015870 000127B0 3B E3 D9 40 */ addi r31, r3, lbl_803DD940@l
/* 80015874 000127B4 38 7F 00 00 */ addi r3, r31, 0
.global mDoDvdThd_NS_main
/* 80015878 000127B8 3C 80 80 01 */ lis r4, mDoDvdThd_NS_main@ha
.global mDoDvdThd_NS_main
/* 8001587C 000127BC 38 84 57 FC */ addi r4, r4, mDoDvdThd_NS_main@l
/* 80015880 000127C0 38 BF 13 20 */ addi r5, r31, 0x1320
/* 80015884 000127C4 38 DF 03 20 */ addi r6, r31, 0x320
/* 80015888 000127C8 38 E0 10 00 */ li r7, 0x1000
/* 8001588C 000127CC 39 20 00 01 */ li r9, 1
/* 80015890 000127D0 38 C6 10 00 */ addi r6, r6, 0x1000
/* 80015894 000127D4 48 32 B9 F9 */ bl OSCreateThread
/* 80015898 000127D8 38 7F 00 00 */ addi r3, r31, 0
/* 8001589C 000127DC 48 32 BF 19 */ bl OSResumeThread
/* 800158A0 000127E0 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 800158A4 000127E4 80 01 00 14 */ lwz r0, 0x14(r1)
/* 800158A8 000127E8 7C 08 03 A6 */ mtlr r0
/* 800158AC 000127EC 38 21 00 10 */ addi r1, r1, 0x10
/* 800158B0 000127F0 4E 80 00 20 */ blr
.global mDoDvdThd_NS_suspend
mDoDvdThd_NS_suspend:
/* 800158B4 000127F4 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 800158B8 000127F8 7C 08 02 A6 */ mflr r0
/* 800158BC 000127FC 90 01 00 14 */ stw r0, 0x14(r1)
/* 800158C0 00012800 3C 60 80 3E */ lis r3, lbl_803DD940@ha
/* 800158C4 00012804 38 63 D9 40 */ addi r3, r3, lbl_803DD940@l
/* 800158C8 00012808 48 32 C1 75 */ bl OSSuspendThread
/* 800158CC 0001280C 80 01 00 14 */ lwz r0, 0x14(r1)
/* 800158D0 00012810 7C 08 03 A6 */ mtlr r0
/* 800158D4 00012814 38 21 00 10 */ addi r1, r1, 0x10
/* 800158D8 00012818 4E 80 00 20 */ blr
.global my_DVDConvertPathToEntrynum
my_DVDConvertPathToEntrynum:
/* 800158DC 0001281C 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 800158E0 00012820 7C 08 02 A6 */ mflr r0
/* 800158E4 00012824 90 01 00 14 */ stw r0, 0x14(r1)
/* 800158E8 00012828 48 33 2C 41 */ bl DVDConvertPathToEntrynum
/* 800158EC 0001282C 80 01 00 14 */ lwz r0, 0x14(r1)
/* 800158F0 00012830 7C 08 03 A6 */ mtlr r0
/* 800158F4 00012834 38 21 00 10 */ addi r1, r1, 0x10
/* 800158F8 00012838 4E 80 00 20 */ blr
.global mDoDvdThd_command_c_NS_dtor
mDoDvdThd_command_c_NS_dtor:
/* 800158FC 0001283C 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 80015900 00012840 7C 08 02 A6 */ mflr r0
/* 80015904 00012844 90 01 00 14 */ stw r0, 0x14(r1)
/* 80015908 00012848 93 E1 00 0C */ stw r31, 0xc(r1)
/* 8001590C 0001284C 7C 7F 1B 79 */ or. r31, r3, r3
/* 80015910 00012850 41 82 00 1C */ beq lbl_8001592C
/* 80015914 00012854 3C A0 80 3A */ lis r5, lbl_803A34E8@ha
/* 80015918 00012858 38 05 34 E8 */ addi r0, r5, lbl_803A34E8@l
/* 8001591C 0001285C 90 1F 00 10 */ stw r0, 0x10(r31)
/* 80015920 00012860 7C 80 07 35 */ extsh. r0, r4
/* 80015924 00012864 40 81 00 08 */ ble lbl_8001592C
/* 80015928 00012868 48 2B 94 15 */ bl __dl__FPv
lbl_8001592C:
/* 8001592C 0001286C 7F E3 FB 78 */ mr r3, r31
/* 80015930 00012870 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 80015934 00012874 80 01 00 14 */ lwz r0, 0x14(r1)
/* 80015938 00012878 7C 08 03 A6 */ mtlr r0
/* 8001593C 0001287C 38 21 00 10 */ addi r1, r1, 0x10
/* 80015940 00012880 4E 80 00 20 */ blr
.global mDoDvdThd_param_c
mDoDvdThd_param_c:
/* 80015944 00012884 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 80015948 00012888 7C 08 02 A6 */ mflr r0
/* 8001594C 0001288C 90 01 00 14 */ stw r0, 0x14(r1)
/* 80015950 00012890 93 E1 00 0C */ stw r31, 0xc(r1)
/* 80015954 00012894 7C 7F 1B 78 */ mr r31, r3
/* 80015958 00012898 38 9F 00 20 */ addi r4, r31, 0x20
/* 8001595C 0001289C 38 A0 00 01 */ li r5, 1
/* 80015960 000128A0 48 32 90 35 */ bl OSInitMessageQueue
/* 80015964 000128A4 38 7F 00 30 */ addi r3, r31, 0x30
/* 80015968 000128A8 48 32 96 A1 */ bl OSInitMutex
/* 8001596C 000128AC 38 7F 00 24 */ addi r3, r31, 0x24
/* 80015970 000128B0 48 25 06 D1 */ bl cLs_Create
/* 80015974 000128B4 7F E3 FB 78 */ mr r3, r31
/* 80015978 000128B8 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 8001597C 000128BC 80 01 00 14 */ lwz r0, 0x14(r1)
/* 80015980 000128C0 7C 08 03 A6 */ mtlr r0
/* 80015984 000128C4 38 21 00 10 */ addi r1, r1, 0x10
/* 80015988 000128C8 4E 80 00 20 */ blr
.global mDoDvdThd_param_c_NS_kick
mDoDvdThd_param_c_NS_kick:
/* 8001598C 000128CC 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 80015990 000128D0 7C 08 02 A6 */ mflr r0
/* 80015994 000128D4 90 01 00 14 */ stw r0, 0x14(r1)
/* 80015998 000128D8 38 80 00 00 */ li r4, 0
/* 8001599C 000128DC 38 A0 00 00 */ li r5, 0
/* 800159A0 000128E0 48 32 90 55 */ bl OSSendMessage
/* 800159A4 000128E4 80 01 00 14 */ lwz r0, 0x14(r1)
/* 800159A8 000128E8 7C 08 03 A6 */ mtlr r0
/* 800159AC 000128EC 38 21 00 10 */ addi r1, r1, 0x10
/* 800159B0 000128F0 4E 80 00 20 */ blr
.global mDoDvdThd_param_c_NS_waitForKick
mDoDvdThd_param_c_NS_waitForKick:
/* 800159B4 000128F4 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 800159B8 000128F8 7C 08 02 A6 */ mflr r0
/* 800159BC 000128FC 90 01 00 14 */ stw r0, 0x14(r1)
/* 800159C0 00012900 38 80 00 00 */ li r4, 0
/* 800159C4 00012904 38 A0 00 01 */ li r5, 1
/* 800159C8 00012908 48 32 90 F5 */ bl OSReceiveMessage
/* 800159CC 0001290C 80 01 00 14 */ lwz r0, 0x14(r1)
/* 800159D0 00012910 7C 08 03 A6 */ mtlr r0
/* 800159D4 00012914 38 21 00 10 */ addi r1, r1, 0x10
/* 800159D8 00012918 4E 80 00 20 */ blr
.global mDoDvdThd_param_c_NS_getFirstCommand
mDoDvdThd_param_c_NS_getFirstCommand:
/* 800159DC 0001291C 80 63 00 24 */ lwz r3, 0x24(r3)
/* 800159E0 00012920 4E 80 00 20 */ blr
.global mDoDvdThd_param_c_NS_addition
mDoDvdThd_param_c_NS_addition:
/* 800159E4 00012924 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 800159E8 00012928 7C 08 02 A6 */ mflr r0
/* 800159EC 0001292C 90 01 00 14 */ stw r0, 0x14(r1)
/* 800159F0 00012930 93 E1 00 0C */ stw r31, 0xc(r1)
/* 800159F4 00012934 93 C1 00 08 */ stw r30, 8(r1)
/* 800159F8 00012938 7C 7E 1B 78 */ mr r30, r3
/* 800159FC 0001293C 7C 9F 23 78 */ mr r31, r4
/* 80015A00 00012940 38 7E 00 30 */ addi r3, r30, 0x30
/* 80015A04 00012944 48 32 96 3D */ bl OSLockMutex
/* 80015A08 00012948 38 7E 00 24 */ addi r3, r30, 0x24
/* 80015A0C 0001294C 7F E4 FB 78 */ mr r4, r31
/* 80015A10 00012950 48 25 04 ED */ bl cLs_Addition
/* 80015A14 00012954 38 7E 00 30 */ addi r3, r30, 0x30
/* 80015A18 00012958 48 32 97 05 */ bl OSUnlockMutex
/* 80015A1C 0001295C 7F C3 F3 78 */ mr r3, r30
/* 80015A20 00012960 4B FF FF 6D */ bl mDoDvdThd_param_c_NS_kick
/* 80015A24 00012964 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 80015A28 00012968 83 C1 00 08 */ lwz r30, 8(r1)
/* 80015A2C 0001296C 80 01 00 14 */ lwz r0, 0x14(r1)
/* 80015A30 00012970 7C 08 03 A6 */ mtlr r0
/* 80015A34 00012974 38 21 00 10 */ addi r1, r1, 0x10
/* 80015A38 00012978 4E 80 00 20 */ blr
.global mDoDvdThd_param_c_NS_cut
mDoDvdThd_param_c_NS_cut:
/* 80015A3C 0001297C 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 80015A40 00012980 7C 08 02 A6 */ mflr r0
/* 80015A44 00012984 90 01 00 14 */ stw r0, 0x14(r1)
/* 80015A48 00012988 93 E1 00 0C */ stw r31, 0xc(r1)
/* 80015A4C 0001298C 93 C1 00 08 */ stw r30, 8(r1)
/* 80015A50 00012990 7C 7E 1B 78 */ mr r30, r3
/* 80015A54 00012994 7C 9F 23 78 */ mr r31, r4
/* 80015A58 00012998 38 7E 00 30 */ addi r3, r30, 0x30
/* 80015A5C 0001299C 48 32 95 E5 */ bl OSLockMutex
/* 80015A60 000129A0 7F E3 FB 78 */ mr r3, r31
/* 80015A64 000129A4 48 25 04 15 */ bl cLs_SingleCut
/* 80015A68 000129A8 38 7E 00 30 */ addi r3, r30, 0x30
/* 80015A6C 000129AC 48 32 96 B1 */ bl OSUnlockMutex
/* 80015A70 000129B0 7F C3 F3 78 */ mr r3, r30
/* 80015A74 000129B4 4B FF FF 19 */ bl mDoDvdThd_param_c_NS_kick
/* 80015A78 000129B8 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 80015A7C 000129BC 83 C1 00 08 */ lwz r30, 8(r1)
/* 80015A80 000129C0 80 01 00 14 */ lwz r0, 0x14(r1)
/* 80015A84 000129C4 7C 08 03 A6 */ mtlr r0
/* 80015A88 000129C8 38 21 00 10 */ addi r1, r1, 0x10
/* 80015A8C 000129CC 4E 80 00 20 */ blr
.global cb
cb:
/* 80015A90 000129D0 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 80015A94 000129D4 7C 08 02 A6 */ mflr r0
/* 80015A98 000129D8 90 01 00 14 */ stw r0, 0x14(r1)
/* 80015A9C 000129DC 80 63 00 00 */ lwz r3, 0(r3)
/* 80015AA0 000129E0 81 83 00 10 */ lwz r12, 0x10(r3)
/* 80015AA4 000129E4 81 8C 00 0C */ lwz r12, 0xc(r12)
/* 80015AA8 000129E8 7D 89 03 A6 */ mtctr r12
/* 80015AAC 000129EC 4E 80 04 21 */ bctrl
/* 80015AB0 000129F0 2C 03 00 01 */ cmpwi r3, 1
/* 80015AB4 000129F4 41 82 00 14 */ beq lbl_80015AC8
/* 80015AB8 000129F8 3C 60 80 37 */ lis r3, lbl_803741A8@ha
/* 80015ABC 000129FC 38 63 41 A8 */ addi r3, r3, lbl_803741A8@l
/* 80015AC0 00012A00 4C C6 31 82 */ crclr 6
/* 80015AC4 00012A04 4B FF 11 49 */ bl OSReport_Error
lbl_80015AC8:
/* 80015AC8 00012A08 80 01 00 14 */ lwz r0, 0x14(r1)
/* 80015ACC 00012A0C 7C 08 03 A6 */ mtlr r0
/* 80015AD0 00012A10 38 21 00 10 */ addi r1, r1, 0x10
/* 80015AD4 00012A14 4E 80 00 20 */ blr
.global mDoDvdThd_param_c_NS_mainLoop
mDoDvdThd_param_c_NS_mainLoop:
/* 80015AD8 00012A18 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 80015ADC 00012A1C 7C 08 02 A6 */ mflr r0
/* 80015AE0 00012A20 90 01 00 24 */ stw r0, 0x24(r1)
/* 80015AE4 00012A24 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 80015AE8 00012A28 93 C1 00 18 */ stw r30, 0x18(r1)
/* 80015AEC 00012A2C 7C 7E 1B 78 */ mr r30, r3
/* 80015AF0 00012A30 3C 60 80 01 */ lis r3, cb@ha
/* 80015AF4 00012A34 3B E3 5A 90 */ addi r31, r3, cb@l
/* 80015AF8 00012A38 48 00 00 54 */ b lbl_80015B4C
/* 80015AFC 00012A3C 48 00 00 3C */ b lbl_80015B38
lbl_80015B00:
/* 80015B00 00012A40 7F C3 F3 78 */ mr r3, r30
/* 80015B04 00012A44 80 81 00 08 */ lwz r4, 8(r1)
/* 80015B08 00012A48 4B FF FF 35 */ bl mDoDvdThd_param_c_NS_cut
/* 80015B0C 00012A4C 88 0D 87 00 */ lbz r0, lbl_80450C80-_SDA_BASE_(r13)
/* 80015B10 00012A50 28 00 00 00 */ cmplwi r0, 0
/* 80015B14 00012A54 41 82 00 1C */ beq lbl_80015B30
/* 80015B18 00012A58 48 27 A3 E5 */ bl JASDvd_NS_getThreadPointer
/* 80015B1C 00012A5C 7F E4 FB 78 */ mr r4, r31
/* 80015B20 00012A60 38 A1 00 08 */ addi r5, r1, 8
/* 80015B24 00012A64 38 C0 00 04 */ li r6, 4
/* 80015B28 00012A68 48 27 A0 35 */ bl JASTaskThread_NS_sendCmdMsg
/* 80015B2C 00012A6C 48 00 00 0C */ b lbl_80015B38
lbl_80015B30:
/* 80015B30 00012A70 38 61 00 08 */ addi r3, r1, 8
/* 80015B34 00012A74 4B FF FF 5D */ bl cb
lbl_80015B38:
/* 80015B38 00012A78 7F C3 F3 78 */ mr r3, r30
/* 80015B3C 00012A7C 4B FF FE A1 */ bl mDoDvdThd_param_c_NS_getFirstCommand
/* 80015B40 00012A80 90 61 00 08 */ stw r3, 8(r1)
/* 80015B44 00012A84 28 03 00 00 */ cmplwi r3, 0
/* 80015B48 00012A88 40 82 FF B8 */ bne lbl_80015B00
lbl_80015B4C:
/* 80015B4C 00012A8C 7F C3 F3 78 */ mr r3, r30
/* 80015B50 00012A90 4B FF FE 65 */ bl mDoDvdThd_param_c_NS_waitForKick
/* 80015B54 00012A94 2C 03 00 00 */ cmpwi r3, 0
/* 80015B58 00012A98 40 82 FF E0 */ bne lbl_80015B38
/* 80015B5C 00012A9C 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 80015B60 00012AA0 83 C1 00 18 */ lwz r30, 0x18(r1)
/* 80015B64 00012AA4 80 01 00 24 */ lwz r0, 0x24(r1)
/* 80015B68 00012AA8 7C 08 03 A6 */ mtlr r0
/* 80015B6C 00012AAC 38 21 00 20 */ addi r1, r1, 0x20
/* 80015B70 00012AB0 4E 80 00 20 */ blr
.global mDoDvdThd_command_c
mDoDvdThd_command_c:
/* 80015B74 00012AB4 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 80015B78 00012AB8 7C 08 02 A6 */ mflr r0
/* 80015B7C 00012ABC 90 01 00 14 */ stw r0, 0x14(r1)
/* 80015B80 00012AC0 93 E1 00 0C */ stw r31, 0xc(r1)
/* 80015B84 00012AC4 7C 7F 1B 78 */ mr r31, r3
/* 80015B88 00012AC8 3C 80 80 3A */ lis r4, lbl_803A34E8@ha
/* 80015B8C 00012ACC 38 04 34 E8 */ addi r0, r4, lbl_803A34E8@l
/* 80015B90 00012AD0 90 03 00 10 */ stw r0, 0x10(r3)
/* 80015B94 00012AD4 38 00 00 00 */ li r0, 0
/* 80015B98 00012AD8 98 03 00 0C */ stb r0, 0xc(r3)
/* 80015B9C 00012ADC 48 25 07 61 */ bl cNd_ForcedClear
/* 80015BA0 00012AE0 7F E3 FB 78 */ mr r3, r31
/* 80015BA4 00012AE4 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 80015BA8 00012AE8 80 01 00 14 */ lwz r0, 0x14(r1)
/* 80015BAC 00012AEC 7C 08 03 A6 */ mtlr r0
/* 80015BB0 00012AF0 38 21 00 10 */ addi r1, r1, 0x10
/* 80015BB4 00012AF4 4E 80 00 20 */ blr
/* 80015BB8 00012AF8 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 80015BBC 00012AFC 7C 08 02 A6 */ mflr r0
/* 80015BC0 00012B00 90 01 00 14 */ stw r0, 0x14(r1)
/* 80015BC4 00012B04 93 E1 00 0C */ stw r31, 0xc(r1)
/* 80015BC8 00012B08 93 C1 00 08 */ stw r30, 8(r1)
/* 80015BCC 00012B0C 7C 7E 1B 79 */ or. r30, r3, r3
/* 80015BD0 00012B10 7C 9F 23 78 */ mr r31, r4
/* 80015BD4 00012B14 41 82 00 28 */ beq lbl_80015BFC
/* 80015BD8 00012B18 3C 80 80 3A */ lis r4, lbl_803A34D8@ha
/* 80015BDC 00012B1C 38 04 34 D8 */ addi r0, r4, lbl_803A34D8@l
/* 80015BE0 00012B20 90 1E 00 10 */ stw r0, 0x10(r30)
/* 80015BE4 00012B24 38 80 00 00 */ li r4, 0
/* 80015BE8 00012B28 4B FF FD 15 */ bl mDoDvdThd_command_c_NS_dtor
/* 80015BEC 00012B2C 7F E0 07 35 */ extsh. r0, r31
/* 80015BF0 00012B30 40 81 00 0C */ ble lbl_80015BFC
/* 80015BF4 00012B34 7F C3 F3 78 */ mr r3, r30
/* 80015BF8 00012B38 48 2B 91 45 */ bl __dl__FPv
lbl_80015BFC:
/* 80015BFC 00012B3C 7F C3 F3 78 */ mr r3, r30
/* 80015C00 00012B40 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 80015C04 00012B44 83 C1 00 08 */ lwz r30, 8(r1)
/* 80015C08 00012B48 80 01 00 14 */ lwz r0, 0x14(r1)
/* 80015C0C 00012B4C 7C 08 03 A6 */ mtlr r0
/* 80015C10 00012B50 38 21 00 10 */ addi r1, r1, 0x10
/* 80015C14 00012B54 4E 80 00 20 */ blr
.global mDoDvdThd_callback_c
mDoDvdThd_callback_c:
/* 80015C18 00012B58 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 80015C1C 00012B5C 7C 08 02 A6 */ mflr r0
/* 80015C20 00012B60 90 01 00 24 */ stw r0, 0x24(r1)
/* 80015C24 00012B64 39 61 00 20 */ addi r11, r1, 0x20
/* 80015C28 00012B68 48 34 C5 B5 */ bl _savegpr_29
/* 80015C2C 00012B6C 7C 7D 1B 78 */ mr r29, r3
/* 80015C30 00012B70 7C 9E 23 78 */ mr r30, r4
/* 80015C34 00012B74 7C BF 2B 78 */ mr r31, r5
/* 80015C38 00012B78 4B FF FF 3D */ bl mDoDvdThd_command_c
/* 80015C3C 00012B7C 3C 60 80 3A */ lis r3, lbl_803A34D8@ha
/* 80015C40 00012B80 38 03 34 D8 */ addi r0, r3, lbl_803A34D8@l
/* 80015C44 00012B84 90 1D 00 10 */ stw r0, 0x10(r29)
/* 80015C48 00012B88 93 DD 00 14 */ stw r30, 0x14(r29)
/* 80015C4C 00012B8C 93 FD 00 18 */ stw r31, 0x18(r29)
/* 80015C50 00012B90 38 00 00 00 */ li r0, 0
/* 80015C54 00012B94 90 1D 00 1C */ stw r0, 0x1c(r29)
/* 80015C58 00012B98 7F A3 EB 78 */ mr r3, r29
/* 80015C5C 00012B9C 39 61 00 20 */ addi r11, r1, 0x20
/* 80015C60 00012BA0 48 34 C5 C9 */ bl _restgpr_29
/* 80015C64 00012BA4 80 01 00 24 */ lwz r0, 0x24(r1)
/* 80015C68 00012BA8 7C 08 03 A6 */ mtlr r0
/* 80015C6C 00012BAC 38 21 00 20 */ addi r1, r1, 0x20
/* 80015C70 00012BB0 4E 80 00 20 */ blr
.global mDoDvdThd_callback_c_NS_create
mDoDvdThd_callback_c_NS_create:
/* 80015C74 00012BB4 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 80015C78 00012BB8 7C 08 02 A6 */ mflr r0
/* 80015C7C 00012BBC 90 01 00 24 */ stw r0, 0x24(r1)
/* 80015C80 00012BC0 39 61 00 20 */ addi r11, r1, 0x20
/* 80015C84 00012BC4 48 34 C5 59 */ bl _savegpr_29
/* 80015C88 00012BC8 7C 7D 1B 78 */ mr r29, r3
/* 80015C8C 00012BCC 7C 9E 23 78 */ mr r30, r4
/* 80015C90 00012BD0 4B FF 91 21 */ bl mDoExt_getCommandHeap
/* 80015C94 00012BD4 7C 64 1B 78 */ mr r4, r3
/* 80015C98 00012BD8 38 60 00 20 */ li r3, 0x20
/* 80015C9C 00012BDC 38 A0 FF FC */ li r5, -4
/* 80015CA0 00012BE0 48 2B 8F F9 */ bl __nw__FUlP7JKRHeapi
/* 80015CA4 00012BE4 7C 7F 1B 79 */ or. r31, r3, r3
/* 80015CA8 00012BE8 41 82 00 14 */ beq lbl_80015CBC
/* 80015CAC 00012BEC 7F A4 EB 78 */ mr r4, r29
/* 80015CB0 00012BF0 7F C5 F3 78 */ mr r5, r30
/* 80015CB4 00012BF4 4B FF FF 65 */ bl mDoDvdThd_callback_c
/* 80015CB8 00012BF8 7C 7F 1B 78 */ mr r31, r3
lbl_80015CBC:
/* 80015CBC 00012BFC 28 1F 00 00 */ cmplwi r31, 0
/* 80015CC0 00012C00 41 82 00 14 */ beq lbl_80015CD4
/* 80015CC4 00012C04 3C 60 80 3E */ lis r3, lbl_803DEC60@ha
/* 80015CC8 00012C08 38 63 EC 60 */ addi r3, r3, lbl_803DEC60@l
/* 80015CCC 00012C0C 7F E4 FB 78 */ mr r4, r31
/* 80015CD0 00012C10 4B FF FD 15 */ bl mDoDvdThd_param_c_NS_addition
lbl_80015CD4:
/* 80015CD4 00012C14 7F E3 FB 78 */ mr r3, r31
/* 80015CD8 00012C18 39 61 00 20 */ addi r11, r1, 0x20
/* 80015CDC 00012C1C 48 34 C5 4D */ bl _restgpr_29
/* 80015CE0 00012C20 80 01 00 24 */ lwz r0, 0x24(r1)
/* 80015CE4 00012C24 7C 08 03 A6 */ mtlr r0
/* 80015CE8 00012C28 38 21 00 20 */ addi r1, r1, 0x20
/* 80015CEC 00012C2C 4E 80 00 20 */ blr
/* 80015CF0 00012C30 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 80015CF4 00012C34 7C 08 02 A6 */ mflr r0
/* 80015CF8 00012C38 90 01 00 14 */ stw r0, 0x14(r1)
/* 80015CFC 00012C3C 93 E1 00 0C */ stw r31, 0xc(r1)
/* 80015D00 00012C40 7C 7F 1B 78 */ mr r31, r3
/* 80015D04 00012C44 80 63 00 18 */ lwz r3, 0x18(r3)
/* 80015D08 00012C48 81 9F 00 14 */ lwz r12, 0x14(r31)
/* 80015D0C 00012C4C 7D 89 03 A6 */ mtctr r12
/* 80015D10 00012C50 4E 80 04 21 */ bctrl
/* 80015D14 00012C54 90 7F 00 1C */ stw r3, 0x1c(r31)
/* 80015D18 00012C58 38 00 00 01 */ li r0, 1
/* 80015D1C 00012C5C 98 1F 00 0C */ stb r0, 0xc(r31)
/* 80015D20 00012C60 80 7F 00 1C */ lwz r3, 0x1c(r31)
/* 80015D24 00012C64 30 03 FF FF */ addic r0, r3, -1
/* 80015D28 00012C68 7C 00 19 10 */ subfe r0, r0, r3
/* 80015D2C 00012C6C 54 03 06 3E */ clrlwi r3, r0, 0x18
/* 80015D30 00012C70 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 80015D34 00012C74 80 01 00 14 */ lwz r0, 0x14(r1)
/* 80015D38 00012C78 7C 08 03 A6 */ mtlr r0
/* 80015D3C 00012C7C 38 21 00 10 */ addi r1, r1, 0x10
/* 80015D40 00012C80 4E 80 00 20 */ blr
/* 80015D44 00012C84 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 80015D48 00012C88 7C 08 02 A6 */ mflr r0
/* 80015D4C 00012C8C 90 01 00 14 */ stw r0, 0x14(r1)
/* 80015D50 00012C90 93 E1 00 0C */ stw r31, 0xc(r1)
/* 80015D54 00012C94 93 C1 00 08 */ stw r30, 8(r1)
/* 80015D58 00012C98 7C 7E 1B 79 */ or. r30, r3, r3
/* 80015D5C 00012C9C 7C 9F 23 78 */ mr r31, r4
/* 80015D60 00012CA0 41 82 00 28 */ beq lbl_80015D88
/* 80015D64 00012CA4 3C 80 80 3A */ lis r4, lbl_803A34C8@ha
/* 80015D68 00012CA8 38 04 34 C8 */ addi r0, r4, lbl_803A34C8@l
/* 80015D6C 00012CAC 90 1E 00 10 */ stw r0, 0x10(r30)
/* 80015D70 00012CB0 38 80 00 00 */ li r4, 0
/* 80015D74 00012CB4 4B FF FB 89 */ bl mDoDvdThd_command_c_NS_dtor
/* 80015D78 00012CB8 7F E0 07 35 */ extsh. r0, r31
/* 80015D7C 00012CBC 40 81 00 0C */ ble lbl_80015D88
/* 80015D80 00012CC0 7F C3 F3 78 */ mr r3, r30
/* 80015D84 00012CC4 48 2B 8F B9 */ bl __dl__FPv
lbl_80015D88:
/* 80015D88 00012CC8 7F C3 F3 78 */ mr r3, r30
/* 80015D8C 00012CCC 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 80015D90 00012CD0 83 C1 00 08 */ lwz r30, 8(r1)
/* 80015D94 00012CD4 80 01 00 14 */ lwz r0, 0x14(r1)
/* 80015D98 00012CD8 7C 08 03 A6 */ mtlr r0
/* 80015D9C 00012CDC 38 21 00 10 */ addi r1, r1, 0x10
/* 80015DA0 00012CE0 4E 80 00 20 */ blr
.global mDoDvdThd_mountArchive_c
mDoDvdThd_mountArchive_c:
/* 80015DA4 00012CE4 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 80015DA8 00012CE8 7C 08 02 A6 */ mflr r0
/* 80015DAC 00012CEC 90 01 00 14 */ stw r0, 0x14(r1)
/* 80015DB0 00012CF0 93 E1 00 0C */ stw r31, 0xc(r1)
/* 80015DB4 00012CF4 93 C1 00 08 */ stw r30, 8(r1)
/* 80015DB8 00012CF8 7C 7E 1B 78 */ mr r30, r3
/* 80015DBC 00012CFC 7C 9F 23 78 */ mr r31, r4
/* 80015DC0 00012D00 4B FF FD B5 */ bl mDoDvdThd_command_c
/* 80015DC4 00012D04 3C 60 80 3A */ lis r3, lbl_803A34C8@ha
/* 80015DC8 00012D08 38 03 34 C8 */ addi r0, r3, lbl_803A34C8@l
/* 80015DCC 00012D0C 90 1E 00 10 */ stw r0, 0x10(r30)
/* 80015DD0 00012D10 9B FE 00 14 */ stb r31, 0x14(r30)
/* 80015DD4 00012D14 38 00 FF FF */ li r0, -1
/* 80015DD8 00012D18 90 1E 00 18 */ stw r0, 0x18(r30)
/* 80015DDC 00012D1C 38 00 00 00 */ li r0, 0
/* 80015DE0 00012D20 90 1E 00 1C */ stw r0, 0x1c(r30)
/* 80015DE4 00012D24 90 1E 00 20 */ stw r0, 0x20(r30)
/* 80015DE8 00012D28 57 E0 06 3F */ clrlwi. r0, r31, 0x18
/* 80015DEC 00012D2C 40 82 00 0C */ bne lbl_80015DF8
/* 80015DF0 00012D30 88 0D 87 01 */ lbz r0, lbl_80450C81-_SDA_BASE_(r13)
/* 80015DF4 00012D34 98 1E 00 14 */ stb r0, 0x14(r30)
lbl_80015DF8:
/* 80015DF8 00012D38 7F C3 F3 78 */ mr r3, r30
/* 80015DFC 00012D3C 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 80015E00 00012D40 83 C1 00 08 */ lwz r30, 8(r1)
/* 80015E04 00012D44 80 01 00 14 */ lwz r0, 0x14(r1)
/* 80015E08 00012D48 7C 08 03 A6 */ mtlr r0
/* 80015E0C 00012D4C 38 21 00 10 */ addi r1, r1, 0x10
/* 80015E10 00012D50 4E 80 00 20 */ blr
.global mDoDvdThd_mountArchive_c_NS_create
mDoDvdThd_mountArchive_c_NS_create:
/* 80015E14 00012D54 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 80015E18 00012D58 7C 08 02 A6 */ mflr r0
/* 80015E1C 00012D5C 90 01 00 24 */ stw r0, 0x24(r1)
/* 80015E20 00012D60 39 61 00 20 */ addi r11, r1, 0x20
/* 80015E24 00012D64 48 34 C3 B5 */ bl _savegpr_28
/* 80015E28 00012D68 7C 7C 1B 78 */ mr r28, r3
/* 80015E2C 00012D6C 7C 9D 23 78 */ mr r29, r4
/* 80015E30 00012D70 7C BE 2B 78 */ mr r30, r5
/* 80015E34 00012D74 4B FF 8F 7D */ bl mDoExt_getCommandHeap
/* 80015E38 00012D78 7C 64 1B 78 */ mr r4, r3
/* 80015E3C 00012D7C 38 60 00 24 */ li r3, 0x24
/* 80015E40 00012D80 38 A0 FF FC */ li r5, -4
/* 80015E44 00012D84 48 2B 8E 55 */ bl __nw__FUlP7JKRHeapi
/* 80015E48 00012D88 7C 7F 1B 79 */ or. r31, r3, r3
/* 80015E4C 00012D8C 41 82 00 10 */ beq lbl_80015E5C
/* 80015E50 00012D90 7F A4 EB 78 */ mr r4, r29
/* 80015E54 00012D94 4B FF FF 51 */ bl mDoDvdThd_mountArchive_c
/* 80015E58 00012D98 7C 7F 1B 78 */ mr r31, r3
lbl_80015E5C:
/* 80015E5C 00012D9C 28 1F 00 00 */ cmplwi r31, 0
/* 80015E60 00012DA0 41 82 00 60 */ beq lbl_80015EC0
/* 80015E64 00012DA4 7F 83 E3 78 */ mr r3, r28
/* 80015E68 00012DA8 4B FF FA 75 */ bl my_DVDConvertPathToEntrynum
/* 80015E6C 00012DAC 90 7F 00 18 */ stw r3, 0x18(r31)
/* 80015E70 00012DB0 80 1F 00 18 */ lwz r0, 0x18(r31)
/* 80015E74 00012DB4 2C 00 FF FF */ cmpwi r0, -1
/* 80015E78 00012DB8 40 82 00 34 */ bne lbl_80015EAC
/* 80015E7C 00012DBC 38 00 00 01 */ li r0, 1
/* 80015E80 00012DC0 98 1F 00 0C */ stb r0, 0xc(r31)
/* 80015E84 00012DC4 28 1F 00 00 */ cmplwi r31, 0
/* 80015E88 00012DC8 41 82 00 1C */ beq lbl_80015EA4
/* 80015E8C 00012DCC 7F E3 FB 78 */ mr r3, r31
/* 80015E90 00012DD0 38 80 00 01 */ li r4, 1
/* 80015E94 00012DD4 81 9F 00 10 */ lwz r12, 0x10(r31)
/* 80015E98 00012DD8 81 8C 00 08 */ lwz r12, 8(r12)
/* 80015E9C 00012DDC 7D 89 03 A6 */ mtctr r12
/* 80015EA0 00012DE0 4E 80 04 21 */ bctrl
lbl_80015EA4:
/* 80015EA4 00012DE4 3B E0 00 00 */ li r31, 0
/* 80015EA8 00012DE8 48 00 00 18 */ b lbl_80015EC0
lbl_80015EAC:
/* 80015EAC 00012DEC 93 DF 00 20 */ stw r30, 0x20(r31)
/* 80015EB0 00012DF0 3C 60 80 3E */ lis r3, lbl_803DEC60@ha
/* 80015EB4 00012DF4 38 63 EC 60 */ addi r3, r3, lbl_803DEC60@l
/* 80015EB8 00012DF8 7F E4 FB 78 */ mr r4, r31
/* 80015EBC 00012DFC 4B FF FB 29 */ bl mDoDvdThd_param_c_NS_addition
lbl_80015EC0:
/* 80015EC0 00012E00 7F E3 FB 78 */ mr r3, r31
/* 80015EC4 00012E04 39 61 00 20 */ addi r11, r1, 0x20
/* 80015EC8 00012E08 48 34 C3 5D */ bl _restgpr_28
/* 80015ECC 00012E0C 80 01 00 24 */ lwz r0, 0x24(r1)
/* 80015ED0 00012E10 7C 08 03 A6 */ mtlr r0
/* 80015ED4 00012E14 38 21 00 20 */ addi r1, r1, 0x20
/* 80015ED8 00012E18 4E 80 00 20 */ blr
/* 80015EDC 00012E1C 94 21 FF D0 */ stwu r1, -0x30(r1)
/* 80015EE0 00012E20 7C 08 02 A6 */ mflr r0
/* 80015EE4 00012E24 90 01 00 34 */ stw r0, 0x34(r1)
/* 80015EE8 00012E28 39 61 00 30 */ addi r11, r1, 0x30
/* 80015EEC 00012E2C 48 34 C2 E1 */ bl _savegpr_25
/* 80015EF0 00012E30 7C 7A 1B 78 */ mr r26, r3
/* 80015EF4 00012E34 3B C0 00 00 */ li r30, 0
/* 80015EF8 00012E38 3B A0 00 00 */ li r29, 0
/* 80015EFC 00012E3C 3B 80 00 00 */ li r28, 0
/* 80015F00 00012E40 3B 60 00 00 */ li r27, 0
/* 80015F04 00012E44 80 63 00 20 */ lwz r3, 0x20(r3)
/* 80015F08 00012E48 28 03 00 00 */ cmplwi r3, 0
/* 80015F0C 00012E4C 41 82 00 08 */ beq lbl_80015F14
/* 80015F10 00012E50 48 00 00 08 */ b lbl_80015F18
lbl_80015F14:
/* 80015F14 00012E54 4B FF 8E D9 */ bl mDoExt_getArchiveHeap
lbl_80015F18:
/* 80015F18 00012E58 7C 79 1B 78 */ mr r25, r3
/* 80015F1C 00012E5C 3C 60 80 37 */ lis r3, lbl_803741A8@ha
/* 80015F20 00012E60 3B E3 41 A8 */ addi r31, r3, lbl_803741A8@l
lbl_80015F24:
/* 80015F24 00012E64 4B FF 8E D1 */ bl mDoExt_getArchiveHeapPtr
/* 80015F28 00012E68 7C 19 18 40 */ cmplw r25, r3
/* 80015F2C 00012E6C 40 82 00 0C */ bne lbl_80015F38
/* 80015F30 00012E70 3B 80 00 01 */ li r28, 1
/* 80015F34 00012E74 48 00 00 3C */ b lbl_80015F70
lbl_80015F38:
/* 80015F38 00012E78 4B FF 8E 49 */ bl mDoExt_getZeldaHeap
/* 80015F3C 00012E7C 7C 19 18 40 */ cmplw r25, r3
/* 80015F40 00012E80 40 82 00 0C */ bne lbl_80015F4C
/* 80015F44 00012E84 3B C0 00 01 */ li r30, 1
/* 80015F48 00012E88 48 00 00 28 */ b lbl_80015F70
lbl_80015F4C:
/* 80015F4C 00012E8C 4B FF 8E 05 */ bl mDoExt_getGameHeap
/* 80015F50 00012E90 7C 19 18 40 */ cmplw r25, r3
/* 80015F54 00012E94 40 82 00 0C */ bne lbl_80015F60
/* 80015F58 00012E98 3B A0 00 01 */ li r29, 1
/* 80015F5C 00012E9C 48 00 00 14 */ b lbl_80015F70
lbl_80015F60:
/* 80015F60 00012EA0 4B FF 8E D1 */ bl mDoExt_getJ2dHeap
/* 80015F64 00012EA4 7C 19 18 40 */ cmplw r25, r3
/* 80015F68 00012EA8 40 82 00 08 */ bne lbl_80015F70
/* 80015F6C 00012EAC 3B 60 00 01 */ li r27, 1
lbl_80015F70:
/* 80015F70 00012EB0 88 1A 00 14 */ lbz r0, 0x14(r26)
/* 80015F74 00012EB4 28 00 00 00 */ cmplwi r0, 0
/* 80015F78 00012EB8 40 82 00 34 */ bne lbl_80015FAC
/* 80015F7C 00012EBC 38 60 00 70 */ li r3, 0x70
/* 80015F80 00012EC0 7F 24 CB 78 */ mr r4, r25
/* 80015F84 00012EC4 38 A0 00 00 */ li r5, 0
/* 80015F88 00012EC8 48 2B 8D 11 */ bl __nw__FUlP7JKRHeapi
/* 80015F8C 00012ECC 7C 60 1B 79 */ or. r0, r3, r3
/* 80015F90 00012ED0 41 82 00 14 */ beq lbl_80015FA4
/* 80015F94 00012ED4 80 9A 00 18 */ lwz r4, 0x18(r26)
/* 80015F98 00012ED8 38 A0 00 01 */ li r5, 1
/* 80015F9C 00012EDC 48 2C 0A 1D */ bl __ct__13JKRMemArchiveFlQ210JKRArchive15EMountDirection
/* 80015FA0 00012EE0 7C 60 1B 78 */ mr r0, r3
lbl_80015FA4:
/* 80015FA4 00012EE4 7C 19 03 78 */ mr r25, r0
/* 80015FA8 00012EE8 48 00 00 30 */ b lbl_80015FD8
lbl_80015FAC:
/* 80015FAC 00012EEC 38 60 00 70 */ li r3, 0x70
/* 80015FB0 00012EF0 7F 24 CB 78 */ mr r4, r25
/* 80015FB4 00012EF4 38 A0 FF FC */ li r5, -4
/* 80015FB8 00012EF8 48 2B 8C E1 */ bl __nw__FUlP7JKRHeapi
/* 80015FBC 00012EFC 7C 60 1B 79 */ or. r0, r3, r3
/* 80015FC0 00012F00 41 82 00 14 */ beq lbl_80015FD4
/* 80015FC4 00012F04 80 9A 00 18 */ lwz r4, 0x18(r26)
/* 80015FC8 00012F08 38 A0 00 02 */ li r5, 2
/* 80015FCC 00012F0C 48 2C 09 ED */ bl __ct__13JKRMemArchiveFlQ210JKRArchive15EMountDirection
/* 80015FD0 00012F10 7C 60 1B 78 */ mr r0, r3
lbl_80015FD4:
/* 80015FD4 00012F14 7C 19 03 78 */ mr r25, r0
lbl_80015FD8:
/* 80015FD8 00012F18 28 19 00 00 */ cmplwi r25, 0
/* 80015FDC 00012F1C 41 82 00 18 */ beq lbl_80015FF4
/* 80015FE0 00012F20 88 19 00 30 */ lbz r0, 0x30(r25)
/* 80015FE4 00012F24 28 00 00 00 */ cmplwi r0, 0
/* 80015FE8 00012F28 41 82 00 0C */ beq lbl_80015FF4
/* 80015FEC 00012F2C 93 3A 00 1C */ stw r25, 0x1c(r26)
/* 80015FF0 00012F30 48 00 00 E8 */ b lbl_800160D8
lbl_80015FF4:
/* 80015FF4 00012F34 38 7F 00 3E */ addi r3, r31, 0x3e
/* 80015FF8 00012F38 4C C6 31 82 */ crclr 6
/* 80015FFC 00012F3C 4B FF 0C 11 */ bl OSReport_Error
/* 80016000 00012F40 28 19 00 00 */ cmplwi r25, 0
/* 80016004 00012F44 41 82 00 20 */ beq lbl_80016024
/* 80016008 00012F48 41 82 00 1C */ beq lbl_80016024
/* 8001600C 00012F4C 7F 23 CB 78 */ mr r3, r25
/* 80016010 00012F50 38 80 00 01 */ li r4, 1
/* 80016014 00012F54 81 99 00 00 */ lwz r12, 0(r25)
/* 80016018 00012F58 81 8C 00 08 */ lwz r12, 8(r12)
/* 8001601C 00012F5C 7D 89 03 A6 */ mtctr r12
/* 80016020 00012F60 4E 80 04 21 */ bctrl
lbl_80016024:
/* 80016024 00012F64 57 C0 06 3F */ clrlwi. r0, r30, 0x18
/* 80016028 00012F68 40 82 00 24 */ bne lbl_8001604C
/* 8001602C 00012F6C 3C 60 80 37 */ lis r3, lbl_803741A8@ha
/* 80016030 00012F70 38 63 41 A8 */ addi r3, r3, lbl_803741A8@l
/* 80016034 00012F74 38 63 00 6E */ addi r3, r3, 0x6e
/* 80016038 00012F78 4C C6 31 82 */ crclr 6
/* 8001603C 00012F7C 4B FF 0B D1 */ bl OSReport_Error
/* 80016040 00012F80 4B FF 8D 41 */ bl mDoExt_getZeldaHeap
/* 80016044 00012F84 7C 79 1B 78 */ mr r25, r3
/* 80016048 00012F88 4B FF FE DC */ b lbl_80015F24
lbl_8001604C:
/* 8001604C 00012F8C 57 80 06 3F */ clrlwi. r0, r28, 0x18
/* 80016050 00012F90 40 82 00 24 */ bne lbl_80016074
/* 80016054 00012F94 3C 60 80 37 */ lis r3, lbl_803741A8@ha
/* 80016058 00012F98 38 63 41 A8 */ addi r3, r3, lbl_803741A8@l
/* 8001605C 00012F9C 38 63 00 AE */ addi r3, r3, 0xae
/* 80016060 00012FA0 4C C6 31 82 */ crclr 6
/* 80016064 00012FA4 4B FF 0B A9 */ bl OSReport_Error
/* 80016068 00012FA8 4B FF 8D 8D */ bl mDoExt_getArchiveHeapPtr
/* 8001606C 00012FAC 7C 79 1B 78 */ mr r25, r3
/* 80016070 00012FB0 4B FF FE B4 */ b lbl_80015F24
lbl_80016074:
/* 80016074 00012FB4 57 A0 06 3F */ clrlwi. r0, r29, 0x18
/* 80016078 00012FB8 40 82 00 24 */ bne lbl_8001609C
/* 8001607C 00012FBC 3C 60 80 37 */ lis r3, lbl_803741A8@ha
/* 80016080 00012FC0 38 63 41 A8 */ addi r3, r3, lbl_803741A8@l
/* 80016084 00012FC4 38 63 00 F2 */ addi r3, r3, 0xf2
/* 80016088 00012FC8 4C C6 31 82 */ crclr 6
/* 8001608C 00012FCC 4B FF 0B 81 */ bl OSReport_Error
/* 80016090 00012FD0 4B FF 8C C1 */ bl mDoExt_getGameHeap
/* 80016094 00012FD4 7C 79 1B 78 */ mr r25, r3
/* 80016098 00012FD8 4B FF FE 8C */ b lbl_80015F24
lbl_8001609C:
/* 8001609C 00012FDC 57 60 06 3F */ clrlwi. r0, r27, 0x18
/* 800160A0 00012FE0 40 82 00 24 */ bne lbl_800160C4
/* 800160A4 00012FE4 3C 60 80 37 */ lis r3, lbl_803741A8@ha
/* 800160A8 00012FE8 38 63 41 A8 */ addi r3, r3, lbl_803741A8@l
/* 800160AC 00012FEC 38 63 01 32 */ addi r3, r3, 0x132
/* 800160B0 00012FF0 4C C6 31 82 */ crclr 6
/* 800160B4 00012FF4 4B FF 0B 59 */ bl OSReport_Error
/* 800160B8 00012FF8 4B FF 8D 79 */ bl mDoExt_getJ2dHeap
/* 800160BC 00012FFC 7C 79 1B 78 */ mr r25, r3
/* 800160C0 00013000 4B FF FE 64 */ b lbl_80015F24
lbl_800160C4:
/* 800160C4 00013004 3C 60 80 37 */ lis r3, lbl_803741A8@ha
/* 800160C8 00013008 38 63 41 A8 */ addi r3, r3, lbl_803741A8@l
/* 800160CC 0001300C 38 63 01 6F */ addi r3, r3, 0x16f
/* 800160D0 00013010 4C C6 31 82 */ crclr 6
/* 800160D4 00013014 4B FF 0A 69 */ bl OSReport_FatalError
lbl_800160D8:
/* 800160D8 00013018 38 00 00 01 */ li r0, 1
/* 800160DC 0001301C 98 1A 00 0C */ stb r0, 0xc(r26)
/* 800160E0 00013020 80 7A 00 1C */ lwz r3, 0x1c(r26)
/* 800160E4 00013024 30 03 FF FF */ addic r0, r3, -1
/* 800160E8 00013028 7C 00 19 10 */ subfe r0, r0, r3
/* 800160EC 0001302C 54 03 06 3E */ clrlwi r3, r0, 0x18
/* 800160F0 00013030 39 61 00 30 */ addi r11, r1, 0x30
/* 800160F4 00013034 48 34 C1 25 */ bl _restgpr_25
/* 800160F8 00013038 80 01 00 34 */ lwz r0, 0x34(r1)
/* 800160FC 0001303C 7C 08 03 A6 */ mtlr r0
/* 80016100 00013040 38 21 00 30 */ addi r1, r1, 0x30
/* 80016104 00013044 4E 80 00 20 */ blr
/* 80016108 00013048 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 8001610C 0001304C 7C 08 02 A6 */ mflr r0
/* 80016110 00013050 90 01 00 14 */ stw r0, 0x14(r1)
/* 80016114 00013054 93 E1 00 0C */ stw r31, 0xc(r1)
/* 80016118 00013058 93 C1 00 08 */ stw r30, 8(r1)
/* 8001611C 0001305C 7C 7E 1B 79 */ or. r30, r3, r3
/* 80016120 00013060 7C 9F 23 78 */ mr r31, r4
/* 80016124 00013064 41 82 00 28 */ beq lbl_8001614C
/* 80016128 00013068 3C 80 80 3A */ lis r4, lbl_803A34B8@ha
/* 8001612C 0001306C 38 04 34 B8 */ addi r0, r4, lbl_803A34B8@l
/* 80016130 00013070 90 1E 00 10 */ stw r0, 0x10(r30)
/* 80016134 00013074 38 80 00 00 */ li r4, 0
/* 80016138 00013078 4B FF F7 C5 */ bl mDoDvdThd_command_c_NS_dtor
/* 8001613C 0001307C 7F E0 07 35 */ extsh. r0, r31
/* 80016140 00013080 40 81 00 0C */ ble lbl_8001614C
/* 80016144 00013084 7F C3 F3 78 */ mr r3, r30
/* 80016148 00013088 48 2B 8B F5 */ bl __dl__FPv
lbl_8001614C:
/* 8001614C 0001308C 7F C3 F3 78 */ mr r3, r30
/* 80016150 00013090 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 80016154 00013094 83 C1 00 08 */ lwz r30, 8(r1)
/* 80016158 00013098 80 01 00 14 */ lwz r0, 0x14(r1)
/* 8001615C 0001309C 7C 08 03 A6 */ mtlr r0
/* 80016160 000130A0 38 21 00 10 */ addi r1, r1, 0x10
/* 80016164 000130A4 4E 80 00 20 */ blr
.global mDoDvdThd_mountXArchive_c
mDoDvdThd_mountXArchive_c:
/* 80016168 000130A8 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 8001616C 000130AC 7C 08 02 A6 */ mflr r0
/* 80016170 000130B0 90 01 00 24 */ stw r0, 0x24(r1)
/* 80016174 000130B4 39 61 00 20 */ addi r11, r1, 0x20
/* 80016178 000130B8 48 34 C0 65 */ bl _savegpr_29
/* 8001617C 000130BC 7C 7D 1B 78 */ mr r29, r3
/* 80016180 000130C0 7C 9E 23 78 */ mr r30, r4
/* 80016184 000130C4 7C BF 2B 78 */ mr r31, r5
/* 80016188 000130C8 4B FF F9 ED */ bl mDoDvdThd_command_c
/* 8001618C 000130CC 3C 60 80 3A */ lis r3, lbl_803A34B8@ha
/* 80016190 000130D0 38 03 34 B8 */ addi r0, r3, lbl_803A34B8@l
/* 80016194 000130D4 90 1D 00 10 */ stw r0, 0x10(r29)
/* 80016198 000130D8 9B DD 00 14 */ stb r30, 0x14(r29)
/* 8001619C 000130DC 38 00 FF FF */ li r0, -1
/* 800161A0 000130E0 90 1D 00 18 */ stw r0, 0x18(r29)
/* 800161A4 000130E4 38 00 00 00 */ li r0, 0
/* 800161A8 000130E8 90 1D 00 1C */ stw r0, 0x1c(r29)
/* 800161AC 000130EC 93 FD 00 20 */ stw r31, 0x20(r29)
/* 800161B0 000130F0 90 1D 00 24 */ stw r0, 0x24(r29)
/* 800161B4 000130F4 57 C0 06 3F */ clrlwi. r0, r30, 0x18
/* 800161B8 000130F8 40 82 00 0C */ bne lbl_800161C4
/* 800161BC 000130FC 88 0D 87 01 */ lbz r0, lbl_80450C81-_SDA_BASE_(r13)
/* 800161C0 00013100 98 1D 00 14 */ stb r0, 0x14(r29)
lbl_800161C4:
/* 800161C4 00013104 7F A3 EB 78 */ mr r3, r29
/* 800161C8 00013108 39 61 00 20 */ addi r11, r1, 0x20
/* 800161CC 0001310C 48 34 C0 5D */ bl _restgpr_29
/* 800161D0 00013110 80 01 00 24 */ lwz r0, 0x24(r1)
/* 800161D4 00013114 7C 08 03 A6 */ mtlr r0
/* 800161D8 00013118 38 21 00 20 */ addi r1, r1, 0x20
/* 800161DC 0001311C 4E 80 00 20 */ blr
.global mDoDvdThd_mountXArchive_c_NS_create
mDoDvdThd_mountXArchive_c_NS_create:
/* 800161E0 00013120 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 800161E4 00013124 7C 08 02 A6 */ mflr r0
/* 800161E8 00013128 90 01 00 24 */ stw r0, 0x24(r1)
/* 800161EC 0001312C 39 61 00 20 */ addi r11, r1, 0x20
/* 800161F0 00013130 48 34 BF E5 */ bl _savegpr_27
/* 800161F4 00013134 7C 7B 1B 78 */ mr r27, r3
/* 800161F8 00013138 7C 9C 23 78 */ mr r28, r4
/* 800161FC 0001313C 7C BD 2B 78 */ mr r29, r5
/* 80016200 00013140 7C DE 33 78 */ mr r30, r6
/* 80016204 00013144 4B FF 8B AD */ bl mDoExt_getCommandHeap
/* 80016208 00013148 7C 64 1B 78 */ mr r4, r3
/* 8001620C 0001314C 38 60 00 28 */ li r3, 0x28
/* 80016210 00013150 38 A0 FF FC */ li r5, -4
/* 80016214 00013154 48 2B 8A 85 */ bl __nw__FUlP7JKRHeapi
/* 80016218 00013158 7C 7F 1B 79 */ or. r31, r3, r3
/* 8001621C 0001315C 41 82 00 14 */ beq lbl_80016230
/* 80016220 00013160 7F 84 E3 78 */ mr r4, r28
/* 80016224 00013164 7F A5 EB 78 */ mr r5, r29
/* 80016228 00013168 4B FF FF 41 */ bl mDoDvdThd_mountXArchive_c
/* 8001622C 0001316C 7C 7F 1B 78 */ mr r31, r3
lbl_80016230:
/* 80016230 00013170 28 1F 00 00 */ cmplwi r31, 0
/* 80016234 00013174 41 82 00 60 */ beq lbl_80016294
/* 80016238 00013178 7F 63 DB 78 */ mr r3, r27
/* 8001623C 0001317C 4B FF F6 A1 */ bl my_DVDConvertPathToEntrynum
/* 80016240 00013180 90 7F 00 18 */ stw r3, 0x18(r31)
/* 80016244 00013184 80 1F 00 18 */ lwz r0, 0x18(r31)
/* 80016248 00013188 2C 00 FF FF */ cmpwi r0, -1
/* 8001624C 0001318C 40 82 00 34 */ bne lbl_80016280
/* 80016250 00013190 38 00 00 01 */ li r0, 1
/* 80016254 00013194 98 1F 00 0C */ stb r0, 0xc(r31)
/* 80016258 00013198 28 1F 00 00 */ cmplwi r31, 0
/* 8001625C 0001319C 41 82 00 1C */ beq lbl_80016278
/* 80016260 000131A0 7F E3 FB 78 */ mr r3, r31
/* 80016264 000131A4 38 80 00 01 */ li r4, 1
/* 80016268 000131A8 81 9F 00 10 */ lwz r12, 0x10(r31)
/* 8001626C 000131AC 81 8C 00 08 */ lwz r12, 8(r12)
/* 80016270 000131B0 7D 89 03 A6 */ mtctr r12
/* 80016274 000131B4 4E 80 04 21 */ bctrl
lbl_80016278:
/* 80016278 000131B8 3B E0 00 00 */ li r31, 0
/* 8001627C 000131BC 48 00 00 18 */ b lbl_80016294
lbl_80016280:
/* 80016280 000131C0 93 DF 00 24 */ stw r30, 0x24(r31)
/* 80016284 000131C4 3C 60 80 3E */ lis r3, lbl_803DEC60@ha
/* 80016288 000131C8 38 63 EC 60 */ addi r3, r3, lbl_803DEC60@l
/* 8001628C 000131CC 7F E4 FB 78 */ mr r4, r31
/* 80016290 000131D0 4B FF F7 55 */ bl mDoDvdThd_param_c_NS_addition
lbl_80016294:
/* 80016294 000131D4 7F E3 FB 78 */ mr r3, r31
/* 80016298 000131D8 39 61 00 20 */ addi r11, r1, 0x20
/* 8001629C 000131DC 48 34 BF 85 */ bl _restgpr_27
/* 800162A0 000131E0 80 01 00 24 */ lwz r0, 0x24(r1)
/* 800162A4 000131E4 7C 08 03 A6 */ mtlr r0
/* 800162A8 000131E8 38 21 00 20 */ addi r1, r1, 0x20
/* 800162AC 000131EC 4E 80 00 20 */ blr
/* 800162B0 000131F0 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 800162B4 000131F4 7C 08 02 A6 */ mflr r0
/* 800162B8 000131F8 90 01 00 14 */ stw r0, 0x14(r1)
/* 800162BC 000131FC 93 E1 00 0C */ stw r31, 0xc(r1)
/* 800162C0 00013200 93 C1 00 08 */ stw r30, 8(r1)
/* 800162C4 00013204 7C 7E 1B 78 */ mr r30, r3
/* 800162C8 00013208 88 03 00 14 */ lbz r0, 0x14(r3)
/* 800162CC 0001320C 28 00 00 00 */ cmplwi r0, 0
/* 800162D0 00013210 3B E0 00 02 */ li r31, 2
/* 800162D4 00013214 40 82 00 08 */ bne lbl_800162DC
/* 800162D8 00013218 3B E0 00 01 */ li r31, 1
lbl_800162DC:
/* 800162DC 0001321C 80 BE 00 24 */ lwz r5, 0x24(r30)
/* 800162E0 00013220 28 05 00 00 */ cmplwi r5, 0
/* 800162E4 00013224 41 82 00 08 */ beq lbl_800162EC
/* 800162E8 00013228 48 00 00 0C */ b lbl_800162F4
lbl_800162EC:
/* 800162EC 0001322C 4B FF 8B 01 */ bl mDoExt_getArchiveHeap
/* 800162F0 00013230 7C 65 1B 78 */ mr r5, r3
lbl_800162F4:
/* 800162F4 00013234 80 7E 00 18 */ lwz r3, 0x18(r30)
/* 800162F8 00013238 80 9E 00 20 */ lwz r4, 0x20(r30)
/* 800162FC 0001323C 7F E6 FB 78 */ mr r6, r31
/* 80016300 00013240 48 2B F5 C9 */ bl mount__10JKRArchiveFlQ210JKRArchive10EMountModeP7JKRHeapQ210JKRArchive15EMountDirection
/* 80016304 00013244 90 7E 00 1C */ stw r3, 0x1c(r30)
/* 80016308 00013248 80 7E 00 1C */ lwz r3, 0x1c(r30)
/* 8001630C 0001324C 30 03 FF FF */ addic r0, r3, -1
/* 80016310 00013250 7C 00 19 10 */ subfe r0, r0, r3
/* 80016314 00013254 54 03 06 3E */ clrlwi r3, r0, 0x18
/* 80016318 00013258 38 00 00 01 */ li r0, 1
/* 8001631C 0001325C 98 1E 00 0C */ stb r0, 0xc(r30)
/* 80016320 00013260 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 80016324 00013264 83 C1 00 08 */ lwz r30, 8(r1)
/* 80016328 00013268 80 01 00 14 */ lwz r0, 0x14(r1)
/* 8001632C 0001326C 7C 08 03 A6 */ mtlr r0
/* 80016330 00013270 38 21 00 10 */ addi r1, r1, 0x10
/* 80016334 00013274 4E 80 00 20 */ blr
.global mDoDvdThd_toMainRam_c
mDoDvdThd_toMainRam_c:
/* 80016338 00013278 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 8001633C 0001327C 7C 08 02 A6 */ mflr r0
/* 80016340 00013280 90 01 00 14 */ stw r0, 0x14(r1)
/* 80016344 00013284 93 E1 00 0C */ stw r31, 0xc(r1)
/* 80016348 00013288 93 C1 00 08 */ stw r30, 8(r1)
/* 8001634C 0001328C 7C 7E 1B 78 */ mr r30, r3
/* 80016350 00013290 7C 9F 23 78 */ mr r31, r4
/* 80016354 00013294 4B FF F8 21 */ bl mDoDvdThd_command_c
/* 80016358 00013298 3C 60 80 3A */ lis r3, lbl_803A34A8@ha
/* 8001635C 0001329C 38 03 34 A8 */ addi r0, r3, lbl_803A34A8@l
/* 80016360 000132A0 90 1E 00 10 */ stw r0, 0x10(r30)
/* 80016364 000132A4 9B FE 00 14 */ stb r31, 0x14(r30)
/* 80016368 000132A8 57 E0 06 3F */ clrlwi. r0, r31, 0x18
/* 8001636C 000132AC 40 82 00 0C */ bne lbl_80016378
/* 80016370 000132B0 88 0D 87 01 */ lbz r0, lbl_80450C81-_SDA_BASE_(r13)
/* 80016374 000132B4 98 1E 00 14 */ stb r0, 0x14(r30)
lbl_80016378:
/* 80016378 000132B8 7F C3 F3 78 */ mr r3, r30
/* 8001637C 000132BC 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 80016380 000132C0 83 C1 00 08 */ lwz r30, 8(r1)
/* 80016384 000132C4 80 01 00 14 */ lwz r0, 0x14(r1)
/* 80016388 000132C8 7C 08 03 A6 */ mtlr r0
/* 8001638C 000132CC 38 21 00 10 */ addi r1, r1, 0x10
/* 80016390 000132D0 4E 80 00 20 */ blr
.global mDoDvdThd_toMainRam_c_NS_create
mDoDvdThd_toMainRam_c_NS_create:
/* 80016394 000132D4 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 80016398 000132D8 7C 08 02 A6 */ mflr r0
/* 8001639C 000132DC 90 01 00 24 */ stw r0, 0x24(r1)
/* 800163A0 000132E0 39 61 00 20 */ addi r11, r1, 0x20
/* 800163A4 000132E4 48 34 BE 35 */ bl _savegpr_28
/* 800163A8 000132E8 7C 7C 1B 78 */ mr r28, r3
/* 800163AC 000132EC 7C 9D 23 78 */ mr r29, r4
/* 800163B0 000132F0 7C BE 2B 78 */ mr r30, r5
/* 800163B4 000132F4 4B FF 89 FD */ bl mDoExt_getCommandHeap
/* 800163B8 000132F8 7C 64 1B 78 */ mr r4, r3
/* 800163BC 000132FC 38 60 00 28 */ li r3, 0x28
/* 800163C0 00013300 38 A0 FF FC */ li r5, -4
/* 800163C4 00013304 48 2B 88 D5 */ bl __nw__FUlP7JKRHeapi
/* 800163C8 00013308 7C 7F 1B 79 */ or. r31, r3, r3
/* 800163CC 0001330C 41 82 00 10 */ beq lbl_800163DC
/* 800163D0 00013310 7F A4 EB 78 */ mr r4, r29
/* 800163D4 00013314 4B FF FF 65 */ bl mDoDvdThd_toMainRam_c
/* 800163D8 00013318 7C 7F 1B 78 */ mr r31, r3
lbl_800163DC:
/* 800163DC 0001331C 28 1F 00 00 */ cmplwi r31, 0
/* 800163E0 00013320 41 82 00 60 */ beq lbl_80016440
/* 800163E4 00013324 7F 83 E3 78 */ mr r3, r28
/* 800163E8 00013328 4B FF F4 F5 */ bl my_DVDConvertPathToEntrynum
/* 800163EC 0001332C 90 7F 00 18 */ stw r3, 0x18(r31)
/* 800163F0 00013330 80 1F 00 18 */ lwz r0, 0x18(r31)
/* 800163F4 00013334 2C 00 FF FF */ cmpwi r0, -1
/* 800163F8 00013338 40 82 00 34 */ bne lbl_8001642C
/* 800163FC 0001333C 38 00 00 01 */ li r0, 1
/* 80016400 00013340 98 1F 00 0C */ stb r0, 0xc(r31)
/* 80016404 00013344 28 1F 00 00 */ cmplwi r31, 0
/* 80016408 00013348 41 82 00 1C */ beq lbl_80016424
/* 8001640C 0001334C 7F E3 FB 78 */ mr r3, r31
/* 80016410 00013350 38 80 00 01 */ li r4, 1
/* 80016414 00013354 81 9F 00 10 */ lwz r12, 0x10(r31)
/* 80016418 00013358 81 8C 00 08 */ lwz r12, 8(r12)
/* 8001641C 0001335C 7D 89 03 A6 */ mtctr r12
/* 80016420 00013360 4E 80 04 21 */ bctrl
lbl_80016424:
/* 80016424 00013364 3B E0 00 00 */ li r31, 0
/* 80016428 00013368 48 00 00 18 */ b lbl_80016440
lbl_8001642C:
/* 8001642C 0001336C 93 DF 00 24 */ stw r30, 0x24(r31)
/* 80016430 00013370 3C 60 80 3E */ lis r3, lbl_803DEC60@ha
/* 80016434 00013374 38 63 EC 60 */ addi r3, r3, lbl_803DEC60@l
/* 80016438 00013378 7F E4 FB 78 */ mr r4, r31
/* 8001643C 0001337C 4B FF F5 A9 */ bl mDoDvdThd_param_c_NS_addition
lbl_80016440:
/* 80016440 00013380 7F E3 FB 78 */ mr r3, r31
/* 80016444 00013384 39 61 00 20 */ addi r11, r1, 0x20
/* 80016448 00013388 48 34 BD DD */ bl _restgpr_28
/* 8001644C 0001338C 80 01 00 24 */ lwz r0, 0x24(r1)
/* 80016450 00013390 7C 08 03 A6 */ mtlr r0
/* 80016454 00013394 38 21 00 20 */ addi r1, r1, 0x20
/* 80016458 00013398 4E 80 00 20 */ blr
/* 8001645C 0001339C 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 80016460 000133A0 7C 08 02 A6 */ mflr r0
/* 80016464 000133A4 90 01 00 14 */ stw r0, 0x14(r1)
/* 80016468 000133A8 93 E1 00 0C */ stw r31, 0xc(r1)
/* 8001646C 000133AC 93 C1 00 08 */ stw r30, 8(r1)
/* 80016470 000133B0 7C 7E 1B 79 */ or. r30, r3, r3
/* 80016474 000133B4 7C 9F 23 78 */ mr r31, r4
/* 80016478 000133B8 41 82 00 28 */ beq lbl_800164A0
/* 8001647C 000133BC 3C 80 80 3A */ lis r4, lbl_803A34A8@ha
/* 80016480 000133C0 38 04 34 A8 */ addi r0, r4, lbl_803A34A8@l
/* 80016484 000133C4 90 1E 00 10 */ stw r0, 0x10(r30)
/* 80016488 000133C8 38 80 00 00 */ li r4, 0
/* 8001648C 000133CC 4B FF F4 71 */ bl mDoDvdThd_command_c_NS_dtor
/* 80016490 000133D0 7F E0 07 35 */ extsh. r0, r31
/* 80016494 000133D4 40 81 00 0C */ ble lbl_800164A0
/* 80016498 000133D8 7F C3 F3 78 */ mr r3, r30
/* 8001649C 000133DC 48 2B 88 A1 */ bl __dl__FPv
lbl_800164A0:
/* 800164A0 000133E0 7F C3 F3 78 */ mr r3, r30
/* 800164A4 000133E4 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 800164A8 000133E8 83 C1 00 08 */ lwz r30, 8(r1)
/* 800164AC 000133EC 80 01 00 14 */ lwz r0, 0x14(r1)
/* 800164B0 000133F0 7C 08 03 A6 */ mtlr r0
/* 800164B4 000133F4 38 21 00 10 */ addi r1, r1, 0x10
/* 800164B8 000133F8 4E 80 00 20 */ blr
/* 800164BC 000133FC 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 800164C0 00013400 7C 08 02 A6 */ mflr r0
/* 800164C4 00013404 90 01 00 24 */ stw r0, 0x24(r1)
/* 800164C8 00013408 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 800164CC 0001340C 93 C1 00 18 */ stw r30, 0x18(r1)
/* 800164D0 00013410 7C 7E 1B 78 */ mr r30, r3
/* 800164D4 00013414 80 E3 00 24 */ lwz r7, 0x24(r3)
/* 800164D8 00013418 28 07 00 00 */ cmplwi r7, 0
/* 800164DC 0001341C 41 82 00 08 */ beq lbl_800164E4
/* 800164E0 00013420 48 00 00 0C */ b lbl_800164EC
lbl_800164E4:
/* 800164E4 00013424 4B FF 89 09 */ bl mDoExt_getArchiveHeap
/* 800164E8 00013428 7C 67 1B 78 */ mr r7, r3
lbl_800164EC:
/* 800164EC 0001342C 7C FF 3B 78 */ mr r31, r7
/* 800164F0 00013430 38 00 00 00 */ li r0, 0
/* 800164F4 00013434 90 01 00 08 */ stw r0, 8(r1)
/* 800164F8 00013438 80 7E 00 18 */ lwz r3, 0x18(r30)
/* 800164FC 0001343C 38 80 00 00 */ li r4, 0
/* 80016500 00013440 38 A0 00 01 */ li r5, 1
/* 80016504 00013444 38 C0 00 00 */ li r6, 0
/* 80016508 00013448 88 1E 00 14 */ lbz r0, 0x14(r30)
/* 8001650C 0001344C 28 00 00 00 */ cmplwi r0, 0
/* 80016510 00013450 39 00 00 02 */ li r8, 2
/* 80016514 00013454 40 82 00 08 */ bne lbl_8001651C
/* 80016518 00013458 39 00 00 01 */ li r8, 1
lbl_8001651C:
/* 8001651C 0001345C 39 20 00 00 */ li r9, 0
/* 80016520 00013460 39 40 00 00 */ li r10, 0
/* 80016524 00013464 48 2C 37 31 */ bl loadToMainRAM__12JKRDvdRipperFlPUc15JKRExpandSwitchUlP7JKRHeapQ212JKRDvdRipper15EAllocDirectionUlPiPUl
/* 80016528 00013468 90 7E 00 1C */ stw r3, 0x1c(r30)
/* 8001652C 0001346C 80 9E 00 1C */ lwz r4, 0x1c(r30)
/* 80016530 00013470 28 04 00 00 */ cmplwi r4, 0
/* 80016534 00013474 41 82 00 10 */ beq lbl_80016544
/* 80016538 00013478 7F E3 FB 78 */ mr r3, r31
/* 8001653C 0001347C 48 2B 81 C5 */ bl getSize__7JKRHeapCFPv
/* 80016540 00013480 90 7E 00 20 */ stw r3, 0x20(r30)
lbl_80016544:
/* 80016544 00013484 38 00 00 01 */ li r0, 1
/* 80016548 00013488 98 1E 00 0C */ stb r0, 0xc(r30)
/* 8001654C 0001348C 80 7E 00 1C */ lwz r3, 0x1c(r30)
/* 80016550 00013490 30 03 FF FF */ addic r0, r3, -1
/* 80016554 00013494 7C 00 19 10 */ subfe r0, r0, r3
/* 80016558 00013498 54 03 06 3E */ clrlwi r3, r0, 0x18
/* 8001655C 0001349C 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 80016560 000134A0 83 C1 00 18 */ lwz r30, 0x18(r1)
/* 80016564 000134A4 80 01 00 24 */ lwz r0, 0x24(r1)
/* 80016568 000134A8 7C 08 03 A6 */ mtlr r0
/* 8001656C 000134AC 38 21 00 20 */ addi r1, r1, 0x20
/* 80016570 000134B0 4E 80 00 20 */ blr
/* 80016574 000134B4 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 80016578 000134B8 7C 08 02 A6 */ mflr r0
/* 8001657C 000134BC 90 01 00 14 */ stw r0, 0x14(r1)
/* 80016580 000134C0 3C 60 80 3E */ lis r3, lbl_803DEC60@ha
/* 80016584 000134C4 38 63 EC 60 */ addi r3, r3, lbl_803DEC60@l
/* 80016588 000134C8 4B FF F3 BD */ bl mDoDvdThd_param_c
/* 8001658C 000134CC 80 01 00 14 */ lwz r0, 0x14(r1)
/* 80016590 000134D0 7C 08 03 A6 */ mtlr r0
/* 80016594 000134D4 38 21 00 10 */ addi r1, r1, 0x10
/* 80016598 000134D8 4E 80 00 20 */ blr
@@ -0,0 +1,23 @@
/* 800157FC 0001273C 94 21 FF 70 */ stwu r1, -0x90(r1)
/* 80015800 00012740 7C 08 02 A6 */ mflr r0
/* 80015804 00012744 90 01 00 94 */ stw r0, 0x94(r1)
/* 80015808 00012748 93 E1 00 8C */ stw r31, 0x8c(r1)
/* 8001580C 0001274C 7C 7F 1B 78 */ mr r31, r3
/* 80015810 00012750 48 32 B4 75 */ bl OSGetCurrentThread
/* 80015814 00012754 7C 64 1B 78 */ mr r4, r3
/* 80015818 00012758 38 61 00 08 */ addi r3, r1, 8
/* 8001581C 0001275C 38 A0 00 00 */ li r5, 0
/* 80015820 00012760 48 2B BE 99 */ bl __ct__9JKRThreadFP8OSThreadi
/* 80015824 00012764 38 61 00 08 */ addi r3, r1, 8
/* 80015828 00012768 38 80 FF FF */ li r4, -1
/* 8001582C 0001276C 48 2B BF 2D */ bl __dt__9JKRThreadFv
/* 80015830 00012770 4B FF 94 B5 */ bl mDoExt_getAssertHeap
/* 80015834 00012774 48 2B 8C 05 */ bl becomeCurrentHeap__7JKRHeapFv
/* 80015838 00012778 7F E3 FB 78 */ mr r3, r31
/* 8001583C 0001277C 48 00 02 9D */ bl mDoDvdThd_param_c_NS_mainLoop
/* 80015840 00012780 38 60 00 00 */ li r3, 0
/* 80015844 00012784 83 E1 00 8C */ lwz r31, 0x8c(r1)
/* 80015848 00012788 80 01 00 94 */ lwz r0, 0x94(r1)
/* 8001584C 0001278C 7C 08 03 A6 */ mtlr r0
/* 80015850 00012790 38 21 00 90 */ addi r1, r1, 0x90
/* 80015854 00012794 4E 80 00 20 */ blr
@@ -0,0 +1,25 @@
/* 80015858 00012798 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 8001585C 0001279C 7C 08 02 A6 */ mflr r0
/* 80015860 000127A0 90 01 00 14 */ stw r0, 0x14(r1)
/* 80015864 000127A4 93 E1 00 0C */ stw r31, 0xc(r1)
/* 80015868 000127A8 7C 68 1B 78 */ mr r8, r3
/* 8001586C 000127AC 3C 60 80 3E */ lis r3, lbl_803DD940@ha
/* 80015870 000127B0 3B E3 D9 40 */ addi r31, r3, lbl_803DD940@l
/* 80015874 000127B4 38 7F 00 00 */ addi r3, r31, 0
/*.global mDoDvdThd_NS_main*/
/* 80015878 000127B8 3C 80 80 01 */ lis r4, mDoDvdThd_NS_main@ha
/*.global mDoDvdThd_NS_main*/
/* 8001587C 000127BC 38 84 57 FC */ addi r4, r4, mDoDvdThd_NS_main@l
/* 80015880 000127C0 38 BF 13 20 */ addi r5, r31, 0x1320
/* 80015884 000127C4 38 DF 03 20 */ addi r6, r31, 0x320
/* 80015888 000127C8 38 E0 10 00 */ li r7, 0x1000
/* 8001588C 000127CC 39 20 00 01 */ li r9, 1
/* 80015890 000127D0 38 C6 10 00 */ addi r6, r6, 0x1000
/* 80015894 000127D4 48 32 B9 F9 */ bl OSCreateThread
/* 80015898 000127D8 38 7F 00 00 */ addi r3, r31, 0
/* 8001589C 000127DC 48 32 BF 19 */ bl OSResumeThread
/* 800158A0 000127E0 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 800158A4 000127E4 80 01 00 14 */ lwz r0, 0x14(r1)
/* 800158A8 000127E8 7C 08 03 A6 */ mtlr r0
/* 800158AC 000127EC 38 21 00 10 */ addi r1, r1, 0x10
/* 800158B0 000127F0 4E 80 00 20 */ blr
@@ -0,0 +1,10 @@
/* 800158B4 000127F4 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 800158B8 000127F8 7C 08 02 A6 */ mflr r0
/* 800158BC 000127FC 90 01 00 14 */ stw r0, 0x14(r1)
/* 800158C0 00012800 3C 60 80 3E */ lis r3, lbl_803DD940@ha
/* 800158C4 00012804 38 63 D9 40 */ addi r3, r3, lbl_803DD940@l
/* 800158C8 00012808 48 32 C1 75 */ bl OSSuspendThread
/* 800158CC 0001280C 80 01 00 14 */ lwz r0, 0x14(r1)
/* 800158D0 00012810 7C 08 03 A6 */ mtlr r0
/* 800158D4 00012814 38 21 00 10 */ addi r1, r1, 0x10
/* 800158D8 00012818 4E 80 00 20 */ blr
@@ -0,0 +1,8 @@
/* 800158DC 0001281C 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 800158E0 00012820 7C 08 02 A6 */ mflr r0
/* 800158E4 00012824 90 01 00 14 */ stw r0, 0x14(r1)
/* 800158E8 00012828 48 33 2C 41 */ bl DVDConvertPathToEntrynum
/* 800158EC 0001282C 80 01 00 14 */ lwz r0, 0x14(r1)
/* 800158F0 00012830 7C 08 03 A6 */ mtlr r0
/* 800158F4 00012834 38 21 00 10 */ addi r1, r1, 0x10
/* 800158F8 00012838 4E 80 00 20 */ blr
@@ -0,0 +1,19 @@
/* 800158FC 0001283C 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 80015900 00012840 7C 08 02 A6 */ mflr r0
/* 80015904 00012844 90 01 00 14 */ stw r0, 0x14(r1)
/* 80015908 00012848 93 E1 00 0C */ stw r31, 0xc(r1)
/* 8001590C 0001284C 7C 7F 1B 79 */ or. r31, r3, r3
/* 80015910 00012850 41 82 00 1C */ beq lbl_8001592C
/* 80015914 00012854 3C A0 80 3A */ lis r5, lbl_803A34E8@ha
/* 80015918 00012858 38 05 34 E8 */ addi r0, r5, lbl_803A34E8@l
/* 8001591C 0001285C 90 1F 00 10 */ stw r0, 0x10(r31)
/* 80015920 00012860 7C 80 07 35 */ extsh. r0, r4
/* 80015924 00012864 40 81 00 08 */ ble lbl_8001592C
/* 80015928 00012868 48 2B 94 15 */ bl __dl__FPv
lbl_8001592C:
/* 8001592C 0001286C 7F E3 FB 78 */ mr r3, r31
/* 80015930 00012870 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 80015934 00012874 80 01 00 14 */ lwz r0, 0x14(r1)
/* 80015938 00012878 7C 08 03 A6 */ mtlr r0
/* 8001593C 0001287C 38 21 00 10 */ addi r1, r1, 0x10
/* 80015940 00012880 4E 80 00 20 */ blr
@@ -0,0 +1,18 @@
/* 80015944 00012884 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 80015948 00012888 7C 08 02 A6 */ mflr r0
/* 8001594C 0001288C 90 01 00 14 */ stw r0, 0x14(r1)
/* 80015950 00012890 93 E1 00 0C */ stw r31, 0xc(r1)
/* 80015954 00012894 7C 7F 1B 78 */ mr r31, r3
/* 80015958 00012898 38 9F 00 20 */ addi r4, r31, 0x20
/* 8001595C 0001289C 38 A0 00 01 */ li r5, 1
/* 80015960 000128A0 48 32 90 35 */ bl OSInitMessageQueue
/* 80015964 000128A4 38 7F 00 30 */ addi r3, r31, 0x30
/* 80015968 000128A8 48 32 96 A1 */ bl OSInitMutex
/* 8001596C 000128AC 38 7F 00 24 */ addi r3, r31, 0x24
/* 80015970 000128B0 48 25 06 D1 */ bl cLs_Create
/* 80015974 000128B4 7F E3 FB 78 */ mr r3, r31
/* 80015978 000128B8 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 8001597C 000128BC 80 01 00 14 */ lwz r0, 0x14(r1)
/* 80015980 000128C0 7C 08 03 A6 */ mtlr r0
/* 80015984 000128C4 38 21 00 10 */ addi r1, r1, 0x10
/* 80015988 000128C8 4E 80 00 20 */ blr
@@ -0,0 +1,10 @@
/* 8001598C 000128CC 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 80015990 000128D0 7C 08 02 A6 */ mflr r0
/* 80015994 000128D4 90 01 00 14 */ stw r0, 0x14(r1)
/* 80015998 000128D8 38 80 00 00 */ li r4, 0
/* 8001599C 000128DC 38 A0 00 00 */ li r5, 0
/* 800159A0 000128E0 48 32 90 55 */ bl OSSendMessage
/* 800159A4 000128E4 80 01 00 14 */ lwz r0, 0x14(r1)
/* 800159A8 000128E8 7C 08 03 A6 */ mtlr r0
/* 800159AC 000128EC 38 21 00 10 */ addi r1, r1, 0x10
/* 800159B0 000128F0 4E 80 00 20 */ blr
@@ -0,0 +1,10 @@
/* 800159B4 000128F4 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 800159B8 000128F8 7C 08 02 A6 */ mflr r0
/* 800159BC 000128FC 90 01 00 14 */ stw r0, 0x14(r1)
/* 800159C0 00012900 38 80 00 00 */ li r4, 0
/* 800159C4 00012904 38 A0 00 01 */ li r5, 1
/* 800159C8 00012908 48 32 90 F5 */ bl OSReceiveMessage
/* 800159CC 0001290C 80 01 00 14 */ lwz r0, 0x14(r1)
/* 800159D0 00012910 7C 08 03 A6 */ mtlr r0
/* 800159D4 00012914 38 21 00 10 */ addi r1, r1, 0x10
/* 800159D8 00012918 4E 80 00 20 */ blr
@@ -0,0 +1,2 @@
/* 800159DC 0001291C 80 63 00 24 */ lwz r3, 0x24(r3)
/* 800159E0 00012920 4E 80 00 20 */ blr
@@ -0,0 +1,22 @@
/* 800159E4 00012924 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 800159E8 00012928 7C 08 02 A6 */ mflr r0
/* 800159EC 0001292C 90 01 00 14 */ stw r0, 0x14(r1)
/* 800159F0 00012930 93 E1 00 0C */ stw r31, 0xc(r1)
/* 800159F4 00012934 93 C1 00 08 */ stw r30, 8(r1)
/* 800159F8 00012938 7C 7E 1B 78 */ mr r30, r3
/* 800159FC 0001293C 7C 9F 23 78 */ mr r31, r4
/* 80015A00 00012940 38 7E 00 30 */ addi r3, r30, 0x30
/* 80015A04 00012944 48 32 96 3D */ bl OSLockMutex
/* 80015A08 00012948 38 7E 00 24 */ addi r3, r30, 0x24
/* 80015A0C 0001294C 7F E4 FB 78 */ mr r4, r31
/* 80015A10 00012950 48 25 04 ED */ bl cLs_Addition
/* 80015A14 00012954 38 7E 00 30 */ addi r3, r30, 0x30
/* 80015A18 00012958 48 32 97 05 */ bl OSUnlockMutex
/* 80015A1C 0001295C 7F C3 F3 78 */ mr r3, r30
/* 80015A20 00012960 4B FF FF 6D */ bl mDoDvdThd_param_c_NS_kick
/* 80015A24 00012964 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 80015A28 00012968 83 C1 00 08 */ lwz r30, 8(r1)
/* 80015A2C 0001296C 80 01 00 14 */ lwz r0, 0x14(r1)
/* 80015A30 00012970 7C 08 03 A6 */ mtlr r0
/* 80015A34 00012974 38 21 00 10 */ addi r1, r1, 0x10
/* 80015A38 00012978 4E 80 00 20 */ blr
@@ -0,0 +1,21 @@
/* 80015A3C 0001297C 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 80015A40 00012980 7C 08 02 A6 */ mflr r0
/* 80015A44 00012984 90 01 00 14 */ stw r0, 0x14(r1)
/* 80015A48 00012988 93 E1 00 0C */ stw r31, 0xc(r1)
/* 80015A4C 0001298C 93 C1 00 08 */ stw r30, 8(r1)
/* 80015A50 00012990 7C 7E 1B 78 */ mr r30, r3
/* 80015A54 00012994 7C 9F 23 78 */ mr r31, r4
/* 80015A58 00012998 38 7E 00 30 */ addi r3, r30, 0x30
/* 80015A5C 0001299C 48 32 95 E5 */ bl OSLockMutex
/* 80015A60 000129A0 7F E3 FB 78 */ mr r3, r31
/* 80015A64 000129A4 48 25 04 15 */ bl cLs_SingleCut
/* 80015A68 000129A8 38 7E 00 30 */ addi r3, r30, 0x30
/* 80015A6C 000129AC 48 32 96 B1 */ bl OSUnlockMutex
/* 80015A70 000129B0 7F C3 F3 78 */ mr r3, r30
/* 80015A74 000129B4 4B FF FF 19 */ bl mDoDvdThd_param_c_NS_kick
/* 80015A78 000129B8 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 80015A7C 000129BC 83 C1 00 08 */ lwz r30, 8(r1)
/* 80015A80 000129C0 80 01 00 14 */ lwz r0, 0x14(r1)
/* 80015A84 000129C4 7C 08 03 A6 */ mtlr r0
/* 80015A88 000129C8 38 21 00 10 */ addi r1, r1, 0x10
/* 80015A8C 000129CC 4E 80 00 20 */ blr
@@ -0,0 +1,19 @@
/* 80015A90 000129D0 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 80015A94 000129D4 7C 08 02 A6 */ mflr r0
/* 80015A98 000129D8 90 01 00 14 */ stw r0, 0x14(r1)
/* 80015A9C 000129DC 80 63 00 00 */ lwz r3, 0(r3)
/* 80015AA0 000129E0 81 83 00 10 */ lwz r12, 0x10(r3)
/* 80015AA4 000129E4 81 8C 00 0C */ lwz r12, 0xc(r12)
/* 80015AA8 000129E8 7D 89 03 A6 */ mtctr r12
/* 80015AAC 000129EC 4E 80 04 21 */ bctrl
/* 80015AB0 000129F0 2C 03 00 01 */ cmpwi r3, 1
/* 80015AB4 000129F4 41 82 00 14 */ beq lbl_80015AC8
/* 80015AB8 000129F8 3C 60 80 37 */ lis r3, lbl_803741A8@ha
/* 80015ABC 000129FC 38 63 41 A8 */ addi r3, r3, lbl_803741A8@l
/* 80015AC0 00012A00 4C C6 31 82 */ crclr 6
/* 80015AC4 00012A04 4B FF 11 49 */ bl OSReport_Error
lbl_80015AC8:
/* 80015AC8 00012A08 80 01 00 14 */ lwz r0, 0x14(r1)
/* 80015ACC 00012A0C 7C 08 03 A6 */ mtlr r0
/* 80015AD0 00012A10 38 21 00 10 */ addi r1, r1, 0x10
/* 80015AD4 00012A14 4E 80 00 20 */ blr
@@ -0,0 +1,43 @@
/* 80015AD8 00012A18 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 80015ADC 00012A1C 7C 08 02 A6 */ mflr r0
/* 80015AE0 00012A20 90 01 00 24 */ stw r0, 0x24(r1)
/* 80015AE4 00012A24 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 80015AE8 00012A28 93 C1 00 18 */ stw r30, 0x18(r1)
/* 80015AEC 00012A2C 7C 7E 1B 78 */ mr r30, r3
/* 80015AF0 00012A30 3C 60 80 01 */ lis r3, cb@ha
/* 80015AF4 00012A34 3B E3 5A 90 */ addi r31, r3, cb@l
/* 80015AF8 00012A38 48 00 00 54 */ b lbl_80015B4C
/* 80015AFC 00012A3C 48 00 00 3C */ b lbl_80015B38
lbl_80015B00:
/* 80015B00 00012A40 7F C3 F3 78 */ mr r3, r30
/* 80015B04 00012A44 80 81 00 08 */ lwz r4, 8(r1)
/* 80015B08 00012A48 4B FF FF 35 */ bl mDoDvdThd_param_c_NS_cut
/* 80015B0C 00012A4C 88 0D 87 00 */ lbz r0, lbl_80450C80-_SDA_BASE_(r13)
/* 80015B10 00012A50 28 00 00 00 */ cmplwi r0, 0
/* 80015B14 00012A54 41 82 00 1C */ beq lbl_80015B30
/* 80015B18 00012A58 48 27 A3 E5 */ bl JASDvd_NS_getThreadPointer
/* 80015B1C 00012A5C 7F E4 FB 78 */ mr r4, r31
/* 80015B20 00012A60 38 A1 00 08 */ addi r5, r1, 8
/* 80015B24 00012A64 38 C0 00 04 */ li r6, 4
/* 80015B28 00012A68 48 27 A0 35 */ bl JASTaskThread_NS_sendCmdMsg
/* 80015B2C 00012A6C 48 00 00 0C */ b lbl_80015B38
lbl_80015B30:
/* 80015B30 00012A70 38 61 00 08 */ addi r3, r1, 8
/* 80015B34 00012A74 4B FF FF 5D */ bl cb
lbl_80015B38:
/* 80015B38 00012A78 7F C3 F3 78 */ mr r3, r30
/* 80015B3C 00012A7C 4B FF FE A1 */ bl mDoDvdThd_param_c_NS_getFirstCommand
/* 80015B40 00012A80 90 61 00 08 */ stw r3, 8(r1)
/* 80015B44 00012A84 28 03 00 00 */ cmplwi r3, 0
/* 80015B48 00012A88 40 82 FF B8 */ bne lbl_80015B00
lbl_80015B4C:
/* 80015B4C 00012A8C 7F C3 F3 78 */ mr r3, r30
/* 80015B50 00012A90 4B FF FE 65 */ bl mDoDvdThd_param_c_NS_waitForKick
/* 80015B54 00012A94 2C 03 00 00 */ cmpwi r3, 0
/* 80015B58 00012A98 40 82 FF E0 */ bne lbl_80015B38
/* 80015B5C 00012A9C 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 80015B60 00012AA0 83 C1 00 18 */ lwz r30, 0x18(r1)
/* 80015B64 00012AA4 80 01 00 24 */ lwz r0, 0x24(r1)
/* 80015B68 00012AA8 7C 08 03 A6 */ mtlr r0
/* 80015B6C 00012AAC 38 21 00 20 */ addi r1, r1, 0x20
/* 80015B70 00012AB0 4E 80 00 20 */ blr
@@ -0,0 +1,17 @@
/* 80015B74 00012AB4 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 80015B78 00012AB8 7C 08 02 A6 */ mflr r0
/* 80015B7C 00012ABC 90 01 00 14 */ stw r0, 0x14(r1)
/* 80015B80 00012AC0 93 E1 00 0C */ stw r31, 0xc(r1)
/* 80015B84 00012AC4 7C 7F 1B 78 */ mr r31, r3
/* 80015B88 00012AC8 3C 80 80 3A */ lis r4, lbl_803A34E8@ha
/* 80015B8C 00012ACC 38 04 34 E8 */ addi r0, r4, lbl_803A34E8@l
/* 80015B90 00012AD0 90 03 00 10 */ stw r0, 0x10(r3)
/* 80015B94 00012AD4 38 00 00 00 */ li r0, 0
/* 80015B98 00012AD8 98 03 00 0C */ stb r0, 0xc(r3)
/* 80015B9C 00012ADC 48 25 07 61 */ bl cNd_ForcedClear
/* 80015BA0 00012AE0 7F E3 FB 78 */ mr r3, r31
/* 80015BA4 00012AE4 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 80015BA8 00012AE8 80 01 00 14 */ lwz r0, 0x14(r1)
/* 80015BAC 00012AEC 7C 08 03 A6 */ mtlr r0
/* 80015BB0 00012AF0 38 21 00 10 */ addi r1, r1, 0x10
/* 80015BB4 00012AF4 4E 80 00 20 */ blr
@@ -0,0 +1,25 @@
/* 80015BB8 00012AF8 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 80015BBC 00012AFC 7C 08 02 A6 */ mflr r0
/* 80015BC0 00012B00 90 01 00 14 */ stw r0, 0x14(r1)
/* 80015BC4 00012B04 93 E1 00 0C */ stw r31, 0xc(r1)
/* 80015BC8 00012B08 93 C1 00 08 */ stw r30, 8(r1)
/* 80015BCC 00012B0C 7C 7E 1B 79 */ or. r30, r3, r3
/* 80015BD0 00012B10 7C 9F 23 78 */ mr r31, r4
/* 80015BD4 00012B14 41 82 00 28 */ beq lbl_80015BFC
/* 80015BD8 00012B18 3C 80 80 3A */ lis r4, lbl_803A34D8@ha
/* 80015BDC 00012B1C 38 04 34 D8 */ addi r0, r4, lbl_803A34D8@l
/* 80015BE0 00012B20 90 1E 00 10 */ stw r0, 0x10(r30)
/* 80015BE4 00012B24 38 80 00 00 */ li r4, 0
/* 80015BE8 00012B28 4B FF FD 15 */ bl mDoDvdThd_command_c_NS_dtor
/* 80015BEC 00012B2C 7F E0 07 35 */ extsh. r0, r31
/* 80015BF0 00012B30 40 81 00 0C */ ble lbl_80015BFC
/* 80015BF4 00012B34 7F C3 F3 78 */ mr r3, r30
/* 80015BF8 00012B38 48 2B 91 45 */ bl __dl__FPv
lbl_80015BFC:
/* 80015BFC 00012B3C 7F C3 F3 78 */ mr r3, r30
/* 80015C00 00012B40 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 80015C04 00012B44 83 C1 00 08 */ lwz r30, 8(r1)
/* 80015C08 00012B48 80 01 00 14 */ lwz r0, 0x14(r1)
/* 80015C0C 00012B4C 7C 08 03 A6 */ mtlr r0
/* 80015C10 00012B50 38 21 00 10 */ addi r1, r1, 0x10
/* 80015C14 00012B54 4E 80 00 20 */ blr
@@ -0,0 +1,23 @@
/* 80015C18 00012B58 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 80015C1C 00012B5C 7C 08 02 A6 */ mflr r0
/* 80015C20 00012B60 90 01 00 24 */ stw r0, 0x24(r1)
/* 80015C24 00012B64 39 61 00 20 */ addi r11, r1, 0x20
/* 80015C28 00012B68 48 34 C5 B5 */ bl _savegpr_29
/* 80015C2C 00012B6C 7C 7D 1B 78 */ mr r29, r3
/* 80015C30 00012B70 7C 9E 23 78 */ mr r30, r4
/* 80015C34 00012B74 7C BF 2B 78 */ mr r31, r5
/* 80015C38 00012B78 4B FF FF 3D */ bl mDoDvdThd_command_c
/* 80015C3C 00012B7C 3C 60 80 3A */ lis r3, lbl_803A34D8@ha
/* 80015C40 00012B80 38 03 34 D8 */ addi r0, r3, lbl_803A34D8@l
/* 80015C44 00012B84 90 1D 00 10 */ stw r0, 0x10(r29)
/* 80015C48 00012B88 93 DD 00 14 */ stw r30, 0x14(r29)
/* 80015C4C 00012B8C 93 FD 00 18 */ stw r31, 0x18(r29)
/* 80015C50 00012B90 38 00 00 00 */ li r0, 0
/* 80015C54 00012B94 90 1D 00 1C */ stw r0, 0x1c(r29)
/* 80015C58 00012B98 7F A3 EB 78 */ mr r3, r29
/* 80015C5C 00012B9C 39 61 00 20 */ addi r11, r1, 0x20
/* 80015C60 00012BA0 48 34 C5 C9 */ bl _restgpr_29
/* 80015C64 00012BA4 80 01 00 24 */ lwz r0, 0x24(r1)
/* 80015C68 00012BA8 7C 08 03 A6 */ mtlr r0
/* 80015C6C 00012BAC 38 21 00 20 */ addi r1, r1, 0x20
/* 80015C70 00012BB0 4E 80 00 20 */ blr
@@ -0,0 +1,33 @@
/* 80015C74 00012BB4 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 80015C78 00012BB8 7C 08 02 A6 */ mflr r0
/* 80015C7C 00012BBC 90 01 00 24 */ stw r0, 0x24(r1)
/* 80015C80 00012BC0 39 61 00 20 */ addi r11, r1, 0x20
/* 80015C84 00012BC4 48 34 C5 59 */ bl _savegpr_29
/* 80015C88 00012BC8 7C 7D 1B 78 */ mr r29, r3
/* 80015C8C 00012BCC 7C 9E 23 78 */ mr r30, r4
/* 80015C90 00012BD0 4B FF 91 21 */ bl mDoExt_getCommandHeap
/* 80015C94 00012BD4 7C 64 1B 78 */ mr r4, r3
/* 80015C98 00012BD8 38 60 00 20 */ li r3, 0x20
/* 80015C9C 00012BDC 38 A0 FF FC */ li r5, -4
/* 80015CA0 00012BE0 48 2B 8F F9 */ bl __nw__FUlP7JKRHeapi
/* 80015CA4 00012BE4 7C 7F 1B 79 */ or. r31, r3, r3
/* 80015CA8 00012BE8 41 82 00 14 */ beq lbl_80015CBC
/* 80015CAC 00012BEC 7F A4 EB 78 */ mr r4, r29
/* 80015CB0 00012BF0 7F C5 F3 78 */ mr r5, r30
/* 80015CB4 00012BF4 4B FF FF 65 */ bl mDoDvdThd_callback_c
/* 80015CB8 00012BF8 7C 7F 1B 78 */ mr r31, r3
lbl_80015CBC:
/* 80015CBC 00012BFC 28 1F 00 00 */ cmplwi r31, 0
/* 80015CC0 00012C00 41 82 00 14 */ beq lbl_80015CD4
/* 80015CC4 00012C04 3C 60 80 3E */ lis r3, lbl_803DEC60@ha
/* 80015CC8 00012C08 38 63 EC 60 */ addi r3, r3, lbl_803DEC60@l
/* 80015CCC 00012C0C 7F E4 FB 78 */ mr r4, r31
/* 80015CD0 00012C10 4B FF FD 15 */ bl mDoDvdThd_param_c_NS_addition
lbl_80015CD4:
/* 80015CD4 00012C14 7F E3 FB 78 */ mr r3, r31
/* 80015CD8 00012C18 39 61 00 20 */ addi r11, r1, 0x20
/* 80015CDC 00012C1C 48 34 C5 4D */ bl _restgpr_29
/* 80015CE0 00012C20 80 01 00 24 */ lwz r0, 0x24(r1)
/* 80015CE4 00012C24 7C 08 03 A6 */ mtlr r0
/* 80015CE8 00012C28 38 21 00 20 */ addi r1, r1, 0x20
/* 80015CEC 00012C2C 4E 80 00 20 */ blr
@@ -0,0 +1,21 @@
/* 80015CF0 00012C30 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 80015CF4 00012C34 7C 08 02 A6 */ mflr r0
/* 80015CF8 00012C38 90 01 00 14 */ stw r0, 0x14(r1)
/* 80015CFC 00012C3C 93 E1 00 0C */ stw r31, 0xc(r1)
/* 80015D00 00012C40 7C 7F 1B 78 */ mr r31, r3
/* 80015D04 00012C44 80 63 00 18 */ lwz r3, 0x18(r3)
/* 80015D08 00012C48 81 9F 00 14 */ lwz r12, 0x14(r31)
/* 80015D0C 00012C4C 7D 89 03 A6 */ mtctr r12
/* 80015D10 00012C50 4E 80 04 21 */ bctrl
/* 80015D14 00012C54 90 7F 00 1C */ stw r3, 0x1c(r31)
/* 80015D18 00012C58 38 00 00 01 */ li r0, 1
/* 80015D1C 00012C5C 98 1F 00 0C */ stb r0, 0xc(r31)
/* 80015D20 00012C60 80 7F 00 1C */ lwz r3, 0x1c(r31)
/* 80015D24 00012C64 30 03 FF FF */ addic r0, r3, -1
/* 80015D28 00012C68 7C 00 19 10 */ subfe r0, r0, r3
/* 80015D2C 00012C6C 54 03 06 3E */ clrlwi r3, r0, 0x18
/* 80015D30 00012C70 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 80015D34 00012C74 80 01 00 14 */ lwz r0, 0x14(r1)
/* 80015D38 00012C78 7C 08 03 A6 */ mtlr r0
/* 80015D3C 00012C7C 38 21 00 10 */ addi r1, r1, 0x10
/* 80015D40 00012C80 4E 80 00 20 */ blr
@@ -0,0 +1,25 @@
/* 80015D44 00012C84 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 80015D48 00012C88 7C 08 02 A6 */ mflr r0
/* 80015D4C 00012C8C 90 01 00 14 */ stw r0, 0x14(r1)
/* 80015D50 00012C90 93 E1 00 0C */ stw r31, 0xc(r1)
/* 80015D54 00012C94 93 C1 00 08 */ stw r30, 8(r1)
/* 80015D58 00012C98 7C 7E 1B 79 */ or. r30, r3, r3
/* 80015D5C 00012C9C 7C 9F 23 78 */ mr r31, r4
/* 80015D60 00012CA0 41 82 00 28 */ beq lbl_80015D88
/* 80015D64 00012CA4 3C 80 80 3A */ lis r4, lbl_803A34C8@ha
/* 80015D68 00012CA8 38 04 34 C8 */ addi r0, r4, lbl_803A34C8@l
/* 80015D6C 00012CAC 90 1E 00 10 */ stw r0, 0x10(r30)
/* 80015D70 00012CB0 38 80 00 00 */ li r4, 0
/* 80015D74 00012CB4 4B FF FB 89 */ bl mDoDvdThd_command_c_NS_dtor
/* 80015D78 00012CB8 7F E0 07 35 */ extsh. r0, r31
/* 80015D7C 00012CBC 40 81 00 0C */ ble lbl_80015D88
/* 80015D80 00012CC0 7F C3 F3 78 */ mr r3, r30
/* 80015D84 00012CC4 48 2B 8F B9 */ bl __dl__FPv
lbl_80015D88:
/* 80015D88 00012CC8 7F C3 F3 78 */ mr r3, r30
/* 80015D8C 00012CCC 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 80015D90 00012CD0 83 C1 00 08 */ lwz r30, 8(r1)
/* 80015D94 00012CD4 80 01 00 14 */ lwz r0, 0x14(r1)
/* 80015D98 00012CD8 7C 08 03 A6 */ mtlr r0
/* 80015D9C 00012CDC 38 21 00 10 */ addi r1, r1, 0x10
/* 80015DA0 00012CE0 4E 80 00 20 */ blr
@@ -0,0 +1,29 @@
/* 80015DA4 00012CE4 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 80015DA8 00012CE8 7C 08 02 A6 */ mflr r0
/* 80015DAC 00012CEC 90 01 00 14 */ stw r0, 0x14(r1)
/* 80015DB0 00012CF0 93 E1 00 0C */ stw r31, 0xc(r1)
/* 80015DB4 00012CF4 93 C1 00 08 */ stw r30, 8(r1)
/* 80015DB8 00012CF8 7C 7E 1B 78 */ mr r30, r3
/* 80015DBC 00012CFC 7C 9F 23 78 */ mr r31, r4
/* 80015DC0 00012D00 4B FF FD B5 */ bl mDoDvdThd_command_c
/* 80015DC4 00012D04 3C 60 80 3A */ lis r3, lbl_803A34C8@ha
/* 80015DC8 00012D08 38 03 34 C8 */ addi r0, r3, lbl_803A34C8@l
/* 80015DCC 00012D0C 90 1E 00 10 */ stw r0, 0x10(r30)
/* 80015DD0 00012D10 9B FE 00 14 */ stb r31, 0x14(r30)
/* 80015DD4 00012D14 38 00 FF FF */ li r0, -1
/* 80015DD8 00012D18 90 1E 00 18 */ stw r0, 0x18(r30)
/* 80015DDC 00012D1C 38 00 00 00 */ li r0, 0
/* 80015DE0 00012D20 90 1E 00 1C */ stw r0, 0x1c(r30)
/* 80015DE4 00012D24 90 1E 00 20 */ stw r0, 0x20(r30)
/* 80015DE8 00012D28 57 E0 06 3F */ clrlwi. r0, r31, 0x18
/* 80015DEC 00012D2C 40 82 00 0C */ bne lbl_80015DF8
/* 80015DF0 00012D30 88 0D 87 01 */ lbz r0, lbl_80450C81-_SDA_BASE_(r13)
/* 80015DF4 00012D34 98 1E 00 14 */ stb r0, 0x14(r30)
lbl_80015DF8:
/* 80015DF8 00012D38 7F C3 F3 78 */ mr r3, r30
/* 80015DFC 00012D3C 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 80015E00 00012D40 83 C1 00 08 */ lwz r30, 8(r1)
/* 80015E04 00012D44 80 01 00 14 */ lwz r0, 0x14(r1)
/* 80015E08 00012D48 7C 08 03 A6 */ mtlr r0
/* 80015E0C 00012D4C 38 21 00 10 */ addi r1, r1, 0x10
/* 80015E10 00012D50 4E 80 00 20 */ blr
@@ -0,0 +1,54 @@
/* 80015E14 00012D54 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 80015E18 00012D58 7C 08 02 A6 */ mflr r0
/* 80015E1C 00012D5C 90 01 00 24 */ stw r0, 0x24(r1)
/* 80015E20 00012D60 39 61 00 20 */ addi r11, r1, 0x20
/* 80015E24 00012D64 48 34 C3 B5 */ bl _savegpr_28
/* 80015E28 00012D68 7C 7C 1B 78 */ mr r28, r3
/* 80015E2C 00012D6C 7C 9D 23 78 */ mr r29, r4
/* 80015E30 00012D70 7C BE 2B 78 */ mr r30, r5
/* 80015E34 00012D74 4B FF 8F 7D */ bl mDoExt_getCommandHeap
/* 80015E38 00012D78 7C 64 1B 78 */ mr r4, r3
/* 80015E3C 00012D7C 38 60 00 24 */ li r3, 0x24
/* 80015E40 00012D80 38 A0 FF FC */ li r5, -4
/* 80015E44 00012D84 48 2B 8E 55 */ bl __nw__FUlP7JKRHeapi
/* 80015E48 00012D88 7C 7F 1B 79 */ or. r31, r3, r3
/* 80015E4C 00012D8C 41 82 00 10 */ beq lbl_80015E5C
/* 80015E50 00012D90 7F A4 EB 78 */ mr r4, r29
/* 80015E54 00012D94 4B FF FF 51 */ bl mDoDvdThd_mountArchive_c
/* 80015E58 00012D98 7C 7F 1B 78 */ mr r31, r3
lbl_80015E5C:
/* 80015E5C 00012D9C 28 1F 00 00 */ cmplwi r31, 0
/* 80015E60 00012DA0 41 82 00 60 */ beq lbl_80015EC0
/* 80015E64 00012DA4 7F 83 E3 78 */ mr r3, r28
/* 80015E68 00012DA8 4B FF FA 75 */ bl my_DVDConvertPathToEntrynum
/* 80015E6C 00012DAC 90 7F 00 18 */ stw r3, 0x18(r31)
/* 80015E70 00012DB0 80 1F 00 18 */ lwz r0, 0x18(r31)
/* 80015E74 00012DB4 2C 00 FF FF */ cmpwi r0, -1
/* 80015E78 00012DB8 40 82 00 34 */ bne lbl_80015EAC
/* 80015E7C 00012DBC 38 00 00 01 */ li r0, 1
/* 80015E80 00012DC0 98 1F 00 0C */ stb r0, 0xc(r31)
/* 80015E84 00012DC4 28 1F 00 00 */ cmplwi r31, 0
/* 80015E88 00012DC8 41 82 00 1C */ beq lbl_80015EA4
/* 80015E8C 00012DCC 7F E3 FB 78 */ mr r3, r31
/* 80015E90 00012DD0 38 80 00 01 */ li r4, 1
/* 80015E94 00012DD4 81 9F 00 10 */ lwz r12, 0x10(r31)
/* 80015E98 00012DD8 81 8C 00 08 */ lwz r12, 8(r12)
/* 80015E9C 00012DDC 7D 89 03 A6 */ mtctr r12
/* 80015EA0 00012DE0 4E 80 04 21 */ bctrl
lbl_80015EA4:
/* 80015EA4 00012DE4 3B E0 00 00 */ li r31, 0
/* 80015EA8 00012DE8 48 00 00 18 */ b lbl_80015EC0
lbl_80015EAC:
/* 80015EAC 00012DEC 93 DF 00 20 */ stw r30, 0x20(r31)
/* 80015EB0 00012DF0 3C 60 80 3E */ lis r3, lbl_803DEC60@ha
/* 80015EB4 00012DF4 38 63 EC 60 */ addi r3, r3, lbl_803DEC60@l
/* 80015EB8 00012DF8 7F E4 FB 78 */ mr r4, r31
/* 80015EBC 00012DFC 4B FF FB 29 */ bl mDoDvdThd_param_c_NS_addition
lbl_80015EC0:
/* 80015EC0 00012E00 7F E3 FB 78 */ mr r3, r31
/* 80015EC4 00012E04 39 61 00 20 */ addi r11, r1, 0x20
/* 80015EC8 00012E08 48 34 C3 5D */ bl _restgpr_28
/* 80015ECC 00012E0C 80 01 00 24 */ lwz r0, 0x24(r1)
/* 80015ED0 00012E10 7C 08 03 A6 */ mtlr r0
/* 80015ED4 00012E14 38 21 00 20 */ addi r1, r1, 0x20
/* 80015ED8 00012E18 4E 80 00 20 */ blr
@@ -0,0 +1,157 @@
/* 80015EDC 00012E1C 94 21 FF D0 */ stwu r1, -0x30(r1)
/* 80015EE0 00012E20 7C 08 02 A6 */ mflr r0
/* 80015EE4 00012E24 90 01 00 34 */ stw r0, 0x34(r1)
/* 80015EE8 00012E28 39 61 00 30 */ addi r11, r1, 0x30
/* 80015EEC 00012E2C 48 34 C2 E1 */ bl _savegpr_25
/* 80015EF0 00012E30 7C 7A 1B 78 */ mr r26, r3
/* 80015EF4 00012E34 3B C0 00 00 */ li r30, 0
/* 80015EF8 00012E38 3B A0 00 00 */ li r29, 0
/* 80015EFC 00012E3C 3B 80 00 00 */ li r28, 0
/* 80015F00 00012E40 3B 60 00 00 */ li r27, 0
/* 80015F04 00012E44 80 63 00 20 */ lwz r3, 0x20(r3)
/* 80015F08 00012E48 28 03 00 00 */ cmplwi r3, 0
/* 80015F0C 00012E4C 41 82 00 08 */ beq lbl_80015F14
/* 80015F10 00012E50 48 00 00 08 */ b lbl_80015F18
lbl_80015F14:
/* 80015F14 00012E54 4B FF 8E D9 */ bl mDoExt_getArchiveHeap
lbl_80015F18:
/* 80015F18 00012E58 7C 79 1B 78 */ mr r25, r3
/* 80015F1C 00012E5C 3C 60 80 37 */ lis r3, lbl_803741A8@ha
/* 80015F20 00012E60 3B E3 41 A8 */ addi r31, r3, lbl_803741A8@l
lbl_80015F24:
/* 80015F24 00012E64 4B FF 8E D1 */ bl mDoExt_getArchiveHeapPtr
/* 80015F28 00012E68 7C 19 18 40 */ cmplw r25, r3
/* 80015F2C 00012E6C 40 82 00 0C */ bne lbl_80015F38
/* 80015F30 00012E70 3B 80 00 01 */ li r28, 1
/* 80015F34 00012E74 48 00 00 3C */ b lbl_80015F70
lbl_80015F38:
/* 80015F38 00012E78 4B FF 8E 49 */ bl mDoExt_getZeldaHeap
/* 80015F3C 00012E7C 7C 19 18 40 */ cmplw r25, r3
/* 80015F40 00012E80 40 82 00 0C */ bne lbl_80015F4C
/* 80015F44 00012E84 3B C0 00 01 */ li r30, 1
/* 80015F48 00012E88 48 00 00 28 */ b lbl_80015F70
lbl_80015F4C:
/* 80015F4C 00012E8C 4B FF 8E 05 */ bl mDoExt_getGameHeap
/* 80015F50 00012E90 7C 19 18 40 */ cmplw r25, r3
/* 80015F54 00012E94 40 82 00 0C */ bne lbl_80015F60
/* 80015F58 00012E98 3B A0 00 01 */ li r29, 1
/* 80015F5C 00012E9C 48 00 00 14 */ b lbl_80015F70
lbl_80015F60:
/* 80015F60 00012EA0 4B FF 8E D1 */ bl mDoExt_getJ2dHeap
/* 80015F64 00012EA4 7C 19 18 40 */ cmplw r25, r3
/* 80015F68 00012EA8 40 82 00 08 */ bne lbl_80015F70
/* 80015F6C 00012EAC 3B 60 00 01 */ li r27, 1
lbl_80015F70:
/* 80015F70 00012EB0 88 1A 00 14 */ lbz r0, 0x14(r26)
/* 80015F74 00012EB4 28 00 00 00 */ cmplwi r0, 0
/* 80015F78 00012EB8 40 82 00 34 */ bne lbl_80015FAC
/* 80015F7C 00012EBC 38 60 00 70 */ li r3, 0x70
/* 80015F80 00012EC0 7F 24 CB 78 */ mr r4, r25
/* 80015F84 00012EC4 38 A0 00 00 */ li r5, 0
/* 80015F88 00012EC8 48 2B 8D 11 */ bl __nw__FUlP7JKRHeapi
/* 80015F8C 00012ECC 7C 60 1B 79 */ or. r0, r3, r3
/* 80015F90 00012ED0 41 82 00 14 */ beq lbl_80015FA4
/* 80015F94 00012ED4 80 9A 00 18 */ lwz r4, 0x18(r26)
/* 80015F98 00012ED8 38 A0 00 01 */ li r5, 1
/* 80015F9C 00012EDC 48 2C 0A 1D */ bl __ct__13JKRMemArchiveFlQ210JKRArchive15EMountDirection
/* 80015FA0 00012EE0 7C 60 1B 78 */ mr r0, r3
lbl_80015FA4:
/* 80015FA4 00012EE4 7C 19 03 78 */ mr r25, r0
/* 80015FA8 00012EE8 48 00 00 30 */ b lbl_80015FD8
lbl_80015FAC:
/* 80015FAC 00012EEC 38 60 00 70 */ li r3, 0x70
/* 80015FB0 00012EF0 7F 24 CB 78 */ mr r4, r25
/* 80015FB4 00012EF4 38 A0 FF FC */ li r5, -4
/* 80015FB8 00012EF8 48 2B 8C E1 */ bl __nw__FUlP7JKRHeapi
/* 80015FBC 00012EFC 7C 60 1B 79 */ or. r0, r3, r3
/* 80015FC0 00012F00 41 82 00 14 */ beq lbl_80015FD4
/* 80015FC4 00012F04 80 9A 00 18 */ lwz r4, 0x18(r26)
/* 80015FC8 00012F08 38 A0 00 02 */ li r5, 2
/* 80015FCC 00012F0C 48 2C 09 ED */ bl __ct__13JKRMemArchiveFlQ210JKRArchive15EMountDirection
/* 80015FD0 00012F10 7C 60 1B 78 */ mr r0, r3
lbl_80015FD4:
/* 80015FD4 00012F14 7C 19 03 78 */ mr r25, r0
lbl_80015FD8:
/* 80015FD8 00012F18 28 19 00 00 */ cmplwi r25, 0
/* 80015FDC 00012F1C 41 82 00 18 */ beq lbl_80015FF4
/* 80015FE0 00012F20 88 19 00 30 */ lbz r0, 0x30(r25)
/* 80015FE4 00012F24 28 00 00 00 */ cmplwi r0, 0
/* 80015FE8 00012F28 41 82 00 0C */ beq lbl_80015FF4
/* 80015FEC 00012F2C 93 3A 00 1C */ stw r25, 0x1c(r26)
/* 80015FF0 00012F30 48 00 00 E8 */ b lbl_800160D8
lbl_80015FF4:
/* 80015FF4 00012F34 38 7F 00 3E */ addi r3, r31, 0x3e
/* 80015FF8 00012F38 4C C6 31 82 */ crclr 6
/* 80015FFC 00012F3C 4B FF 0C 11 */ bl OSReport_Error
/* 80016000 00012F40 28 19 00 00 */ cmplwi r25, 0
/* 80016004 00012F44 41 82 00 20 */ beq lbl_80016024
/* 80016008 00012F48 41 82 00 1C */ beq lbl_80016024
/* 8001600C 00012F4C 7F 23 CB 78 */ mr r3, r25
/* 80016010 00012F50 38 80 00 01 */ li r4, 1
/* 80016014 00012F54 81 99 00 00 */ lwz r12, 0(r25)
/* 80016018 00012F58 81 8C 00 08 */ lwz r12, 8(r12)
/* 8001601C 00012F5C 7D 89 03 A6 */ mtctr r12
/* 80016020 00012F60 4E 80 04 21 */ bctrl
lbl_80016024:
/* 80016024 00012F64 57 C0 06 3F */ clrlwi. r0, r30, 0x18
/* 80016028 00012F68 40 82 00 24 */ bne lbl_8001604C
/* 8001602C 00012F6C 3C 60 80 37 */ lis r3, lbl_803741A8@ha
/* 80016030 00012F70 38 63 41 A8 */ addi r3, r3, lbl_803741A8@l
/* 80016034 00012F74 38 63 00 6E */ addi r3, r3, 0x6e
/* 80016038 00012F78 4C C6 31 82 */ crclr 6
/* 8001603C 00012F7C 4B FF 0B D1 */ bl OSReport_Error
/* 80016040 00012F80 4B FF 8D 41 */ bl mDoExt_getZeldaHeap
/* 80016044 00012F84 7C 79 1B 78 */ mr r25, r3
/* 80016048 00012F88 4B FF FE DC */ b lbl_80015F24
lbl_8001604C:
/* 8001604C 00012F8C 57 80 06 3F */ clrlwi. r0, r28, 0x18
/* 80016050 00012F90 40 82 00 24 */ bne lbl_80016074
/* 80016054 00012F94 3C 60 80 37 */ lis r3, lbl_803741A8@ha
/* 80016058 00012F98 38 63 41 A8 */ addi r3, r3, lbl_803741A8@l
/* 8001605C 00012F9C 38 63 00 AE */ addi r3, r3, 0xae
/* 80016060 00012FA0 4C C6 31 82 */ crclr 6
/* 80016064 00012FA4 4B FF 0B A9 */ bl OSReport_Error
/* 80016068 00012FA8 4B FF 8D 8D */ bl mDoExt_getArchiveHeapPtr
/* 8001606C 00012FAC 7C 79 1B 78 */ mr r25, r3
/* 80016070 00012FB0 4B FF FE B4 */ b lbl_80015F24
lbl_80016074:
/* 80016074 00012FB4 57 A0 06 3F */ clrlwi. r0, r29, 0x18
/* 80016078 00012FB8 40 82 00 24 */ bne lbl_8001609C
/* 8001607C 00012FBC 3C 60 80 37 */ lis r3, lbl_803741A8@ha
/* 80016080 00012FC0 38 63 41 A8 */ addi r3, r3, lbl_803741A8@l
/* 80016084 00012FC4 38 63 00 F2 */ addi r3, r3, 0xf2
/* 80016088 00012FC8 4C C6 31 82 */ crclr 6
/* 8001608C 00012FCC 4B FF 0B 81 */ bl OSReport_Error
/* 80016090 00012FD0 4B FF 8C C1 */ bl mDoExt_getGameHeap
/* 80016094 00012FD4 7C 79 1B 78 */ mr r25, r3
/* 80016098 00012FD8 4B FF FE 8C */ b lbl_80015F24
lbl_8001609C:
/* 8001609C 00012FDC 57 60 06 3F */ clrlwi. r0, r27, 0x18
/* 800160A0 00012FE0 40 82 00 24 */ bne lbl_800160C4
/* 800160A4 00012FE4 3C 60 80 37 */ lis r3, lbl_803741A8@ha
/* 800160A8 00012FE8 38 63 41 A8 */ addi r3, r3, lbl_803741A8@l
/* 800160AC 00012FEC 38 63 01 32 */ addi r3, r3, 0x132
/* 800160B0 00012FF0 4C C6 31 82 */ crclr 6
/* 800160B4 00012FF4 4B FF 0B 59 */ bl OSReport_Error
/* 800160B8 00012FF8 4B FF 8D 79 */ bl mDoExt_getJ2dHeap
/* 800160BC 00012FFC 7C 79 1B 78 */ mr r25, r3
/* 800160C0 00013000 4B FF FE 64 */ b lbl_80015F24
lbl_800160C4:
/* 800160C4 00013004 3C 60 80 37 */ lis r3, lbl_803741A8@ha
/* 800160C8 00013008 38 63 41 A8 */ addi r3, r3, lbl_803741A8@l
/* 800160CC 0001300C 38 63 01 6F */ addi r3, r3, 0x16f
/* 800160D0 00013010 4C C6 31 82 */ crclr 6
/* 800160D4 00013014 4B FF 0A 69 */ bl OSReport_FatalError
lbl_800160D8:
/* 800160D8 00013018 38 00 00 01 */ li r0, 1
/* 800160DC 0001301C 98 1A 00 0C */ stb r0, 0xc(r26)
/* 800160E0 00013020 80 7A 00 1C */ lwz r3, 0x1c(r26)
/* 800160E4 00013024 30 03 FF FF */ addic r0, r3, -1
/* 800160E8 00013028 7C 00 19 10 */ subfe r0, r0, r3
/* 800160EC 0001302C 54 03 06 3E */ clrlwi r3, r0, 0x18
/* 800160F0 00013030 39 61 00 30 */ addi r11, r1, 0x30
/* 800160F4 00013034 48 34 C1 25 */ bl _restgpr_25
/* 800160F8 00013038 80 01 00 34 */ lwz r0, 0x34(r1)
/* 800160FC 0001303C 7C 08 03 A6 */ mtlr r0
/* 80016100 00013040 38 21 00 30 */ addi r1, r1, 0x30
/* 80016104 00013044 4E 80 00 20 */ blr
@@ -0,0 +1,25 @@
/* 80016108 00013048 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 8001610C 0001304C 7C 08 02 A6 */ mflr r0
/* 80016110 00013050 90 01 00 14 */ stw r0, 0x14(r1)
/* 80016114 00013054 93 E1 00 0C */ stw r31, 0xc(r1)
/* 80016118 00013058 93 C1 00 08 */ stw r30, 8(r1)
/* 8001611C 0001305C 7C 7E 1B 79 */ or. r30, r3, r3
/* 80016120 00013060 7C 9F 23 78 */ mr r31, r4
/* 80016124 00013064 41 82 00 28 */ beq lbl_8001614C
/* 80016128 00013068 3C 80 80 3A */ lis r4, lbl_803A34B8@ha
/* 8001612C 0001306C 38 04 34 B8 */ addi r0, r4, lbl_803A34B8@l
/* 80016130 00013070 90 1E 00 10 */ stw r0, 0x10(r30)
/* 80016134 00013074 38 80 00 00 */ li r4, 0
/* 80016138 00013078 4B FF F7 C5 */ bl mDoDvdThd_command_c_NS_dtor
/* 8001613C 0001307C 7F E0 07 35 */ extsh. r0, r31
/* 80016140 00013080 40 81 00 0C */ ble lbl_8001614C
/* 80016144 00013084 7F C3 F3 78 */ mr r3, r30
/* 80016148 00013088 48 2B 8B F5 */ bl __dl__FPv
lbl_8001614C:
/* 8001614C 0001308C 7F C3 F3 78 */ mr r3, r30
/* 80016150 00013090 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 80016154 00013094 83 C1 00 08 */ lwz r30, 8(r1)
/* 80016158 00013098 80 01 00 14 */ lwz r0, 0x14(r1)
/* 8001615C 0001309C 7C 08 03 A6 */ mtlr r0
/* 80016160 000130A0 38 21 00 10 */ addi r1, r1, 0x10
/* 80016164 000130A4 4E 80 00 20 */ blr
@@ -0,0 +1,31 @@
/* 80016168 000130A8 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 8001616C 000130AC 7C 08 02 A6 */ mflr r0
/* 80016170 000130B0 90 01 00 24 */ stw r0, 0x24(r1)
/* 80016174 000130B4 39 61 00 20 */ addi r11, r1, 0x20
/* 80016178 000130B8 48 34 C0 65 */ bl _savegpr_29
/* 8001617C 000130BC 7C 7D 1B 78 */ mr r29, r3
/* 80016180 000130C0 7C 9E 23 78 */ mr r30, r4
/* 80016184 000130C4 7C BF 2B 78 */ mr r31, r5
/* 80016188 000130C8 4B FF F9 ED */ bl mDoDvdThd_command_c
/* 8001618C 000130CC 3C 60 80 3A */ lis r3, lbl_803A34B8@ha
/* 80016190 000130D0 38 03 34 B8 */ addi r0, r3, lbl_803A34B8@l
/* 80016194 000130D4 90 1D 00 10 */ stw r0, 0x10(r29)
/* 80016198 000130D8 9B DD 00 14 */ stb r30, 0x14(r29)
/* 8001619C 000130DC 38 00 FF FF */ li r0, -1
/* 800161A0 000130E0 90 1D 00 18 */ stw r0, 0x18(r29)
/* 800161A4 000130E4 38 00 00 00 */ li r0, 0
/* 800161A8 000130E8 90 1D 00 1C */ stw r0, 0x1c(r29)
/* 800161AC 000130EC 93 FD 00 20 */ stw r31, 0x20(r29)
/* 800161B0 000130F0 90 1D 00 24 */ stw r0, 0x24(r29)
/* 800161B4 000130F4 57 C0 06 3F */ clrlwi. r0, r30, 0x18
/* 800161B8 000130F8 40 82 00 0C */ bne lbl_800161C4
/* 800161BC 000130FC 88 0D 87 01 */ lbz r0, lbl_80450C81-_SDA_BASE_(r13)
/* 800161C0 00013100 98 1D 00 14 */ stb r0, 0x14(r29)
lbl_800161C4:
/* 800161C4 00013104 7F A3 EB 78 */ mr r3, r29
/* 800161C8 00013108 39 61 00 20 */ addi r11, r1, 0x20
/* 800161CC 0001310C 48 34 C0 5D */ bl _restgpr_29
/* 800161D0 00013110 80 01 00 24 */ lwz r0, 0x24(r1)
/* 800161D4 00013114 7C 08 03 A6 */ mtlr r0
/* 800161D8 00013118 38 21 00 20 */ addi r1, r1, 0x20
/* 800161DC 0001311C 4E 80 00 20 */ blr
@@ -0,0 +1,56 @@
/* 800161E0 00013120 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 800161E4 00013124 7C 08 02 A6 */ mflr r0
/* 800161E8 00013128 90 01 00 24 */ stw r0, 0x24(r1)
/* 800161EC 0001312C 39 61 00 20 */ addi r11, r1, 0x20
/* 800161F0 00013130 48 34 BF E5 */ bl _savegpr_27
/* 800161F4 00013134 7C 7B 1B 78 */ mr r27, r3
/* 800161F8 00013138 7C 9C 23 78 */ mr r28, r4
/* 800161FC 0001313C 7C BD 2B 78 */ mr r29, r5
/* 80016200 00013140 7C DE 33 78 */ mr r30, r6
/* 80016204 00013144 4B FF 8B AD */ bl mDoExt_getCommandHeap
/* 80016208 00013148 7C 64 1B 78 */ mr r4, r3
/* 8001620C 0001314C 38 60 00 28 */ li r3, 0x28
/* 80016210 00013150 38 A0 FF FC */ li r5, -4
/* 80016214 00013154 48 2B 8A 85 */ bl __nw__FUlP7JKRHeapi
/* 80016218 00013158 7C 7F 1B 79 */ or. r31, r3, r3
/* 8001621C 0001315C 41 82 00 14 */ beq lbl_80016230
/* 80016220 00013160 7F 84 E3 78 */ mr r4, r28
/* 80016224 00013164 7F A5 EB 78 */ mr r5, r29
/* 80016228 00013168 4B FF FF 41 */ bl mDoDvdThd_mountXArchive_c
/* 8001622C 0001316C 7C 7F 1B 78 */ mr r31, r3
lbl_80016230:
/* 80016230 00013170 28 1F 00 00 */ cmplwi r31, 0
/* 80016234 00013174 41 82 00 60 */ beq lbl_80016294
/* 80016238 00013178 7F 63 DB 78 */ mr r3, r27
/* 8001623C 0001317C 4B FF F6 A1 */ bl my_DVDConvertPathToEntrynum
/* 80016240 00013180 90 7F 00 18 */ stw r3, 0x18(r31)
/* 80016244 00013184 80 1F 00 18 */ lwz r0, 0x18(r31)
/* 80016248 00013188 2C 00 FF FF */ cmpwi r0, -1
/* 8001624C 0001318C 40 82 00 34 */ bne lbl_80016280
/* 80016250 00013190 38 00 00 01 */ li r0, 1
/* 80016254 00013194 98 1F 00 0C */ stb r0, 0xc(r31)
/* 80016258 00013198 28 1F 00 00 */ cmplwi r31, 0
/* 8001625C 0001319C 41 82 00 1C */ beq lbl_80016278
/* 80016260 000131A0 7F E3 FB 78 */ mr r3, r31
/* 80016264 000131A4 38 80 00 01 */ li r4, 1
/* 80016268 000131A8 81 9F 00 10 */ lwz r12, 0x10(r31)
/* 8001626C 000131AC 81 8C 00 08 */ lwz r12, 8(r12)
/* 80016270 000131B0 7D 89 03 A6 */ mtctr r12
/* 80016274 000131B4 4E 80 04 21 */ bctrl
lbl_80016278:
/* 80016278 000131B8 3B E0 00 00 */ li r31, 0
/* 8001627C 000131BC 48 00 00 18 */ b lbl_80016294
lbl_80016280:
/* 80016280 000131C0 93 DF 00 24 */ stw r30, 0x24(r31)
/* 80016284 000131C4 3C 60 80 3E */ lis r3, lbl_803DEC60@ha
/* 80016288 000131C8 38 63 EC 60 */ addi r3, r3, lbl_803DEC60@l
/* 8001628C 000131CC 7F E4 FB 78 */ mr r4, r31
/* 80016290 000131D0 4B FF F7 55 */ bl mDoDvdThd_param_c_NS_addition
lbl_80016294:
/* 80016294 000131D4 7F E3 FB 78 */ mr r3, r31
/* 80016298 000131D8 39 61 00 20 */ addi r11, r1, 0x20
/* 8001629C 000131DC 48 34 BF 85 */ bl _restgpr_27
/* 800162A0 000131E0 80 01 00 24 */ lwz r0, 0x24(r1)
/* 800162A4 000131E4 7C 08 03 A6 */ mtlr r0
/* 800162A8 000131E8 38 21 00 20 */ addi r1, r1, 0x20
/* 800162AC 000131EC 4E 80 00 20 */ blr
@@ -0,0 +1,37 @@
/* 800162B0 000131F0 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 800162B4 000131F4 7C 08 02 A6 */ mflr r0
/* 800162B8 000131F8 90 01 00 14 */ stw r0, 0x14(r1)
/* 800162BC 000131FC 93 E1 00 0C */ stw r31, 0xc(r1)
/* 800162C0 00013200 93 C1 00 08 */ stw r30, 8(r1)
/* 800162C4 00013204 7C 7E 1B 78 */ mr r30, r3
/* 800162C8 00013208 88 03 00 14 */ lbz r0, 0x14(r3)
/* 800162CC 0001320C 28 00 00 00 */ cmplwi r0, 0
/* 800162D0 00013210 3B E0 00 02 */ li r31, 2
/* 800162D4 00013214 40 82 00 08 */ bne lbl_800162DC
/* 800162D8 00013218 3B E0 00 01 */ li r31, 1
lbl_800162DC:
/* 800162DC 0001321C 80 BE 00 24 */ lwz r5, 0x24(r30)
/* 800162E0 00013220 28 05 00 00 */ cmplwi r5, 0
/* 800162E4 00013224 41 82 00 08 */ beq lbl_800162EC
/* 800162E8 00013228 48 00 00 0C */ b lbl_800162F4
lbl_800162EC:
/* 800162EC 0001322C 4B FF 8B 01 */ bl mDoExt_getArchiveHeap
/* 800162F0 00013230 7C 65 1B 78 */ mr r5, r3
lbl_800162F4:
/* 800162F4 00013234 80 7E 00 18 */ lwz r3, 0x18(r30)
/* 800162F8 00013238 80 9E 00 20 */ lwz r4, 0x20(r30)
/* 800162FC 0001323C 7F E6 FB 78 */ mr r6, r31
/* 80016300 00013240 48 2B F5 C9 */ bl mount__10JKRArchiveFlQ210JKRArchive10EMountModeP7JKRHeapQ210JKRArchive15EMountDirection
/* 80016304 00013244 90 7E 00 1C */ stw r3, 0x1c(r30)
/* 80016308 00013248 80 7E 00 1C */ lwz r3, 0x1c(r30)
/* 8001630C 0001324C 30 03 FF FF */ addic r0, r3, -1
/* 80016310 00013250 7C 00 19 10 */ subfe r0, r0, r3
/* 80016314 00013254 54 03 06 3E */ clrlwi r3, r0, 0x18
/* 80016318 00013258 38 00 00 01 */ li r0, 1
/* 8001631C 0001325C 98 1E 00 0C */ stb r0, 0xc(r30)
/* 80016320 00013260 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 80016324 00013264 83 C1 00 08 */ lwz r30, 8(r1)
/* 80016328 00013268 80 01 00 14 */ lwz r0, 0x14(r1)
/* 8001632C 0001326C 7C 08 03 A6 */ mtlr r0
/* 80016330 00013270 38 21 00 10 */ addi r1, r1, 0x10
/* 80016334 00013274 4E 80 00 20 */ blr
@@ -0,0 +1,24 @@
/* 80016338 00013278 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 8001633C 0001327C 7C 08 02 A6 */ mflr r0
/* 80016340 00013280 90 01 00 14 */ stw r0, 0x14(r1)
/* 80016344 00013284 93 E1 00 0C */ stw r31, 0xc(r1)
/* 80016348 00013288 93 C1 00 08 */ stw r30, 8(r1)
/* 8001634C 0001328C 7C 7E 1B 78 */ mr r30, r3
/* 80016350 00013290 7C 9F 23 78 */ mr r31, r4
/* 80016354 00013294 4B FF F8 21 */ bl mDoDvdThd_command_c
/* 80016358 00013298 3C 60 80 3A */ lis r3, lbl_803A34A8@ha
/* 8001635C 0001329C 38 03 34 A8 */ addi r0, r3, lbl_803A34A8@l
/* 80016360 000132A0 90 1E 00 10 */ stw r0, 0x10(r30)
/* 80016364 000132A4 9B FE 00 14 */ stb r31, 0x14(r30)
/* 80016368 000132A8 57 E0 06 3F */ clrlwi. r0, r31, 0x18
/* 8001636C 000132AC 40 82 00 0C */ bne lbl_80016378
/* 80016370 000132B0 88 0D 87 01 */ lbz r0, lbl_80450C81-_SDA_BASE_(r13)
/* 80016374 000132B4 98 1E 00 14 */ stb r0, 0x14(r30)
lbl_80016378:
/* 80016378 000132B8 7F C3 F3 78 */ mr r3, r30
/* 8001637C 000132BC 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 80016380 000132C0 83 C1 00 08 */ lwz r30, 8(r1)
/* 80016384 000132C4 80 01 00 14 */ lwz r0, 0x14(r1)
/* 80016388 000132C8 7C 08 03 A6 */ mtlr r0
/* 8001638C 000132CC 38 21 00 10 */ addi r1, r1, 0x10
/* 80016390 000132D0 4E 80 00 20 */ blr
@@ -0,0 +1,54 @@
/* 80016394 000132D4 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 80016398 000132D8 7C 08 02 A6 */ mflr r0
/* 8001639C 000132DC 90 01 00 24 */ stw r0, 0x24(r1)
/* 800163A0 000132E0 39 61 00 20 */ addi r11, r1, 0x20
/* 800163A4 000132E4 48 34 BE 35 */ bl _savegpr_28
/* 800163A8 000132E8 7C 7C 1B 78 */ mr r28, r3
/* 800163AC 000132EC 7C 9D 23 78 */ mr r29, r4
/* 800163B0 000132F0 7C BE 2B 78 */ mr r30, r5
/* 800163B4 000132F4 4B FF 89 FD */ bl mDoExt_getCommandHeap
/* 800163B8 000132F8 7C 64 1B 78 */ mr r4, r3
/* 800163BC 000132FC 38 60 00 28 */ li r3, 0x28
/* 800163C0 00013300 38 A0 FF FC */ li r5, -4
/* 800163C4 00013304 48 2B 88 D5 */ bl __nw__FUlP7JKRHeapi
/* 800163C8 00013308 7C 7F 1B 79 */ or. r31, r3, r3
/* 800163CC 0001330C 41 82 00 10 */ beq lbl_800163DC
/* 800163D0 00013310 7F A4 EB 78 */ mr r4, r29
/* 800163D4 00013314 4B FF FF 65 */ bl mDoDvdThd_toMainRam_c
/* 800163D8 00013318 7C 7F 1B 78 */ mr r31, r3
lbl_800163DC:
/* 800163DC 0001331C 28 1F 00 00 */ cmplwi r31, 0
/* 800163E0 00013320 41 82 00 60 */ beq lbl_80016440
/* 800163E4 00013324 7F 83 E3 78 */ mr r3, r28
/* 800163E8 00013328 4B FF F4 F5 */ bl my_DVDConvertPathToEntrynum
/* 800163EC 0001332C 90 7F 00 18 */ stw r3, 0x18(r31)
/* 800163F0 00013330 80 1F 00 18 */ lwz r0, 0x18(r31)
/* 800163F4 00013334 2C 00 FF FF */ cmpwi r0, -1
/* 800163F8 00013338 40 82 00 34 */ bne lbl_8001642C
/* 800163FC 0001333C 38 00 00 01 */ li r0, 1
/* 80016400 00013340 98 1F 00 0C */ stb r0, 0xc(r31)
/* 80016404 00013344 28 1F 00 00 */ cmplwi r31, 0
/* 80016408 00013348 41 82 00 1C */ beq lbl_80016424
/* 8001640C 0001334C 7F E3 FB 78 */ mr r3, r31
/* 80016410 00013350 38 80 00 01 */ li r4, 1
/* 80016414 00013354 81 9F 00 10 */ lwz r12, 0x10(r31)
/* 80016418 00013358 81 8C 00 08 */ lwz r12, 8(r12)
/* 8001641C 0001335C 7D 89 03 A6 */ mtctr r12
/* 80016420 00013360 4E 80 04 21 */ bctrl
lbl_80016424:
/* 80016424 00013364 3B E0 00 00 */ li r31, 0
/* 80016428 00013368 48 00 00 18 */ b lbl_80016440
lbl_8001642C:
/* 8001642C 0001336C 93 DF 00 24 */ stw r30, 0x24(r31)
/* 80016430 00013370 3C 60 80 3E */ lis r3, lbl_803DEC60@ha
/* 80016434 00013374 38 63 EC 60 */ addi r3, r3, lbl_803DEC60@l
/* 80016438 00013378 7F E4 FB 78 */ mr r4, r31
/* 8001643C 0001337C 4B FF F5 A9 */ bl mDoDvdThd_param_c_NS_addition
lbl_80016440:
/* 80016440 00013380 7F E3 FB 78 */ mr r3, r31
/* 80016444 00013384 39 61 00 20 */ addi r11, r1, 0x20
/* 80016448 00013388 48 34 BD DD */ bl _restgpr_28
/* 8001644C 0001338C 80 01 00 24 */ lwz r0, 0x24(r1)
/* 80016450 00013390 7C 08 03 A6 */ mtlr r0
/* 80016454 00013394 38 21 00 20 */ addi r1, r1, 0x20
/* 80016458 00013398 4E 80 00 20 */ blr
@@ -0,0 +1,25 @@
/* 8001645C 0001339C 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 80016460 000133A0 7C 08 02 A6 */ mflr r0
/* 80016464 000133A4 90 01 00 14 */ stw r0, 0x14(r1)
/* 80016468 000133A8 93 E1 00 0C */ stw r31, 0xc(r1)
/* 8001646C 000133AC 93 C1 00 08 */ stw r30, 8(r1)
/* 80016470 000133B0 7C 7E 1B 79 */ or. r30, r3, r3
/* 80016474 000133B4 7C 9F 23 78 */ mr r31, r4
/* 80016478 000133B8 41 82 00 28 */ beq lbl_800164A0
/* 8001647C 000133BC 3C 80 80 3A */ lis r4, lbl_803A34A8@ha
/* 80016480 000133C0 38 04 34 A8 */ addi r0, r4, lbl_803A34A8@l
/* 80016484 000133C4 90 1E 00 10 */ stw r0, 0x10(r30)
/* 80016488 000133C8 38 80 00 00 */ li r4, 0
/* 8001648C 000133CC 4B FF F4 71 */ bl mDoDvdThd_command_c_NS_dtor
/* 80016490 000133D0 7F E0 07 35 */ extsh. r0, r31
/* 80016494 000133D4 40 81 00 0C */ ble lbl_800164A0
/* 80016498 000133D8 7F C3 F3 78 */ mr r3, r30
/* 8001649C 000133DC 48 2B 88 A1 */ bl __dl__FPv
lbl_800164A0:
/* 800164A0 000133E0 7F C3 F3 78 */ mr r3, r30
/* 800164A4 000133E4 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 800164A8 000133E8 83 C1 00 08 */ lwz r30, 8(r1)
/* 800164AC 000133EC 80 01 00 14 */ lwz r0, 0x14(r1)
/* 800164B0 000133F0 7C 08 03 A6 */ mtlr r0
/* 800164B4 000133F4 38 21 00 10 */ addi r1, r1, 0x10
/* 800164B8 000133F8 4E 80 00 20 */ blr
@@ -0,0 +1,50 @@
/* 800164BC 000133FC 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 800164C0 00013400 7C 08 02 A6 */ mflr r0
/* 800164C4 00013404 90 01 00 24 */ stw r0, 0x24(r1)
/* 800164C8 00013408 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 800164CC 0001340C 93 C1 00 18 */ stw r30, 0x18(r1)
/* 800164D0 00013410 7C 7E 1B 78 */ mr r30, r3
/* 800164D4 00013414 80 E3 00 24 */ lwz r7, 0x24(r3)
/* 800164D8 00013418 28 07 00 00 */ cmplwi r7, 0
/* 800164DC 0001341C 41 82 00 08 */ beq lbl_800164E4
/* 800164E0 00013420 48 00 00 0C */ b lbl_800164EC
lbl_800164E4:
/* 800164E4 00013424 4B FF 89 09 */ bl mDoExt_getArchiveHeap
/* 800164E8 00013428 7C 67 1B 78 */ mr r7, r3
lbl_800164EC:
/* 800164EC 0001342C 7C FF 3B 78 */ mr r31, r7
/* 800164F0 00013430 38 00 00 00 */ li r0, 0
/* 800164F4 00013434 90 01 00 08 */ stw r0, 8(r1)
/* 800164F8 00013438 80 7E 00 18 */ lwz r3, 0x18(r30)
/* 800164FC 0001343C 38 80 00 00 */ li r4, 0
/* 80016500 00013440 38 A0 00 01 */ li r5, 1
/* 80016504 00013444 38 C0 00 00 */ li r6, 0
/* 80016508 00013448 88 1E 00 14 */ lbz r0, 0x14(r30)
/* 8001650C 0001344C 28 00 00 00 */ cmplwi r0, 0
/* 80016510 00013450 39 00 00 02 */ li r8, 2
/* 80016514 00013454 40 82 00 08 */ bne lbl_8001651C
/* 80016518 00013458 39 00 00 01 */ li r8, 1
lbl_8001651C:
/* 8001651C 0001345C 39 20 00 00 */ li r9, 0
/* 80016520 00013460 39 40 00 00 */ li r10, 0
/* 80016524 00013464 48 2C 37 31 */ bl loadToMainRAM__12JKRDvdRipperFlPUc15JKRExpandSwitchUlP7JKRHeapQ212JKRDvdRipper15EAllocDirectionUlPiPUl
/* 80016528 00013468 90 7E 00 1C */ stw r3, 0x1c(r30)
/* 8001652C 0001346C 80 9E 00 1C */ lwz r4, 0x1c(r30)
/* 80016530 00013470 28 04 00 00 */ cmplwi r4, 0
/* 80016534 00013474 41 82 00 10 */ beq lbl_80016544
/* 80016538 00013478 7F E3 FB 78 */ mr r3, r31
/* 8001653C 0001347C 48 2B 81 C5 */ bl getSize__7JKRHeapCFPv
/* 80016540 00013480 90 7E 00 20 */ stw r3, 0x20(r30)
lbl_80016544:
/* 80016544 00013484 38 00 00 01 */ li r0, 1
/* 80016548 00013488 98 1E 00 0C */ stb r0, 0xc(r30)
/* 8001654C 0001348C 80 7E 00 1C */ lwz r3, 0x1c(r30)
/* 80016550 00013490 30 03 FF FF */ addic r0, r3, -1
/* 80016554 00013494 7C 00 19 10 */ subfe r0, r0, r3
/* 80016558 00013498 54 03 06 3E */ clrlwi r3, r0, 0x18
/* 8001655C 0001349C 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 80016560 000134A0 83 C1 00 18 */ lwz r30, 0x18(r1)
/* 80016564 000134A4 80 01 00 24 */ lwz r0, 0x24(r1)
/* 80016568 000134A8 7C 08 03 A6 */ mtlr r0
/* 8001656C 000134AC 38 21 00 20 */ addi r1, r1, 0x20
/* 80016570 000134B0 4E 80 00 20 */ blr
@@ -0,0 +1,10 @@
/* 80016574 000134B4 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 80016578 000134B8 7C 08 02 A6 */ mflr r0
/* 8001657C 000134BC 90 01 00 14 */ stw r0, 0x14(r1)
/* 80016580 000134C0 3C 60 80 3E */ lis r3, lbl_803DEC60@ha
/* 80016584 000134C4 38 63 EC 60 */ addi r3, r3, lbl_803DEC60@l
/* 80016588 000134C8 4B FF F3 BD */ bl mDoDvdThd_param_c
/* 8001658C 000134CC 80 01 00 14 */ lwz r0, 0x14(r1)
/* 80016590 000134D0 7C 08 03 A6 */ mtlr r0
/* 80016594 000134D4 38 21 00 10 */ addi r1, r1, 0x10
/* 80016598 000134D8 4E 80 00 20 */ blr
+9
View File
@@ -3303,6 +3303,15 @@ func_8000CFB8
func_8000CE00
func_8000CD14
func_8000CCC8
func_80016574
func_800164BC
func_8001645C
func_800162B0
func_80016108
func_80015EDC
func_80015D44
func_80015CF0
func_80015BB8
}
/*
.init 80003100 - 80005600
+1 -1
View File
@@ -35,7 +35,7 @@ TEXT_O_FILES := \
$(BUILD_DIR)/asm/rodata/rodata_m_Do_Reset.o \
$(BUILD_DIR)/src/m_Do/m_Do_Reset.o \
$(BUILD_DIR)/asm/rodata/rodata_m_Do_dvd_thread.o \
$(BUILD_DIR)/asm/m/Do/dvd/m_Do_dvd_thread.o \
$(BUILD_DIR)/src/m_Do/m_Do_dvd_thread.o \
$(BUILD_DIR)/src/m_Do/m_Do_DVDError.o \
$(BUILD_DIR)/asm/rodata/rodata_m_Do_MemCard.o \
$(BUILD_DIR)/src/m_Do/m_Do_MemCard.o \
+302 -1
View File
@@ -1 +1,302 @@
// ok
/* m_Do_dvd_thread.cpp autogenerated by split.py v0.4 at 2021-01-31 21:23:39.416871 */
#include "global.h"
// additional symbols needed for m_Do_dvd_thread.cpp
// autogenerated by split.py v0.4 at 2021-01-31 21:23:39.416919
extern "C" {
void JASDvd_NS_getThreadPointer(void);
void JASTaskThread_NS_sendCmdMsg(void);
void __ct__13JKRMemArchiveFlQ210JKRArchive15EMountDirection(void);
void __ct__9JKRThreadFP8OSThreadi(void);
void __dl__FPv(void);
void __dt__9JKRThreadFv(void);
void __nw__FUlP7JKRHeapi(void);
void _restgpr_25(void);
void _restgpr_27(void);
void _restgpr_28(void);
void _restgpr_29(void);
void _savegpr_25(void);
void _savegpr_27(void);
void _savegpr_28(void);
void _savegpr_29(void);
void becomeCurrentHeap__7JKRHeapFv(void);
void cLs_Addition(void);
void cLs_Create(void);
void cLs_SingleCut(void);
void cNd_ForcedClear(void);
void cb(void);
void func_80015BB8(void);
void func_80015CF0(void);
void func_80015D44(void);
void func_80015EDC(void);
void func_80016108(void);
void func_800162B0(void);
void func_8001645C(void);
void func_800164BC(void);
void func_80016574(void);
void getSize__7JKRHeapCFPv(void);
void loadToMainRAM__12JKRDvdRipperFlPUc15JKRExpandSwitchUlP7JKRHeapQ212JKRDvdRipper15EAllocDirectionUlPiPUl(
void);
void mDoDvdThd_NS_create(void);
void mDoDvdThd_NS_main(void);
void mDoDvdThd_NS_suspend(void);
void mDoDvdThd_callback_c(void);
void mDoDvdThd_callback_c_NS_create(void);
void mDoDvdThd_command_c(void);
void mDoDvdThd_command_c_NS_dtor(void);
void mDoDvdThd_mountArchive_c(void);
void mDoDvdThd_mountArchive_c_NS_create(void);
void mDoDvdThd_mountXArchive_c(void);
void mDoDvdThd_mountXArchive_c_NS_create(void);
void mDoDvdThd_param_c(void);
void mDoDvdThd_param_c_NS_addition(void);
void mDoDvdThd_param_c_NS_cut(void);
void mDoDvdThd_param_c_NS_getFirstCommand(void);
void mDoDvdThd_param_c_NS_kick(void);
void mDoDvdThd_param_c_NS_mainLoop(void);
void mDoDvdThd_param_c_NS_waitForKick(void);
void mDoDvdThd_toMainRam_c(void);
void mDoDvdThd_toMainRam_c_NS_create(void);
void mDoExt_getArchiveHeap(void);
void mDoExt_getArchiveHeapPtr(void);
void mDoExt_getAssertHeap(void);
void mDoExt_getCommandHeap(void);
void mDoExt_getGameHeap(void);
void mDoExt_getJ2dHeap(void);
void mDoExt_getZeldaHeap(void);
void mount__10JKRArchiveFlQ210JKRArchive10EMountModeP7JKRHeapQ210JKRArchive15EMountDirection(void);
void my_DVDConvertPathToEntrynum(void);
}
// additional symbols needed for m_Do_dvd_thread.cpp
// autogenerated by split.py v0.4 at 2021-01-31 21:23:39.416924
extern u8 lbl_803741A8;
extern u8 lbl_803A34A8;
extern u8 lbl_803A34B8;
extern u8 lbl_803A34C8;
extern u8 lbl_803A34D8;
extern u8 lbl_803A34E8;
extern u8 lbl_803DD940;
extern u8 lbl_803DEC60;
extern u8 lbl_80450C80;
extern u8 lbl_80450C81;
extern "C" {
// main__9mDoDvdThdFPv
// mDoDvdThd::main(void*)
asm void mDoDvdThd_NS_main(void) {
nofralloc
#include "m_Do/m_Do_dvd_thread/asm/func_800157FC.s"
}
// create__9mDoDvdThdFl
// mDoDvdThd::create(s32)
asm void mDoDvdThd_NS_create(void) {
nofralloc
#include "m_Do/m_Do_dvd_thread/asm/func_80015858.s"
}
// suspend__9mDoDvdThdFv
// mDoDvdThd::suspend(void)
asm void mDoDvdThd_NS_suspend(void) {
nofralloc
#include "m_Do/m_Do_dvd_thread/asm/func_800158B4.s"
}
// my_DVDConvertPathToEntrynum__FPCc
// my_DVDConvertPathToEntrynum(const s8*)
asm void my_DVDConvertPathToEntrynum(void) {
nofralloc
#include "m_Do/m_Do_dvd_thread/asm/func_800158DC.s"
}
// __dt__19mDoDvdThd_command_cFv
// mDoDvdThd_command_c::~mDoDvdThd_command_c(void)
asm void mDoDvdThd_command_c_NS_dtor(void) {
nofralloc
#include "m_Do/m_Do_dvd_thread/asm/func_800158FC.s"
}
// __ct__17mDoDvdThd_param_cFv
// mDoDvdThd_param_c::mDoDvdThd_param_c(void)
asm void mDoDvdThd_param_c(void) {
nofralloc
#include "m_Do/m_Do_dvd_thread/asm/func_80015944.s"
}
// kick__17mDoDvdThd_param_cFv
// mDoDvdThd_param_c::kick(void)
asm void mDoDvdThd_param_c_NS_kick(void) {
nofralloc
#include "m_Do/m_Do_dvd_thread/asm/func_8001598C.s"
}
// waitForKick__17mDoDvdThd_param_cFv
// mDoDvdThd_param_c::waitForKick(void)
asm void mDoDvdThd_param_c_NS_waitForKick(void) {
nofralloc
#include "m_Do/m_Do_dvd_thread/asm/func_800159B4.s"
}
// getFirstCommand__17mDoDvdThd_param_cFv
// mDoDvdThd_param_c::getFirstCommand(void)
asm void mDoDvdThd_param_c_NS_getFirstCommand(void) {
nofralloc
#include "m_Do/m_Do_dvd_thread/asm/func_800159DC.s"
}
// addition__17mDoDvdThd_param_cFP19mDoDvdThd_command_c
// mDoDvdThd_param_c::addition(mDoDvdThd_command_c*)
asm void mDoDvdThd_param_c_NS_addition(void) {
nofralloc
#include "m_Do/m_Do_dvd_thread/asm/func_800159E4.s"
}
// cut__17mDoDvdThd_param_cFP19mDoDvdThd_command_c
// mDoDvdThd_param_c::cut(mDoDvdThd_command_c*)
asm void mDoDvdThd_param_c_NS_cut(void) {
nofralloc
#include "m_Do/m_Do_dvd_thread/asm/func_80015A3C.s"
}
// cb__FPv
// cb(void*)
asm void cb(void) {
nofralloc
#include "m_Do/m_Do_dvd_thread/asm/func_80015A90.s"
}
// mainLoop__17mDoDvdThd_param_cFv
// mDoDvdThd_param_c::mainLoop(void)
asm void mDoDvdThd_param_c_NS_mainLoop(void) {
nofralloc
#include "m_Do/m_Do_dvd_thread/asm/func_80015AD8.s"
}
// __ct__19mDoDvdThd_command_cFv
// mDoDvdThd_command_c::mDoDvdThd_command_c(void)
asm void mDoDvdThd_command_c(void) {
nofralloc
#include "m_Do/m_Do_dvd_thread/asm/func_80015B74.s"
}
// __dt__20mDoDvdThd_callback_cFv
// mDoDvdThd_callback_c::~mDoDvdThd_callback_c(void)
asm void func_80015BB8(void) {
nofralloc
#include "m_Do/m_Do_dvd_thread/asm/func_80015BB8.s"
}
// __ct__20mDoDvdThd_callback_cFPFPv_PvPv
// mDoDvdThd_callback_c::mDoDvdThd_callback_c(void* (*)(void*), void*)
asm void mDoDvdThd_callback_c(void) {
nofralloc
#include "m_Do/m_Do_dvd_thread/asm/func_80015C18.s"
}
// create__20mDoDvdThd_callback_cFPFPv_PvPv
// mDoDvdThd_callback_c::create(void* (*)(void*), void*)
asm void mDoDvdThd_callback_c_NS_create(void) {
nofralloc
#include "m_Do/m_Do_dvd_thread/asm/func_80015C74.s"
}
// execute__20mDoDvdThd_callback_cFv
// mDoDvdThd_callback_c::execute(void)
asm void func_80015CF0(void) {
nofralloc
#include "m_Do/m_Do_dvd_thread/asm/func_80015CF0.s"
}
// __dt__24mDoDvdThd_mountArchive_cFv
// mDoDvdThd_mountArchive_c::~mDoDvdThd_mountArchive_c(void)
asm void func_80015D44(void) {
nofralloc
#include "m_Do/m_Do_dvd_thread/asm/func_80015D44.s"
}
// __ct__24mDoDvdThd_mountArchive_cFUc
// mDoDvdThd_mountArchive_c::mDoDvdThd_mountArchive_c(u8)
asm void mDoDvdThd_mountArchive_c(void) {
nofralloc
#include "m_Do/m_Do_dvd_thread/asm/func_80015DA4.s"
}
// create__24mDoDvdThd_mountArchive_cFPCcUcP7JKRHeap
// mDoDvdThd_mountArchive_c::create(const s8*, u8, JKRHeap*)
asm void mDoDvdThd_mountArchive_c_NS_create(void) {
nofralloc
#include "m_Do/m_Do_dvd_thread/asm/func_80015E14.s"
}
// execute__24mDoDvdThd_mountArchive_cFv
// mDoDvdThd_mountArchive_c::execute(void)
asm void func_80015EDC(void) {
nofralloc
#include "m_Do/m_Do_dvd_thread/asm/func_80015EDC.s"
}
// __dt__25mDoDvdThd_mountXArchive_cFv
// mDoDvdThd_mountXArchive_c::~mDoDvdThd_mountXArchive_c(void)
asm void func_80016108(void) {
nofralloc
#include "m_Do/m_Do_dvd_thread/asm/func_80016108.s"
}
// __ct__25mDoDvdThd_mountXArchive_cFUcQ210JKRArchive10EMountMode
// mDoDvdThd_mountXArchive_c::mDoDvdThd_mountXArchive_c(u8, JKRArchive::EMountMode)
asm void mDoDvdThd_mountXArchive_c(void) {
nofralloc
#include "m_Do/m_Do_dvd_thread/asm/func_80016168.s"
}
// create__25mDoDvdThd_mountXArchive_cFPCcUcQ210JKRArchive10EMountModeP7JKRHeap
// mDoDvdThd_mountXArchive_c::create(const s8*, u8, JKRArchive::EMountMode, JKRHeap*)
asm void mDoDvdThd_mountXArchive_c_NS_create(void) {
nofralloc
#include "m_Do/m_Do_dvd_thread/asm/func_800161E0.s"
}
// execute__25mDoDvdThd_mountXArchive_cFv
// mDoDvdThd_mountXArchive_c::execute(void)
asm void func_800162B0(void) {
nofralloc
#include "m_Do/m_Do_dvd_thread/asm/func_800162B0.s"
}
// __ct__21mDoDvdThd_toMainRam_cFUc
// mDoDvdThd_toMainRam_c::mDoDvdThd_toMainRam_c(u8)
asm void mDoDvdThd_toMainRam_c(void) {
nofralloc
#include "m_Do/m_Do_dvd_thread/asm/func_80016338.s"
}
// create__21mDoDvdThd_toMainRam_cFPCcUcP7JKRHeap
// mDoDvdThd_toMainRam_c::create(const s8*, u8, JKRHeap*)
asm void mDoDvdThd_toMainRam_c_NS_create(void) {
nofralloc
#include "m_Do/m_Do_dvd_thread/asm/func_80016394.s"
}
// __dt__21mDoDvdThd_toMainRam_cFv
// mDoDvdThd_toMainRam_c::~mDoDvdThd_toMainRam_c(void)
asm void func_8001645C(void) {
nofralloc
#include "m_Do/m_Do_dvd_thread/asm/func_8001645C.s"
}
// execute__21mDoDvdThd_toMainRam_cFv
// mDoDvdThd_toMainRam_c::execute(void)
asm void func_800164BC(void) {
nofralloc
#include "m_Do/m_Do_dvd_thread/asm/func_800164BC.s"
}
// __sinit_m_Do_dvd_thread_cpp
//
asm void func_80016574(void) {
nofralloc
#include "m_Do/m_Do_dvd_thread/asm/func_80016574.s"
}
};