This commit is contained in:
Pheenoh
2021-01-04 22:10:07 -05:00
71 changed files with 706 additions and 1619 deletions
+2 -2
View File
@@ -4372,8 +4372,8 @@ func_80365468:
func_8036546C:
/* 8036546C 003623AC 4E 80 00 20 */ blr
.global func_80365470
func_80365470:
.global tolower
tolower:
/* 80365470 003623B0 2C 03 FF FF */ cmpwi r3, -1
/* 80365474 003623B4 40 82 00 0C */ bne lbl_80365480
/* 80365478 003623B8 38 60 FF FF */ li r3, -1
+2 -2
View File
@@ -181,12 +181,12 @@ lbl_80348730:
/* 80348730 00345670 88 14 00 00 */ lbz r0, 0(r20)
/* 80348734 00345674 3A 94 00 01 */ addi r20, r20, 1
/* 80348738 00345678 7C 03 07 74 */ extsb r3, r0
/* 8034873C 0034567C 48 01 CD 35 */ bl func_80365470
/* 8034873C 0034567C 48 01 CD 35 */ bl tolower
/* 80348740 00345680 88 15 00 00 */ lbz r0, 0(r21)
/* 80348744 00345684 3A C3 00 00 */ addi r22, r3, 0
/* 80348748 00345688 3A B5 00 01 */ addi r21, r21, 1
/* 8034874C 0034568C 7C 03 07 74 */ extsb r3, r0
/* 80348750 00345690 48 01 CD 21 */ bl func_80365470
/* 80348750 00345690 48 01 CD 21 */ bl tolower
/* 80348754 00345694 7C 03 B0 00 */ cmpw r3, r22
/* 80348758 00345698 41 82 00 0C */ beq lbl_80348764
/* 8034875C 0034569C 38 00 00 00 */ li r0, 0
+1 -1
View File
@@ -576,7 +576,7 @@ def dump_objfile() -> Tuple[str, ObjdumpCommand, ObjdumpCommand]:
objdump_flags = ["-drz"]
return (
objfile,
(objdump_flags, refobjfile, args.start),
(objdump_flags, refobjfile, args.lhs_name or args.start),
(objdump_flags + maybe_get_objdump_source_flags(), objfile, args.start),
)
@@ -10,16 +10,21 @@ public:
virtual ~JKRAramArchive();
void open(long);
void getAramAddress_Entry(JKRArchive::SDIFileEntry*);
void getAramAddress_Entry(SDIFileEntry*);
void getAramAddress(char const*);
/* vt[15] */ void getExpandedResSize(void const*) const; /* override */
/* vt[16] */ void fetchResource(JKRArchive::SDIFileEntry*, u32*); /* override */
/* vt[17] */ void fetchResource(void*, u32, JKRArchive::SDIFileEntry*, u32*); /* override */
/* vt[15] */ void getExpandedResSize(void const*) const; /* override */
/* vt[16] */ void* fetchResource(SDIFileEntry*, u32*); /* override */
/* vt[17] */ void* fetchResource(void*, u32, SDIFileEntry*, u32*); /* override */
public:
static void fetchResource_subroutine(u32, u32, u8*, u32, int);
static void fetchResource_subroutine(u32, u32, JKRHeap*, int, u8**);
private:
/* 0x00 */ // vtable
/* 0x04 */ // JKRArchive
u8 unk[16];
};
#endif
@@ -1,4 +1,4 @@
/* fetchResource__14JKRAramArchiveFPQ210JKRArchive12SDIFileEntryPUl __ct__14JKRAramArchiveFlQ210JKRArchive15EMountDirection::fetchResource(JKRArchive::SDIFileEntry *, unsigned long *) */
/* fetchResource__14JKRAramArchiveFP12SDIFileEntryPUl __ct__14JKRAramArchiveFlQ210JKRArchive15EMountDirection::fetchResource(JKRArchive::SDIFileEntry *, unsigned long *) */
/* missing reference */
/* 802D75E0 002D4520 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 802D75E4 002D4524 7C 08 02 A6 */ mflr r0
@@ -1,4 +1,4 @@
/* fetchResource__14JKRAramArchiveFPvUlPQ210JKRArchive12SDIFileEntryPUl __ct__14JKRAramArchiveFlQ210JKRArchive15EMountDirection::fetchResource(void *, unsigned long, JKRArchive::SDIFileEntry *, unsigned long *) */
/* fetchResource__14JKRAramArchiveFPvUlP12SDIFileEntryPUl __ct__14JKRAramArchiveFlQ210JKRArchive15EMountDirection::fetchResource(void *, unsigned long, JKRArchive::SDIFileEntry *, unsigned long *) */
/* missing reference */
/* 802D76F4 002D4634 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 802D76F8 002D4638 7C 08 02 A6 */ mflr r0
@@ -1,4 +1,4 @@
/* getAramAddress_Entry__14JKRAramArchiveFPQ210JKRArchive12SDIFileEntry __ct__14JKRAramArchiveFlQ210JKRArchive15EMountDirection::getAramAddress_Entry(JKRArchive::SDIFileEntry *) */
/* getAramAddress_Entry__14JKRAramArchiveFP12SDIFileEntry __ct__14JKRAramArchiveFlQ210JKRArchive15EMountDirection::getAramAddress_Entry(JKRArchive::SDIFileEntry *) */
/* JKRAramArchive_NS_getAramAddress_Entry */
/* 802D77F8 002D4738 28 04 00 00 */ cmplwi r4, 0
/* 802D77FC 002D473C 40 82 00 0C */ bne lbl_802D7808
@@ -9,7 +9,7 @@
/* 802D7834 002D4774 4B FF ED 71 */ bl findFsResource__10JKRArchiveCFPCcUl
/* 802D7838 002D4778 7C 64 1B 78 */ mr r4, r3
/* 802D783C 002D477C 7F E3 FB 78 */ mr r3, r31
/* 802D7840 002D4780 4B FF FF B9 */ bl getAramAddress_Entry__14JKRAramArchiveFPQ210JKRArchive12SDIFileEntry
/* 802D7840 002D4780 4B FF FF B9 */ bl getAramAddress_Entry__14JKRAramArchiveFP12SDIFileEntry
/* 802D7844 002D4784 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 802D7848 002D4788 80 01 00 14 */ lwz r0, 0x14(r1)
/* 802D784C 002D478C 7C 08 03 A6 */ mtlr r0
+109 -68
View File
@@ -4,30 +4,64 @@
#include "JSystem/JKernel/JKRFileLoader/JKRFileLoader.h"
#include "dolphin/types.h"
struct SArcDataInfo {
u32 num_nodes;
u32 node_offset;
u32 num_file_entries;
u32 file_entry_offset;
u32 string_table_length;
u32 string_trable_offset;
u16 next_free_file_id;
bool sync_file_ids_and_indices;
u8 field_1b[5];
};
struct SDirEntry {
union {
u32 type;
struct {
u8 flags;
u8 padding;
u16 id;
} other;
};
const char* name;
u16 field_0x8;
u16 num_entries;
s32 first_file_index;
};
struct SDIFileEntry {
u16 file_id;
u16 name_hash;
u32 type_flags_and_name_offset;
u32 data_offset;
u32 data_size;
void* data;
u32 getNameOffset() const { return type_flags_and_name_offset & 0xFFFFFF; }
u16 getNameHash() const { return name_hash; }
u32 getFlags() const { return type_flags_and_name_offset >> 24; }
u16 getFileID() const { return file_id; }
bool isDirectory() const { return (getFlags() & 2) != 0; }
bool isUnknownFlag1() const { return (getFlags() & 1) != 0; }
};
extern u32 lbl_80451420; // JKRArchive::sCurrentDirID
class JKRHeap;
class JKRDvdFile;
class JKRArchive : public JKRFileLoader {
public:
struct SDirEntry {
u8 type_flags;
u8 field_0x1;
u16 id;
char* name;
u16 field_0x8;
u16 num_entries;
s32 first_file_index;
};
class SDIFileEntry {};
enum EMountMode {
UNKNOWN_MOUNT_MODE = 0,
MEM = 1,
ARAM = 2,
DVD = 3,
COMP = 4,
MOUNT_MEM = 1,
MOUNT_ARAM = 2,
MOUNT_DVD = 3,
MOUNT_COMP = 4,
__EMOUNT_MODE_PADDING_FOR_32BIT = 0xFFFFFFFF
__EMOUNT_MODE_FORCE_32BIT = UINT32_MAX,
};
enum EMountDirection {
@@ -35,7 +69,8 @@ public:
HEAD = 1,
TAIL = 2,
__EMOUNT_DIRECTION_PADDING_FOR_32BIT = 0xFFFFFFFF
__EMOUNT_DIRECTION_FORCE_32BIT = INT32_MAX,
__EMOUNT_DIRECTION_FORCE_SIGNED = -1,
};
class CArcName {
@@ -47,14 +82,14 @@ public:
void store(char const* data);
const char* store(char const* data, char endChar);
u16 getHash() { return mHash; }
u16 getHash() const { return mHash; }
const char* getString() { return mData; }
const char* getString() const { return mData; }
private:
u16 mHash;
u16 mLength;
char mData[64];
char mData[256];
};
protected:
@@ -64,61 +99,67 @@ protected:
public:
bool getDirEntry(SDirEntry*, u32) const;
void getIdxResource(u32);
void getResource(unsigned short);
void readIdxResource(void*, u32, u32);
void readResource(void*, u32, unsigned short);
void countResource(void) const;
void getFileAttribute(u32) const;
void isSameName(CArcName&, u32, unsigned short) const;
void findResType(u32) const;
void findDirectory(char const*, u32) const;
void findTypeResource(u32, char const*) const;
void findFsResource(char const*, u32) const;
void findIdxResource(u32) const;
void findNameResource(char const*) const;
void findPtrResource(void const*) const;
void findIdResource(unsigned short) const;
void* getIdxResource(u32);
void* getResource(u16);
u32 readIdxResource(void*, u32, u32);
u32 readResource(void*, u32, u16);
u32 countResource(void) const;
u32 getFileAttribute(u32) const;
EMountMode getMountMode() const { return (EMountMode)mMountMode; }
protected:
bool isSameName(CArcName&, u32, u16) const;
SDirEntry* findResType(u32) const;
SDirEntry* findDirectory(const char*, u32) const;
SDIFileEntry* findTypeResource(u32, const char*) const;
SDIFileEntry* findFsResource(const char*, u32) const;
SDIFileEntry* findIdxResource(u32) const;
SDIFileEntry* findNameResource(const char*) const;
SDIFileEntry* findPtrResource(const void*) const;
SDIFileEntry* findIdResource(u16) const;
public:
/* vt[04] */ virtual void becomeCurrent(char const*); /* override */
/* vt[05] */ virtual void* getResource(char const*); /* override */
/* vt[06] */ virtual void* getResource(u32, char const*); /* override */
/* vt[07] */ virtual void readResource(void*, u32, char const*); /* override */
/* vt[08] */ virtual void readResource(void*, u32, u32, char const*); /* override */
/* vt[09] */ virtual void removeResourceAll(void); /* override */
/* vt[10] */ virtual bool removeResource(void*); /* override */
/* vt[11] */ virtual bool detachResource(void*); /* override */
/* vt[12] */ virtual void getResSize(void const*) const; /* override */
/* vt[13] */ virtual void countFile(char const*) const; /* override */
/* vt[14] */ virtual void getFirstFile(char const*) const; /* override */
/* vt[15] */ virtual void getExpandedResSize(void const*) const;
/* vt[16] */ virtual void fetchResource(SDIFileEntry*, u32) = 0;
/* vt[17] */ virtual void fetchResource(void*, u32, SDIFileEntry*, u32*) = 0;
/* vt[04] */ virtual bool becomeCurrent(const char*); /* override */
/* vt[05] */ virtual void* getResource(const char*); /* override */
/* vt[06] */ virtual void* getResource(u32, const char*); /* override */
/* vt[07] */ virtual u32 readResource(void*, u32, const char*); /* override */
/* vt[08] */ virtual u32 readResource(void*, u32, u32, const char*); /* override */
/* vt[09] */ virtual void removeResourceAll(void); /* override */
/* vt[10] */ virtual bool removeResource(void*); /* override */
/* vt[11] */ virtual bool detachResource(void*); /* override */
/* vt[12] */ virtual u32 getResSize(const void*) const; /* override */
/* vt[13] */ virtual u32 countFile(const char*) const; /* override */
/* vt[14] */ virtual JKRArcFinder* getFirstFile(const char*) const; /* override */
/* vt[15] */ virtual void getExpandedResSize(const void*) const;
/* vt[16] */ virtual void* fetchResource(SDIFileEntry*, u32*) = 0;
/* vt[17] */ virtual void* fetchResource(void*, u32, SDIFileEntry*, u32*) = 0;
/* vt[18] */ virtual void setExpandSize(SDIFileEntry*, u32);
/* vt[19] */ virtual void getExpandSize(SDIFileEntry*) const;
private:
JKRHeap* mHeap;
EMountMode mMountMode;
int mEntryNum;
void* mArcInfoBlock;
void* mNodes;
SDIFileEntry* mDirs;
int* mExpandedSize;
char* mStringTable;
u32 field_0x58;
u32 field_0x5c;
EMountDirection mMountDirection;
u32 field_0x64;
JKRDvdFile* mDvdFile;
/* 0x00 */ // vtable
/* 0x04 */ // JKRFileLoader
/* 0x38 */ JKRHeap* mHeap;
/* 0x3C */ u8 mMountMode;
/* 0x3D */ u8 field_0x3d[3];
/* 0x40 */ s32 mEntryNum;
/* 0x44 */ SArcDataInfo* mArcInfoBlock;
/* 0x48 */ SDirEntry* mNodes;
/* 0x4C */ SDIFileEntry* mFiles;
/* 0x50 */ s32* mExpandedSize;
/* 0x54 */ char* mStringTable;
/* 0x58 */ u32 field_0x58;
public:
static void check_mount_already(long, JKRHeap*);
static void mount(char const*, EMountMode, JKRHeap*, EMountDirection);
static void mount(void*, JKRHeap*, EMountDirection);
static void mount(long, EMountMode, JKRHeap*, EMountDirection);
static void getGlbResource(u32, char const*, JKRArchive*);
static JKRArchive* check_mount_already(s32, JKRHeap*);
static JKRArchive* mount(const char*, EMountMode, JKRHeap*, EMountDirection);
static JKRArchive* mount(void*, JKRHeap*, EMountDirection);
static JKRArchive* mount(s32, EMountMode, JKRHeap*, EMountDirection);
static void* getGlbResource(u32, const char*, JKRArchive*);
static u32 getCurrentDirID() { return lbl_80451420; }
static void setCurrentDirID(u32 dirID) { lbl_80451420 = dirID; }
};
#endif
@@ -1,33 +0,0 @@
/* check_mount_already__10JKRArchiveFlP7JKRHeap __ct__10JKRArchiveFlQ210JKRArchive10EMountMode::check_mount_already(long, JKRHeap *) */
/* JKRArchive_NS_check_mount_already */
/* 802D5778 002D26B8 28 04 00 00 */ cmplwi r4, 0
/* 802D577C 002D26BC 40 82 00 08 */ bne lbl_802D5784
/* 802D5780 002D26C0 80 8D 8D F4 */ lwz r4, lbl_80451374-_SDA_BASE_(r13)
lbl_802D5784:
/* 802D5784 002D26C4 3C A0 80 43 */ lis r5, lbl_80434354@ha
/* 802D5788 002D26C8 80 C5 43 54 */ lwz r6, lbl_80434354@l(r5)
/* 802D578C 002D26CC 48 00 00 48 */ b lbl_802D57D4
lbl_802D5790:
/* 802D5790 002D26D0 80 E6 00 00 */ lwz r7, 0(r6)
/* 802D5794 002D26D4 80 A7 00 2C */ lwz r5, 0x2c(r7)
/* 802D5798 002D26D8 3C 05 AD BF */ addis r0, r5, 0xadbf
/* 802D579C 002D26DC 28 00 52 43 */ cmplwi r0, 0x5243
/* 802D57A0 002D26E0 40 82 00 30 */ bne lbl_802D57D0
/* 802D57A4 002D26E4 80 07 00 40 */ lwz r0, 0x40(r7)
/* 802D57A8 002D26E8 7C 00 18 00 */ cmpw r0, r3
/* 802D57AC 002D26EC 40 82 00 24 */ bne lbl_802D57D0
/* 802D57B0 002D26F0 80 07 00 38 */ lwz r0, 0x38(r7)
/* 802D57B4 002D26F4 7C 00 20 40 */ cmplw r0, r4
/* 802D57B8 002D26F8 40 82 00 18 */ bne lbl_802D57D0
/* 802D57BC 002D26FC 80 67 00 34 */ lwz r3, 0x34(r7)
/* 802D57C0 002D2700 38 03 00 01 */ addi r0, r3, 1
/* 802D57C4 002D2704 90 07 00 34 */ stw r0, 0x34(r7)
/* 802D57C8 002D2708 7C E3 3B 78 */ mr r3, r7
/* 802D57CC 002D270C 4E 80 00 20 */ blr
lbl_802D57D0:
/* 802D57D0 002D2710 80 C6 00 0C */ lwz r6, 0xc(r6)
lbl_802D57D4:
/* 802D57D4 002D2714 28 06 00 00 */ cmplwi r6, 0
/* 802D57D8 002D2718 40 82 FF B8 */ bne lbl_802D5790
/* 802D57DC 002D271C 38 60 00 00 */ li r3, 0
/* 802D57E0 002D2720 4E 80 00 20 */ blr
@@ -1,27 +0,0 @@
/* mount__10JKRArchiveFPCcQ210JKRArchive10EMountModeP7JKRHeapQ210JKRArchive15EMountDirection __ct__10JKRArchiveFlQ210JKRArchive10EMountMode::mount(char const *, __ct__10JKRArchiveFlQ210JKRArchive10EMountMode::EMountMode, JKRHeap *, __ct__10JKRArchiveFlQ210JKRArchive10EMountMode::EMountDirection) */
/* JKRArchive_NS_mount */
/* 802D57E4 002D2724 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 802D57E8 002D2728 7C 08 02 A6 */ mflr r0
/* 802D57EC 002D272C 90 01 00 24 */ stw r0, 0x24(r1)
/* 802D57F0 002D2730 39 61 00 20 */ addi r11, r1, 0x20
/* 802D57F4 002D2734 48 08 C9 E9 */ bl _savegpr_29
/* 802D57F8 002D2738 7C 9D 23 78 */ mr r29, r4
/* 802D57FC 002D273C 7C BE 2B 78 */ mr r30, r5
/* 802D5800 002D2740 7C DF 33 78 */ mr r31, r6
/* 802D5804 002D2744 48 07 2D 25 */ bl DVDConvertPathToEntrynum
/* 802D5808 002D2748 2C 03 00 00 */ cmpwi r3, 0
/* 802D580C 002D274C 40 80 00 0C */ bge lbl_802D5818
/* 802D5810 002D2750 38 60 00 00 */ li r3, 0
/* 802D5814 002D2754 48 00 00 14 */ b lbl_802D5828
lbl_802D5818:
/* 802D5818 002D2758 7F A4 EB 78 */ mr r4, r29
/* 802D581C 002D275C 7F C5 F3 78 */ mr r5, r30
/* 802D5820 002D2760 7F E6 FB 78 */ mr r6, r31
/* 802D5824 002D2764 48 00 00 A5 */ bl mount__10JKRArchiveFlQ210JKRArchive10EMountModeP7JKRHeapQ210JKRArchive15EMountDirection
lbl_802D5828:
/* 802D5828 002D2768 39 61 00 20 */ addi r11, r1, 0x20
/* 802D582C 002D276C 48 08 C9 FD */ bl _restgpr_29
/* 802D5830 002D2770 80 01 00 24 */ lwz r0, 0x24(r1)
/* 802D5834 002D2774 7C 08 03 A6 */ mtlr r0
/* 802D5838 002D2778 38 21 00 20 */ addi r1, r1, 0x20
/* 802D583C 002D277C 4E 80 00 20 */ blr
@@ -1,40 +0,0 @@
/* mount__10JKRArchiveFPvP7JKRHeapQ210JKRArchive15EMountDirection __ct__10JKRArchiveFlQ210JKRArchive10EMountMode::mount(void *, JKRHeap *, __ct__10JKRArchiveFlQ210JKRArchive10EMountMode::EMountDirection) */
/* JKRArchive_NS_mount_X1_ */
/* 802D5840 002D2780 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 802D5844 002D2784 7C 08 02 A6 */ mflr r0
/* 802D5848 002D2788 90 01 00 24 */ stw r0, 0x24(r1)
/* 802D584C 002D278C 39 61 00 20 */ addi r11, r1, 0x20
/* 802D5850 002D2790 48 08 C9 8D */ bl _savegpr_29
/* 802D5854 002D2794 7C 7D 1B 78 */ mr r29, r3
/* 802D5858 002D2798 7C 9E 23 78 */ mr r30, r4
/* 802D585C 002D279C 7C BF 2B 78 */ mr r31, r5
/* 802D5860 002D27A0 4B FF FF 19 */ bl check_mount_already__10JKRArchiveFlP7JKRHeap
/* 802D5864 002D27A4 28 03 00 00 */ cmplwi r3, 0
/* 802D5868 002D27A8 41 82 00 08 */ beq lbl_802D5870
/* 802D586C 002D27AC 48 00 00 44 */ b lbl_802D58B0
lbl_802D5870:
/* 802D5870 002D27B0 38 60 00 70 */ li r3, 0x70
/* 802D5874 002D27B4 7F C4 F3 78 */ mr r4, r30
/* 802D5878 002D27B8 2C 1F 00 01 */ cmpwi r31, 1
/* 802D587C 002D27BC 38 A0 FF FC */ li r5, -4
/* 802D5880 002D27C0 40 82 00 08 */ bne lbl_802D5888
/* 802D5884 002D27C4 38 A0 00 04 */ li r5, 4
lbl_802D5888:
/* 802D5888 002D27C8 4B FF 94 11 */ bl __nw__FUlP7JKRHeapi
/* 802D588C 002D27CC 7C 60 1B 79 */ or. r0, r3, r3
/* 802D5890 002D27D0 41 82 00 1C */ beq lbl_802D58AC
/* 802D5894 002D27D4 7F A4 EB 78 */ mr r4, r29
/* 802D5898 002D27D8 3C A0 00 01 */ lis r5, 0x0000FFFF@ha
/* 802D589C 002D27DC 38 A5 FF FF */ addi r5, r5, 0x0000FFFF@l
/* 802D58A0 002D27E0 38 C0 00 00 */ li r6, 0
/* 802D58A4 002D27E4 48 00 11 C9 */ bl __ct__13JKRMemArchiveFPvUl15JKRMemBreakFlag
/* 802D58A8 002D27E8 7C 60 1B 78 */ mr r0, r3
lbl_802D58AC:
/* 802D58AC 002D27EC 7C 03 03 78 */ mr r3, r0
lbl_802D58B0:
/* 802D58B0 002D27F0 39 61 00 20 */ addi r11, r1, 0x20
/* 802D58B4 002D27F4 48 08 C9 75 */ bl _restgpr_29
/* 802D58B8 002D27F8 80 01 00 24 */ lwz r0, 0x24(r1)
/* 802D58BC 002D27FC 7C 08 03 A6 */ mtlr r0
/* 802D58C0 002D2800 38 21 00 20 */ addi r1, r1, 0x20
/* 802D58C4 002D2804 4E 80 00 20 */ blr
@@ -1,109 +0,0 @@
/* mount__10JKRArchiveFlQ210JKRArchive10EMountModeP7JKRHeapQ210JKRArchive15EMountDirection __ct__10JKRArchiveFlQ210JKRArchive10EMountMode::mount(long, __ct__10JKRArchiveFlQ210JKRArchive10EMountMode::EMountMode, JKRHeap *, __ct__10JKRArchiveFlQ210JKRArchive10EMountMode::EMountDirection) */
/* JKRArchive_NS_mount_X2_ */
/* 802D58C8 002D2808 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 802D58CC 002D280C 7C 08 02 A6 */ mflr r0
/* 802D58D0 002D2810 90 01 00 24 */ stw r0, 0x24(r1)
/* 802D58D4 002D2814 39 61 00 20 */ addi r11, r1, 0x20
/* 802D58D8 002D2818 48 08 C8 FD */ bl _savegpr_27
/* 802D58DC 002D281C 7C 7B 1B 78 */ mr r27, r3
/* 802D58E0 002D2820 7C 9C 23 78 */ mr r28, r4
/* 802D58E4 002D2824 7C BD 2B 78 */ mr r29, r5
/* 802D58E8 002D2828 7C DE 33 78 */ mr r30, r6
/* 802D58EC 002D282C 7F A4 EB 78 */ mr r4, r29
/* 802D58F0 002D2830 4B FF FE 89 */ bl check_mount_already__10JKRArchiveFlP7JKRHeap
/* 802D58F4 002D2834 28 03 00 00 */ cmplwi r3, 0
/* 802D58F8 002D2838 41 82 00 08 */ beq lbl_802D5900
/* 802D58FC 002D283C 48 00 01 24 */ b lbl_802D5A20
lbl_802D5900:
/* 802D5900 002D2840 2C 1E 00 01 */ cmpwi r30, 1
/* 802D5904 002D2844 38 A0 FF FC */ li r5, -4
/* 802D5908 002D2848 40 82 00 08 */ bne lbl_802D5910
/* 802D590C 002D284C 38 A0 00 04 */ li r5, 4
lbl_802D5910:
/* 802D5910 002D2850 2C 1C 00 03 */ cmpwi r28, 3
/* 802D5914 002D2854 41 82 00 7C */ beq lbl_802D5990
/* 802D5918 002D2858 40 80 00 14 */ bge lbl_802D592C
/* 802D591C 002D285C 2C 1C 00 01 */ cmpwi r28, 1
/* 802D5920 002D2860 41 82 00 18 */ beq lbl_802D5938
/* 802D5924 002D2864 40 80 00 40 */ bge lbl_802D5964
/* 802D5928 002D2868 48 00 00 BC */ b lbl_802D59E4
lbl_802D592C:
/* 802D592C 002D286C 2C 1C 00 05 */ cmpwi r28, 5
/* 802D5930 002D2870 40 80 00 B4 */ bge lbl_802D59E4
/* 802D5934 002D2874 48 00 00 88 */ b lbl_802D59BC
lbl_802D5938:
/* 802D5938 002D2878 38 60 00 70 */ li r3, 0x70
/* 802D593C 002D287C 7F A4 EB 78 */ mr r4, r29
/* 802D5940 002D2880 4B FF 93 59 */ bl __nw__FUlP7JKRHeapi
/* 802D5944 002D2884 7C 60 1B 79 */ or. r0, r3, r3
/* 802D5948 002D2888 41 82 00 14 */ beq lbl_802D595C
/* 802D594C 002D288C 7F 64 DB 78 */ mr r4, r27
/* 802D5950 002D2890 7F C5 F3 78 */ mr r5, r30
/* 802D5954 002D2894 48 00 10 65 */ bl __ct__13JKRMemArchiveFlQ210JKRArchive15EMountDirection
/* 802D5958 002D2898 7C 60 1B 78 */ mr r0, r3
lbl_802D595C:
/* 802D595C 002D289C 7C 1F 03 78 */ mr r31, r0
/* 802D5960 002D28A0 48 00 00 84 */ b lbl_802D59E4
lbl_802D5964:
/* 802D5964 002D28A4 38 60 00 6C */ li r3, 0x6c
/* 802D5968 002D28A8 7F A4 EB 78 */ mr r4, r29
/* 802D596C 002D28AC 4B FF 93 2D */ bl __nw__FUlP7JKRHeapi
/* 802D5970 002D28B0 7C 60 1B 79 */ or. r0, r3, r3
/* 802D5974 002D28B4 41 82 00 14 */ beq lbl_802D5988
/* 802D5978 002D28B8 7F 64 DB 78 */ mr r4, r27
/* 802D597C 002D28BC 7F C5 F3 78 */ mr r5, r30
/* 802D5980 002D28C0 48 00 17 41 */ bl __ct__14JKRAramArchiveFlQ210JKRArchive15EMountDirection
/* 802D5984 002D28C4 7C 60 1B 78 */ mr r0, r3
lbl_802D5988:
/* 802D5988 002D28C8 7C 1F 03 78 */ mr r31, r0
/* 802D598C 002D28CC 48 00 00 58 */ b lbl_802D59E4
lbl_802D5990:
/* 802D5990 002D28D0 38 60 00 6C */ li r3, 0x6c
/* 802D5994 002D28D4 7F A4 EB 78 */ mr r4, r29
/* 802D5998 002D28D8 4B FF 93 01 */ bl __nw__FUlP7JKRHeapi
/* 802D599C 002D28DC 7C 60 1B 79 */ or. r0, r3, r3
/* 802D59A0 002D28E0 41 82 00 14 */ beq lbl_802D59B4
/* 802D59A4 002D28E4 7F 64 DB 78 */ mr r4, r27
/* 802D59A8 002D28E8 7F C5 F3 78 */ mr r5, r30
/* 802D59AC 002D28EC 48 00 22 45 */ bl __ct__13JKRDvdArchiveFlQ210JKRArchive15EMountDirection
/* 802D59B0 002D28F0 7C 60 1B 78 */ mr r0, r3
lbl_802D59B4:
/* 802D59B4 002D28F4 7C 1F 03 78 */ mr r31, r0
/* 802D59B8 002D28F8 48 00 00 2C */ b lbl_802D59E4
lbl_802D59BC:
/* 802D59BC 002D28FC 38 60 00 80 */ li r3, 0x80
/* 802D59C0 002D2900 7F A4 EB 78 */ mr r4, r29
/* 802D59C4 002D2904 4B FF 92 D5 */ bl __nw__FUlP7JKRHeapi
/* 802D59C8 002D2908 7C 60 1B 79 */ or. r0, r3, r3
/* 802D59CC 002D290C 41 82 00 14 */ beq lbl_802D59E0
/* 802D59D0 002D2910 7F 64 DB 78 */ mr r4, r27
/* 802D59D4 002D2914 7F C5 F3 78 */ mr r5, r30
/* 802D59D8 002D2918 48 00 2D FD */ bl __ct__14JKRCompArchiveFlQ210JKRArchive15EMountDirection
/* 802D59DC 002D291C 7C 60 1B 78 */ mr r0, r3
lbl_802D59E0:
/* 802D59E0 002D2920 7C 1F 03 78 */ mr r31, r0
lbl_802D59E4:
/* 802D59E4 002D2924 28 1F 00 00 */ cmplwi r31, 0
/* 802D59E8 002D2928 41 82 00 34 */ beq lbl_802D5A1C
/* 802D59EC 002D292C 88 1F 00 3C */ lbz r0, 0x3c(r31)
/* 802D59F0 002D2930 28 00 00 00 */ cmplwi r0, 0
/* 802D59F4 002D2934 40 82 00 28 */ bne lbl_802D5A1C
/* 802D59F8 002D2938 28 1F 00 00 */ cmplwi r31, 0
/* 802D59FC 002D293C 41 82 00 1C */ beq lbl_802D5A18
/* 802D5A00 002D2940 7F E3 FB 78 */ mr r3, r31
/* 802D5A04 002D2944 38 80 00 01 */ li r4, 1
/* 802D5A08 002D2948 81 9F 00 00 */ lwz r12, 0(r31)
/* 802D5A0C 002D294C 81 8C 00 08 */ lwz r12, 8(r12)
/* 802D5A10 002D2950 7D 89 03 A6 */ mtctr r12
/* 802D5A14 002D2954 4E 80 04 21 */ bctrl
lbl_802D5A18:
/* 802D5A18 002D2958 3B E0 00 00 */ li r31, 0
lbl_802D5A1C:
/* 802D5A1C 002D295C 7F E3 FB 78 */ mr r3, r31
lbl_802D5A20:
/* 802D5A20 002D2960 39 61 00 20 */ addi r11, r1, 0x20
/* 802D5A24 002D2964 48 08 C7 FD */ bl _restgpr_27
/* 802D5A28 002D2968 80 01 00 24 */ lwz r0, 0x24(r1)
/* 802D5A2C 002D296C 7C 08 03 A6 */ mtlr r0
/* 802D5A30 002D2970 38 21 00 20 */ addi r1, r1, 0x20
/* 802D5A34 002D2974 4E 80 00 20 */ blr
@@ -1,40 +0,0 @@
/* becomeCurrent__10JKRArchiveFPCc __ct__10JKRArchiveFlQ210JKRArchive10EMountMode::becomeCurrent(char const *) */
/* missing reference */
/* 802D5A38 002D2978 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 802D5A3C 002D297C 7C 08 02 A6 */ mflr r0
/* 802D5A40 002D2980 90 01 00 14 */ stw r0, 0x14(r1)
/* 802D5A44 002D2984 93 E1 00 0C */ stw r31, 0xc(r1)
/* 802D5A48 002D2988 7C 7F 1B 78 */ mr r31, r3
/* 802D5A4C 002D298C 88 04 00 00 */ lbz r0, 0(r4)
/* 802D5A50 002D2990 2C 00 00 2F */ cmpwi r0, 0x2f
/* 802D5A54 002D2994 40 82 00 24 */ bne lbl_802D5A78
/* 802D5A58 002D2998 8C 04 00 01 */ lbzu r0, 1(r4)
/* 802D5A5C 002D299C 7C 00 07 75 */ extsb. r0, r0
/* 802D5A60 002D29A0 40 82 00 08 */ bne lbl_802D5A68
/* 802D5A64 002D29A4 38 80 00 00 */ li r4, 0
lbl_802D5A68:
/* 802D5A68 002D29A8 7F E3 FB 78 */ mr r3, r31
/* 802D5A6C 002D29AC 38 A0 00 00 */ li r5, 0
/* 802D5A70 002D29B0 48 00 09 AD */ bl findDirectory__10JKRArchiveCFPCcUl
/* 802D5A74 002D29B4 48 00 00 0C */ b lbl_802D5A80
lbl_802D5A78:
/* 802D5A78 002D29B8 80 AD 8E A0 */ lwz r5, lbl_80451420-_SDA_BASE_(r13)
/* 802D5A7C 002D29BC 48 00 09 A1 */ bl findDirectory__10JKRArchiveCFPCcUl
lbl_802D5A80:
/* 802D5A80 002D29C0 30 03 FF FF */ addic r0, r3, -1
/* 802D5A84 002D29C4 7C 80 19 10 */ subfe r4, r0, r3
/* 802D5A88 002D29C8 54 80 06 3F */ clrlwi. r0, r4, 0x18
/* 802D5A8C 002D29CC 41 82 00 1C */ beq lbl_802D5AA8
/* 802D5A90 002D29D0 93 ED 8E 98 */ stw r31, lbl_80451418-_SDA_BASE_(r13)
/* 802D5A94 002D29D4 80 1F 00 48 */ lwz r0, 0x48(r31)
/* 802D5A98 002D29D8 7C 00 18 50 */ subf r0, r0, r3
/* 802D5A9C 002D29DC 7C 00 26 70 */ srawi r0, r0, 4
/* 802D5AA0 002D29E0 7C 00 01 94 */ addze r0, r0
/* 802D5AA4 002D29E4 90 0D 8E A0 */ stw r0, lbl_80451420-_SDA_BASE_(r13)
lbl_802D5AA8:
/* 802D5AA8 002D29E8 7C 83 23 78 */ mr r3, r4
/* 802D5AAC 002D29EC 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 802D5AB0 002D29F0 80 01 00 14 */ lwz r0, 0x14(r1)
/* 802D5AB4 002D29F4 7C 08 03 A6 */ mtlr r0
/* 802D5AB8 002D29F8 38 21 00 10 */ addi r1, r1, 0x10
/* 802D5ABC 002D29FC 4E 80 00 20 */ blr
@@ -1,34 +0,0 @@
/* getDirEntry__10JKRArchiveCFPQ210JKRArchive9SDirEntryUl __ct__10JKRArchiveFlQ210JKRArchive10EMountMode::getDirEntry( const(__ct__10JKRArchiveFlQ210JKRArchive10EMountMode::SDirEntry *, unsigned long)) */
/* JKRArchive_NS_getDirEntry */
/* 802D5AC0 002D2A00 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 802D5AC4 002D2A04 7C 08 02 A6 */ mflr r0
/* 802D5AC8 002D2A08 90 01 00 14 */ stw r0, 0x14(r1)
/* 802D5ACC 002D2A0C 93 E1 00 0C */ stw r31, 0xc(r1)
/* 802D5AD0 002D2A10 93 C1 00 08 */ stw r30, 8(r1)
/* 802D5AD4 002D2A14 7C 7E 1B 78 */ mr r30, r3
/* 802D5AD8 002D2A18 7C 9F 23 78 */ mr r31, r4
/* 802D5ADC 002D2A1C 7C A4 2B 78 */ mr r4, r5
/* 802D5AE0 002D2A20 48 00 0B A5 */ bl findIdxResource__10JKRArchiveCFUl
/* 802D5AE4 002D2A24 28 03 00 00 */ cmplwi r3, 0
/* 802D5AE8 002D2A28 40 82 00 0C */ bne lbl_802D5AF4
/* 802D5AEC 002D2A2C 38 60 00 00 */ li r3, 0
/* 802D5AF0 002D2A30 48 00 00 30 */ b lbl_802D5B20
lbl_802D5AF4:
/* 802D5AF4 002D2A34 80 03 00 04 */ lwz r0, 4(r3)
/* 802D5AF8 002D2A38 54 00 46 3E */ srwi r0, r0, 0x18
/* 802D5AFC 002D2A3C 98 1F 00 00 */ stb r0, 0(r31)
/* 802D5B00 002D2A40 A0 03 00 00 */ lhz r0, 0(r3)
/* 802D5B04 002D2A44 B0 1F 00 02 */ sth r0, 2(r31)
/* 802D5B08 002D2A48 80 9E 00 54 */ lwz r4, 0x54(r30)
/* 802D5B0C 002D2A4C 80 03 00 04 */ lwz r0, 4(r3)
/* 802D5B10 002D2A50 54 00 02 3E */ clrlwi r0, r0, 8
/* 802D5B14 002D2A54 7C 04 02 14 */ add r0, r4, r0
/* 802D5B18 002D2A58 90 1F 00 04 */ stw r0, 4(r31)
/* 802D5B1C 002D2A5C 38 60 00 01 */ li r3, 1
lbl_802D5B20:
/* 802D5B20 002D2A60 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 802D5B24 002D2A64 83 C1 00 08 */ lwz r30, 8(r1)
/* 802D5B28 002D2A68 80 01 00 14 */ lwz r0, 0x14(r1)
/* 802D5B2C 002D2A6C 7C 08 03 A6 */ mtlr r0
/* 802D5B30 002D2A70 38 21 00 10 */ addi r1, r1, 0x10
/* 802D5B34 002D2A74 4E 80 00 20 */ blr
@@ -1,52 +0,0 @@
/* getGlbResource__10JKRArchiveFUlPCcP10JKRArchive __ct__10JKRArchiveFlQ210JKRArchive10EMountMode::getGlbResource(unsigned long, char const *, JKRArchive *) */
/* JKRArchive_NS_getGlbResource */
/* 802D5B38 002D2A78 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 802D5B3C 002D2A7C 7C 08 02 A6 */ mflr r0
/* 802D5B40 002D2A80 90 01 00 24 */ stw r0, 0x24(r1)
/* 802D5B44 002D2A84 39 61 00 20 */ addi r11, r1, 0x20
/* 802D5B48 002D2A88 48 08 C6 95 */ bl _savegpr_29
/* 802D5B4C 002D2A8C 7C 7D 1B 78 */ mr r29, r3
/* 802D5B50 002D2A90 7C 9E 23 78 */ mr r30, r4
/* 802D5B54 002D2A94 38 C0 00 00 */ li r6, 0
/* 802D5B58 002D2A98 28 05 00 00 */ cmplwi r5, 0
/* 802D5B5C 002D2A9C 41 82 00 24 */ beq lbl_802D5B80
/* 802D5B60 002D2AA0 7C A3 2B 78 */ mr r3, r5
/* 802D5B64 002D2AA4 7F A4 EB 78 */ mr r4, r29
/* 802D5B68 002D2AA8 7F C5 F3 78 */ mr r5, r30
/* 802D5B6C 002D2AAC 81 83 00 00 */ lwz r12, 0(r3)
/* 802D5B70 002D2AB0 81 8C 00 18 */ lwz r12, 0x18(r12)
/* 802D5B74 002D2AB4 7D 89 03 A6 */ mtctr r12
/* 802D5B78 002D2AB8 4E 80 04 21 */ bctrl
/* 802D5B7C 002D2ABC 48 00 00 54 */ b lbl_802D5BD0
lbl_802D5B80:
/* 802D5B80 002D2AC0 3C 60 80 43 */ lis r3, lbl_80434354@ha
/* 802D5B84 002D2AC4 83 E3 43 54 */ lwz r31, lbl_80434354@l(r3)
/* 802D5B88 002D2AC8 48 00 00 3C */ b lbl_802D5BC4
lbl_802D5B8C:
/* 802D5B8C 002D2ACC 80 7F 00 00 */ lwz r3, 0(r31)
/* 802D5B90 002D2AD0 80 83 00 2C */ lwz r4, 0x2c(r3)
/* 802D5B94 002D2AD4 3C 04 AD BF */ addis r0, r4, 0xadbf
/* 802D5B98 002D2AD8 28 00 52 43 */ cmplwi r0, 0x5243
/* 802D5B9C 002D2ADC 40 82 00 24 */ bne lbl_802D5BC0
/* 802D5BA0 002D2AE0 7F A4 EB 78 */ mr r4, r29
/* 802D5BA4 002D2AE4 7F C5 F3 78 */ mr r5, r30
/* 802D5BA8 002D2AE8 81 83 00 00 */ lwz r12, 0(r3)
/* 802D5BAC 002D2AEC 81 8C 00 18 */ lwz r12, 0x18(r12)
/* 802D5BB0 002D2AF0 7D 89 03 A6 */ mtctr r12
/* 802D5BB4 002D2AF4 4E 80 04 21 */ bctrl
/* 802D5BB8 002D2AF8 7C 66 1B 79 */ or. r6, r3, r3
/* 802D5BBC 002D2AFC 40 82 00 10 */ bne lbl_802D5BCC
lbl_802D5BC0:
/* 802D5BC0 002D2B00 83 FF 00 0C */ lwz r31, 0xc(r31)
lbl_802D5BC4:
/* 802D5BC4 002D2B04 28 1F 00 00 */ cmplwi r31, 0
/* 802D5BC8 002D2B08 40 82 FF C4 */ bne lbl_802D5B8C
lbl_802D5BCC:
/* 802D5BCC 002D2B0C 7C C3 33 78 */ mr r3, r6
lbl_802D5BD0:
/* 802D5BD0 002D2B10 39 61 00 20 */ addi r11, r1, 0x20
/* 802D5BD4 002D2B14 48 08 C6 55 */ bl _restgpr_29
/* 802D5BD8 002D2B18 80 01 00 24 */ lwz r0, 0x24(r1)
/* 802D5BDC 002D2B1C 7C 08 03 A6 */ mtlr r0
/* 802D5BE0 002D2B20 38 21 00 20 */ addi r1, r1, 0x20
/* 802D5BE4 002D2B24 4E 80 00 20 */ blr
@@ -1,37 +0,0 @@
/* getResource__10JKRArchiveFPCc __ct__10JKRArchiveFlQ210JKRArchive10EMountMode::getResource(char const *) */
/* missing reference */
/* 802D5BE8 002D2B28 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 802D5BEC 002D2B2C 7C 08 02 A6 */ mflr r0
/* 802D5BF0 002D2B30 90 01 00 14 */ stw r0, 0x14(r1)
/* 802D5BF4 002D2B34 93 E1 00 0C */ stw r31, 0xc(r1)
/* 802D5BF8 002D2B38 7C 7F 1B 78 */ mr r31, r3
/* 802D5BFC 002D2B3C 88 04 00 00 */ lbz r0, 0(r4)
/* 802D5C00 002D2B40 2C 00 00 2F */ cmpwi r0, 0x2f
/* 802D5C04 002D2B44 40 82 00 18 */ bne lbl_802D5C1C
/* 802D5C08 002D2B48 38 84 00 01 */ addi r4, r4, 1
/* 802D5C0C 002D2B4C 38 A0 00 00 */ li r5, 0
/* 802D5C10 002D2B50 48 00 09 95 */ bl findFsResource__10JKRArchiveCFPCcUl
/* 802D5C14 002D2B54 7C 64 1B 78 */ mr r4, r3
/* 802D5C18 002D2B58 48 00 00 10 */ b lbl_802D5C28
lbl_802D5C1C:
/* 802D5C1C 002D2B5C 80 AD 8E A0 */ lwz r5, lbl_80451420-_SDA_BASE_(r13)
/* 802D5C20 002D2B60 48 00 09 85 */ bl findFsResource__10JKRArchiveCFPCcUl
/* 802D5C24 002D2B64 7C 64 1B 78 */ mr r4, r3
lbl_802D5C28:
/* 802D5C28 002D2B68 28 04 00 00 */ cmplwi r4, 0
/* 802D5C2C 002D2B6C 41 82 00 20 */ beq lbl_802D5C4C
/* 802D5C30 002D2B70 7F E3 FB 78 */ mr r3, r31
/* 802D5C34 002D2B74 38 A0 00 00 */ li r5, 0
/* 802D5C38 002D2B78 81 9F 00 00 */ lwz r12, 0(r31)
/* 802D5C3C 002D2B7C 81 8C 00 40 */ lwz r12, 0x40(r12)
/* 802D5C40 002D2B80 7D 89 03 A6 */ mtctr r12
/* 802D5C44 002D2B84 4E 80 04 21 */ bctrl
/* 802D5C48 002D2B88 48 00 00 08 */ b lbl_802D5C50
lbl_802D5C4C:
/* 802D5C4C 002D2B8C 38 60 00 00 */ li r3, 0
lbl_802D5C50:
/* 802D5C50 002D2B90 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 802D5C54 002D2B94 80 01 00 14 */ lwz r0, 0x14(r1)
/* 802D5C58 002D2B98 7C 08 03 A6 */ mtlr r0
/* 802D5C5C 002D2B9C 38 21 00 10 */ addi r1, r1, 0x10
/* 802D5C60 002D2BA0 4E 80 00 20 */ blr
@@ -1,39 +0,0 @@
/* getResource__10JKRArchiveFUlPCc __ct__10JKRArchiveFlQ210JKRArchive10EMountMode::getResource(unsigned long, char const *) */
/* missing reference */
/* 802D5C64 002D2BA4 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 802D5C68 002D2BA8 7C 08 02 A6 */ mflr r0
/* 802D5C6C 002D2BAC 90 01 00 14 */ stw r0, 0x14(r1)
/* 802D5C70 002D2BB0 93 E1 00 0C */ stw r31, 0xc(r1)
/* 802D5C74 002D2BB4 7C 7F 1B 78 */ mr r31, r3
/* 802D5C78 002D2BB8 28 04 00 00 */ cmplwi r4, 0
/* 802D5C7C 002D2BBC 41 82 00 10 */ beq lbl_802D5C8C
/* 802D5C80 002D2BC0 3C 04 C0 C1 */ addis r0, r4, 0xc0c1
/* 802D5C84 002D2BC4 28 00 3F 3F */ cmplwi r0, 0x3f3f
/* 802D5C88 002D2BC8 40 82 00 18 */ bne lbl_802D5CA0
lbl_802D5C8C:
/* 802D5C8C 002D2BCC 7F E3 FB 78 */ mr r3, r31
/* 802D5C90 002D2BD0 7C A4 2B 78 */ mr r4, r5
/* 802D5C94 002D2BD4 48 00 0A 19 */ bl findNameResource__10JKRArchiveCFPCc
/* 802D5C98 002D2BD8 7C 64 1B 78 */ mr r4, r3
/* 802D5C9C 002D2BDC 48 00 00 0C */ b lbl_802D5CA8
lbl_802D5CA0:
/* 802D5CA0 002D2BE0 48 00 08 55 */ bl findTypeResource__10JKRArchiveCFUlPCc
/* 802D5CA4 002D2BE4 7C 64 1B 78 */ mr r4, r3
lbl_802D5CA8:
/* 802D5CA8 002D2BE8 28 04 00 00 */ cmplwi r4, 0
/* 802D5CAC 002D2BEC 41 82 00 20 */ beq lbl_802D5CCC
/* 802D5CB0 002D2BF0 7F E3 FB 78 */ mr r3, r31
/* 802D5CB4 002D2BF4 38 A0 00 00 */ li r5, 0
/* 802D5CB8 002D2BF8 81 9F 00 00 */ lwz r12, 0(r31)
/* 802D5CBC 002D2BFC 81 8C 00 40 */ lwz r12, 0x40(r12)
/* 802D5CC0 002D2C00 7D 89 03 A6 */ mtctr r12
/* 802D5CC4 002D2C04 4E 80 04 21 */ bctrl
/* 802D5CC8 002D2C08 48 00 00 08 */ b lbl_802D5CD0
lbl_802D5CCC:
/* 802D5CCC 002D2C0C 38 60 00 00 */ li r3, 0
lbl_802D5CD0:
/* 802D5CD0 002D2C10 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 802D5CD4 002D2C14 80 01 00 14 */ lwz r0, 0x14(r1)
/* 802D5CD8 002D2C18 7C 08 03 A6 */ mtlr r0
/* 802D5CDC 002D2C1C 38 21 00 10 */ addi r1, r1, 0x10
/* 802D5CE0 002D2C20 4E 80 00 20 */ blr
@@ -1,25 +0,0 @@
/* getIdxResource__10JKRArchiveFUl __ct__10JKRArchiveFlQ210JKRArchive10EMountMode::getIdxResource(unsigned long) */
/* JKRArchive_NS_getIdxResource */
/* 802D5CE4 002D2C24 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 802D5CE8 002D2C28 7C 08 02 A6 */ mflr r0
/* 802D5CEC 002D2C2C 90 01 00 14 */ stw r0, 0x14(r1)
/* 802D5CF0 002D2C30 93 E1 00 0C */ stw r31, 0xc(r1)
/* 802D5CF4 002D2C34 7C 7F 1B 78 */ mr r31, r3
/* 802D5CF8 002D2C38 48 00 09 8D */ bl findIdxResource__10JKRArchiveCFUl
/* 802D5CFC 002D2C3C 7C 64 1B 79 */ or. r4, r3, r3
/* 802D5D00 002D2C40 41 82 00 20 */ beq lbl_802D5D20
/* 802D5D04 002D2C44 7F E3 FB 78 */ mr r3, r31
/* 802D5D08 002D2C48 38 A0 00 00 */ li r5, 0
/* 802D5D0C 002D2C4C 81 9F 00 00 */ lwz r12, 0(r31)
/* 802D5D10 002D2C50 81 8C 00 40 */ lwz r12, 0x40(r12)
/* 802D5D14 002D2C54 7D 89 03 A6 */ mtctr r12
/* 802D5D18 002D2C58 4E 80 04 21 */ bctrl
/* 802D5D1C 002D2C5C 48 00 00 08 */ b lbl_802D5D24
lbl_802D5D20:
/* 802D5D20 002D2C60 38 60 00 00 */ li r3, 0
lbl_802D5D24:
/* 802D5D24 002D2C64 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 802D5D28 002D2C68 80 01 00 14 */ lwz r0, 0x14(r1)
/* 802D5D2C 002D2C6C 7C 08 03 A6 */ mtlr r0
/* 802D5D30 002D2C70 38 21 00 10 */ addi r1, r1, 0x10
/* 802D5D34 002D2C74 4E 80 00 20 */ blr
@@ -1,25 +0,0 @@
/* getResource__10JKRArchiveFUs __ct__10JKRArchiveFlQ210JKRArchive10EMountMode::getResource(unsigned short) */
/* JKRArchive_NS_getResource_X2_ */
/* 802D5D38 002D2C78 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 802D5D3C 002D2C7C 7C 08 02 A6 */ mflr r0
/* 802D5D40 002D2C80 90 01 00 14 */ stw r0, 0x14(r1)
/* 802D5D44 002D2C84 93 E1 00 0C */ stw r31, 0xc(r1)
/* 802D5D48 002D2C88 7C 7F 1B 78 */ mr r31, r3
/* 802D5D4C 002D2C8C 48 00 0A 25 */ bl findIdResource__10JKRArchiveCFUs
/* 802D5D50 002D2C90 7C 64 1B 79 */ or. r4, r3, r3
/* 802D5D54 002D2C94 41 82 00 20 */ beq lbl_802D5D74
/* 802D5D58 002D2C98 7F E3 FB 78 */ mr r3, r31
/* 802D5D5C 002D2C9C 38 A0 00 00 */ li r5, 0
/* 802D5D60 002D2CA0 81 9F 00 00 */ lwz r12, 0(r31)
/* 802D5D64 002D2CA4 81 8C 00 40 */ lwz r12, 0x40(r12)
/* 802D5D68 002D2CA8 7D 89 03 A6 */ mtctr r12
/* 802D5D6C 002D2CAC 4E 80 04 21 */ bctrl
/* 802D5D70 002D2CB0 48 00 00 08 */ b lbl_802D5D78
lbl_802D5D74:
/* 802D5D74 002D2CB4 38 60 00 00 */ li r3, 0
lbl_802D5D78:
/* 802D5D78 002D2CB8 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 802D5D7C 002D2CBC 80 01 00 14 */ lwz r0, 0x14(r1)
/* 802D5D80 002D2CC0 7C 08 03 A6 */ mtlr r0
/* 802D5D84 002D2CC4 38 21 00 10 */ addi r1, r1, 0x10
/* 802D5D88 002D2CC8 4E 80 00 20 */ blr
@@ -1,48 +0,0 @@
/* readResource__10JKRArchiveFPvUlUlPCc __ct__10JKRArchiveFlQ210JKRArchive10EMountMode::readResource(void *, unsigned long, unsigned long, char const *) */
/* missing reference */
/* 802D5D8C 002D2CCC 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 802D5D90 002D2CD0 7C 08 02 A6 */ mflr r0
/* 802D5D94 002D2CD4 90 01 00 24 */ stw r0, 0x24(r1)
/* 802D5D98 002D2CD8 39 61 00 20 */ addi r11, r1, 0x20
/* 802D5D9C 002D2CDC 48 08 C4 41 */ bl _savegpr_29
/* 802D5DA0 002D2CE0 7C 7D 1B 78 */ mr r29, r3
/* 802D5DA4 002D2CE4 7C 9E 23 78 */ mr r30, r4
/* 802D5DA8 002D2CE8 7C BF 2B 78 */ mr r31, r5
/* 802D5DAC 002D2CEC 28 06 00 00 */ cmplwi r6, 0
/* 802D5DB0 002D2CF0 41 82 00 10 */ beq lbl_802D5DC0
/* 802D5DB4 002D2CF4 3C 06 C0 C1 */ addis r0, r6, 0xc0c1
/* 802D5DB8 002D2CF8 28 00 3F 3F */ cmplwi r0, 0x3f3f
/* 802D5DBC 002D2CFC 40 82 00 18 */ bne lbl_802D5DD4
lbl_802D5DC0:
/* 802D5DC0 002D2D00 7F A3 EB 78 */ mr r3, r29
/* 802D5DC4 002D2D04 7C E4 3B 78 */ mr r4, r7
/* 802D5DC8 002D2D08 48 00 08 E5 */ bl findNameResource__10JKRArchiveCFPCc
/* 802D5DCC 002D2D0C 7C 66 1B 78 */ mr r6, r3
/* 802D5DD0 002D2D10 48 00 00 14 */ b lbl_802D5DE4
lbl_802D5DD4:
/* 802D5DD4 002D2D14 7C C4 33 78 */ mr r4, r6
/* 802D5DD8 002D2D18 7C E5 3B 78 */ mr r5, r7
/* 802D5DDC 002D2D1C 48 00 07 19 */ bl findTypeResource__10JKRArchiveCFUlPCc
/* 802D5DE0 002D2D20 7C 66 1B 78 */ mr r6, r3
lbl_802D5DE4:
/* 802D5DE4 002D2D24 28 06 00 00 */ cmplwi r6, 0
/* 802D5DE8 002D2D28 41 82 00 2C */ beq lbl_802D5E14
/* 802D5DEC 002D2D2C 7F A3 EB 78 */ mr r3, r29
/* 802D5DF0 002D2D30 7F C4 F3 78 */ mr r4, r30
/* 802D5DF4 002D2D34 7F E5 FB 78 */ mr r5, r31
/* 802D5DF8 002D2D38 38 E1 00 08 */ addi r7, r1, 8
/* 802D5DFC 002D2D3C 81 9D 00 00 */ lwz r12, 0(r29)
/* 802D5E00 002D2D40 81 8C 00 44 */ lwz r12, 0x44(r12)
/* 802D5E04 002D2D44 7D 89 03 A6 */ mtctr r12
/* 802D5E08 002D2D48 4E 80 04 21 */ bctrl
/* 802D5E0C 002D2D4C 80 61 00 08 */ lwz r3, 8(r1)
/* 802D5E10 002D2D50 48 00 00 08 */ b lbl_802D5E18
lbl_802D5E14:
/* 802D5E14 002D2D54 38 60 00 00 */ li r3, 0
lbl_802D5E18:
/* 802D5E18 002D2D58 39 61 00 20 */ addi r11, r1, 0x20
/* 802D5E1C 002D2D5C 48 08 C4 0D */ bl _restgpr_29
/* 802D5E20 002D2D60 80 01 00 24 */ lwz r0, 0x24(r1)
/* 802D5E24 002D2D64 7C 08 03 A6 */ mtlr r0
/* 802D5E28 002D2D68 38 21 00 20 */ addi r1, r1, 0x20
/* 802D5E2C 002D2D6C 4E 80 00 20 */ blr
@@ -1,45 +0,0 @@
/* readResource__10JKRArchiveFPvUlPCc __ct__10JKRArchiveFlQ210JKRArchive10EMountMode::readResource(void *, unsigned long, char const *) */
/* missing reference */
/* 802D5E30 002D2D70 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 802D5E34 002D2D74 7C 08 02 A6 */ mflr r0
/* 802D5E38 002D2D78 90 01 00 24 */ stw r0, 0x24(r1)
/* 802D5E3C 002D2D7C 39 61 00 20 */ addi r11, r1, 0x20
/* 802D5E40 002D2D80 48 08 C3 9D */ bl _savegpr_29
/* 802D5E44 002D2D84 7C 7D 1B 78 */ mr r29, r3
/* 802D5E48 002D2D88 7C 9E 23 78 */ mr r30, r4
/* 802D5E4C 002D2D8C 7C BF 2B 78 */ mr r31, r5
/* 802D5E50 002D2D90 88 06 00 00 */ lbz r0, 0(r6)
/* 802D5E54 002D2D94 2C 00 00 2F */ cmpwi r0, 0x2f
/* 802D5E58 002D2D98 40 82 00 18 */ bne lbl_802D5E70
/* 802D5E5C 002D2D9C 38 86 00 01 */ addi r4, r6, 1
/* 802D5E60 002D2DA0 38 A0 00 00 */ li r5, 0
/* 802D5E64 002D2DA4 48 00 07 41 */ bl findFsResource__10JKRArchiveCFPCcUl
/* 802D5E68 002D2DA8 7C 66 1B 78 */ mr r6, r3
/* 802D5E6C 002D2DAC 48 00 00 14 */ b lbl_802D5E80
lbl_802D5E70:
/* 802D5E70 002D2DB0 7C C4 33 78 */ mr r4, r6
/* 802D5E74 002D2DB4 80 AD 8E A0 */ lwz r5, lbl_80451420-_SDA_BASE_(r13)
/* 802D5E78 002D2DB8 48 00 07 2D */ bl findFsResource__10JKRArchiveCFPCcUl
/* 802D5E7C 002D2DBC 7C 66 1B 78 */ mr r6, r3
lbl_802D5E80:
/* 802D5E80 002D2DC0 28 06 00 00 */ cmplwi r6, 0
/* 802D5E84 002D2DC4 41 82 00 2C */ beq lbl_802D5EB0
/* 802D5E88 002D2DC8 7F A3 EB 78 */ mr r3, r29
/* 802D5E8C 002D2DCC 7F C4 F3 78 */ mr r4, r30
/* 802D5E90 002D2DD0 7F E5 FB 78 */ mr r5, r31
/* 802D5E94 002D2DD4 38 E1 00 08 */ addi r7, r1, 8
/* 802D5E98 002D2DD8 81 9D 00 00 */ lwz r12, 0(r29)
/* 802D5E9C 002D2DDC 81 8C 00 44 */ lwz r12, 0x44(r12)
/* 802D5EA0 002D2DE0 7D 89 03 A6 */ mtctr r12
/* 802D5EA4 002D2DE4 4E 80 04 21 */ bctrl
/* 802D5EA8 002D2DE8 80 61 00 08 */ lwz r3, 8(r1)
/* 802D5EAC 002D2DEC 48 00 00 08 */ b lbl_802D5EB4
lbl_802D5EB0:
/* 802D5EB0 002D2DF0 38 60 00 00 */ li r3, 0
lbl_802D5EB4:
/* 802D5EB4 002D2DF4 39 61 00 20 */ addi r11, r1, 0x20
/* 802D5EB8 002D2DF8 48 08 C3 71 */ bl _restgpr_29
/* 802D5EBC 002D2DFC 80 01 00 24 */ lwz r0, 0x24(r1)
/* 802D5EC0 002D2E00 7C 08 03 A6 */ mtlr r0
/* 802D5EC4 002D2E04 38 21 00 20 */ addi r1, r1, 0x20
/* 802D5EC8 002D2E08 4E 80 00 20 */ blr
@@ -1,33 +0,0 @@
/* readIdxResource__10JKRArchiveFPvUlUl __ct__10JKRArchiveFlQ210JKRArchive10EMountMode::readIdxResource(void *, unsigned long, unsigned long) */
/* JKRArchive_NS_readIdxResource */
/* 802D5ECC 002D2E0C 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 802D5ED0 002D2E10 7C 08 02 A6 */ mflr r0
/* 802D5ED4 002D2E14 90 01 00 24 */ stw r0, 0x24(r1)
/* 802D5ED8 002D2E18 39 61 00 20 */ addi r11, r1, 0x20
/* 802D5EDC 002D2E1C 48 08 C3 01 */ bl _savegpr_29
/* 802D5EE0 002D2E20 7C 7D 1B 78 */ mr r29, r3
/* 802D5EE4 002D2E24 7C 9E 23 78 */ mr r30, r4
/* 802D5EE8 002D2E28 7C BF 2B 78 */ mr r31, r5
/* 802D5EEC 002D2E2C 7C C4 33 78 */ mr r4, r6
/* 802D5EF0 002D2E30 48 00 07 95 */ bl findIdxResource__10JKRArchiveCFUl
/* 802D5EF4 002D2E34 7C 66 1B 79 */ or. r6, r3, r3
/* 802D5EF8 002D2E38 41 82 00 2C */ beq lbl_802D5F24
/* 802D5EFC 002D2E3C 7F A3 EB 78 */ mr r3, r29
/* 802D5F00 002D2E40 7F C4 F3 78 */ mr r4, r30
/* 802D5F04 002D2E44 7F E5 FB 78 */ mr r5, r31
/* 802D5F08 002D2E48 38 E1 00 08 */ addi r7, r1, 8
/* 802D5F0C 002D2E4C 81 9D 00 00 */ lwz r12, 0(r29)
/* 802D5F10 002D2E50 81 8C 00 44 */ lwz r12, 0x44(r12)
/* 802D5F14 002D2E54 7D 89 03 A6 */ mtctr r12
/* 802D5F18 002D2E58 4E 80 04 21 */ bctrl
/* 802D5F1C 002D2E5C 80 61 00 08 */ lwz r3, 8(r1)
/* 802D5F20 002D2E60 48 00 00 08 */ b lbl_802D5F28
lbl_802D5F24:
/* 802D5F24 002D2E64 38 60 00 00 */ li r3, 0
lbl_802D5F28:
/* 802D5F28 002D2E68 39 61 00 20 */ addi r11, r1, 0x20
/* 802D5F2C 002D2E6C 48 08 C2 FD */ bl _restgpr_29
/* 802D5F30 002D2E70 80 01 00 24 */ lwz r0, 0x24(r1)
/* 802D5F34 002D2E74 7C 08 03 A6 */ mtlr r0
/* 802D5F38 002D2E78 38 21 00 20 */ addi r1, r1, 0x20
/* 802D5F3C 002D2E7C 4E 80 00 20 */ blr
@@ -1,33 +0,0 @@
/* readResource__10JKRArchiveFPvUlUs __ct__10JKRArchiveFlQ210JKRArchive10EMountMode::readResource(void *, unsigned long, unsigned short) */
/* JKRArchive_NS_readResource_X2_ */
/* 802D5F40 002D2E80 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 802D5F44 002D2E84 7C 08 02 A6 */ mflr r0
/* 802D5F48 002D2E88 90 01 00 24 */ stw r0, 0x24(r1)
/* 802D5F4C 002D2E8C 39 61 00 20 */ addi r11, r1, 0x20
/* 802D5F50 002D2E90 48 08 C2 8D */ bl _savegpr_29
/* 802D5F54 002D2E94 7C 7D 1B 78 */ mr r29, r3
/* 802D5F58 002D2E98 7C 9E 23 78 */ mr r30, r4
/* 802D5F5C 002D2E9C 7C BF 2B 78 */ mr r31, r5
/* 802D5F60 002D2EA0 7C C4 33 78 */ mr r4, r6
/* 802D5F64 002D2EA4 48 00 08 0D */ bl findIdResource__10JKRArchiveCFUs
/* 802D5F68 002D2EA8 7C 66 1B 79 */ or. r6, r3, r3
/* 802D5F6C 002D2EAC 41 82 00 2C */ beq lbl_802D5F98
/* 802D5F70 002D2EB0 7F A3 EB 78 */ mr r3, r29
/* 802D5F74 002D2EB4 7F C4 F3 78 */ mr r4, r30
/* 802D5F78 002D2EB8 7F E5 FB 78 */ mr r5, r31
/* 802D5F7C 002D2EBC 38 E1 00 08 */ addi r7, r1, 8
/* 802D5F80 002D2EC0 81 9D 00 00 */ lwz r12, 0(r29)
/* 802D5F84 002D2EC4 81 8C 00 44 */ lwz r12, 0x44(r12)
/* 802D5F88 002D2EC8 7D 89 03 A6 */ mtctr r12
/* 802D5F8C 002D2ECC 4E 80 04 21 */ bctrl
/* 802D5F90 002D2ED0 80 61 00 08 */ lwz r3, 8(r1)
/* 802D5F94 002D2ED4 48 00 00 08 */ b lbl_802D5F9C
lbl_802D5F98:
/* 802D5F98 002D2ED8 38 60 00 00 */ li r3, 0
lbl_802D5F9C:
/* 802D5F9C 002D2EDC 39 61 00 20 */ addi r11, r1, 0x20
/* 802D5FA0 002D2EE0 48 08 C2 89 */ bl _restgpr_29
/* 802D5FA4 002D2EE4 80 01 00 24 */ lwz r0, 0x24(r1)
/* 802D5FA8 002D2EE8 7C 08 03 A6 */ mtlr r0
/* 802D5FAC 002D2EEC 38 21 00 20 */ addi r1, r1, 0x20
/* 802D5FB0 002D2EF0 4E 80 00 20 */ blr
@@ -1,40 +0,0 @@
/* removeResourceAll__10JKRArchiveFv __ct__10JKRArchiveFlQ210JKRArchive10EMountMode::removeResourceAll(void) */
/* missing reference */
/* 802D5FB4 002D2EF4 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 802D5FB8 002D2EF8 7C 08 02 A6 */ mflr r0
/* 802D5FBC 002D2EFC 90 01 00 24 */ stw r0, 0x24(r1)
/* 802D5FC0 002D2F00 39 61 00 20 */ addi r11, r1, 0x20
/* 802D5FC4 002D2F04 48 08 C2 15 */ bl _savegpr_28
/* 802D5FC8 002D2F08 7C 7C 1B 78 */ mr r28, r3
/* 802D5FCC 002D2F0C 80 03 00 44 */ lwz r0, 0x44(r3)
/* 802D5FD0 002D2F10 28 00 00 00 */ cmplwi r0, 0
/* 802D5FD4 002D2F14 41 82 00 50 */ beq lbl_802D6024
/* 802D5FD8 002D2F18 88 1C 00 3C */ lbz r0, 0x3c(r28)
/* 802D5FDC 002D2F1C 28 00 00 01 */ cmplwi r0, 1
/* 802D5FE0 002D2F20 41 82 00 44 */ beq lbl_802D6024
/* 802D5FE4 002D2F24 83 DC 00 4C */ lwz r30, 0x4c(r28)
/* 802D5FE8 002D2F28 3B A0 00 00 */ li r29, 0
/* 802D5FEC 002D2F2C 3B E0 00 00 */ li r31, 0
/* 802D5FF0 002D2F30 48 00 00 24 */ b lbl_802D6014
lbl_802D5FF4:
/* 802D5FF4 002D2F34 80 7E 00 10 */ lwz r3, 0x10(r30)
/* 802D5FF8 002D2F38 28 03 00 00 */ cmplwi r3, 0
/* 802D5FFC 002D2F3C 41 82 00 10 */ beq lbl_802D600C
/* 802D6000 002D2F40 80 9C 00 38 */ lwz r4, 0x38(r28)
/* 802D6004 002D2F44 4B FF 84 FD */ bl free__7JKRHeapFPvP7JKRHeap
/* 802D6008 002D2F48 93 FE 00 10 */ stw r31, 0x10(r30)
lbl_802D600C:
/* 802D600C 002D2F4C 3B DE 00 14 */ addi r30, r30, 0x14
/* 802D6010 002D2F50 3B BD 00 01 */ addi r29, r29, 1
lbl_802D6014:
/* 802D6014 002D2F54 80 7C 00 44 */ lwz r3, 0x44(r28)
/* 802D6018 002D2F58 80 03 00 08 */ lwz r0, 8(r3)
/* 802D601C 002D2F5C 7C 1D 00 40 */ cmplw r29, r0
/* 802D6020 002D2F60 41 80 FF D4 */ blt lbl_802D5FF4
lbl_802D6024:
/* 802D6024 002D2F64 39 61 00 20 */ addi r11, r1, 0x20
/* 802D6028 002D2F68 48 08 C1 FD */ bl _restgpr_28
/* 802D602C 002D2F6C 80 01 00 24 */ lwz r0, 0x24(r1)
/* 802D6030 002D2F70 7C 08 03 A6 */ mtlr r0
/* 802D6034 002D2F74 38 21 00 20 */ addi r1, r1, 0x20
/* 802D6038 002D2F78 4E 80 00 20 */ blr
@@ -1,28 +0,0 @@
/* removeResource__10JKRArchiveFPv __ct__10JKRArchiveFlQ210JKRArchive10EMountMode::removeResource(void *) */
/* missing reference */
/* 802D603C 002D2F7C 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 802D6040 002D2F80 7C 08 02 A6 */ mflr r0
/* 802D6044 002D2F84 90 01 00 14 */ stw r0, 0x14(r1)
/* 802D6048 002D2F88 93 E1 00 0C */ stw r31, 0xc(r1)
/* 802D604C 002D2F8C 93 C1 00 08 */ stw r30, 8(r1)
/* 802D6050 002D2F90 7C 7E 1B 78 */ mr r30, r3
/* 802D6054 002D2F94 7C 9F 23 78 */ mr r31, r4
/* 802D6058 002D2F98 48 00 06 DD */ bl findPtrResource__10JKRArchiveCFPCv
/* 802D605C 002D2F9C 28 03 00 00 */ cmplwi r3, 0
/* 802D6060 002D2FA0 40 82 00 0C */ bne lbl_802D606C
/* 802D6064 002D2FA4 38 60 00 00 */ li r3, 0
/* 802D6068 002D2FA8 48 00 00 1C */ b lbl_802D6084
lbl_802D606C:
/* 802D606C 002D2FAC 38 00 00 00 */ li r0, 0
/* 802D6070 002D2FB0 90 03 00 10 */ stw r0, 0x10(r3)
/* 802D6074 002D2FB4 7F E3 FB 78 */ mr r3, r31
/* 802D6078 002D2FB8 80 9E 00 38 */ lwz r4, 0x38(r30)
/* 802D607C 002D2FBC 4B FF 84 85 */ bl free__7JKRHeapFPvP7JKRHeap
/* 802D6080 002D2FC0 38 60 00 01 */ li r3, 1
lbl_802D6084:
/* 802D6084 002D2FC4 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 802D6088 002D2FC8 83 C1 00 08 */ lwz r30, 8(r1)
/* 802D608C 002D2FCC 80 01 00 14 */ lwz r0, 0x14(r1)
/* 802D6090 002D2FD0 7C 08 03 A6 */ mtlr r0
/* 802D6094 002D2FD4 38 21 00 10 */ addi r1, r1, 0x10
/* 802D6098 002D2FD8 4E 80 00 20 */ blr
@@ -1,19 +0,0 @@
/* detachResource__10JKRArchiveFPv __ct__10JKRArchiveFlQ210JKRArchive10EMountMode::detachResource(void *) */
/* missing reference */
/* 802D609C 002D2FDC 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 802D60A0 002D2FE0 7C 08 02 A6 */ mflr r0
/* 802D60A4 002D2FE4 90 01 00 14 */ stw r0, 0x14(r1)
/* 802D60A8 002D2FE8 48 00 06 8D */ bl findPtrResource__10JKRArchiveCFPCv
/* 802D60AC 002D2FEC 28 03 00 00 */ cmplwi r3, 0
/* 802D60B0 002D2FF0 40 82 00 0C */ bne lbl_802D60BC
/* 802D60B4 002D2FF4 38 60 00 00 */ li r3, 0
/* 802D60B8 002D2FF8 48 00 00 10 */ b lbl_802D60C8
lbl_802D60BC:
/* 802D60BC 002D2FFC 38 00 00 00 */ li r0, 0
/* 802D60C0 002D3000 90 03 00 10 */ stw r0, 0x10(r3)
/* 802D60C4 002D3004 38 60 00 01 */ li r3, 1
lbl_802D60C8:
/* 802D60C8 002D3008 80 01 00 14 */ lwz r0, 0x14(r1)
/* 802D60CC 002D300C 7C 08 03 A6 */ mtlr r0
/* 802D60D0 002D3010 38 21 00 10 */ addi r1, r1, 0x10
/* 802D60D4 002D3014 4E 80 00 20 */ blr
@@ -1,17 +0,0 @@
/* getResSize__10JKRArchiveCFPCv __ct__10JKRArchiveFlQ210JKRArchive10EMountMode::getResSize( const(void const *)) */
/* missing reference */
/* 802D60D8 002D3018 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 802D60DC 002D301C 7C 08 02 A6 */ mflr r0
/* 802D60E0 002D3020 90 01 00 14 */ stw r0, 0x14(r1)
/* 802D60E4 002D3024 48 00 06 51 */ bl findPtrResource__10JKRArchiveCFPCv
/* 802D60E8 002D3028 28 03 00 00 */ cmplwi r3, 0
/* 802D60EC 002D302C 40 82 00 0C */ bne lbl_802D60F8
/* 802D60F0 002D3030 38 60 FF FF */ li r3, -1
/* 802D60F4 002D3034 48 00 00 08 */ b lbl_802D60FC
lbl_802D60F8:
/* 802D60F8 002D3038 80 63 00 0C */ lwz r3, 0xc(r3)
lbl_802D60FC:
/* 802D60FC 002D303C 80 01 00 14 */ lwz r0, 0x14(r1)
/* 802D6100 002D3040 7C 08 03 A6 */ mtlr r0
/* 802D6104 002D3044 38 21 00 10 */ addi r1, r1, 0x10
/* 802D6108 002D3048 4E 80 00 20 */ blr
@@ -1,22 +0,0 @@
/* countResource__10JKRArchiveCFv __ct__10JKRArchiveFlQ210JKRArchive10EMountMode::countResource( const(void)) */
/* JKRArchive_NS_countResource */
/* 802D610C 002D304C 38 C0 00 00 */ li r6, 0
/* 802D6110 002D3050 38 80 00 00 */ li r4, 0
/* 802D6114 002D3054 80 A3 00 44 */ lwz r5, 0x44(r3)
/* 802D6118 002D3058 80 05 00 08 */ lwz r0, 8(r5)
/* 802D611C 002D305C 80 63 00 4C */ lwz r3, 0x4c(r3)
/* 802D6120 002D3060 7C 09 03 A6 */ mtctr r0
/* 802D6124 002D3064 28 00 00 00 */ cmplwi r0, 0
/* 802D6128 002D3068 40 81 00 20 */ ble lbl_802D6148
lbl_802D612C:
/* 802D612C 002D306C 38 04 00 04 */ addi r0, r4, 4
/* 802D6130 002D3070 7C 03 00 2E */ lwzx r0, r3, r0
/* 802D6134 002D3074 54 00 47 FF */ rlwinm. r0, r0, 8, 0x1f, 0x1f
/* 802D6138 002D3078 41 82 00 08 */ beq lbl_802D6140
/* 802D613C 002D307C 38 C6 00 01 */ addi r6, r6, 1
lbl_802D6140:
/* 802D6140 002D3080 38 84 00 14 */ addi r4, r4, 0x14
/* 802D6144 002D3084 42 00 FF E8 */ bdnz lbl_802D612C
lbl_802D6148:
/* 802D6148 002D3088 7C C3 33 78 */ mr r3, r6
/* 802D614C 002D308C 4E 80 00 20 */ blr
@@ -1,31 +0,0 @@
/* countFile__10JKRArchiveCFPCc __ct__10JKRArchiveFlQ210JKRArchive10EMountMode::countFile( const(char const *)) */
/* missing reference */
/* 802D6150 002D3090 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 802D6154 002D3094 7C 08 02 A6 */ mflr r0
/* 802D6158 002D3098 90 01 00 14 */ stw r0, 0x14(r1)
/* 802D615C 002D309C 88 04 00 00 */ lbz r0, 0(r4)
/* 802D6160 002D30A0 2C 00 00 2F */ cmpwi r0, 0x2f
/* 802D6164 002D30A4 40 82 00 20 */ bne lbl_802D6184
/* 802D6168 002D30A8 8C 04 00 01 */ lbzu r0, 1(r4)
/* 802D616C 002D30AC 7C 00 07 75 */ extsb. r0, r0
/* 802D6170 002D30B0 40 82 00 08 */ bne lbl_802D6178
/* 802D6174 002D30B4 38 80 00 00 */ li r4, 0
lbl_802D6178:
/* 802D6178 002D30B8 38 A0 00 00 */ li r5, 0
/* 802D617C 002D30BC 48 00 02 A1 */ bl findDirectory__10JKRArchiveCFPCcUl
/* 802D6180 002D30C0 48 00 00 0C */ b lbl_802D618C
lbl_802D6184:
/* 802D6184 002D30C4 80 AD 8E A0 */ lwz r5, lbl_80451420-_SDA_BASE_(r13)
/* 802D6188 002D30C8 48 00 02 95 */ bl findDirectory__10JKRArchiveCFPCcUl
lbl_802D618C:
/* 802D618C 002D30CC 28 03 00 00 */ cmplwi r3, 0
/* 802D6190 002D30D0 41 82 00 0C */ beq lbl_802D619C
/* 802D6194 002D30D4 A0 63 00 0A */ lhz r3, 0xa(r3)
/* 802D6198 002D30D8 48 00 00 08 */ b lbl_802D61A0
lbl_802D619C:
/* 802D619C 002D30DC 38 60 00 00 */ li r3, 0
lbl_802D61A0:
/* 802D61A0 002D30E0 80 01 00 14 */ lwz r0, 0x14(r1)
/* 802D61A4 002D30E4 7C 08 03 A6 */ mtlr r0
/* 802D61A8 002D30E8 38 21 00 10 */ addi r1, r1, 0x10
/* 802D61AC 002D30EC 4E 80 00 20 */ blr
@@ -1,51 +0,0 @@
/* getFirstFile__10JKRArchiveCFPCc __ct__10JKRArchiveFlQ210JKRArchive10EMountMode::getFirstFile( const(char const *)) */
/* missing reference */
/* 802D61B0 002D30F0 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 802D61B4 002D30F4 7C 08 02 A6 */ mflr r0
/* 802D61B8 002D30F8 90 01 00 14 */ stw r0, 0x14(r1)
/* 802D61BC 002D30FC 93 E1 00 0C */ stw r31, 0xc(r1)
/* 802D61C0 002D3100 93 C1 00 08 */ stw r30, 8(r1)
/* 802D61C4 002D3104 7C 7E 1B 78 */ mr r30, r3
/* 802D61C8 002D3108 88 04 00 00 */ lbz r0, 0(r4)
/* 802D61CC 002D310C 2C 00 00 2F */ cmpwi r0, 0x2f
/* 802D61D0 002D3110 40 82 00 28 */ bne lbl_802D61F8
/* 802D61D4 002D3114 8C 04 00 01 */ lbzu r0, 1(r4)
/* 802D61D8 002D3118 7C 00 07 75 */ extsb. r0, r0
/* 802D61DC 002D311C 40 82 00 08 */ bne lbl_802D61E4
/* 802D61E0 002D3120 38 80 00 00 */ li r4, 0
lbl_802D61E4:
/* 802D61E4 002D3124 7F C3 F3 78 */ mr r3, r30
/* 802D61E8 002D3128 38 A0 00 00 */ li r5, 0
/* 802D61EC 002D312C 48 00 02 31 */ bl findDirectory__10JKRArchiveCFPCcUl
/* 802D61F0 002D3130 7C 7F 1B 78 */ mr r31, r3
/* 802D61F4 002D3134 48 00 00 10 */ b lbl_802D6204
lbl_802D61F8:
/* 802D61F8 002D3138 80 AD 8E A0 */ lwz r5, lbl_80451420-_SDA_BASE_(r13)
/* 802D61FC 002D313C 48 00 02 21 */ bl findDirectory__10JKRArchiveCFPCcUl
/* 802D6200 002D3140 7C 7F 1B 78 */ mr r31, r3
lbl_802D6204:
/* 802D6204 002D3144 28 1F 00 00 */ cmplwi r31, 0
/* 802D6208 002D3148 41 82 00 38 */ beq lbl_802D6240
/* 802D620C 002D314C 38 60 00 24 */ li r3, 0x24
/* 802D6210 002D3150 80 8D 8D F0 */ lwz r4, lbl_80451370-_SDA_BASE_(r13)
/* 802D6214 002D3154 38 A0 00 00 */ li r5, 0
/* 802D6218 002D3158 4B FF 8A 81 */ bl __nw__FUlP7JKRHeapi
/* 802D621C 002D315C 7C 60 1B 79 */ or. r0, r3, r3
/* 802D6220 002D3160 41 82 00 18 */ beq lbl_802D6238
/* 802D6224 002D3164 7F C4 F3 78 */ mr r4, r30
/* 802D6228 002D3168 80 BF 00 0C */ lwz r5, 0xc(r31)
/* 802D622C 002D316C A0 DF 00 0A */ lhz r6, 0xa(r31)
/* 802D6230 002D3170 4B FF E4 09 */ bl __ct__12JKRArcFinderFP10JKRArchivell
/* 802D6234 002D3174 7C 60 1B 78 */ mr r0, r3
lbl_802D6238:
/* 802D6238 002D3178 7C 03 03 78 */ mr r3, r0
/* 802D623C 002D317C 48 00 00 08 */ b lbl_802D6244
lbl_802D6240:
/* 802D6240 002D3180 38 60 00 00 */ li r3, 0
lbl_802D6244:
/* 802D6244 002D3184 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 802D6248 002D3188 83 C1 00 08 */ lwz r30, 8(r1)
/* 802D624C 002D318C 80 01 00 14 */ lwz r0, 0x14(r1)
/* 802D6250 002D3190 7C 08 03 A6 */ mtlr r0
/* 802D6254 002D3194 38 21 00 10 */ addi r1, r1, 0x10
/* 802D6258 002D3198 4E 80 00 20 */ blr
@@ -1,18 +0,0 @@
/* getFileAttribute__10JKRArchiveCFUl __ct__10JKRArchiveFlQ210JKRArchive10EMountMode::getFileAttribute( const(unsigned long)) */
/* JKRArchive_NS_getFileAttribute */
/* 802D625C 002D319C 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 802D6260 002D31A0 7C 08 02 A6 */ mflr r0
/* 802D6264 002D31A4 90 01 00 14 */ stw r0, 0x14(r1)
/* 802D6268 002D31A8 48 00 04 1D */ bl findIdxResource__10JKRArchiveCFUl
/* 802D626C 002D31AC 28 03 00 00 */ cmplwi r3, 0
/* 802D6270 002D31B0 41 82 00 10 */ beq lbl_802D6280
/* 802D6274 002D31B4 80 03 00 04 */ lwz r0, 4(r3)
/* 802D6278 002D31B8 54 03 46 3E */ srwi r3, r0, 0x18
/* 802D627C 002D31BC 48 00 00 08 */ b lbl_802D6284
lbl_802D6280:
/* 802D6280 002D31C0 38 60 00 00 */ li r3, 0
lbl_802D6284:
/* 802D6284 002D31C4 80 01 00 14 */ lwz r0, 0x14(r1)
/* 802D6288 002D31C8 7C 08 03 A6 */ mtlr r0
/* 802D628C 002D31CC 38 21 00 10 */ addi r1, r1, 0x10
/* 802D6290 002D31D0 4E 80 00 20 */ blr
@@ -1,44 +0,0 @@
/* __ct__10JKRArchiveFlQ210JKRArchive10EMountMode __ct__10JKRArchiveFlQ210JKRArchive10EMountMode::__ct(long, __ct__10JKRArchiveFlQ210JKRArchive10EMountMode::EMountMode) */
/* JKRArchive */
/* 802D6294 002D31D4 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 802D6298 002D31D8 7C 08 02 A6 */ mflr r0
/* 802D629C 002D31DC 90 01 00 24 */ stw r0, 0x24(r1)
/* 802D62A0 002D31E0 39 61 00 20 */ addi r11, r1, 0x20
/* 802D62A4 002D31E4 48 08 BF 39 */ bl _savegpr_29
/* 802D62A8 002D31E8 7C 7D 1B 78 */ mr r29, r3
/* 802D62AC 002D31EC 7C 9E 23 78 */ mr r30, r4
/* 802D62B0 002D31F0 7C BF 2B 78 */ mr r31, r5
/* 802D62B4 002D31F4 4B FF DE 3D */ bl __ct__13JKRFileLoaderFv
/* 802D62B8 002D31F8 3C 60 80 3D */ lis r3, lbl_803CC288@ha
/* 802D62BC 002D31FC 38 03 C2 88 */ addi r0, r3, lbl_803CC288@l
/* 802D62C0 002D3200 90 1D 00 00 */ stw r0, 0(r29)
/* 802D62C4 002D3204 38 00 00 00 */ li r0, 0
/* 802D62C8 002D3208 98 1D 00 30 */ stb r0, 0x30(r29)
/* 802D62CC 002D320C 9B FD 00 3C */ stb r31, 0x3c(r29)
/* 802D62D0 002D3210 38 00 00 01 */ li r0, 1
/* 802D62D4 002D3214 90 1D 00 34 */ stw r0, 0x34(r29)
/* 802D62D8 002D3218 90 1D 00 58 */ stw r0, 0x58(r29)
/* 802D62DC 002D321C 7F A3 EB 78 */ mr r3, r29
/* 802D62E0 002D3220 4B FF 85 5D */ bl findFromRoot__7JKRHeapFPv
/* 802D62E4 002D3224 90 7D 00 38 */ stw r3, 0x38(r29)
/* 802D62E8 002D3228 80 1D 00 38 */ lwz r0, 0x38(r29)
/* 802D62EC 002D322C 28 00 00 00 */ cmplwi r0, 0
/* 802D62F0 002D3230 40 82 00 0C */ bne lbl_802D62FC
/* 802D62F4 002D3234 80 0D 8D F4 */ lwz r0, lbl_80451374-_SDA_BASE_(r13)
/* 802D62F8 002D3238 90 1D 00 38 */ stw r0, 0x38(r29)
lbl_802D62FC:
/* 802D62FC 002D323C 93 DD 00 40 */ stw r30, 0x40(r29)
/* 802D6300 002D3240 80 0D 8E 98 */ lwz r0, lbl_80451418-_SDA_BASE_(r13)
/* 802D6304 002D3244 28 00 00 00 */ cmplwi r0, 0
/* 802D6308 002D3248 40 82 00 10 */ bne lbl_802D6318
/* 802D630C 002D324C 93 AD 8E 98 */ stw r29, lbl_80451418-_SDA_BASE_(r13)
/* 802D6310 002D3250 38 00 00 00 */ li r0, 0
/* 802D6314 002D3254 90 0D 8E A0 */ stw r0, lbl_80451420-_SDA_BASE_(r13)
lbl_802D6318:
/* 802D6318 002D3258 7F A3 EB 78 */ mr r3, r29
/* 802D631C 002D325C 39 61 00 20 */ addi r11, r1, 0x20
/* 802D6320 002D3260 48 08 BF 09 */ bl _restgpr_29
/* 802D6324 002D3264 80 01 00 24 */ lwz r0, 0x24(r1)
/* 802D6328 002D3268 7C 08 03 A6 */ mtlr r0
/* 802D632C 002D326C 38 21 00 20 */ addi r1, r1, 0x20
/* 802D6330 002D3270 4E 80 00 20 */ blr
@@ -1,27 +0,0 @@
/* __dt__10JKRArchiveFv __ct__10JKRArchiveFlQ210JKRArchive10EMountMode::__dt(void) */
/* JKRArchive_NS_dtor */
/* 802D6334 002D3274 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 802D6338 002D3278 7C 08 02 A6 */ mflr r0
/* 802D633C 002D327C 90 01 00 14 */ stw r0, 0x14(r1)
/* 802D6340 002D3280 93 E1 00 0C */ stw r31, 0xc(r1)
/* 802D6344 002D3284 93 C1 00 08 */ stw r30, 8(r1)
/* 802D6348 002D3288 7C 7E 1B 79 */ or. r30, r3, r3
/* 802D634C 002D328C 7C 9F 23 78 */ mr r31, r4
/* 802D6350 002D3290 41 82 00 28 */ beq lbl_802D6378
/* 802D6354 002D3294 3C 80 80 3D */ lis r4, lbl_803CC288@ha
/* 802D6358 002D3298 38 04 C2 88 */ addi r0, r4, lbl_803CC288@l
/* 802D635C 002D329C 90 1E 00 00 */ stw r0, 0(r30)
/* 802D6360 002D32A0 38 80 00 00 */ li r4, 0
/* 802D6364 002D32A4 4B FF DD E5 */ bl __dt__13JKRFileLoaderFv
/* 802D6368 002D32A8 7F E0 07 35 */ extsh. r0, r31
/* 802D636C 002D32AC 40 81 00 0C */ ble lbl_802D6378
/* 802D6370 002D32B0 7F C3 F3 78 */ mr r3, r30
/* 802D6374 002D32B4 4B FF 89 C9 */ bl __dl__FPv
lbl_802D6378:
/* 802D6378 002D32B8 7F C3 F3 78 */ mr r3, r30
/* 802D637C 002D32BC 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 802D6380 002D32C0 83 C1 00 08 */ lwz r30, 8(r1)
/* 802D6384 002D32C4 80 01 00 14 */ lwz r0, 0x14(r1)
/* 802D6388 002D32C8 7C 08 03 A6 */ mtlr r0
/* 802D638C 002D32CC 38 21 00 10 */ addi r1, r1, 0x10
/* 802D6390 002D32D0 4E 80 00 20 */ blr
@@ -1,23 +0,0 @@
/* isSameName__10JKRArchiveCFRQ210JKRArchive8CArcNameUlUs __ct__10JKRArchiveFlQ210JKRArchive10EMountMode::isSameName( const(__ct__10JKRArchiveFlQ210JKRArchive10EMountMode::CArcName &, unsigned long, unsigned short)) */
/* JKRArchive_NS_isSameName */
/* 802D6394 002D32D4 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 802D6398 002D32D8 7C 08 02 A6 */ mflr r0
/* 802D639C 002D32DC 90 01 00 14 */ stw r0, 0x14(r1)
/* 802D63A0 002D32E0 A0 E4 00 00 */ lhz r7, 0(r4)
/* 802D63A4 002D32E4 54 C0 04 3E */ clrlwi r0, r6, 0x10
/* 802D63A8 002D32E8 7C 07 00 40 */ cmplw r7, r0
/* 802D63AC 002D32EC 41 82 00 0C */ beq lbl_802D63B8
/* 802D63B0 002D32F0 38 60 00 00 */ li r3, 0
/* 802D63B4 002D32F4 48 00 00 1C */ b lbl_802D63D0
lbl_802D63B8:
/* 802D63B8 002D32F8 80 03 00 54 */ lwz r0, 0x54(r3)
/* 802D63BC 002D32FC 7C 60 2A 14 */ add r3, r0, r5
/* 802D63C0 002D3300 38 84 00 04 */ addi r4, r4, 4
/* 802D63C4 002D3304 48 09 25 D1 */ bl strcmp
/* 802D63C8 002D3308 7C 60 00 34 */ cntlzw r0, r3
/* 802D63CC 002D330C 54 03 D9 7E */ srwi r3, r0, 5
lbl_802D63D0:
/* 802D63D0 002D3310 80 01 00 14 */ lwz r0, 0x14(r1)
/* 802D63D4 002D3314 7C 08 03 A6 */ mtlr r0
/* 802D63D8 002D3318 38 21 00 10 */ addi r1, r1, 0x10
/* 802D63DC 002D331C 4E 80 00 20 */ blr
@@ -1,20 +0,0 @@
/* findResType__10JKRArchiveCFUl __ct__10JKRArchiveFlQ210JKRArchive10EMountMode::findResType( const(unsigned long)) */
/* JKRArchive_NS_findResType */
/* 802D63E0 002D3320 80 A3 00 48 */ lwz r5, 0x48(r3)
/* 802D63E4 002D3324 80 63 00 44 */ lwz r3, 0x44(r3)
/* 802D63E8 002D3328 80 03 00 00 */ lwz r0, 0(r3)
/* 802D63EC 002D332C 7C 09 03 A6 */ mtctr r0
/* 802D63F0 002D3330 28 00 00 00 */ cmplwi r0, 0
/* 802D63F4 002D3334 40 81 00 20 */ ble lbl_802D6414
lbl_802D63F8:
/* 802D63F8 002D3338 80 05 00 00 */ lwz r0, 0(r5)
/* 802D63FC 002D333C 7C 00 20 40 */ cmplw r0, r4
/* 802D6400 002D3340 40 82 00 0C */ bne lbl_802D640C
/* 802D6404 002D3344 7C A3 2B 78 */ mr r3, r5
/* 802D6408 002D3348 4E 80 00 20 */ blr
lbl_802D640C:
/* 802D640C 002D334C 38 A5 00 10 */ addi r5, r5, 0x10
/* 802D6410 002D3350 42 00 FF E8 */ bdnz lbl_802D63F8
lbl_802D6414:
/* 802D6414 002D3354 38 60 00 00 */ li r3, 0
/* 802D6418 002D3358 4E 80 00 20 */ blr
@@ -1,62 +0,0 @@
/* findDirectory__10JKRArchiveCFPCcUl __ct__10JKRArchiveFlQ210JKRArchive10EMountMode::findDirectory( const(char const *, unsigned long)) */
/* JKRArchive_NS_findDirectory */
/* 802D641C 002D335C 94 21 FE D0 */ stwu r1, -0x130(r1)
/* 802D6420 002D3360 7C 08 02 A6 */ mflr r0
/* 802D6424 002D3364 90 01 01 34 */ stw r0, 0x134(r1)
/* 802D6428 002D3368 39 61 01 30 */ addi r11, r1, 0x130
/* 802D642C 002D336C 48 08 BD A9 */ bl _savegpr_27
/* 802D6430 002D3370 7C 7B 1B 78 */ mr r27, r3
/* 802D6434 002D3374 7C BD 2B 78 */ mr r29, r5
/* 802D6438 002D3378 28 04 00 00 */ cmplwi r4, 0
/* 802D643C 002D337C 40 82 00 14 */ bne lbl_802D6450
/* 802D6440 002D3380 80 7B 00 48 */ lwz r3, 0x48(r27)
/* 802D6444 002D3384 57 A0 20 36 */ slwi r0, r29, 4
/* 802D6448 002D3388 7C 63 02 14 */ add r3, r3, r0
/* 802D644C 002D338C 48 00 00 90 */ b lbl_802D64DC
lbl_802D6450:
/* 802D6450 002D3390 38 61 00 08 */ addi r3, r1, 8
/* 802D6454 002D3394 38 A0 00 2F */ li r5, 0x2f
/* 802D6458 002D3398 48 00 04 2D */ bl store__Q210JKRArchive8CArcNameFPCcc
/* 802D645C 002D339C 7C 7C 1B 78 */ mr r28, r3
/* 802D6460 002D33A0 80 7B 00 48 */ lwz r3, 0x48(r27)
/* 802D6464 002D33A4 57 A0 20 36 */ slwi r0, r29, 4
/* 802D6468 002D33A8 7F E3 02 14 */ add r31, r3, r0
/* 802D646C 002D33AC 80 7B 00 4C */ lwz r3, 0x4c(r27)
/* 802D6470 002D33B0 80 1F 00 0C */ lwz r0, 0xc(r31)
/* 802D6474 002D33B4 1C 00 00 14 */ mulli r0, r0, 0x14
/* 802D6478 002D33B8 7F C3 02 14 */ add r30, r3, r0
/* 802D647C 002D33BC 3B A0 00 00 */ li r29, 0
/* 802D6480 002D33C0 48 00 00 4C */ b lbl_802D64CC
lbl_802D6484:
/* 802D6484 002D33C4 7F 63 DB 78 */ mr r3, r27
/* 802D6488 002D33C8 38 81 00 08 */ addi r4, r1, 8
/* 802D648C 002D33CC 80 1E 00 04 */ lwz r0, 4(r30)
/* 802D6490 002D33D0 54 05 02 3E */ clrlwi r5, r0, 8
/* 802D6494 002D33D4 A0 DE 00 02 */ lhz r6, 2(r30)
/* 802D6498 002D33D8 4B FF FE FD */ bl isSameName__10JKRArchiveCFRQ210JKRArchive8CArcNameUlUs
/* 802D649C 002D33DC 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 802D64A0 002D33E0 41 82 00 24 */ beq lbl_802D64C4
/* 802D64A4 002D33E4 80 1E 00 04 */ lwz r0, 4(r30)
/* 802D64A8 002D33E8 54 00 47 BD */ rlwinm. r0, r0, 8, 0x1e, 0x1e
/* 802D64AC 002D33EC 41 82 00 2C */ beq lbl_802D64D8
/* 802D64B0 002D33F0 7F 63 DB 78 */ mr r3, r27
/* 802D64B4 002D33F4 7F 84 E3 78 */ mr r4, r28
/* 802D64B8 002D33F8 80 BE 00 08 */ lwz r5, 8(r30)
/* 802D64BC 002D33FC 4B FF FF 61 */ bl findDirectory__10JKRArchiveCFPCcUl
/* 802D64C0 002D3400 48 00 00 1C */ b lbl_802D64DC
lbl_802D64C4:
/* 802D64C4 002D3404 3B DE 00 14 */ addi r30, r30, 0x14
/* 802D64C8 002D3408 3B BD 00 01 */ addi r29, r29, 1
lbl_802D64CC:
/* 802D64CC 002D340C A0 1F 00 0A */ lhz r0, 0xa(r31)
/* 802D64D0 002D3410 7C 1D 00 00 */ cmpw r29, r0
/* 802D64D4 002D3414 41 80 FF B0 */ blt lbl_802D6484
lbl_802D64D8:
/* 802D64D8 002D3418 38 60 00 00 */ li r3, 0
lbl_802D64DC:
/* 802D64DC 002D341C 39 61 01 30 */ addi r11, r1, 0x130
/* 802D64E0 002D3420 48 08 BD 41 */ bl _restgpr_27
/* 802D64E4 002D3424 80 01 01 34 */ lwz r0, 0x134(r1)
/* 802D64E8 002D3428 7C 08 03 A6 */ mtlr r0
/* 802D64EC 002D342C 38 21 01 30 */ addi r1, r1, 0x130
/* 802D64F0 002D3430 4E 80 00 20 */ blr
@@ -1,51 +0,0 @@
/* findTypeResource__10JKRArchiveCFUlPCc __ct__10JKRArchiveFlQ210JKRArchive10EMountMode::findTypeResource( const(unsigned long, char const *)) */
/* JKRArchive_NS_findTypeResource */
/* 802D64F4 002D3434 94 21 FE E0 */ stwu r1, -0x120(r1)
/* 802D64F8 002D3438 7C 08 02 A6 */ mflr r0
/* 802D64FC 002D343C 90 01 01 24 */ stw r0, 0x124(r1)
/* 802D6500 002D3440 39 61 01 20 */ addi r11, r1, 0x120
/* 802D6504 002D3444 48 08 BC D5 */ bl _savegpr_28
/* 802D6508 002D3448 7C 7C 1B 78 */ mr r28, r3
/* 802D650C 002D344C 7C 9D 23 79 */ or. r29, r4, r4
/* 802D6510 002D3450 41 82 00 78 */ beq lbl_802D6588
/* 802D6514 002D3454 38 61 00 08 */ addi r3, r1, 8
/* 802D6518 002D3458 7C A4 2B 78 */ mr r4, r5
/* 802D651C 002D345C 48 00 02 D9 */ bl store__Q210JKRArchive8CArcNameFPCc
/* 802D6520 002D3460 7F 83 E3 78 */ mr r3, r28
/* 802D6524 002D3464 7F A4 EB 78 */ mr r4, r29
/* 802D6528 002D3468 4B FF FE B9 */ bl findResType__10JKRArchiveCFUl
/* 802D652C 002D346C 7C 7F 1B 79 */ or. r31, r3, r3
/* 802D6530 002D3470 41 82 00 58 */ beq lbl_802D6588
/* 802D6534 002D3474 80 7C 00 4C */ lwz r3, 0x4c(r28)
/* 802D6538 002D3478 80 1F 00 0C */ lwz r0, 0xc(r31)
/* 802D653C 002D347C 1C 00 00 14 */ mulli r0, r0, 0x14
/* 802D6540 002D3480 7F C3 02 14 */ add r30, r3, r0
/* 802D6544 002D3484 3B A0 00 00 */ li r29, 0
/* 802D6548 002D3488 48 00 00 34 */ b lbl_802D657C
lbl_802D654C:
/* 802D654C 002D348C 7F 83 E3 78 */ mr r3, r28
/* 802D6550 002D3490 38 81 00 08 */ addi r4, r1, 8
/* 802D6554 002D3494 80 1E 00 04 */ lwz r0, 4(r30)
/* 802D6558 002D3498 54 05 02 3E */ clrlwi r5, r0, 8
/* 802D655C 002D349C A0 DE 00 02 */ lhz r6, 2(r30)
/* 802D6560 002D34A0 4B FF FE 35 */ bl isSameName__10JKRArchiveCFRQ210JKRArchive8CArcNameUlUs
/* 802D6564 002D34A4 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 802D6568 002D34A8 41 82 00 0C */ beq lbl_802D6574
/* 802D656C 002D34AC 7F C3 F3 78 */ mr r3, r30
/* 802D6570 002D34B0 48 00 00 1C */ b lbl_802D658C
lbl_802D6574:
/* 802D6574 002D34B4 3B DE 00 14 */ addi r30, r30, 0x14
/* 802D6578 002D34B8 3B BD 00 01 */ addi r29, r29, 1
lbl_802D657C:
/* 802D657C 002D34BC A0 1F 00 0A */ lhz r0, 0xa(r31)
/* 802D6580 002D34C0 7C 1D 00 00 */ cmpw r29, r0
/* 802D6584 002D34C4 41 80 FF C8 */ blt lbl_802D654C
lbl_802D6588:
/* 802D6588 002D34C8 38 60 00 00 */ li r3, 0
lbl_802D658C:
/* 802D658C 002D34CC 39 61 01 20 */ addi r11, r1, 0x120
/* 802D6590 002D34D0 48 08 BC 95 */ bl _restgpr_28
/* 802D6594 002D34D4 80 01 01 24 */ lwz r0, 0x124(r1)
/* 802D6598 002D34D8 7C 08 03 A6 */ mtlr r0
/* 802D659C 002D34DC 38 21 01 20 */ addi r1, r1, 0x120
/* 802D65A0 002D34E0 4E 80 00 20 */ blr
@@ -1,65 +0,0 @@
/* findFsResource__10JKRArchiveCFPCcUl __ct__10JKRArchiveFlQ210JKRArchive10EMountMode::findFsResource( const(char const *, unsigned long)) */
/* JKRArchive_NS_findFsResource */
/* 802D65A4 002D34E4 94 21 FE D0 */ stwu r1, -0x130(r1)
/* 802D65A8 002D34E8 7C 08 02 A6 */ mflr r0
/* 802D65AC 002D34EC 90 01 01 34 */ stw r0, 0x134(r1)
/* 802D65B0 002D34F0 39 61 01 30 */ addi r11, r1, 0x130
/* 802D65B4 002D34F4 48 08 BC 21 */ bl _savegpr_27
/* 802D65B8 002D34F8 7C 7B 1B 78 */ mr r27, r3
/* 802D65BC 002D34FC 7C BD 2B 78 */ mr r29, r5
/* 802D65C0 002D3500 28 04 00 00 */ cmplwi r4, 0
/* 802D65C4 002D3504 41 82 00 A4 */ beq lbl_802D6668
/* 802D65C8 002D3508 38 61 00 08 */ addi r3, r1, 8
/* 802D65CC 002D350C 38 A0 00 2F */ li r5, 0x2f
/* 802D65D0 002D3510 48 00 02 B5 */ bl store__Q210JKRArchive8CArcNameFPCcc
/* 802D65D4 002D3514 7C 7C 1B 78 */ mr r28, r3
/* 802D65D8 002D3518 80 7B 00 48 */ lwz r3, 0x48(r27)
/* 802D65DC 002D351C 57 A0 20 36 */ slwi r0, r29, 4
/* 802D65E0 002D3520 7F E3 02 14 */ add r31, r3, r0
/* 802D65E4 002D3524 80 7B 00 4C */ lwz r3, 0x4c(r27)
/* 802D65E8 002D3528 80 1F 00 0C */ lwz r0, 0xc(r31)
/* 802D65EC 002D352C 1C 00 00 14 */ mulli r0, r0, 0x14
/* 802D65F0 002D3530 7F C3 02 14 */ add r30, r3, r0
/* 802D65F4 002D3534 3B A0 00 00 */ li r29, 0
/* 802D65F8 002D3538 48 00 00 64 */ b lbl_802D665C
lbl_802D65FC:
/* 802D65FC 002D353C 7F 63 DB 78 */ mr r3, r27
/* 802D6600 002D3540 38 81 00 08 */ addi r4, r1, 8
/* 802D6604 002D3544 80 1E 00 04 */ lwz r0, 4(r30)
/* 802D6608 002D3548 54 05 02 3E */ clrlwi r5, r0, 8
/* 802D660C 002D354C A0 DE 00 02 */ lhz r6, 2(r30)
/* 802D6610 002D3550 4B FF FD 85 */ bl isSameName__10JKRArchiveCFRQ210JKRArchive8CArcNameUlUs
/* 802D6614 002D3554 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 802D6618 002D3558 41 82 00 3C */ beq lbl_802D6654
/* 802D661C 002D355C 80 1E 00 04 */ lwz r0, 4(r30)
/* 802D6620 002D3560 54 00 47 BD */ rlwinm. r0, r0, 8, 0x1e, 0x1e
/* 802D6624 002D3564 41 82 00 18 */ beq lbl_802D663C
/* 802D6628 002D3568 7F 63 DB 78 */ mr r3, r27
/* 802D662C 002D356C 7F 84 E3 78 */ mr r4, r28
/* 802D6630 002D3570 80 BE 00 08 */ lwz r5, 8(r30)
/* 802D6634 002D3574 4B FF FF 71 */ bl findFsResource__10JKRArchiveCFPCcUl
/* 802D6638 002D3578 48 00 00 34 */ b lbl_802D666C
lbl_802D663C:
/* 802D663C 002D357C 28 1C 00 00 */ cmplwi r28, 0
/* 802D6640 002D3580 40 82 00 0C */ bne lbl_802D664C
/* 802D6644 002D3584 7F C3 F3 78 */ mr r3, r30
/* 802D6648 002D3588 48 00 00 24 */ b lbl_802D666C
lbl_802D664C:
/* 802D664C 002D358C 38 60 00 00 */ li r3, 0
/* 802D6650 002D3590 48 00 00 1C */ b lbl_802D666C
lbl_802D6654:
/* 802D6654 002D3594 3B DE 00 14 */ addi r30, r30, 0x14
/* 802D6658 002D3598 3B BD 00 01 */ addi r29, r29, 1
lbl_802D665C:
/* 802D665C 002D359C A0 1F 00 0A */ lhz r0, 0xa(r31)
/* 802D6660 002D35A0 7C 1D 00 00 */ cmpw r29, r0
/* 802D6664 002D35A4 41 80 FF 98 */ blt lbl_802D65FC
lbl_802D6668:
/* 802D6668 002D35A8 38 60 00 00 */ li r3, 0
lbl_802D666C:
/* 802D666C 002D35AC 39 61 01 30 */ addi r11, r1, 0x130
/* 802D6670 002D35B0 48 08 BB B1 */ bl _restgpr_27
/* 802D6674 002D35B4 80 01 01 34 */ lwz r0, 0x134(r1)
/* 802D6678 002D35B8 7C 08 03 A6 */ mtlr r0
/* 802D667C 002D35BC 38 21 01 30 */ addi r1, r1, 0x130
/* 802D6680 002D35C0 4E 80 00 20 */ blr
@@ -1,13 +0,0 @@
/* findIdxResource__10JKRArchiveCFUl __ct__10JKRArchiveFlQ210JKRArchive10EMountMode::findIdxResource( const(unsigned long)) */
/* JKRArchive_NS_findIdxResource */
/* 802D6684 002D35C4 80 A3 00 44 */ lwz r5, 0x44(r3)
/* 802D6688 002D35C8 80 05 00 08 */ lwz r0, 8(r5)
/* 802D668C 002D35CC 7C 04 00 40 */ cmplw r4, r0
/* 802D6690 002D35D0 40 80 00 14 */ bge lbl_802D66A4
/* 802D6694 002D35D4 80 63 00 4C */ lwz r3, 0x4c(r3)
/* 802D6698 002D35D8 1C 04 00 14 */ mulli r0, r4, 0x14
/* 802D669C 002D35DC 7C 63 02 14 */ add r3, r3, r0
/* 802D66A0 002D35E0 4E 80 00 20 */ blr
lbl_802D66A4:
/* 802D66A4 002D35E4 38 60 00 00 */ li r3, 0
/* 802D66A8 002D35E8 4E 80 00 20 */ blr
@@ -1,40 +0,0 @@
/* findNameResource__10JKRArchiveCFPCc __ct__10JKRArchiveFlQ210JKRArchive10EMountMode::findNameResource( const(char const *)) */
/* JKRArchive_NS_findNameResource */
/* 802D66AC 002D35EC 94 21 FE E0 */ stwu r1, -0x120(r1)
/* 802D66B0 002D35F0 7C 08 02 A6 */ mflr r0
/* 802D66B4 002D35F4 90 01 01 24 */ stw r0, 0x124(r1)
/* 802D66B8 002D35F8 39 61 01 20 */ addi r11, r1, 0x120
/* 802D66BC 002D35FC 48 08 BB 1D */ bl _savegpr_28
/* 802D66C0 002D3600 7C 7C 1B 78 */ mr r28, r3
/* 802D66C4 002D3604 83 C3 00 4C */ lwz r30, 0x4c(r3)
/* 802D66C8 002D3608 38 61 00 08 */ addi r3, r1, 8
/* 802D66CC 002D360C 48 00 01 29 */ bl store__Q210JKRArchive8CArcNameFPCc
/* 802D66D0 002D3610 3B A0 00 00 */ li r29, 0
/* 802D66D4 002D3614 83 FC 00 44 */ lwz r31, 0x44(r28)
/* 802D66D8 002D3618 48 00 00 34 */ b lbl_802D670C
lbl_802D66DC:
/* 802D66DC 002D361C 7F 83 E3 78 */ mr r3, r28
/* 802D66E0 002D3620 38 81 00 08 */ addi r4, r1, 8
/* 802D66E4 002D3624 80 1E 00 04 */ lwz r0, 4(r30)
/* 802D66E8 002D3628 54 05 02 3E */ clrlwi r5, r0, 8
/* 802D66EC 002D362C A0 DE 00 02 */ lhz r6, 2(r30)
/* 802D66F0 002D3630 4B FF FC A5 */ bl isSameName__10JKRArchiveCFRQ210JKRArchive8CArcNameUlUs
/* 802D66F4 002D3634 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 802D66F8 002D3638 41 82 00 0C */ beq lbl_802D6704
/* 802D66FC 002D363C 7F C3 F3 78 */ mr r3, r30
/* 802D6700 002D3640 48 00 00 1C */ b lbl_802D671C
lbl_802D6704:
/* 802D6704 002D3644 3B DE 00 14 */ addi r30, r30, 0x14
/* 802D6708 002D3648 3B BD 00 01 */ addi r29, r29, 1
lbl_802D670C:
/* 802D670C 002D364C 80 1F 00 08 */ lwz r0, 8(r31)
/* 802D6710 002D3650 7C 1D 00 40 */ cmplw r29, r0
/* 802D6714 002D3654 41 80 FF C8 */ blt lbl_802D66DC
/* 802D6718 002D3658 38 60 00 00 */ li r3, 0
lbl_802D671C:
/* 802D671C 002D365C 39 61 01 20 */ addi r11, r1, 0x120
/* 802D6720 002D3660 48 08 BB 05 */ bl _restgpr_28
/* 802D6724 002D3664 80 01 01 24 */ lwz r0, 0x124(r1)
/* 802D6728 002D3668 7C 08 03 A6 */ mtlr r0
/* 802D672C 002D366C 38 21 01 20 */ addi r1, r1, 0x120
/* 802D6730 002D3670 4E 80 00 20 */ blr
@@ -1,20 +0,0 @@
/* findPtrResource__10JKRArchiveCFPCv __ct__10JKRArchiveFlQ210JKRArchive10EMountMode::findPtrResource( const(void const *)) */
/* JKRArchive_NS_findPtrResource */
/* 802D6734 002D3674 80 A3 00 4C */ lwz r5, 0x4c(r3)
/* 802D6738 002D3678 80 63 00 44 */ lwz r3, 0x44(r3)
/* 802D673C 002D367C 80 03 00 08 */ lwz r0, 8(r3)
/* 802D6740 002D3680 7C 09 03 A6 */ mtctr r0
/* 802D6744 002D3684 28 00 00 00 */ cmplwi r0, 0
/* 802D6748 002D3688 40 81 00 20 */ ble lbl_802D6768
lbl_802D674C:
/* 802D674C 002D368C 80 05 00 10 */ lwz r0, 0x10(r5)
/* 802D6750 002D3690 7C 00 20 40 */ cmplw r0, r4
/* 802D6754 002D3694 40 82 00 0C */ bne lbl_802D6760
/* 802D6758 002D3698 7C A3 2B 78 */ mr r3, r5
/* 802D675C 002D369C 4E 80 00 20 */ blr
lbl_802D6760:
/* 802D6760 002D36A0 38 A5 00 14 */ addi r5, r5, 0x14
/* 802D6764 002D36A4 42 00 FF E8 */ bdnz lbl_802D674C
lbl_802D6768:
/* 802D6768 002D36A8 38 60 00 00 */ li r3, 0
/* 802D676C 002D36AC 4E 80 00 20 */ blr
@@ -1,39 +0,0 @@
/* findIdResource__10JKRArchiveCFUs __ct__10JKRArchiveFlQ210JKRArchive10EMountMode::findIdResource( const(unsigned short)) */
/* JKRArchive_NS_findIdResource */
/* 802D6770 002D36B0 54 86 04 3E */ clrlwi r6, r4, 0x10
/* 802D6774 002D36B4 28 06 FF FF */ cmplwi r6, 0xffff
/* 802D6778 002D36B8 41 82 00 74 */ beq lbl_802D67EC
/* 802D677C 002D36BC 80 A3 00 44 */ lwz r5, 0x44(r3)
/* 802D6780 002D36C0 80 E5 00 08 */ lwz r7, 8(r5)
/* 802D6784 002D36C4 7C 06 38 40 */ cmplw r6, r7
/* 802D6788 002D36C8 40 80 00 30 */ bge lbl_802D67B8
/* 802D678C 002D36CC 80 A3 00 4C */ lwz r5, 0x4c(r3)
/* 802D6790 002D36D0 1C 06 00 14 */ mulli r0, r6, 0x14
/* 802D6794 002D36D4 7C A5 02 14 */ add r5, r5, r0
/* 802D6798 002D36D8 A0 05 00 00 */ lhz r0, 0(r5)
/* 802D679C 002D36DC 7C 00 30 40 */ cmplw r0, r6
/* 802D67A0 002D36E0 40 82 00 18 */ bne lbl_802D67B8
/* 802D67A4 002D36E4 80 05 00 04 */ lwz r0, 4(r5)
/* 802D67A8 002D36E8 54 00 47 FF */ rlwinm. r0, r0, 8, 0x1f, 0x1f
/* 802D67AC 002D36EC 41 82 00 0C */ beq lbl_802D67B8
/* 802D67B0 002D36F0 7C A3 2B 78 */ mr r3, r5
/* 802D67B4 002D36F4 4E 80 00 20 */ blr
lbl_802D67B8:
/* 802D67B8 002D36F8 80 63 00 4C */ lwz r3, 0x4c(r3)
/* 802D67BC 002D36FC 54 84 04 3E */ clrlwi r4, r4, 0x10
/* 802D67C0 002D3700 7C E9 03 A6 */ mtctr r7
/* 802D67C4 002D3704 28 07 00 00 */ cmplwi r7, 0
/* 802D67C8 002D3708 40 81 00 24 */ ble lbl_802D67EC
lbl_802D67CC:
/* 802D67CC 002D370C A0 03 00 00 */ lhz r0, 0(r3)
/* 802D67D0 002D3710 7C 00 20 40 */ cmplw r0, r4
/* 802D67D4 002D3714 40 82 00 10 */ bne lbl_802D67E4
/* 802D67D8 002D3718 80 03 00 04 */ lwz r0, 4(r3)
/* 802D67DC 002D371C 54 00 47 FF */ rlwinm. r0, r0, 8, 0x1f, 0x1f
/* 802D67E0 002D3720 4C 82 00 20 */ bnelr
lbl_802D67E4:
/* 802D67E4 002D3724 38 63 00 14 */ addi r3, r3, 0x14
/* 802D67E8 002D3728 42 00 FF E4 */ bdnz lbl_802D67CC
lbl_802D67EC:
/* 802D67EC 002D372C 38 60 00 00 */ li r3, 0
/* 802D67F0 002D3730 4E 80 00 20 */ blr
@@ -1,41 +0,0 @@
/* store__Q210JKRArchive8CArcNameFPCc __ct__10JKRArchiveFlQ210JKRArchive10EMountMode::CArcName::store( (char const *)) */
/* JKRArchive_NS_CArcName_NS_store */
/* 802D67F4 002D3734 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 802D67F8 002D3738 7C 08 02 A6 */ mflr r0
/* 802D67FC 002D373C 90 01 00 24 */ stw r0, 0x24(r1)
/* 802D6800 002D3740 39 61 00 20 */ addi r11, r1, 0x20
/* 802D6804 002D3744 48 08 B9 D9 */ bl _savegpr_29
/* 802D6808 002D3748 7C 7D 1B 78 */ mr r29, r3
/* 802D680C 002D374C 7C 9E 23 78 */ mr r30, r4
/* 802D6810 002D3750 38 00 00 00 */ li r0, 0
/* 802D6814 002D3754 B0 03 00 00 */ sth r0, 0(r3)
/* 802D6818 002D3758 3B E0 00 00 */ li r31, 0
/* 802D681C 002D375C 48 00 00 34 */ b lbl_802D6850
lbl_802D6820:
/* 802D6820 002D3760 7C 63 07 74 */ extsb r3, r3
/* 802D6824 002D3764 48 08 EC 4D */ bl func_80365470
/* 802D6828 002D3768 A0 1D 00 00 */ lhz r0, 0(r29)
/* 802D682C 002D376C 1C 00 00 03 */ mulli r0, r0, 3
/* 802D6830 002D3770 7C 03 02 14 */ add r0, r3, r0
/* 802D6834 002D3774 B0 1D 00 00 */ sth r0, 0(r29)
/* 802D6838 002D3778 2C 1F 01 00 */ cmpwi r31, 0x100
/* 802D683C 002D377C 40 80 00 10 */ bge lbl_802D684C
/* 802D6840 002D3780 38 1F 00 04 */ addi r0, r31, 4
/* 802D6844 002D3784 7C 7D 01 AE */ stbx r3, r29, r0
/* 802D6848 002D3788 3B FF 00 01 */ addi r31, r31, 1
lbl_802D684C:
/* 802D684C 002D378C 3B DE 00 01 */ addi r30, r30, 1
lbl_802D6850:
/* 802D6850 002D3790 88 7E 00 00 */ lbz r3, 0(r30)
/* 802D6854 002D3794 7C 60 07 75 */ extsb. r0, r3
/* 802D6858 002D3798 40 82 FF C8 */ bne lbl_802D6820
/* 802D685C 002D379C B3 FD 00 02 */ sth r31, 2(r29)
/* 802D6860 002D37A0 38 00 00 00 */ li r0, 0
/* 802D6864 002D37A4 7C 7D FA 14 */ add r3, r29, r31
/* 802D6868 002D37A8 98 03 00 04 */ stb r0, 4(r3)
/* 802D686C 002D37AC 39 61 00 20 */ addi r11, r1, 0x20
/* 802D6870 002D37B0 48 08 B9 B9 */ bl _restgpr_29
/* 802D6874 002D37B4 80 01 00 24 */ lwz r0, 0x24(r1)
/* 802D6878 002D37B8 7C 08 03 A6 */ mtlr r0
/* 802D687C 002D37BC 38 21 00 20 */ addi r1, r1, 0x20
/* 802D6880 002D37C0 4E 80 00 20 */ blr
@@ -1,54 +0,0 @@
/* store__Q210JKRArchive8CArcNameFPCcc __ct__10JKRArchiveFlQ210JKRArchive10EMountMode::CArcName::store( (char const *, char)) */
/* JKRArchive_NS_CArcName_NS_store_X1_ */
/* 802D6884 002D37C4 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 802D6888 002D37C8 7C 08 02 A6 */ mflr r0
/* 802D688C 002D37CC 90 01 00 24 */ stw r0, 0x24(r1)
/* 802D6890 002D37D0 39 61 00 20 */ addi r11, r1, 0x20
/* 802D6894 002D37D4 48 08 B9 45 */ bl _savegpr_28
/* 802D6898 002D37D8 7C 7C 1B 78 */ mr r28, r3
/* 802D689C 002D37DC 7C 9D 23 78 */ mr r29, r4
/* 802D68A0 002D37E0 38 00 00 00 */ li r0, 0
/* 802D68A4 002D37E4 B0 03 00 00 */ sth r0, 0(r3)
/* 802D68A8 002D37E8 3B C0 00 00 */ li r30, 0
/* 802D68AC 002D37EC 7C BF 07 74 */ extsb r31, r5
/* 802D68B0 002D37F0 48 00 00 34 */ b lbl_802D68E4
lbl_802D68B4:
/* 802D68B4 002D37F4 7C 63 07 74 */ extsb r3, r3
/* 802D68B8 002D37F8 48 08 EB B9 */ bl func_80365470
/* 802D68BC 002D37FC A0 1C 00 00 */ lhz r0, 0(r28)
/* 802D68C0 002D3800 1C 00 00 03 */ mulli r0, r0, 3
/* 802D68C4 002D3804 7C 03 02 14 */ add r0, r3, r0
/* 802D68C8 002D3808 B0 1C 00 00 */ sth r0, 0(r28)
/* 802D68CC 002D380C 2C 1E 01 00 */ cmpwi r30, 0x100
/* 802D68D0 002D3810 40 80 00 10 */ bge lbl_802D68E0
/* 802D68D4 002D3814 38 1E 00 04 */ addi r0, r30, 4
/* 802D68D8 002D3818 7C 7C 01 AE */ stbx r3, r28, r0
/* 802D68DC 002D381C 3B DE 00 01 */ addi r30, r30, 1
lbl_802D68E0:
/* 802D68E0 002D3820 3B BD 00 01 */ addi r29, r29, 1
lbl_802D68E4:
/* 802D68E4 002D3824 88 7D 00 00 */ lbz r3, 0(r29)
/* 802D68E8 002D3828 7C 60 07 75 */ extsb. r0, r3
/* 802D68EC 002D382C 41 82 00 10 */ beq lbl_802D68FC
/* 802D68F0 002D3830 7C 60 07 74 */ extsb r0, r3
/* 802D68F4 002D3834 7C 00 F8 00 */ cmpw r0, r31
/* 802D68F8 002D3838 40 82 FF BC */ bne lbl_802D68B4
lbl_802D68FC:
/* 802D68FC 002D383C B3 DC 00 02 */ sth r30, 2(r28)
/* 802D6900 002D3840 38 00 00 00 */ li r0, 0
/* 802D6904 002D3844 7C 7C F2 14 */ add r3, r28, r30
/* 802D6908 002D3848 98 03 00 04 */ stb r0, 4(r3)
/* 802D690C 002D384C 88 1D 00 00 */ lbz r0, 0(r29)
/* 802D6910 002D3850 7C 00 07 75 */ extsb. r0, r0
/* 802D6914 002D3854 40 82 00 0C */ bne lbl_802D6920
/* 802D6918 002D3858 38 60 00 00 */ li r3, 0
/* 802D691C 002D385C 48 00 00 08 */ b lbl_802D6924
lbl_802D6920:
/* 802D6920 002D3860 38 7D 00 01 */ addi r3, r29, 1
lbl_802D6924:
/* 802D6924 002D3864 39 61 00 20 */ addi r11, r1, 0x20
/* 802D6928 002D3868 48 08 B8 FD */ bl _restgpr_28
/* 802D692C 002D386C 80 01 00 24 */ lwz r0, 0x24(r1)
/* 802D6930 002D3870 7C 08 03 A6 */ mtlr r0
/* 802D6934 002D3874 38 21 00 20 */ addi r1, r1, 0x20
/* 802D6938 002D3878 4E 80 00 20 */ blr
@@ -1,4 +1,4 @@
/* setExpandSize__10JKRArchiveFPQ210JKRArchive12SDIFileEntryUl __ct__10JKRArchiveFlQ210JKRArchive10EMountMode::setExpandSize(__ct__10JKRArchiveFlQ210JKRArchive10EMountMode::SDIFileEntry *, unsigned long) */
/* setExpandSize__10JKRArchiveFP12SDIFileEntryUl __ct__10JKRArchiveFlQ210JKRArchive10EMountMode::setExpandSize(__ct__10JKRArchiveFlQ210JKRArchive10EMountMode::SDIFileEntry *, unsigned long) */
/* missing reference */
/* 802D693C 002D387C 80 03 00 4C */ lwz r0, 0x4c(r3)
/* 802D6940 002D3880 7C 80 20 50 */ subf r4, r0, r4
@@ -1,4 +1,4 @@
/* getExpandSize__10JKRArchiveCFPQ210JKRArchive12SDIFileEntry __ct__10JKRArchiveFlQ210JKRArchive10EMountMode::getExpandSize( const(__ct__10JKRArchiveFlQ210JKRArchive10EMountMode::SDIFileEntry *)) */
/* getExpandSize__10JKRArchiveCFP12SDIFileEntry __ct__10JKRArchiveFlQ210JKRArchive10EMountMode::getExpandSize( const(__ct__10JKRArchiveFlQ210JKRArchive10EMountMode::SDIFileEntry *)) */
/* missing reference */
/* 802D6978 002D38B8 80 03 00 4C */ lwz r0, 0x4c(r3)
/* 802D697C 002D38BC 7C 80 20 50 */ subf r4, r0, r4
@@ -14,11 +14,15 @@ public:
/* vt[09] */ void removeResourceAll(void); /* override */
/* vt[10] */ bool removeResource(void*); /* override */
/* vt[15] */ void getExpandedResSize(void const*) const; /* override */
/* vt[16] */ void fetchResource(JKRArchive::SDIFileEntry*, u32*); /* override */
/* vt[17] */ void fetchResource(void*, u32, JKRArchive::SDIFileEntry*, u32*); /* override */
/* vt[15] */ void getExpandedResSize(void const*) const; /* override */
/* vt[16] */ void* fetchResource(SDIFileEntry*, u32*); /* override */
/* vt[17] */ void* fetchResource(void*, u32, SDIFileEntry*, u32*); /* override */
public:
private:
/* 0x00 */ // vtable
/* 0x04 */ // JKRArchive
u8 unk[36];
};
#endif
@@ -1,4 +1,4 @@
/* fetchResource__14JKRCompArchiveFPQ210JKRArchive12SDIFileEntryPUl __ct__14JKRCompArchiveFlQ210JKRArchive15EMountDirection::fetchResource(JKRArchive::SDIFileEntry *, unsigned long *) */
/* fetchResource__14JKRCompArchiveFP12SDIFileEntryPUl __ct__14JKRCompArchiveFlQ210JKRArchive15EMountDirection::fetchResource(JKRArchive::SDIFileEntry *, unsigned long *) */
/* missing reference */
/* 802D8F40 002D5E80 94 21 FF D0 */ stwu r1, -0x30(r1)
/* 802D8F44 002D5E84 7C 08 02 A6 */ mflr r0
@@ -1,4 +1,4 @@
/* fetchResource__14JKRCompArchiveFPvUlPQ210JKRArchive12SDIFileEntryPUl __ct__14JKRCompArchiveFlQ210JKRArchive15EMountDirection::fetchResource(void *, unsigned long, JKRArchive::SDIFileEntry *, unsigned long *) */
/* fetchResource__14JKRCompArchiveFPvUlP12SDIFileEntryPUl __ct__14JKRCompArchiveFlQ210JKRArchive15EMountDirection::fetchResource(void *, unsigned long, JKRArchive::SDIFileEntry *, unsigned long *) */
/* missing reference */
/* 802D90C0 002D6000 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 802D90C4 002D6004 7C 08 02 A6 */ mflr r0
@@ -11,14 +11,18 @@ public:
void open(long);
/* vt[15] */ virtual void getExpandedResSize(void const*) const; /* override */
/* vt[16] */ virtual void fetchResource(JKRArchive::SDIFileEntry*, u32*); /* override */
/* vt[17] */ virtual void fetchResource(void*, u32, JKRArchive::SDIFileEntry*,
u32*); /* override */
/* vt[15] */ virtual void getExpandedResSize(void const*) const; /* override */
/* vt[16] */ virtual void* fetchResource(SDIFileEntry*, u32*); /* override */
/* vt[17] */ virtual void* fetchResource(void*, u32, SDIFileEntry*, u32*); /* override */
public:
static void fetchResource_subroutine(long, u32, u32, u8*, u32, int, int);
static void fetchResource_subroutine(long, u32, u32, JKRHeap*, int, int, u8**);
private:
/* 0x00 */ // vtable
/* 0x04 */ // JKRArchive
u8 unk[16];
};
#endif
@@ -1,4 +1,4 @@
/* fetchResource__13JKRDvdArchiveFPQ210JKRArchive12SDIFileEntryPUl __ct__13JKRDvdArchiveFlQ210JKRArchive15EMountDirection::fetchResource(JKRArchive::SDIFileEntry *, unsigned long *) */
/* fetchResource__13JKRDvdArchiveFP12SDIFileEntryPUl __ct__13JKRDvdArchiveFlQ210JKRArchive15EMountDirection::fetchResource(JKRArchive::SDIFileEntry *, unsigned long *) */
/* missing reference */
/* 802D8050 002D4F90 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 802D8054 002D4F94 7C 08 02 A6 */ mflr r0
@@ -1,4 +1,4 @@
/* fetchResource__13JKRDvdArchiveFPvUlPQ210JKRArchive12SDIFileEntryPUl __ct__13JKRDvdArchiveFlQ210JKRArchive15EMountDirection::fetchResource(void *, unsigned long, JKRArchive::SDIFileEntry *, unsigned long *) */
/* fetchResource__13JKRDvdArchiveFPvUlP12SDIFileEntryPUl __ct__13JKRDvdArchiveFlQ210JKRArchive15EMountDirection::fetchResource(void *, unsigned long, JKRArchive::SDIFileEntry *, unsigned long *) */
/* missing reference */
/* 802D8168 002D50A8 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 802D816C 002D50AC 7C 08 02 A6 */ mflr r0
@@ -8,7 +8,7 @@
/* 802D5638 002D2578 48 00 00 14 */ b lbl_802D564C
lbl_802D563C:
/* 802D563C 002D257C 7C 63 07 74 */ extsb r3, r3
/* 802D5640 002D2580 48 08 FE 31 */ bl func_80365470
/* 802D5640 002D2580 48 08 FE 31 */ bl tolower
/* 802D5644 002D2584 98 7F 00 00 */ stb r3, 0(r31)
/* 802D5648 002D2588 3B FF 00 01 */ addi r31, r31, 1
lbl_802D564C:
@@ -37,7 +37,7 @@ protected:
class JKRArchive;
class JKRArcFinder : public JKRFileFinder {
public:
JKRArcFinder(JKRArchive*, long, long);
JKRArcFinder(JKRArchive*, s32, u32);
virtual ~JKRArcFinder();
public:
@@ -21,7 +21,7 @@
/* 802D470C 002D164C 80 7F 00 14 */ lwz r3, 0x14(r31)
/* 802D4710 002D1650 38 81 00 08 */ addi r4, r1, 8
/* 802D4714 002D1654 80 BF 00 20 */ lwz r5, 0x20(r31)
/* 802D4718 002D1658 48 00 13 A9 */ bl getDirEntry__10JKRArchiveCFPQ210JKRArchive9SDirEntryUl
/* 802D4718 002D1658 48 00 13 A9 */ bl getDirEntry__10JKRArchiveCFP9SDirEntryUl
/* 802D471C 002D165C 98 7F 00 10 */ stb r3, 0x10(r31)
/* 802D4720 002D1660 80 01 00 0C */ lwz r0, 0xc(r1)
/* 802D4724 002D1664 90 1F 00 00 */ stw r0, 0(r31)
@@ -4,6 +4,11 @@
#include "JSystem/JKernel/JKRDisposer/JKRDisposer.h"
#include "dolphin/types.h"
class JKRFileLoader;
extern JKRFileLoader* lbl_80451418; // JKRFileLoader::sCurrentVolume
extern JSUList<JKRFileLoader> lbl_80434354; // JKRFileLoader::sVolumeList
class JKRArcFinder;
class JKRFileLoader : public JKRDisposer {
public:
JKRFileLoader(void);
@@ -15,19 +20,19 @@ public:
public:
/* vt[03] */ virtual void unmount(void);
/* vt[04] */ virtual void becomeCurrent(char const*) = 0;
/* vt[05] */ virtual void* getResource(char const*) = 0;
/* vt[06] */ virtual void* getResource(u32, char const*) = 0;
/* vt[07] */ virtual void readResource(void*, u32, char const*) = 0;
/* vt[08] */ virtual void readResource(void*, u32, u32, char const*) = 0;
/* vt[04] */ virtual bool becomeCurrent(const char*) = 0;
/* vt[05] */ virtual void* getResource(const char*) = 0;
/* vt[06] */ virtual void* getResource(u32, const char*) = 0;
/* vt[07] */ virtual u32 readResource(void*, u32, const char*) = 0;
/* vt[08] */ virtual u32 readResource(void*, u32, u32, const char*) = 0;
/* vt[09] */ virtual void removeResourceAll(void) = 0;
/* vt[10] */ virtual bool removeResource(void*) = 0;
/* vt[11] */ virtual bool detachResource(void*) = 0;
/* vt[12] */ virtual void getResSize(void const*) const = 0;
/* vt[13] */ virtual void countFile(char const*) const = 0;
/* vt[14] */ virtual void getFirstFile(char const*) const = 0;
/* vt[12] */ virtual u32 getResSize(const void*) const = 0;
/* vt[13] */ virtual u32 countFile(const char*) const = 0;
/* vt[14] */ virtual JKRArcFinder* getFirstFile(const char*) const = 0;
private:
protected:
/* 0x00 */ // vtable
/* 0x04 */ // JKRDisposer
/* 0x18 */ JSULink<JKRFileLoader> mFileLoaderLink;
@@ -44,6 +49,10 @@ public:
static bool detachResource(void*, JKRFileLoader*);
static JKRFileLoader* findVolume(char const**);
static const char* fetchVolumeName(char*, long, char const*);
static JKRFileLoader* getCurrentVolume() { return lbl_80451418; }
static void setCurrentVolume(JKRFileLoader* fileLoader) { lbl_80451418 = fileLoader; }
static JSUList<JKRFileLoader>& getVolumeList() { return lbl_80434354; }
};
#endif
@@ -5,6 +5,7 @@
#include "dolphin/types.h"
enum JKRMemBreakFlag {
JKRMEMBREAK_FLAG_UNKNOWN0 = 0,
_JKRMemBreakFlag_PADDING_32BIT = 0xFFFFFFFF,
};
@@ -20,12 +21,17 @@ public:
/* vt[09] */ void removeResourceAll(void); /* override */
/* vt[10] */ bool removeResource(void*); /* override */
/* vt[15] */ void getExpandedResSize(void const*) const; /* override */
/* vt[16] */ void fetchResource(JKRArchive::SDIFileEntry*, u32*); /* override */
/* vt[17] */ void fetchResource(void*, u32, JKRArchive::SDIFileEntry*, u32*); /* override */
/* vt[15] */ void getExpandedResSize(void const*) const; /* override */
/* vt[16] */ void* fetchResource(SDIFileEntry*, u32*); /* override */
/* vt[17] */ void* fetchResource(void*, u32, SDIFileEntry*, u32*); /* override */
public:
static void fetchResource_subroutine(u8*, u32, u8*, u32, int);
private:
/* 0x00 */ // vtable
/* 0x04 */ // JKRArchive
u8 unk[20];
};
#endif
@@ -1,4 +1,4 @@
/* fetchResource__13JKRMemArchiveFPQ210JKRArchive12SDIFileEntryPUl __ct__13JKRMemArchiveFlQ210JKRArchive15EMountDirection::fetchResource(JKRArchive::SDIFileEntry *, unsigned long *) */
/* fetchResource__13JKRMemArchiveFP12SDIFileEntryPUl __ct__13JKRMemArchiveFlQ210JKRArchive15EMountDirection::fetchResource(JKRArchive::SDIFileEntry *, unsigned long *) */
/* missing reference */
/* 802D6DDC 002D3D1C 80 04 00 10 */ lwz r0, 0x10(r4)
/* 802D6DE0 002D3D20 28 00 00 00 */ cmplwi r0, 0
@@ -1,4 +1,4 @@
/* fetchResource__13JKRMemArchiveFPvUlPQ210JKRArchive12SDIFileEntryPUl __ct__13JKRMemArchiveFlQ210JKRArchive15EMountDirection::fetchResource(void *, unsigned long, JKRArchive::SDIFileEntry *, unsigned long *) */
/* fetchResource__13JKRMemArchiveFPvUlP12SDIFileEntryPUl __ct__13JKRMemArchiveFlQ210JKRArchive15EMountDirection::fetchResource(void *, unsigned long, JKRArchive::SDIFileEntry *, unsigned long *) */
/* missing reference */
/* 802D6E10 002D3D50 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 802D6E14 002D3D54 7C 08 02 A6 */ mflr r0
+1 -1
View File
@@ -77,7 +77,7 @@ void DVDGetCurrentDiskID(void);
s32 DVDFastOpen(long, DVDFileInfo*);
int DVDGetCommandBlockStatus(DVDCommandBlock*);
s32 DVDReadAsyncPrio(DVDFileInfo*, void*, long, long, DVDCallback, long);
void DVDConvertPathToEntrynum(void);
s32 DVDConvertPathToEntrynum(const char*);
DVDState DVDGetDriveStatus(void);
s32 DVDCheckDisk(void);
+13 -19
View File
@@ -155,7 +155,7 @@ void JUTWarningConsole_f(void);
void VIWaitForRetrace(void);
void func_80361C24(void);
void memcpy(void*, void*, int);
void func_80365470(void);
int tolower(int);
void func_803688DC(void);
void func_80368ABC(void);
void func_80368BE4(void);
@@ -168,8 +168,6 @@ void JKRArchive_NS_findIdxResource(void);
void JKRArchive_NS_findNameResource(void);
void JKRArchive_NS_findPtrResource(void);
void JKRArchive_NS_findTypeResource(void);
void JKRCompArchive(void);
void func_80365470(void);
void DCStoreRange(void*, u32);
void DCInvalidateRange(void*, u32);
void DCStoreRangeNoSync(void);
@@ -374,7 +372,6 @@ void JUTWarningConsole_f(void);
void func_80361C24(void);
void func_80365470(void);
void func_803688DC(void);
void func_80368ABC(void);
void func_80368BE4(void);
@@ -390,9 +387,6 @@ void JKRArchive_NS_findIdxResource(void);
void JKRArchive_NS_findNameResource(void);
void JKRArchive_NS_findPtrResource(void);
void JKRArchive_NS_findTypeResource(void);
void JKRCompArchive(void);
void func_80365470(void);
void JKRDvdRipper_NS_loadToMainRAM_X1_(void);
void func_80003458(void);
@@ -868,7 +862,7 @@ void check_mount_already__10JKRArchiveFlP7JKRHeap(void);
void countFile__10JKRArchiveCFPCc(void);
void countResource__10JKRArchiveCFv(void);
void detachResource__10JKRArchiveFPv(void);
void getDirEntry__10JKRArchiveCFPQ210JKRArchive9SDirEntryUl(void);
void getDirEntry__10JKRArchiveCFP9SDirEntryUl(void);
void getFileAttribute__10JKRArchiveCFUl(void);
void getFirstFile__10JKRArchiveCFPCc(void);
void getGlbResource__10JKRArchiveFUlPCcP10JKRArchive(void);
@@ -901,9 +895,9 @@ void findNameResource__10JKRArchiveCFPCc(void);
void findPtrResource__10JKRArchiveCFPCv(void);
void findResType__10JKRArchiveCFUl(void);
void findTypeResource__10JKRArchiveCFUlPCc(void);
void getExpandSize__10JKRArchiveCFPQ210JKRArchive12SDIFileEntry(void);
void getExpandSize__10JKRArchiveCFP12SDIFileEntry(void);
void isSameName__10JKRArchiveCFRQ210JKRArchive8CArcNameUlUs(void);
void setExpandSize__10JKRArchiveFPQ210JKRArchive12SDIFileEntryUl(void);
void setExpandSize__10JKRArchiveFP12SDIFileEntryUl(void);
void store__Q210JKRArchive8CArcNameFPCc(void);
void store__Q210JKRArchive8CArcNameFPCcc(void);
};
@@ -912,8 +906,8 @@ void store__Q210JKRArchive8CArcNameFPCcc(void);
extern "C" {
void __ct__13JKRDvdArchiveFlQ210JKRArchive15EMountDirection(void);
void __dt__13JKRDvdArchiveFv(void);
void fetchResource__13JKRDvdArchiveFPQ210JKRArchive12SDIFileEntryPUl(void);
void fetchResource__13JKRDvdArchiveFPvUlPQ210JKRArchive12SDIFileEntryPUl(void);
void fetchResource__13JKRDvdArchiveFP12SDIFileEntryPUl(void);
void fetchResource__13JKRDvdArchiveFPvUlP12SDIFileEntryPUl(void);
void fetchResource_subroutine__13JKRDvdArchiveFlUlUlP7JKRHeapiiPPUc(void);
void fetchResource_subroutine__13JKRDvdArchiveFlUlUlPUcUlii(void);
void getExpandedResSize__13JKRDvdArchiveCFPCv(void);
@@ -925,8 +919,8 @@ extern "C" {
void __ct__13JKRMemArchiveFPvUl15JKRMemBreakFlag(void);
void __ct__13JKRMemArchiveFlQ210JKRArchive15EMountDirection(void);
void __dt__13JKRMemArchiveFv(void);
void fetchResource__13JKRMemArchiveFPQ210JKRArchive12SDIFileEntryPUl(void);
void fetchResource__13JKRMemArchiveFPvUlPQ210JKRArchive12SDIFileEntryPUl(void);
void fetchResource__13JKRMemArchiveFP12SDIFileEntryPUl(void);
void fetchResource__13JKRMemArchiveFPvUlP12SDIFileEntryPUl(void);
void fetchResource_subroutine__13JKRMemArchiveFPUcUlPUcUli(void);
void getExpandedResSize__13JKRMemArchiveCFPCv(void);
void open__13JKRMemArchiveFPvUl15JKRMemBreakFlag(void);
@@ -940,11 +934,11 @@ extern "C" {
void __ct__14JKRAramArchiveFlQ210JKRArchive15EMountDirection(void);
void __dt__14JKRAramArchiveFv(void);
void __dt__7JKRFileFv(void);
void fetchResource__14JKRAramArchiveFPQ210JKRArchive12SDIFileEntryPUl(void);
void fetchResource__14JKRAramArchiveFPvUlPQ210JKRArchive12SDIFileEntryPUl(void);
void fetchResource__14JKRAramArchiveFP12SDIFileEntryPUl(void);
void fetchResource__14JKRAramArchiveFPvUlP12SDIFileEntryPUl(void);
void fetchResource_subroutine__14JKRAramArchiveFUlUlP7JKRHeapiPPUc(void);
void fetchResource_subroutine__14JKRAramArchiveFUlUlPUcUli(void);
void getAramAddress_Entry__14JKRAramArchiveFPQ210JKRArchive12SDIFileEntry(void);
void getAramAddress_Entry__14JKRAramArchiveFP12SDIFileEntry(void);
void getAramAddress__14JKRAramArchiveFPCc(void);
void getExpandedResSize__14JKRAramArchiveCFPCv(void);
void open__14JKRAramArchiveFl(void);
@@ -954,8 +948,8 @@ void open__14JKRAramArchiveFl(void);
extern "C" {
void __ct__14JKRCompArchiveFlQ210JKRArchive15EMountDirection(void);
void __dt__14JKRCompArchiveFv(void);
void fetchResource__14JKRCompArchiveFPQ210JKRArchive12SDIFileEntryPUl(void);
void fetchResource__14JKRCompArchiveFPvUlPQ210JKRArchive12SDIFileEntryPUl(void);
void fetchResource__14JKRCompArchiveFP12SDIFileEntryPUl(void);
void fetchResource__14JKRCompArchiveFPvUlP12SDIFileEntryPUl(void);
void getExpandedResSize__14JKRCompArchiveCFPCv(void);
void open__14JKRCompArchiveFl(void);
void removeResourceAll__14JKRCompArchiveFv(void);
+1 -1
View File
@@ -240,7 +240,7 @@ extern double lbl_80455FB8; // JKernel::@697 = 4.50359962737049
extern u8 lbl_8039CE50; // "allocFromHead: cannot alloc memory (0x%x byte).\n"
extern double lbl_80455FB0; // JKernel::@695 = 4.503601774854144E15
extern float lbl_80455FA8; // JKernel::@693 = 100.0
extern u8 lbl_80451420; // JKRArchive::sCurrentDirID
extern u32 lbl_80451420; // JKRArchive::sCurrentDirID
extern u8 lbl_803CC288; // JKRArchive::__vt
// d_item
+10 -10
View File
@@ -897,8 +897,8 @@ readResource__10JKRArchiveFPvUlPCc
readResource__10JKRArchiveFPvUlUlPCc
removeResourceAll__10JKRArchiveFv
removeResource__10JKRArchiveFPv
getExpandSize__10JKRArchiveCFPQ210JKRArchive12SDIFileEntry
setExpandSize__10JKRArchiveFPQ210JKRArchive12SDIFileEntryUl
getExpandSize__10JKRArchiveCFP12SDIFileEntry
setExpandSize__10JKRArchiveFP12SDIFileEntryUl
item_func_HEART__Fv
item_func_GREEN_RUPEE__Fv
item_func_BLUE_RUPEE__Fv
@@ -1277,23 +1277,23 @@ setExpandSize__10JKRArchiveFPQ210JKRArchive12SDIFileEntryUl
item_getcheck_func_KEY_OF_FILONE__Fv
isInsect__FUc
__dt__13JKRDvdArchiveFv
fetchResource__13JKRDvdArchiveFPQ210JKRArchive12SDIFileEntryPUl
fetchResource__13JKRDvdArchiveFPvUlPQ210JKRArchive12SDIFileEntryPUl
fetchResource__13JKRDvdArchiveFP12SDIFileEntryPUl
fetchResource__13JKRDvdArchiveFPvUlP12SDIFileEntryPUl
getExpandedResSize__13JKRDvdArchiveCFPCv
__dt__13JKRMemArchiveFv
fetchResource__13JKRMemArchiveFPQ210JKRArchive12SDIFileEntryPUl
fetchResource__13JKRMemArchiveFPvUlPQ210JKRArchive12SDIFileEntryPUl
fetchResource__13JKRMemArchiveFP12SDIFileEntryPUl
fetchResource__13JKRMemArchiveFPvUlP12SDIFileEntryPUl
getExpandedResSize__13JKRMemArchiveCFPCv
removeResourceAll__13JKRMemArchiveFv
removeResource__13JKRMemArchiveFPv
__dt__14JKRAramArchiveFv
__dt__7JKRFileFv
fetchResource__14JKRAramArchiveFPQ210JKRArchive12SDIFileEntryPUl
fetchResource__14JKRAramArchiveFPvUlPQ210JKRArchive12SDIFileEntryPUl
fetchResource__14JKRAramArchiveFP12SDIFileEntryPUl
fetchResource__14JKRAramArchiveFPvUlP12SDIFileEntryPUl
getExpandedResSize__14JKRAramArchiveCFPCv
__dt__14JKRCompArchiveFv
fetchResource__14JKRCompArchiveFPQ210JKRArchive12SDIFileEntryPUl
fetchResource__14JKRCompArchiveFPvUlPQ210JKRArchive12SDIFileEntryPUl
fetchResource__14JKRCompArchiveFP12SDIFileEntryPUl
fetchResource__14JKRCompArchiveFPvUlP12SDIFileEntryPUl
getExpandedResSize__14JKRCompArchiveCFPCv
removeResourceAll__14JKRCompArchiveFv
removeResource__14JKRCompArchiveFPv
+3 -3
View File
@@ -18,17 +18,17 @@ asm void JKRAramArchive::open(long) {
#include "JSystem/JKernel/JKRAramArchive/asm/func_802D72A8.s"
}
asm void JKRAramArchive::fetchResource(JKRArchive::SDIFileEntry*, u32*) {
asm void* JKRAramArchive::fetchResource(SDIFileEntry*, u32*) {
nofralloc
#include "JSystem/JKernel/JKRAramArchive/asm/func_802D75E0.s"
}
asm void JKRAramArchive::fetchResource(void*, u32, JKRArchive::SDIFileEntry*, u32*) {
asm void* JKRAramArchive::fetchResource(void*, u32, SDIFileEntry*, u32*) {
nofralloc
#include "JSystem/JKernel/JKRAramArchive/asm/func_802D76F4.s"
}
asm void JKRAramArchive::getAramAddress_Entry(JKRArchive::SDIFileEntry*) {
asm void JKRAramArchive::getAramAddress_Entry(SDIFileEntry*) {
nofralloc
#include "JSystem/JKernel/JKRAramArchive/asm/func_802D77F8.s"
}
+188 -45
View File
@@ -1,78 +1,221 @@
#include "JSystem/JKernel/JKRArchive/JKRArchive.h"
#include "global.h"
asm JKRArchive::JKRArchive(long, JKRArchive::EMountMode) {
nofralloc
#include "JSystem/JKernel/JKRArchive/asm/func_802D6294.s"
JKRArchive::JKRArchive(long entryNumber, JKRArchive::EMountMode mountMode) {
mIsMounted = false;
mMountMode = mountMode;
mMountCount = 1;
field_0x58 = 1;
mHeap = JKRHeap::findFromRoot(this);
if (mHeap == NULL) {
mHeap = JKRHeap::getCurrentHeap();
}
mEntryNum = entryNumber;
if (getCurrentVolume() == NULL) {
setCurrentVolume(this);
setCurrentDirID(0);
}
}
asm JKRArchive::~JKRArchive() {
nofralloc
#include "JSystem/JKernel/JKRArchive/asm/func_802D6334.s"
JKRArchive::~JKRArchive() {}
bool JKRArchive::isSameName(JKRArchive::CArcName& name, u32 nameOffset, u16 nameHash) const {
u16 hash = name.getHash();
if (hash != nameHash)
return false;
return strcmp(mStringTable + nameOffset, name.getString()) == 0;
}
asm void JKRArchive::isSameName(JKRArchive::CArcName&, u32, unsigned short) const {
nofralloc
#include "JSystem/JKernel/JKRArchive/asm/func_802D6394.s"
SDirEntry* JKRArchive::findResType(u32 type) const {
SDirEntry* node = mNodes;
u32 count = 0;
while (count < mArcInfoBlock->num_nodes) {
if (node->type == type) {
return node;
}
node++;
count++;
}
return NULL;
}
asm void JKRArchive::findResType(u32) const {
nofralloc
#include "JSystem/JKernel/JKRArchive/asm/func_802D63E0.s"
SDirEntry* JKRArchive::findDirectory(const char* name, u32 directoryId) const {
if (name == NULL) {
return mNodes + directoryId;
}
CArcName arcName(&name, '/');
SDirEntry* dirEntry = mNodes + directoryId;
SDIFileEntry* fileEntry = mFiles + dirEntry->first_file_index;
for (int i = 0; i < dirEntry->num_entries; fileEntry++, i++) {
// regalloc doesn't like fileEntry->getNameHash()
if (isSameName(arcName, fileEntry->getNameOffset(), fileEntry->name_hash)) {
if (fileEntry->isDirectory()) {
return findDirectory(name, fileEntry->data_offset);
}
break;
}
}
return NULL;
}
asm void JKRArchive::findDirectory(char const*, u32) const {
nofralloc
#include "JSystem/JKernel/JKRArchive/asm/func_802D641C.s"
SDIFileEntry* JKRArchive::findTypeResource(u32 type, const char* name) const {
if (type) {
CArcName arcName(name);
SDirEntry* dirEntry = findResType(type);
if (dirEntry) {
SDIFileEntry* fileEntry = mFiles + dirEntry->first_file_index;
for (int i = 0; i < dirEntry->num_entries; fileEntry++, i++) {
if (isSameName(arcName, fileEntry->getNameOffset(), fileEntry->getNameHash())) {
return fileEntry;
}
}
}
}
return NULL;
}
asm void JKRArchive::findTypeResource(u32, char const*) const {
nofralloc
#include "JSystem/JKernel/JKRArchive/asm/func_802D64F4.s"
SDIFileEntry* JKRArchive::findFsResource(const char* name, u32 directoryId) const {
if (name) {
CArcName arcName(&name, '/');
SDirEntry* dirEntry = mNodes + directoryId;
SDIFileEntry* fileEntry = mFiles + dirEntry->first_file_index;
for (int i = 0; i < dirEntry->num_entries; fileEntry++, i++) {
// regalloc doesn't like fileEntry->getNameHash()
if (isSameName(arcName, fileEntry->getNameOffset(), fileEntry->name_hash)) {
if (fileEntry->isDirectory()) {
return findFsResource(name, fileEntry->data_offset);
}
if (name == NULL) {
return fileEntry;
}
return NULL;
}
}
}
return NULL;
}
asm void JKRArchive::findFsResource(char const*, u32) const {
nofralloc
#include "JSystem/JKernel/JKRArchive/asm/func_802D65A4.s"
SDIFileEntry* JKRArchive::findIdxResource(u32 fileIndex) const {
if (fileIndex < mArcInfoBlock->num_file_entries) {
return mFiles + fileIndex;
}
return NULL;
}
asm void JKRArchive::findIdxResource(u32) const {
nofralloc
#include "JSystem/JKernel/JKRArchive/asm/func_802D6684.s"
SDIFileEntry* JKRArchive::findNameResource(const char* name) const {
SDIFileEntry* fileEntry = mFiles;
CArcName arcName(name);
for (int i = 0; i < mArcInfoBlock->num_file_entries; fileEntry++, i++) {
if (isSameName(arcName, fileEntry->getNameOffset(), fileEntry->getNameHash())) {
return fileEntry;
}
}
return NULL;
}
asm void JKRArchive::findNameResource(char const*) const {
nofralloc
#include "JSystem/JKernel/JKRArchive/asm/func_802D66AC.s"
SDIFileEntry* JKRArchive::findPtrResource(const void* resource) const {
SDIFileEntry* fileEntry = mFiles;
for (int i = 0; i < mArcInfoBlock->num_file_entries; fileEntry++, i++) {
if (fileEntry->data == resource) {
return fileEntry;
}
}
return NULL;
}
asm void JKRArchive::findPtrResource(void const*) const {
nofralloc
#include "JSystem/JKernel/JKRArchive/asm/func_802D6734.s"
SDIFileEntry* JKRArchive::findIdResource(u16 id) const {
if (id != 0xFFFF) {
if (id < mArcInfoBlock->num_file_entries) {
SDIFileEntry* fileEntry = mFiles + id;
if (fileEntry->file_id == id && fileEntry->isUnknownFlag1()) {
return fileEntry;
}
}
SDIFileEntry* fileEntry = mFiles;
for (int i = 0; i < mArcInfoBlock->num_file_entries; fileEntry++, i++) {
if (fileEntry->file_id == id && fileEntry->isUnknownFlag1()) {
return fileEntry;
}
}
}
return NULL;
}
asm void JKRArchive::findIdResource(unsigned short) const {
nofralloc
#include "JSystem/JKernel/JKRArchive/asm/func_802D6770.s"
void JKRArchive::CArcName::store(const char* name) {
mHash = 0;
s32 length = 0;
while (*name) {
s32 ch = tolower(*name);
mHash = ch + mHash * 3;
if (length < (s32)ARRAY_SIZE(mData)) {
mData[length++] = ch;
}
name++;
}
mLength = (u16)length;
mData[length] = 0;
}
asm void JKRArchive::CArcName::store(char const*) {
nofralloc
#include "JSystem/JKernel/JKRArchive/asm/func_802D67F4.s"
const char* JKRArchive::CArcName::store(const char* name, char endChar) {
mHash = 0;
s32 length = 0;
while (*name && *name != endChar) {
s32 lch = tolower((int)*name);
mHash = lch + mHash * 3;
if (length < (s32)ARRAY_SIZE(mData)) {
mData[length++] = lch;
}
name++;
}
mLength = (u16)length;
mData[length] = 0;
if (*name == 0)
return NULL;
return name + 1;
}
asm const char* JKRArchive::CArcName::store(char const*, char) {
nofralloc
#include "JSystem/JKernel/JKRArchive/asm/func_802D6884.s"
}
// using include vs the JKRArchivePri.s file yields different code
// super weird...
#if 0
#if NONMATCHING
void JKRArchive::setExpandSize(SDIFileEntry* fileEntry, u32 expandSize) {
int index = fileEntry - mFiles;
if (!mExpandedSize)
return;
#if 0
asm void JKRArchive::setExpandSize(JKRArchive::SDIFileEntry*, u32) {
if (index <= mArcInfoBlock->num_file_entries)
return;
mExpandedSize[index] = expandSize;
}
#else
asm void JKRArchive::setExpandSize(SDIFileEntry* fileEntry, u32 expandSize) {
nofralloc
#include "JSystem/JKernel/JKRArchive/asm/func_802D693C.s"
}
asm void JKRArchive::getExpandSize(JKRArchive::SDIFileEntry*) const {
}
#endif
asm void JKRArchive::getExpandSize(SDIFileEntry*) const {
nofralloc
#include "JSystem/JKernel/JKRArchive/asm/func_802D6978.s"
}
+297 -70
View File
@@ -1,119 +1,346 @@
#include "JSystem/JKernel/JKRAramArchive/JKRAramArchive.h"
#include "JSystem/JKernel/JKRArchive/JKRArchive.h"
#include "JSystem/JKernel/JKRCompArchive/JKRCompArchive.h"
#include "JSystem/JKernel/JKRDvdArchive/JKRDvdArchive.h"
#include "JSystem/JKernel/JKRFileFinder/JKRFileFinder.h"
#include "JSystem/JKernel/JKRFileLoader/JKRFileLoader.h"
#include "JSystem/JKernel/JKRMemArchive/JKRMemArchive.h"
#include "dvd/dvd.h"
#include "global.h"
asm void JKRArchive::check_mount_already(long, JKRHeap*) {
nofralloc
#include "JSystem/JKernel/JKRArchive/asm/func_802D5778.s"
JKRArchive* JKRArchive::check_mount_already(s32 entryNum, JKRHeap* heap) {
if (heap == NULL) {
heap = JKRHeap::getCurrentHeap();
}
JSUList<JKRFileLoader>& volumeList = getVolumeList();
JSUListIterator<JKRFileLoader> iterator;
for (iterator = volumeList.getFirst(); iterator != volumeList.getEnd(); ++iterator) {
if (iterator->getVolumeType() == 'RARC') {
JKRArchive* archive = (JKRArchive*)iterator.getObject();
if (archive->mEntryNum == entryNum && archive->mHeap == heap) {
archive->mMountCount++;
return archive;
}
}
}
return NULL;
}
asm void JKRArchive::mount(char const*, JKRArchive::EMountMode, JKRHeap*,
JKRArchive::EMountDirection) {
nofralloc
#include "JSystem/JKernel/JKRArchive/asm/func_802D57E4.s"
JKRArchive* JKRArchive::mount(const char* path, JKRArchive::EMountMode mountMode, JKRHeap* heap,
JKRArchive::EMountDirection mountDirection) {
s32 entryNum = DVDConvertPathToEntrynum(path);
if (entryNum < 0)
return NULL;
return mount(entryNum, mountMode, heap, mountDirection);
}
asm void JKRArchive::mount(void*, JKRHeap*, JKRArchive::EMountDirection) {
nofralloc
#include "JSystem/JKernel/JKRArchive/asm/func_802D5840.s"
JKRArchive* JKRArchive::mount(void* ptr, JKRHeap* heap,
JKRArchive::EMountDirection mountDirection) {
JKRArchive* archive = check_mount_already((s32)ptr, heap);
if (archive)
return archive;
int alignment;
if (mountDirection == JKRArchive::HEAD) {
alignment = 4;
} else {
alignment = -4;
}
archive = new (heap, alignment) JKRMemArchive(ptr, 0xFFFF, JKRMEMBREAK_FLAG_UNKNOWN0);
return archive;
}
asm void JKRArchive::mount(long, JKRArchive::EMountMode, JKRHeap*, JKRArchive::EMountDirection) {
nofralloc
#include "JSystem/JKernel/JKRArchive/asm/func_802D58C8.s"
JKRArchive* JKRArchive::mount(s32 entryNum, JKRArchive::EMountMode mountMode, JKRHeap* heap,
JKRArchive::EMountDirection mountDirection) {
JKRArchive* archive = check_mount_already(entryNum, heap);
if (archive != NULL) {
return archive;
} else {
int alignment;
if (mountDirection == JKRArchive::HEAD) {
alignment = 4;
} else {
alignment = -4;
}
JKRArchive* archive;
switch (mountMode) {
case JKRArchive::MOUNT_MEM:
archive = new (heap, alignment) JKRMemArchive(entryNum, mountDirection);
break;
case JKRArchive::MOUNT_ARAM:
archive = new (heap, alignment) JKRAramArchive(entryNum, mountDirection);
break;
case JKRArchive::MOUNT_DVD:
archive = new (heap, alignment) JKRDvdArchive(entryNum, mountDirection);
break;
case JKRArchive::MOUNT_COMP:
archive = new (heap, alignment) JKRCompArchive(entryNum, mountDirection);
break;
}
if (archive && archive->getMountMode() == JKRArchive::UNKNOWN_MOUNT_MODE) {
delete archive;
archive = NULL;
}
return archive;
}
}
asm void JKRArchive::becomeCurrent(char const*) {
nofralloc
#include "JSystem/JKernel/JKRArchive/asm/func_802D5A38.s"
bool JKRArchive::becomeCurrent(const char* path) {
SDirEntry* dirEntry;
if (*path == '/') {
path++;
if (*path == '\0')
path = NULL;
dirEntry = findDirectory(path, 0);
} else {
dirEntry = findDirectory(path, getCurrentDirID());
}
bool found = dirEntry != NULL;
if (found) {
setCurrentVolume(this);
setCurrentDirID(dirEntry - mNodes);
}
return found;
}
asm bool JKRArchive::getDirEntry(JKRArchive::SDirEntry*, u32) const {
nofralloc
#include "JSystem/JKernel/JKRArchive/asm/func_802D5AC0.s"
bool JKRArchive::getDirEntry(SDirEntry* dirEntry, u32 index) const {
SDIFileEntry* fileEntry = findIdxResource(index);
if (!fileEntry)
return false;
dirEntry->other.flags = fileEntry->getFlags();
dirEntry->other.id = fileEntry->getFileID();
dirEntry->name = mStringTable + fileEntry->getNameOffset();
return true;
}
asm void JKRArchive::getGlbResource(u32, char const*, JKRArchive*) {
nofralloc
#include "JSystem/JKernel/JKRArchive/asm/func_802D5B38.s"
void* JKRArchive::getGlbResource(u32 param_1, const char* path, JKRArchive* archive) {
void* resource = NULL;
if (archive) {
return archive->getResource(param_1, path);
}
JSUList<JKRFileLoader>& volumeList = getVolumeList();
JSUListIterator<JKRFileLoader> iterator;
for (iterator = volumeList.getFirst(); iterator != volumeList.getEnd(); ++iterator) {
if (iterator->getVolumeType() == 'RARC') {
resource = iterator->getResource(param_1, path);
if (resource)
break;
}
}
return resource;
}
asm void* JKRArchive::getResource(char const*) {
nofralloc
#include "JSystem/JKernel/JKRArchive/asm/func_802D5BE8.s"
void* JKRArchive::getResource(const char* path) {
SDIFileEntry* fileEntry;
if (*path == '/') {
fileEntry = findFsResource(path + 1, 0);
} else {
fileEntry = findFsResource(path, getCurrentDirID());
}
if (fileEntry) {
return fetchResource(fileEntry, NULL);
}
return NULL;
}
asm void* JKRArchive::getResource(u32, char const*) {
nofralloc
#include "JSystem/JKernel/JKRArchive/asm/func_802D5C64.s"
void* JKRArchive::getResource(u32 type, const char* path) {
SDIFileEntry* fileEntry;
if (type == 0 || type == '????') {
fileEntry = findNameResource(path);
} else {
fileEntry = findTypeResource(type, path);
}
if (fileEntry) {
return fetchResource(fileEntry, NULL);
}
return NULL;
}
asm void JKRArchive::getIdxResource(u32) {
nofralloc
#include "JSystem/JKernel/JKRArchive/asm/func_802D5CE4.s"
void* JKRArchive::getIdxResource(u32 index) {
SDIFileEntry* fileEntry = findIdxResource(index);
if (fileEntry) {
return fetchResource(fileEntry, NULL);
}
return NULL;
}
asm void JKRArchive::getResource(unsigned short) {
nofralloc
#include "JSystem/JKernel/JKRArchive/asm/func_802D5D38.s"
void* JKRArchive::getResource(u16 id) {
SDIFileEntry* fileEntry = findIdResource(id);
if (fileEntry) {
return fetchResource(fileEntry, NULL);
}
return NULL;
}
asm void JKRArchive::readResource(void*, u32, u32, char const*) {
nofralloc
#include "JSystem/JKernel/JKRArchive/asm/func_802D5D8C.s"
u32 JKRArchive::readResource(void* buffer, u32 bufferSize, u32 type, const char* path) {
SDIFileEntry* fileEntry;
if (type == 0 || type == '????') {
fileEntry = findNameResource(path);
} else {
fileEntry = findTypeResource(type, path);
}
if (fileEntry) {
u32 resourceSize;
fetchResource(buffer, bufferSize, fileEntry, &resourceSize);
return resourceSize;
}
return 0;
}
asm void JKRArchive::readResource(void*, u32, char const*) {
nofralloc
#include "JSystem/JKernel/JKRArchive/asm/func_802D5E30.s"
u32 JKRArchive::readResource(void* buffer, u32 bufferSize, const char* path) {
SDIFileEntry* fileEntry;
if (*path == '/') {
fileEntry = findFsResource(path + 1, 0);
} else {
fileEntry = findFsResource(path, getCurrentDirID());
}
if (fileEntry) {
u32 resourceSize;
fetchResource(buffer, bufferSize, fileEntry, &resourceSize);
return resourceSize;
}
return 0;
}
asm void JKRArchive::readIdxResource(void*, u32, u32) {
nofralloc
#include "JSystem/JKernel/JKRArchive/asm/func_802D5ECC.s"
u32 JKRArchive::readIdxResource(void* buffer, u32 bufferSize, u32 index) {
SDIFileEntry* fileEntry = findIdxResource(index);
if (fileEntry) {
u32 resourceSize;
fetchResource(buffer, bufferSize, fileEntry, &resourceSize);
return resourceSize;
}
return 0;
}
asm void JKRArchive::readResource(void*, u32, unsigned short) {
nofralloc
#include "JSystem/JKernel/JKRArchive/asm/func_802D5F40.s"
u32 JKRArchive::readResource(void* buffer, u32 bufferSize, u16 id) {
SDIFileEntry* fileEntry = findIdResource(id);
if (fileEntry) {
u32 resourceSize;
fetchResource(buffer, bufferSize, fileEntry, &resourceSize);
return resourceSize;
}
return 0;
}
asm void JKRArchive::removeResourceAll(void) {
nofralloc
#include "JSystem/JKernel/JKRArchive/asm/func_802D5FB4.s"
void JKRArchive::removeResourceAll(void) {
if (mArcInfoBlock && mMountMode != MOUNT_MEM) {
SDIFileEntry* fileEntry = mFiles;
for (int i = 0; i < mArcInfoBlock->num_file_entries; fileEntry++, i++) {
if (fileEntry->data) {
JKRFreeToHeap(mHeap, fileEntry->data);
fileEntry->data = NULL;
}
}
}
}
asm bool JKRArchive::removeResource(void*) {
nofralloc
#include "JSystem/JKernel/JKRArchive/asm/func_802D603C.s"
bool JKRArchive::removeResource(void* resource) {
SDIFileEntry* fileEntry = findPtrResource(resource);
if (fileEntry == NULL)
return false;
fileEntry->data = NULL;
JKRFreeToHeap(mHeap, resource);
return true;
}
asm bool JKRArchive::detachResource(void*) {
nofralloc
#include "JSystem/JKernel/JKRArchive/asm/func_802D609C.s"
bool JKRArchive::detachResource(void* resource) {
SDIFileEntry* fileEntry = findPtrResource(resource);
if (fileEntry == NULL)
return false;
fileEntry->data = NULL;
return true;
}
asm void JKRArchive::getResSize(void const*) const {
nofralloc
#include "JSystem/JKernel/JKRArchive/asm/func_802D60D8.s"
u32 JKRArchive::getResSize(const void* resource) const {
SDIFileEntry* fileEntry = findPtrResource(resource);
if (fileEntry == NULL)
return -1;
return fileEntry->data_size;
}
asm void JKRArchive::countResource(void) const {
nofralloc
#include "JSystem/JKernel/JKRArchive/asm/func_802D610C.s"
u32 JKRArchive::countResource(void) const {
u32 count = 0;
for (int i = 0; i < mArcInfoBlock->num_file_entries; i++) {
if (mFiles[i].isUnknownFlag1()) {
count++;
}
}
return count;
}
asm void JKRArchive::countFile(char const*) const {
nofralloc
#include "JSystem/JKernel/JKRArchive/asm/func_802D6150.s"
u32 JKRArchive::countFile(const char* path) const {
SDirEntry* dirEntry;
if (*path == '/') {
path++;
if (*path == '\0')
path = NULL;
dirEntry = findDirectory(path, 0);
} else {
dirEntry = findDirectory(path, getCurrentDirID());
}
if (dirEntry) {
return dirEntry->num_entries;
}
return 0;
}
asm void JKRArchive::getFirstFile(char const*) const {
nofralloc
#include "JSystem/JKernel/JKRArchive/asm/func_802D61B0.s"
JKRArcFinder* JKRArchive::getFirstFile(const char* path) const {
SDirEntry* dirEntry;
if (*path == '/') {
path++;
if (*path == '\0')
path = NULL;
dirEntry = findDirectory(path, 0);
} else {
dirEntry = findDirectory(path, getCurrentDirID());
}
if (dirEntry) {
// don't know what is correct here... for now we're casting away const
return new (JKRHeap::getSystemHeap(), 0)
JKRArcFinder((JKRArchive*)this, dirEntry->first_file_index, (u32)dirEntry->num_entries);
}
return NULL;
}
asm void JKRArchive::getFileAttribute(u32) const {
nofralloc
#include "JSystem/JKernel/JKRArchive/asm/func_802D625C.s"
u32 JKRArchive::getFileAttribute(u32 index) const {
SDIFileEntry* fileEntry = findIdxResource(index);
if (fileEntry) {
return fileEntry->getFlags();
}
return 0;
}
+2 -2
View File
@@ -16,12 +16,12 @@ asm void JKRCompArchive::open(long) {
#include "JSystem/JKernel/JKRCompArchive/asm/func_802D89BC.s"
}
asm void JKRCompArchive::fetchResource(JKRArchive::SDIFileEntry*, u32*) {
asm void* JKRCompArchive::fetchResource(SDIFileEntry*, u32*) {
nofralloc
#include "JSystem/JKernel/JKRCompArchive/asm/func_802D8F40.s"
}
asm void JKRCompArchive::fetchResource(void*, u32, JKRArchive::SDIFileEntry*, u32*) {
asm void* JKRCompArchive::fetchResource(void*, u32, SDIFileEntry*, u32*) {
nofralloc
#include "JSystem/JKernel/JKRCompArchive/asm/func_802D90C0.s"
}
+2 -2
View File
@@ -16,12 +16,12 @@ asm void JKRDvdArchive::open(long) {
#include "JSystem/JKernel/JKRDvdArchive/asm/func_802D7DB4.s"
}
asm void JKRDvdArchive::fetchResource(JKRArchive::SDIFileEntry*, u32*) {
asm void* JKRDvdArchive::fetchResource(SDIFileEntry*, u32*) {
nofralloc
#include "JSystem/JKernel/JKRDvdArchive/asm/func_802D8050.s"
}
asm void JKRDvdArchive::fetchResource(void*, u32, JKRArchive::SDIFileEntry*, u32*) {
asm void* JKRDvdArchive::fetchResource(void*, u32, SDIFileEntry*, u32*) {
nofralloc
#include "JSystem/JKernel/JKRDvdArchive/asm/func_802D8168.s"
}
+6 -7
View File
@@ -3,10 +3,9 @@
#include "dvd/dvd.h"
#include "global.h"
JKRArcFinder::JKRArcFinder(JKRArchive* archive, long startIndex, long numEntries)
: JKRFileFinder() {
JKRArcFinder::JKRArcFinder(JKRArchive* archive, s32 startIndex, u32 numEntries) : JKRFileFinder() {
mArchive = archive;
mIsAvailable = numEntries > 0;
mIsAvailable = (s32)numEntries > 0;
mStartIndex = startIndex;
mEndIndex = startIndex + numEntries - 1;
mNextIndex = mStartIndex;
@@ -14,7 +13,7 @@ JKRArcFinder::JKRArcFinder(JKRArchive* archive, long startIndex, long numEntries
}
bool JKRArcFinder::findNextFile(void) {
JKRArchive::SDirEntry entry;
SDirEntry entry;
if (mIsAvailable) {
mIsAvailable = !(mNextIndex > mEndIndex);
@@ -22,8 +21,8 @@ bool JKRArcFinder::findNextFile(void) {
mIsAvailable = mArchive->getDirEntry(&entry, mNextIndex);
mEntryName = entry.name;
mEntryFileIndex = mNextIndex;
mEntryId = entry.id;
mEntryTypeFlags = entry.type_flags;
mEntryId = entry.other.id;
mEntryTypeFlags = entry.other.flags;
mIsFileOrDirectory = (mEntryTypeFlags >> 1) & 1;
mNextIndex++;
}
@@ -63,7 +62,7 @@ bool JKRDvdFinder::findNextFile(void) {
if (mIsAvailable) {
mIsFileOrDirectory = directoryEntry.is_directory != 0;
mEntryName = directoryEntry.name;
mEntryNameOffset = directoryEntry.name;
mEntryFileIndex = directoryEntry.entry_number;
mEntryId = 0;
+3 -3
View File
@@ -26,12 +26,12 @@ asm void JKRMemArchive::open(void*, u32, JKRMemBreakFlag) {
#include "JSystem/JKernel/JKRMemArchive/asm/func_802D6D30.s"
}
asm void JKRMemArchive::fetchResource(JKRArchive::SDIFileEntry*, u32*) {
asm void* JKRMemArchive::fetchResource(SDIFileEntry*, u32*) {
nofralloc
#include "JSystem/JKernel/JKRMemArchive/asm/func_802D6DDC.s"
}
asm void JKRMemArchive::fetchResource(void*, u32, JKRArchive::SDIFileEntry*, u32*) {
asm void* JKRMemArchive::fetchResource(void*, u32, SDIFileEntry*, u32*) {
nofralloc
#include "JSystem/JKernel/JKRMemArchive/asm/func_802D6E10.s"
}
@@ -51,7 +51,7 @@ asm void JKRMemArchive::fetchResource_subroutine(u8*, u32, u8*, u32, int) {
#include "JSystem/JKernel/JKRMemArchive/asm/func_802D6F5C.s"
}
asm void JKRMemArchive::getExpandedResSize(void const*) const {
asm void JKRMemArchive::getExpandedResSize(const void*) const {
nofralloc
#include "JSystem/JKernel/JKRMemArchive/asm/func_802D7030.s"
}