Types and functions for JKRThread, JKRFile, JKRDvdFile, JKRFileCache... (#17)

* Added JSUListIterator and decompiled JKRHeap::dispose_subroutine

* JKRDisposer!

* only 4 functions not OK in JKRHeap

* JKRThread asm functions

* more JKRThread

* JKRThreadSwitch

* JKRThread::JKRThread

* More JKRTHread functions and vtable

* fixed bad merge

* update JKRThread and JKRThreadSwitch to use new virtual inheritance

* save before asmsplit.py script

* JKRFile

* JKRDvdFile

* JKRFileCache

* JKRFileFinder

* JKRFileLoader

* JKRAssertHeap

* JKRExpHeap

* JKRSolidHeap

* fixed type and functions definitions

* JKRArchive (Pub)

* missed file

* JKRArchive

* forgot obj_files.mk

* fixed merge error and class members

* class members

* removed unused asm files

* added names to global variables

* class members for JKRHeap, JKRExpHeap, JKRSolidHeap, and JKRFileCache.
This commit is contained in:
Jonathan Wase
2020-12-05 18:45:10 +01:00
committed by GitHub
parent 3dc3739ebd
commit fb1217e3f9
299 changed files with 9551 additions and 4958 deletions
+114 -4
View File
@@ -1,8 +1,118 @@
#ifndef JKRARCHIVE_H_
#define JKRARCHIVE_H_
#ifndef __JKRARCHIVEPUB_H__
#define __JKRARCHIVEPUB_H__
class JKRArchive {
#include "dolphin/types.h"
#include "JSystem/JKernel/JKRFileLoader/JKRFileLoader.h"
class JKRHeap;
class JKRDvdFile;
class JKRArchive : public JKRFileLoader {
public:
class SDirEntry {};
class SDIFileEntry {};
enum EMountMode {
UNKNOWN_MOUNT_MODE = 0,
MEM = 1,
ARAM = 2,
DVD = 3,
COMP = 4,
};
enum EMountDirection {
UNKNOWN_MOUNT_DIRECTION = 0,
HEAD = 1,
TAIL = 2,
};
class CArcName {
public:
CArcName() {
}
CArcName(char const* data) {
this->store(data);
}
CArcName(char const** data, char endChar) {
*data = this->store(*data, endChar);
}
void store(char const* data);
const char* store(char const* data, char endChar);
u16 getHash() {
return mHash;
}
const char* getString() {
return mData;
}
u16 mHash;
u16 mLength;
char mData[64];
};
public:
JKRArchive(long, EMountMode);
virtual ~JKRArchive();
// virtual unmount from JKRFileLoader
virtual void becomeCurrent(char const*);
virtual void getResource(char const*);
virtual void getResource(u32, char const*);
virtual void readResource(void*, u32, char const*);
virtual void readResource(void*, u32, u32, char const*);
virtual void removeResourceAll(void);
virtual void removeResource(void*);
virtual void detachResource(void*);
virtual void getResSize(void const*) const;
virtual void countFile(char const*) const;
virtual void getFirstFile(char const*) const;
virtual void vt_func_16();
virtual void vt_func_17();
virtual void vt_func_18();
virtual void setExpandSize(SDIFileEntry*, u32);
virtual void getExpandSize(SDIFileEntry*) const;
void check_mount_already(long, JKRHeap*);
void mount(char const*, EMountMode, JKRHeap*, EMountDirection);
void mount(void*, JKRHeap*, EMountDirection);
void mount(long, EMountMode, JKRHeap*, EMountDirection);
bool getDirEntry(SDirEntry*, u32) const;
void getGlbResource(u32, char const*, JKRArchive*);
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;
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;
};
#endif
#endif
@@ -0,0 +1,33 @@
/* 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
@@ -0,0 +1,27 @@
/* 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
@@ -0,0 +1,40 @@
/* 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 JKRMemArchive_X1_
/* 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
@@ -0,0 +1,109 @@
/* 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 JKRMemArchive
/* 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 JKRAramArchive
/* 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 JKRDvdArchive
/* 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 JKRCompArchive
/* 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
@@ -0,0 +1,40 @@
/* 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
@@ -0,0 +1,34 @@
/* 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
@@ -0,0 +1,52 @@
/* 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
@@ -0,0 +1,37 @@
/* 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
@@ -0,0 +1,39 @@
/* 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
@@ -0,0 +1,25 @@
/* 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
@@ -0,0 +1,25 @@
/* 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
@@ -0,0 +1,48 @@
/* 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
@@ -0,0 +1,45 @@
/* 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
@@ -0,0 +1,33 @@
/* 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
@@ -0,0 +1,33 @@
/* 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
@@ -0,0 +1,40 @@
/* 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
@@ -0,0 +1,28 @@
/* 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
@@ -0,0 +1,19 @@
/* 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
@@ -0,0 +1,17 @@
/* 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
@@ -0,0 +1,22 @@
/* 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
@@ -0,0 +1,31 @@
/* 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
@@ -0,0 +1,51 @@
/* 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
@@ -0,0 +1,18 @@
/* 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
@@ -0,0 +1,44 @@
/* __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
@@ -0,0 +1,27 @@
/* __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
@@ -0,0 +1,23 @@
/* 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
@@ -0,0 +1,20 @@
/* 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
@@ -0,0 +1,62 @@
/* 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
@@ -0,0 +1,51 @@
/* 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
@@ -0,0 +1,65 @@
/* 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
@@ -0,0 +1,13 @@
/* 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
@@ -0,0 +1,40 @@
/* 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
@@ -0,0 +1,20 @@
/* 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
@@ -0,0 +1,39 @@
/* 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
@@ -0,0 +1,41 @@
/* 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
@@ -0,0 +1,54 @@
/* 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
@@ -0,0 +1,19 @@
/* setExpandSize__10JKRArchiveFPQ210JKRArchive12SDIFileEntryUl __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
/* 802D6944 002D3884 38 00 00 14 */ li r0, 0x14
/* 802D6948 002D3888 7C C4 03 D6 */ divw r6, r4, r0
/* 802D694C 002D388C 80 83 00 50 */ lwz r4, 0x50(r3)
/* 802D6950 002D3890 28 04 00 00 */ cmplwi r4, 0
/* 802D6954 002D3894 4D 82 00 20 */ beqlr
/* 802D6958 002D3898 80 63 00 44 */ lwz r3, 0x44(r3)
/* 802D695C 002D389C 80 03 00 08 */ lwz r0, 8(r3)
/* 802D6960 002D38A0 7C 06 00 40 */ cmplw r6, r0
/* 802D6964 002D38A4 41 80 00 08 */ blt lbl_802D696C
/* 802D6968 002D38A8 4E 80 00 20 */ blr
lbl_802D696C:
/* 802D696C 002D38AC 54 C0 10 3A */ slwi r0, r6, 2
/* 802D6970 002D38B0 7C A4 01 2E */ stwx r5, r4, r0
/* 802D6974 002D38B4 4E 80 00 20 */ blr
@@ -0,0 +1,20 @@
/* getExpandSize__10JKRArchiveCFPQ210JKRArchive12SDIFileEntry __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
/* 802D6980 002D38C0 38 00 00 14 */ li r0, 0x14
/* 802D6984 002D38C4 7C A4 03 D6 */ divw r5, r4, r0
/* 802D6988 002D38C8 80 83 00 50 */ lwz r4, 0x50(r3)
/* 802D698C 002D38CC 28 04 00 00 */ cmplwi r4, 0
/* 802D6990 002D38D0 41 82 00 14 */ beq lbl_802D69A4
/* 802D6994 002D38D4 80 63 00 44 */ lwz r3, 0x44(r3)
/* 802D6998 002D38D8 80 03 00 08 */ lwz r0, 8(r3)
/* 802D699C 002D38DC 7C 05 00 40 */ cmplw r5, r0
/* 802D69A0 002D38E0 41 80 00 0C */ blt lbl_802D69AC
lbl_802D69A4:
/* 802D69A4 002D38E4 38 60 00 00 */ li r3, 0
/* 802D69A8 002D38E8 4E 80 00 20 */ blr
lbl_802D69AC:
/* 802D69AC 002D38EC 54 A0 10 3A */ slwi r0, r5, 2
/* 802D69B0 002D38F0 7C 64 00 2E */ lwzx r3, r4, r0
/* 802D69B4 002D38F4 4E 80 00 20 */ blr
@@ -0,0 +1,33 @@
#ifndef __JKRASSERTHEAP_H__
#define __JKRASSERTHEAP_H__
#include "dolphin/types.h"
#include "JSystem/JKernel/JKRHeap/JKRHeap.h"
class JKRAssertHeap : public JKRHeap {
public:
JKRAssertHeap(void*, unsigned long, JKRHeap*, bool);
virtual ~JKRAssertHeap();
static void create(JKRHeap*);
virtual u32 getHeapType(void);
virtual bool check(void);
virtual bool dump(void);
virtual void dump_sort(void);
virtual void do_destroy(void);
virtual void* do_alloc(u32, int);
virtual void do_free(void*);
virtual void do_freeAll(void);
virtual void do_freeTail(void);
virtual void do_fillFreeArea(void);
virtual s32 do_resize(void*, u32);
virtual s32 do_getSize(void*);
virtual s32 do_getFreeSize(void);
virtual void* do_getMaxFreeBlock(void);
virtual s32 do_getTotalFreeSize(void);
virtual u8 do_changeGroupID(u8 param_1);
virtual u8 do_getCurrentGroupId(void);
};
#endif
@@ -0,0 +1,17 @@
/* __ct__13JKRAssertHeapFPvUlP7JKRHeapb __ct__13JKRAssertHeapFPvUlP7JKRHeapb::__ct(void *, unsigned long, JKRHeap *, bool) */
/* JKRAssertHeap */
/* 802D12C4 002CE204 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 802D12C8 002CE208 7C 08 02 A6 */ mflr r0
/* 802D12CC 002CE20C 90 01 00 14 */ stw r0, 0x14(r1)
/* 802D12D0 002CE210 93 E1 00 0C */ stw r31, 0xc(r1)
/* 802D12D4 002CE214 7C 7F 1B 78 */ mr r31, r3
/* 802D12D8 002CE218 4B FF CE 61 */ bl __ct__7JKRHeapFPvUlP7JKRHeapb
/* 802D12DC 002CE21C 3C 60 80 3D */ lis r3, lbl_803CC090@ha
/* 802D12E0 002CE220 38 03 C0 90 */ addi r0, r3, lbl_803CC090@l
/* 802D12E4 002CE224 90 1F 00 00 */ stw r0, 0(r31)
/* 802D12E8 002CE228 7F E3 FB 78 */ mr r3, r31
/* 802D12EC 002CE22C 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 802D12F0 002CE230 80 01 00 14 */ lwz r0, 0x14(r1)
/* 802D12F4 002CE234 7C 08 03 A6 */ mtlr r0
/* 802D12F8 002CE238 38 21 00 10 */ addi r1, r1, 0x10
/* 802D12FC 002CE23C 4E 80 00 20 */ blr
@@ -0,0 +1,29 @@
/* __dt__13JKRAssertHeapFv __ct__13JKRAssertHeapFPvUlP7JKRHeapb::__dt(void) */
/* missing reference */
/* 802D1300 002CE240 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 802D1304 002CE244 7C 08 02 A6 */ mflr r0
/* 802D1308 002CE248 90 01 00 14 */ stw r0, 0x14(r1)
/* 802D130C 002CE24C 93 E1 00 0C */ stw r31, 0xc(r1)
/* 802D1310 002CE250 93 C1 00 08 */ stw r30, 8(r1)
/* 802D1314 002CE254 7C 7E 1B 79 */ or. r30, r3, r3
/* 802D1318 002CE258 7C 9F 23 78 */ mr r31, r4
/* 802D131C 002CE25C 41 82 00 30 */ beq lbl_802D134C
/* 802D1320 002CE260 3C 80 80 3D */ lis r4, lbl_803CC090@ha
/* 802D1324 002CE264 38 04 C0 90 */ addi r0, r4, lbl_803CC090@l
/* 802D1328 002CE268 90 1E 00 00 */ stw r0, 0(r30)
/* 802D132C 002CE26C 4B FF D7 95 */ bl dispose__7JKRHeapFv
/* 802D1330 002CE270 7F C3 F3 78 */ mr r3, r30
/* 802D1334 002CE274 38 80 00 00 */ li r4, 0
/* 802D1338 002CE278 4B FF CF 2D */ bl __dt__7JKRHeapFv
/* 802D133C 002CE27C 7F E0 07 35 */ extsh. r0, r31
/* 802D1340 002CE280 40 81 00 0C */ ble lbl_802D134C
/* 802D1344 002CE284 7F C3 F3 78 */ mr r3, r30
/* 802D1348 002CE288 4B FF D9 F5 */ bl __dl__FPv
lbl_802D134C:
/* 802D134C 002CE28C 7F C3 F3 78 */ mr r3, r30
/* 802D1350 002CE290 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 802D1354 002CE294 83 C1 00 08 */ lwz r30, 8(r1)
/* 802D1358 002CE298 80 01 00 14 */ lwz r0, 0x14(r1)
/* 802D135C 002CE29C 7C 08 03 A6 */ mtlr r0
/* 802D1360 002CE2A0 38 21 00 10 */ addi r1, r1, 0x10
/* 802D1364 002CE2A4 4E 80 00 20 */ blr
@@ -0,0 +1,34 @@
/* create__13JKRAssertHeapFP7JKRHeap __ct__13JKRAssertHeapFPvUlP7JKRHeapb::create(JKRHeap *) */
/* JKRAssertHeap_NS_create */
/* 802D1368 002CE2A8 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 802D136C 002CE2AC 7C 08 02 A6 */ mflr r0
/* 802D1370 002CE2B0 90 01 00 14 */ stw r0, 0x14(r1)
/* 802D1374 002CE2B4 93 E1 00 0C */ stw r31, 0xc(r1)
/* 802D1378 002CE2B8 7C 7F 1B 79 */ or. r31, r3, r3
/* 802D137C 002CE2BC 40 82 00 08 */ bne lbl_802D1384
/* 802D1380 002CE2C0 83 ED 8D F8 */ lwz r31, lbl_80451378-_SDA_BASE_(r13)
lbl_802D1384:
/* 802D1384 002CE2C4 38 60 00 70 */ li r3, 0x70
/* 802D1388 002CE2C8 38 80 00 10 */ li r4, 0x10
/* 802D138C 002CE2CC 7F E5 FB 78 */ mr r5, r31
/* 802D1390 002CE2D0 4B FF D0 E5 */ bl alloc__7JKRHeapFUliP7JKRHeap
/* 802D1394 002CE2D4 7C 60 1B 79 */ or. r0, r3, r3
/* 802D1398 002CE2D8 40 82 00 0C */ bne lbl_802D13A4
/* 802D139C 002CE2DC 38 60 00 00 */ li r3, 0
/* 802D13A0 002CE2E0 48 00 00 24 */ b lbl_802D13C4
lbl_802D13A4:
/* 802D13A4 002CE2E4 41 82 00 1C */ beq lbl_802D13C0
/* 802D13A8 002CE2E8 38 80 00 00 */ li r4, 0
/* 802D13AC 002CE2EC 38 A0 00 00 */ li r5, 0
/* 802D13B0 002CE2F0 7F E6 FB 78 */ mr r6, r31
/* 802D13B4 002CE2F4 38 E0 00 00 */ li r7, 0
/* 802D13B8 002CE2F8 4B FF FF 0D */ bl __ct__13JKRAssertHeapFPvUlP7JKRHeapb
/* 802D13BC 002CE2FC 7C 60 1B 78 */ mr r0, r3
lbl_802D13C0:
/* 802D13C0 002CE300 7C 03 03 78 */ mr r3, r0
lbl_802D13C4:
/* 802D13C4 002CE304 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 802D13C8 002CE308 80 01 00 14 */ lwz r0, 0x14(r1)
/* 802D13CC 002CE30C 7C 08 03 A6 */ mtlr r0
/* 802D13D0 002CE310 38 21 00 10 */ addi r1, r1, 0x10
/* 802D13D4 002CE314 4E 80 00 20 */ blr
@@ -0,0 +1,14 @@
/* do_destroy__13JKRAssertHeapFv __ct__13JKRAssertHeapFPvUlP7JKRHeapb::do_destroy(void) */
/* missing reference */
/* 802D13D8 002CE318 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 802D13DC 002CE31C 7C 08 02 A6 */ mflr r0
/* 802D13E0 002CE320 90 01 00 14 */ stw r0, 0x14(r1)
/* 802D13E4 002CE324 38 80 FF FF */ li r4, -1
/* 802D13E8 002CE328 81 83 00 00 */ lwz r12, 0(r3)
/* 802D13EC 002CE32C 81 8C 00 08 */ lwz r12, 8(r12)
/* 802D13F0 002CE330 7D 89 03 A6 */ mtctr r12
/* 802D13F4 002CE334 4E 80 04 21 */ bctrl
/* 802D13F8 002CE338 80 01 00 14 */ lwz r0, 0x14(r1)
/* 802D13FC 002CE33C 7C 08 03 A6 */ mtlr r0
/* 802D1400 002CE340 38 21 00 10 */ addi r1, r1, 0x10
/* 802D1404 002CE344 4E 80 00 20 */ blr
@@ -0,0 +1,5 @@
/* getHeapType__13JKRAssertHeapFv __ct__13JKRAssertHeapFPvUlP7JKRHeapb::getHeapType(void) */
/* missing reference */
/* 802D1408 002CE348 3C 60 41 53 */ lis r3, 0x41535448@ha
/* 802D140C 002CE34C 38 63 54 48 */ addi r3, r3, 0x41535448@l
/* 802D1410 002CE350 4E 80 00 20 */ blr
@@ -0,0 +1,4 @@
/* check__13JKRAssertHeapFv __ct__13JKRAssertHeapFPvUlP7JKRHeapb::check(void) */
/* missing reference */
/* 802D1414 002CE354 38 60 00 01 */ li r3, 1
/* 802D1418 002CE358 4E 80 00 20 */ blr
@@ -0,0 +1,4 @@
/* dump__13JKRAssertHeapFv __ct__13JKRAssertHeapFPvUlP7JKRHeapb::dump(void) */
/* missing reference */
/* 802D141C 002CE35C 38 60 00 01 */ li r3, 1
/* 802D1420 002CE360 4E 80 00 20 */ blr
@@ -0,0 +1,4 @@
/* dump_sort__13JKRAssertHeapFv __ct__13JKRAssertHeapFPvUlP7JKRHeapb::dump_sort(void) */
/* missing reference */
/* 802D1424 002CE364 38 60 00 01 */ li r3, 1
/* 802D1428 002CE368 4E 80 00 20 */ blr
@@ -0,0 +1,4 @@
/* do_changeGroupID__13JKRAssertHeapFUc __ct__13JKRAssertHeapFPvUlP7JKRHeapb::do_changeGroupID(unsigned char) */
/* missing reference */
/* 802D142C 002CE36C 38 60 00 00 */ li r3, 0
/* 802D1430 002CE370 4E 80 00 20 */ blr
@@ -0,0 +1,4 @@
/* do_getCurrentGroupId__13JKRAssertHeapFv __ct__13JKRAssertHeapFPvUlP7JKRHeapb::do_getCurrentGroupId(void) */
/* missing reference */
/* 802D1434 002CE374 38 60 00 00 */ li r3, 0
/* 802D1438 002CE378 4E 80 00 20 */ blr
@@ -0,0 +1,4 @@
/* do_alloc__13JKRAssertHeapFUli __ct__13JKRAssertHeapFPvUlP7JKRHeapb::do_alloc(unsigned long, int) */
/* missing reference */
/* 802D143C 002CE37C 38 60 00 00 */ li r3, 0
/* 802D1440 002CE380 4E 80 00 20 */ blr
@@ -0,0 +1,3 @@
/* do_free__13JKRAssertHeapFPv __ct__13JKRAssertHeapFPvUlP7JKRHeapb::do_free(void *) */
/* missing reference */
/* 802D1444 002CE384 4E 80 00 20 */ blr
@@ -0,0 +1,3 @@
/* do_freeAll__13JKRAssertHeapFv __ct__13JKRAssertHeapFPvUlP7JKRHeapb::do_freeAll(void) */
/* missing reference */
/* 802D1448 002CE388 4E 80 00 20 */ blr
@@ -0,0 +1,3 @@
/* do_freeTail__13JKRAssertHeapFv __ct__13JKRAssertHeapFPvUlP7JKRHeapb::do_freeTail(void) */
/* missing reference */
/* 802D144C 002CE38C 4E 80 00 20 */ blr
@@ -0,0 +1,3 @@
/* do_fillFreeArea__13JKRAssertHeapFv __ct__13JKRAssertHeapFPvUlP7JKRHeapb::do_fillFreeArea(void) */
/* missing reference */
/* 802D1450 002CE390 4E 80 00 20 */ blr
@@ -0,0 +1,4 @@
/* do_resize__13JKRAssertHeapFPvUl __ct__13JKRAssertHeapFPvUlP7JKRHeapb::do_resize(void *, unsigned long) */
/* missing reference */
/* 802D1454 002CE394 38 60 00 00 */ li r3, 0
/* 802D1458 002CE398 4E 80 00 20 */ blr
@@ -0,0 +1,4 @@
/* do_getSize__13JKRAssertHeapFPv __ct__13JKRAssertHeapFPvUlP7JKRHeapb::do_getSize(void *) */
/* missing reference */
/* 802D145C 002CE39C 38 60 00 00 */ li r3, 0
/* 802D1460 002CE3A0 4E 80 00 20 */ blr
@@ -0,0 +1,4 @@
/* do_getFreeSize__13JKRAssertHeapFv __ct__13JKRAssertHeapFPvUlP7JKRHeapb::do_getFreeSize(void) */
/* missing reference */
/* 802D1464 002CE3A4 38 60 00 00 */ li r3, 0
/* 802D1468 002CE3A8 4E 80 00 20 */ blr
@@ -0,0 +1,4 @@
/* do_getMaxFreeBlock__13JKRAssertHeapFv __ct__13JKRAssertHeapFPvUlP7JKRHeapb::do_getMaxFreeBlock(void) */
/* missing reference */
/* 802D146C 002CE3AC 38 60 00 00 */ li r3, 0
/* 802D1470 002CE3B0 4E 80 00 20 */ blr
@@ -0,0 +1,4 @@
/* do_getTotalFreeSize__13JKRAssertHeapFv __ct__13JKRAssertHeapFPvUlP7JKRHeapb::do_getTotalFreeSize(void) */
/* missing reference */
/* 802D1474 002CE3B4 38 60 00 00 */ li r3, 0
/* 802D1478 002CE3B8 4E 80 00 20 */ blr
@@ -9,7 +9,6 @@ class JKRDisposer {
public:
JKRDisposer();
virtual ~JKRDisposer();
virtual void callAllDisposer() = 0;
public:
JKRHeap* mHeap;
@@ -0,0 +1,59 @@
#ifndef __JKRDVDFILE_H__
#define __JKRDVDFILE_H__
#include "dolphin/types.h"
#include "JSystem/JKernel/JKRFile/JKRFile.h"
#include "global.h"
class DVDFileInfo;
class JKRDvdFile : public JKRFile {
public:
JKRDvdFile();
JKRDvdFile(char const*);
JKRDvdFile(long);
~JKRDvdFile();
void initiate(void);
void sync(void);
static void doneProcess(long, DVDFileInfo*);
virtual bool open(char const*);
virtual void close(void);
virtual void readData(void*, long, long);
virtual s32 writeData(void const*, long, long);
virtual s32 getFileSize(void) const;
virtual bool open(long);
int getFileID() const {
return this->mFileID << 2;
}
const u8* getFileInfo() const {
return this->mDvdCommandBlock;
}
int getStatus() {
return DVDGetCommandBlockStatus(&this->mDvdCommandBlock[0]);
}
public:
u8 mMutex1[24];
u8 mMutex2[24];
u32 field_0x4c;
u32 field_0x50;
u32 field_0x54;
u32 field_0x58;
u8 mDvdCommandBlock[48];
s32 mFileID;
s32 mFileSize;
u32 field_0x94;
JKRDvdFile* mDvdFile;
u8 mQueue1[32];
void* mMessages1[1];
u8 mQueue2[32];
void* mMessages2[1];
JSULink<JKRDvdFile> mDvdLink;
void* mOSThread;
};
#endif
@@ -0,0 +1,31 @@
/* __ct__10JKRDvdFileFv __ct__10JKRDvdFileFv::__ct(void) */
/* JKRDvdFile */
/* 802D9584 002D64C4 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 802D9588 002D64C8 7C 08 02 A6 */ mflr r0
/* 802D958C 002D64CC 90 01 00 14 */ stw r0, 0x14(r1)
/* 802D9590 002D64D0 93 E1 00 0C */ stw r31, 0xc(r1)
/* 802D9594 002D64D4 93 C1 00 08 */ stw r30, 8(r1)
/* 802D9598 002D64D8 7C 7E 1B 78 */ mr r30, r3
/* 802D959C 002D64DC 7F C0 F3 78 */ mr r0, r30
/* 802D95A0 002D64E0 7C 1F 03 78 */ mr r31, r0
/* 802D95A4 002D64E4 4B FF 7E D9 */ bl __ct__11JKRDisposerFv
/* 802D95A8 002D64E8 3C 60 80 3D */ lis r3, lbl_803CC328@ha
/* 802D95AC 002D64EC 38 03 C3 28 */ addi r0, r3, lbl_803CC328@l
/* 802D95B0 002D64F0 90 1F 00 00 */ stw r0, 0(r31)
/* 802D95B4 002D64F4 38 00 00 00 */ li r0, 0
/* 802D95B8 002D64F8 98 1F 00 18 */ stb r0, 0x18(r31)
/* 802D95BC 002D64FC 3C 60 80 3D */ lis r3, lbl_803CC438@ha
/* 802D95C0 002D6500 38 03 C4 38 */ addi r0, r3, lbl_803CC438@l
/* 802D95C4 002D6504 90 1E 00 00 */ stw r0, 0(r30)
/* 802D95C8 002D6508 38 7E 00 E4 */ addi r3, r30, 0xe4
/* 802D95CC 002D650C 7F C4 F3 78 */ mr r4, r30
/* 802D95D0 002D6510 48 00 28 2D */ bl __ct__10JSUPtrLinkFPv
/* 802D95D4 002D6514 7F C3 F3 78 */ mr r3, r30
/* 802D95D8 002D6518 48 00 02 0D */ bl initiate__10JKRDvdFileFv
/* 802D95DC 002D651C 7F C3 F3 78 */ mr r3, r30
/* 802D95E0 002D6520 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 802D95E4 002D6524 83 C1 00 08 */ lwz r30, 8(r1)
/* 802D95E8 002D6528 80 01 00 14 */ lwz r0, 0x14(r1)
/* 802D95EC 002D652C 7C 08 03 A6 */ mtlr r0
/* 802D95F0 002D6530 38 21 00 10 */ addi r1, r1, 0x10
/* 802D95F4 002D6534 4E 80 00 20 */ blr
@@ -0,0 +1,46 @@
/* __ct__10JKRDvdFileFPCc __ct__10JKRDvdFileFv::__ct(char const *) */
/* JKRDvdFile_X1_ */
/* 802D95F8 002D6538 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 802D95FC 002D653C 7C 08 02 A6 */ mflr r0
/* 802D9600 002D6540 90 01 00 24 */ stw r0, 0x24(r1)
/* 802D9604 002D6544 39 61 00 20 */ addi r11, r1, 0x20
/* 802D9608 002D6548 48 08 8B D5 */ bl _savegpr_29
/* 802D960C 002D654C 7C 7D 1B 78 */ mr r29, r3
/* 802D9610 002D6550 7C 9F 23 78 */ mr r31, r4
/* 802D9614 002D6554 7F A0 EB 78 */ mr r0, r29
/* 802D9618 002D6558 7C 1E 03 78 */ mr r30, r0
/* 802D961C 002D655C 4B FF 7E 61 */ bl __ct__11JKRDisposerFv
/* 802D9620 002D6560 3C 60 80 3D */ lis r3, lbl_803CC328@ha
/* 802D9624 002D6564 38 03 C3 28 */ addi r0, r3, lbl_803CC328@l
/* 802D9628 002D6568 90 1E 00 00 */ stw r0, 0(r30)
/* 802D962C 002D656C 38 00 00 00 */ li r0, 0
/* 802D9630 002D6570 98 1E 00 18 */ stb r0, 0x18(r30)
/* 802D9634 002D6574 3C 60 80 3D */ lis r3, lbl_803CC438@ha
/* 802D9638 002D6578 38 03 C4 38 */ addi r0, r3, lbl_803CC438@l
/* 802D963C 002D657C 90 1D 00 00 */ stw r0, 0(r29)
/* 802D9640 002D6580 38 7D 00 E4 */ addi r3, r29, 0xe4
/* 802D9644 002D6584 7F A4 EB 78 */ mr r4, r29
/* 802D9648 002D6588 48 00 27 B5 */ bl __ct__10JSUPtrLinkFPv
/* 802D964C 002D658C 7F A3 EB 78 */ mr r3, r29
/* 802D9650 002D6590 48 00 01 95 */ bl initiate__10JKRDvdFileFv
/* 802D9654 002D6594 7F A3 EB 78 */ mr r3, r29
/* 802D9658 002D6598 7F E4 FB 78 */ mr r4, r31
/* 802D965C 002D659C 81 9D 00 00 */ lwz r12, 0(r29)
/* 802D9660 002D65A0 81 8C 00 0C */ lwz r12, 0xc(r12)
/* 802D9664 002D65A4 7D 89 03 A6 */ mtctr r12
/* 802D9668 002D65A8 4E 80 04 21 */ bctrl
/* 802D966C 002D65AC 98 7D 00 18 */ stb r3, 0x18(r29)
/* 802D9670 002D65B0 88 1D 00 18 */ lbz r0, 0x18(r29)
/* 802D9674 002D65B4 28 00 00 00 */ cmplwi r0, 0
/* 802D9678 002D65B8 41 82 00 0C */ beq lbl_802D9684
/* 802D967C 002D65BC 7F A3 EB 78 */ mr r3, r29
/* 802D9680 002D65C0 48 00 00 08 */ b lbl_802D9688
lbl_802D9684:
/* 802D9684 002D65C4 7F A3 EB 78 */ mr r3, r29
lbl_802D9688:
/* 802D9688 002D65C8 39 61 00 20 */ addi r11, r1, 0x20
/* 802D968C 002D65CC 48 08 8B 9D */ bl _restgpr_29
/* 802D9690 002D65D0 80 01 00 24 */ lwz r0, 0x24(r1)
/* 802D9694 002D65D4 7C 08 03 A6 */ mtlr r0
/* 802D9698 002D65D8 38 21 00 20 */ addi r1, r1, 0x20
/* 802D969C 002D65DC 4E 80 00 20 */ blr
@@ -0,0 +1,46 @@
/* __ct__10JKRDvdFileFl __ct__10JKRDvdFileFv::__ct(long) */
/* JKRDvdFile_X2_ */
/* 802D96A0 002D65E0 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 802D96A4 002D65E4 7C 08 02 A6 */ mflr r0
/* 802D96A8 002D65E8 90 01 00 24 */ stw r0, 0x24(r1)
/* 802D96AC 002D65EC 39 61 00 20 */ addi r11, r1, 0x20
/* 802D96B0 002D65F0 48 08 8B 2D */ bl _savegpr_29
/* 802D96B4 002D65F4 7C 7D 1B 78 */ mr r29, r3
/* 802D96B8 002D65F8 7C 9F 23 78 */ mr r31, r4
/* 802D96BC 002D65FC 7F A0 EB 78 */ mr r0, r29
/* 802D96C0 002D6600 7C 1E 03 78 */ mr r30, r0
/* 802D96C4 002D6604 4B FF 7D B9 */ bl __ct__11JKRDisposerFv
/* 802D96C8 002D6608 3C 60 80 3D */ lis r3, lbl_803CC328@ha
/* 802D96CC 002D660C 38 03 C3 28 */ addi r0, r3, lbl_803CC328@l
/* 802D96D0 002D6610 90 1E 00 00 */ stw r0, 0(r30)
/* 802D96D4 002D6614 38 00 00 00 */ li r0, 0
/* 802D96D8 002D6618 98 1E 00 18 */ stb r0, 0x18(r30)
/* 802D96DC 002D661C 3C 60 80 3D */ lis r3, lbl_803CC438@ha
/* 802D96E0 002D6620 38 03 C4 38 */ addi r0, r3, lbl_803CC438@l
/* 802D96E4 002D6624 90 1D 00 00 */ stw r0, 0(r29)
/* 802D96E8 002D6628 38 7D 00 E4 */ addi r3, r29, 0xe4
/* 802D96EC 002D662C 7F A4 EB 78 */ mr r4, r29
/* 802D96F0 002D6630 48 00 27 0D */ bl __ct__10JSUPtrLinkFPv
/* 802D96F4 002D6634 7F A3 EB 78 */ mr r3, r29
/* 802D96F8 002D6638 48 00 00 ED */ bl initiate__10JKRDvdFileFv
/* 802D96FC 002D663C 7F A3 EB 78 */ mr r3, r29
/* 802D9700 002D6640 7F E4 FB 78 */ mr r4, r31
/* 802D9704 002D6644 81 9D 00 00 */ lwz r12, 0(r29)
/* 802D9708 002D6648 81 8C 00 20 */ lwz r12, 0x20(r12)
/* 802D970C 002D664C 7D 89 03 A6 */ mtctr r12
/* 802D9710 002D6650 4E 80 04 21 */ bctrl
/* 802D9714 002D6654 98 7D 00 18 */ stb r3, 0x18(r29)
/* 802D9718 002D6658 88 1D 00 18 */ lbz r0, 0x18(r29)
/* 802D971C 002D665C 28 00 00 00 */ cmplwi r0, 0
/* 802D9720 002D6660 41 82 00 0C */ beq lbl_802D972C
/* 802D9724 002D6664 7F A3 EB 78 */ mr r3, r29
/* 802D9728 002D6668 48 00 00 08 */ b lbl_802D9730
lbl_802D972C:
/* 802D972C 002D666C 7F A3 EB 78 */ mr r3, r29
lbl_802D9730:
/* 802D9730 002D6670 39 61 00 20 */ addi r11, r1, 0x20
/* 802D9734 002D6674 48 08 8A F5 */ bl _restgpr_29
/* 802D9738 002D6678 80 01 00 24 */ lwz r0, 0x24(r1)
/* 802D973C 002D667C 7C 08 03 A6 */ mtlr r0
/* 802D9740 002D6680 38 21 00 20 */ addi r1, r1, 0x20
/* 802D9744 002D6684 4E 80 00 20 */ blr
@@ -0,0 +1,44 @@
/* __dt__10JKRDvdFileFv __ct__10JKRDvdFileFv::__dt(void) */
/* JKRDvdFile_NS_dtor */
/* 802D9748 002D6688 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 802D974C 002D668C 7C 08 02 A6 */ mflr r0
/* 802D9750 002D6690 90 01 00 14 */ stw r0, 0x14(r1)
/* 802D9754 002D6694 93 E1 00 0C */ stw r31, 0xc(r1)
/* 802D9758 002D6698 93 C1 00 08 */ stw r30, 8(r1)
/* 802D975C 002D669C 7C 7E 1B 79 */ or. r30, r3, r3
/* 802D9760 002D66A0 7C 9F 23 78 */ mr r31, r4
/* 802D9764 002D66A4 41 82 00 64 */ beq lbl_802D97C8
/* 802D9768 002D66A8 3C 80 80 3D */ lis r4, lbl_803CC438@ha
/* 802D976C 002D66AC 38 04 C4 38 */ addi r0, r4, lbl_803CC438@l
/* 802D9770 002D66B0 90 1E 00 00 */ stw r0, 0(r30)
/* 802D9774 002D66B4 81 83 00 00 */ lwz r12, 0(r3)
/* 802D9778 002D66B8 81 8C 00 10 */ lwz r12, 0x10(r12)
/* 802D977C 002D66BC 7D 89 03 A6 */ mtctr r12
/* 802D9780 002D66C0 4E 80 04 21 */ bctrl
/* 802D9784 002D66C4 34 1E 00 E4 */ addic. r0, r30, 0xe4
/* 802D9788 002D66C8 41 82 00 10 */ beq lbl_802D9798
/* 802D978C 002D66CC 38 7E 00 E4 */ addi r3, r30, 0xe4
/* 802D9790 002D66D0 38 80 00 00 */ li r4, 0
/* 802D9794 002D66D4 48 00 26 81 */ bl __dt__10JSUPtrLinkFv
lbl_802D9798:
/* 802D9798 002D66D8 28 1E 00 00 */ cmplwi r30, 0
/* 802D979C 002D66DC 41 82 00 1C */ beq lbl_802D97B8
/* 802D97A0 002D66E0 3C 60 80 3D */ lis r3, lbl_803CC328@ha
/* 802D97A4 002D66E4 38 03 C3 28 */ addi r0, r3, lbl_803CC328@l
/* 802D97A8 002D66E8 90 1E 00 00 */ stw r0, 0(r30)
/* 802D97AC 002D66EC 7F C3 F3 78 */ mr r3, r30
/* 802D97B0 002D66F0 38 80 00 00 */ li r4, 0
/* 802D97B4 002D66F4 4B FF 7D 31 */ bl __dt__11JKRDisposerFv
lbl_802D97B8:
/* 802D97B8 002D66F8 7F E0 07 35 */ extsh. r0, r31
/* 802D97BC 002D66FC 40 81 00 0C */ ble lbl_802D97C8
/* 802D97C0 002D6700 7F C3 F3 78 */ mr r3, r30
/* 802D97C4 002D6704 4B FF 55 79 */ bl __dl__FPv
lbl_802D97C8:
/* 802D97C8 002D6708 7F C3 F3 78 */ mr r3, r30
/* 802D97CC 002D670C 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 802D97D0 002D6710 83 C1 00 08 */ lwz r30, 8(r1)
/* 802D97D4 002D6714 80 01 00 14 */ lwz r0, 0x14(r1)
/* 802D97D8 002D6718 7C 08 03 A6 */ mtlr r0
/* 802D97DC 002D671C 38 21 00 10 */ addi r1, r1, 0x10
/* 802D97E0 002D6720 4E 80 00 20 */ blr
@@ -0,0 +1,29 @@
/* initiate__10JKRDvdFileFv __ct__10JKRDvdFileFv::initiate(void) */
/* JKRDvdFile_NS_initiate */
/* 802D97E4 002D6724 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 802D97E8 002D6728 7C 08 02 A6 */ mflr r0
/* 802D97EC 002D672C 90 01 00 14 */ stw r0, 0x14(r1)
/* 802D97F0 002D6730 93 E1 00 0C */ stw r31, 0xc(r1)
/* 802D97F4 002D6734 7C 7F 1B 78 */ mr r31, r3
/* 802D97F8 002D6738 93 E3 00 98 */ stw r31, 0x98(r3)
/* 802D97FC 002D673C 38 7F 00 1C */ addi r3, r31, 0x1c
/* 802D9800 002D6740 48 06 58 09 */ bl OSInitMutex
/* 802D9804 002D6744 38 7F 00 34 */ addi r3, r31, 0x34
/* 802D9808 002D6748 48 06 58 01 */ bl OSInitMutex
/* 802D980C 002D674C 38 7F 00 C0 */ addi r3, r31, 0xc0
/* 802D9810 002D6750 38 9F 00 E0 */ addi r4, r31, 0xe0
/* 802D9814 002D6754 38 A0 00 01 */ li r5, 1
/* 802D9818 002D6758 48 06 51 7D */ bl OSInitMessageQueue
/* 802D981C 002D675C 38 7F 00 9C */ addi r3, r31, 0x9c
/* 802D9820 002D6760 38 9F 00 BC */ addi r4, r31, 0xbc
/* 802D9824 002D6764 38 A0 00 01 */ li r5, 1
/* 802D9828 002D6768 48 06 51 6D */ bl OSInitMessageQueue
/* 802D982C 002D676C 38 00 00 00 */ li r0, 0
/* 802D9830 002D6770 90 1F 00 F4 */ stw r0, 0xf4(r31)
/* 802D9834 002D6774 90 1F 00 50 */ stw r0, 0x50(r31)
/* 802D9838 002D6778 90 1F 00 58 */ stw r0, 0x58(r31)
/* 802D983C 002D677C 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 802D9840 002D6780 80 01 00 14 */ lwz r0, 0x14(r1)
/* 802D9844 002D6784 7C 08 03 A6 */ mtlr r0
/* 802D9848 002D6788 38 21 00 10 */ addi r1, r1, 0x10
/* 802D984C 002D678C 4E 80 00 20 */ blr
@@ -0,0 +1,32 @@
/* open__10JKRDvdFileFPCc __ct__10JKRDvdFileFv::open(char const *) */
/* JKRDvdFile_NS_open */
/* 802D9850 002D6790 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 802D9854 002D6794 7C 08 02 A6 */ mflr r0
/* 802D9858 002D6798 90 01 00 14 */ stw r0, 0x14(r1)
/* 802D985C 002D679C 93 E1 00 0C */ stw r31, 0xc(r1)
/* 802D9860 002D67A0 7C 7F 1B 78 */ mr r31, r3
/* 802D9864 002D67A4 88 03 00 18 */ lbz r0, 0x18(r3)
/* 802D9868 002D67A8 28 00 00 00 */ cmplwi r0, 0
/* 802D986C 002D67AC 40 82 00 40 */ bne lbl_802D98AC
/* 802D9870 002D67B0 7C 83 23 78 */ mr r3, r4
/* 802D9874 002D67B4 38 9F 00 5C */ addi r4, r31, 0x5c
/* 802D9878 002D67B8 48 06 F0 19 */ bl DVDOpen
/* 802D987C 002D67BC 30 03 FF FF */ addic r0, r3, -1
/* 802D9880 002D67C0 7C 00 19 10 */ subfe r0, r0, r3
/* 802D9884 002D67C4 98 1F 00 18 */ stb r0, 0x18(r31)
/* 802D9888 002D67C8 88 1F 00 18 */ lbz r0, 0x18(r31)
/* 802D988C 002D67CC 28 00 00 00 */ cmplwi r0, 0
/* 802D9890 002D67D0 41 82 00 1C */ beq lbl_802D98AC
/* 802D9894 002D67D4 3C 60 80 43 */ lis r3, lbl_8043436C@ha
/* 802D9898 002D67D8 38 63 43 6C */ addi r3, r3, lbl_8043436C@l
/* 802D989C 002D67DC 38 9F 00 E4 */ addi r4, r31, 0xe4
/* 802D98A0 002D67E0 48 00 26 AD */ bl append__10JSUPtrListFP10JSUPtrLink
/* 802D98A4 002D67E4 38 7F 00 5C */ addi r3, r31, 0x5c
/* 802D98A8 002D67E8 48 07 18 D5 */ bl DVDGetCommandBlockStatus
lbl_802D98AC:
/* 802D98AC 002D67EC 88 7F 00 18 */ lbz r3, 0x18(r31)
/* 802D98B0 002D67F0 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 802D98B4 002D67F4 80 01 00 14 */ lwz r0, 0x14(r1)
/* 802D98B8 002D67F8 7C 08 03 A6 */ mtlr r0
/* 802D98BC 002D67FC 38 21 00 10 */ addi r1, r1, 0x10
/* 802D98C0 002D6800 4E 80 00 20 */ blr
@@ -0,0 +1,32 @@
/* open__10JKRDvdFileFl __ct__10JKRDvdFileFv::open(long) */
/* JKRDvdFile_NS_open_X1_ */
/* 802D98C4 002D6804 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 802D98C8 002D6808 7C 08 02 A6 */ mflr r0
/* 802D98CC 002D680C 90 01 00 14 */ stw r0, 0x14(r1)
/* 802D98D0 002D6810 93 E1 00 0C */ stw r31, 0xc(r1)
/* 802D98D4 002D6814 7C 7F 1B 78 */ mr r31, r3
/* 802D98D8 002D6818 88 03 00 18 */ lbz r0, 0x18(r3)
/* 802D98DC 002D681C 28 00 00 00 */ cmplwi r0, 0
/* 802D98E0 002D6820 40 82 00 40 */ bne lbl_802D9920
/* 802D98E4 002D6824 7C 83 23 78 */ mr r3, r4
/* 802D98E8 002D6828 38 9F 00 5C */ addi r4, r31, 0x5c
/* 802D98EC 002D682C 48 06 EF 31 */ bl DVDFastOpen
/* 802D98F0 002D6830 30 03 FF FF */ addic r0, r3, -1
/* 802D98F4 002D6834 7C 00 19 10 */ subfe r0, r0, r3
/* 802D98F8 002D6838 98 1F 00 18 */ stb r0, 0x18(r31)
/* 802D98FC 002D683C 88 1F 00 18 */ lbz r0, 0x18(r31)
/* 802D9900 002D6840 28 00 00 00 */ cmplwi r0, 0
/* 802D9904 002D6844 41 82 00 1C */ beq lbl_802D9920
/* 802D9908 002D6848 3C 60 80 43 */ lis r3, lbl_8043436C@ha
/* 802D990C 002D684C 38 63 43 6C */ addi r3, r3, lbl_8043436C@l
/* 802D9910 002D6850 38 9F 00 E4 */ addi r4, r31, 0xe4
/* 802D9914 002D6854 48 00 26 39 */ bl append__10JSUPtrListFP10JSUPtrLink
/* 802D9918 002D6858 38 7F 00 5C */ addi r3, r31, 0x5c
/* 802D991C 002D685C 48 07 18 61 */ bl DVDGetCommandBlockStatus
lbl_802D9920:
/* 802D9920 002D6860 88 7F 00 18 */ lbz r3, 0x18(r31)
/* 802D9924 002D6864 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 802D9928 002D6868 80 01 00 14 */ lwz r0, 0x14(r1)
/* 802D992C 002D686C 7C 08 03 A6 */ mtlr r0
/* 802D9930 002D6870 38 21 00 10 */ addi r1, r1, 0x10
/* 802D9934 002D6874 4E 80 00 20 */ blr
@@ -0,0 +1,35 @@
/* close__10JKRDvdFileFv __ct__10JKRDvdFileFv::close(void) */
/* missing reference */
/* 802D9938 002D6878 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 802D993C 002D687C 7C 08 02 A6 */ mflr r0
/* 802D9940 002D6880 90 01 00 14 */ stw r0, 0x14(r1)
/* 802D9944 002D6884 93 E1 00 0C */ stw r31, 0xc(r1)
/* 802D9948 002D6888 7C 7F 1B 78 */ mr r31, r3
/* 802D994C 002D688C 88 03 00 18 */ lbz r0, 0x18(r3)
/* 802D9950 002D6890 28 00 00 00 */ cmplwi r0, 0
/* 802D9954 002D6894 41 82 00 4C */ beq lbl_802D99A0
/* 802D9958 002D6898 38 7F 00 5C */ addi r3, r31, 0x5c
/* 802D995C 002D689C 48 06 EF FD */ bl DVDClose
/* 802D9960 002D68A0 2C 03 00 00 */ cmpwi r3, 0
/* 802D9964 002D68A4 41 82 00 20 */ beq lbl_802D9984
/* 802D9968 002D68A8 38 00 00 00 */ li r0, 0
/* 802D996C 002D68AC 98 1F 00 18 */ stb r0, 0x18(r31)
/* 802D9970 002D68B0 3C 60 80 43 */ lis r3, lbl_8043436C@ha
/* 802D9974 002D68B4 38 63 43 6C */ addi r3, r3, lbl_8043436C@l
/* 802D9978 002D68B8 38 9F 00 E4 */ addi r4, r31, 0xe4
/* 802D997C 002D68BC 48 00 27 E1 */ bl remove__10JSUPtrListFP10JSUPtrLink
/* 802D9980 002D68C0 48 00 00 20 */ b lbl_802D99A0
lbl_802D9984:
/* 802D9984 002D68C4 3C 60 80 3A */ lis r3, lbl_8039D260@ha
/* 802D9988 002D68C8 38 63 D2 60 */ addi r3, r3, lbl_8039D260@l
/* 802D998C 002D68CC 38 80 00 D5 */ li r4, 0xd5
/* 802D9990 002D68D0 38 A3 00 0F */ addi r5, r3, 0xf
/* 802D9994 002D68D4 38 C3 00 12 */ addi r6, r3, 0x12
/* 802D9998 002D68D8 4C C6 31 82 */ crclr 6
/* 802D999C 002D68DC 48 00 88 61 */ bl JUTException_NS_panic_f
lbl_802D99A0:
/* 802D99A0 002D68E0 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 802D99A4 002D68E4 80 01 00 14 */ lwz r0, 0x14(r1)
/* 802D99A8 002D68E8 7C 08 03 A6 */ mtlr r0
/* 802D99AC 002D68EC 38 21 00 10 */ addi r1, r1, 0x10
/* 802D99B0 002D68F0 4E 80 00 20 */ blr
@@ -0,0 +1,50 @@
/* readData__10JKRDvdFileFPvll __ct__10JKRDvdFileFv::readData(void *, long, long) */
/* missing reference */
/* 802D99B4 002D68F4 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 802D99B8 002D68F8 7C 08 02 A6 */ mflr r0
/* 802D99BC 002D68FC 90 01 00 24 */ stw r0, 0x24(r1)
/* 802D99C0 002D6900 39 61 00 20 */ addi r11, r1, 0x20
/* 802D99C4 002D6904 48 08 88 11 */ bl _savegpr_27
/* 802D99C8 002D6908 7C 7B 1B 78 */ mr r27, r3
/* 802D99CC 002D690C 7C 9C 23 78 */ mr r28, r4
/* 802D99D0 002D6910 7C BD 2B 78 */ mr r29, r5
/* 802D99D4 002D6914 7C DE 33 78 */ mr r30, r6
/* 802D99D8 002D6918 38 7B 00 1C */ addi r3, r27, 0x1c
/* 802D99DC 002D691C 48 06 56 65 */ bl OSLockMutex
/* 802D99E0 002D6920 80 1B 00 F4 */ lwz r0, 0xf4(r27)
/* 802D99E4 002D6924 28 00 00 00 */ cmplwi r0, 0
/* 802D99E8 002D6928 41 82 00 14 */ beq lbl_802D99FC
/* 802D99EC 002D692C 38 7B 00 1C */ addi r3, r27, 0x1c
/* 802D99F0 002D6930 48 06 57 2D */ bl OSUnlockMutex
/* 802D99F4 002D6934 38 60 FF FF */ li r3, -1
/* 802D99F8 002D6938 48 00 00 58 */ b lbl_802D9A50
lbl_802D99FC:
/* 802D99FC 002D693C 48 06 72 89 */ bl OSGetCurrentThread
/* 802D9A00 002D6940 90 7B 00 F4 */ stw r3, 0xf4(r27)
/* 802D9A04 002D6944 3B E0 FF FF */ li r31, -1
/* 802D9A08 002D6948 38 7B 00 5C */ addi r3, r27, 0x5c
/* 802D9A0C 002D694C 7F 84 E3 78 */ mr r4, r28
/* 802D9A10 002D6950 7F A5 EB 78 */ mr r5, r29
/* 802D9A14 002D6954 7F C6 F3 78 */ mr r6, r30
/* 802D9A18 002D6958 3C E0 80 2E */ lis r7, doneProcess__10JKRDvdFileFlP11DVDFileInfo@ha
/* 802D9A1C 002D695C 38 E7 9A C4 */ addi r7, r7, doneProcess__10JKRDvdFileFlP11DVDFileInfo@l
/* 802D9A20 002D6960 39 00 00 02 */ li r8, 2
/* 802D9A24 002D6964 48 06 F3 31 */ bl DVDReadAsyncPrio
/* 802D9A28 002D6968 2C 03 00 00 */ cmpwi r3, 0
/* 802D9A2C 002D696C 41 82 00 10 */ beq lbl_802D9A3C
/* 802D9A30 002D6970 7F 63 DB 78 */ mr r3, r27
/* 802D9A34 002D6974 48 00 00 3D */ bl sync__10JKRDvdFileFv
/* 802D9A38 002D6978 7C 7F 1B 78 */ mr r31, r3
lbl_802D9A3C:
/* 802D9A3C 002D697C 38 00 00 00 */ li r0, 0
/* 802D9A40 002D6980 90 1B 00 F4 */ stw r0, 0xf4(r27)
/* 802D9A44 002D6984 38 7B 00 1C */ addi r3, r27, 0x1c
/* 802D9A48 002D6988 48 06 56 D5 */ bl OSUnlockMutex
/* 802D9A4C 002D698C 7F E3 FB 78 */ mr r3, r31
lbl_802D9A50:
/* 802D9A50 002D6990 39 61 00 20 */ addi r11, r1, 0x20
/* 802D9A54 002D6994 48 08 87 CD */ bl _restgpr_27
/* 802D9A58 002D6998 80 01 00 24 */ lwz r0, 0x24(r1)
/* 802D9A5C 002D699C 7C 08 03 A6 */ mtlr r0
/* 802D9A60 002D69A0 38 21 00 20 */ addi r1, r1, 0x20
/* 802D9A64 002D69A4 4E 80 00 20 */ blr
@@ -0,0 +1,4 @@
/* writeData__10JKRDvdFileFPCvll __ct__10JKRDvdFileFv::writeData(void const *, long, long) */
/* missing reference */
/* 802D9A68 002D69A8 38 60 FF FF */ li r3, -1
/* 802D9A6C 002D69AC 4E 80 00 20 */ blr
@@ -0,0 +1,23 @@
/* sync__10JKRDvdFileFv __ct__10JKRDvdFileFv::sync(void) */
/* JKRDvdFile_NS_sync */
/* 802D9A70 002D69B0 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 802D9A74 002D69B4 7C 08 02 A6 */ mflr r0
/* 802D9A78 002D69B8 90 01 00 24 */ stw r0, 0x24(r1)
/* 802D9A7C 002D69BC 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 802D9A80 002D69C0 7C 7F 1B 78 */ mr r31, r3
/* 802D9A84 002D69C4 38 7F 00 1C */ addi r3, r31, 0x1c
/* 802D9A88 002D69C8 48 06 55 B9 */ bl OSLockMutex
/* 802D9A8C 002D69CC 38 7F 00 C0 */ addi r3, r31, 0xc0
/* 802D9A90 002D69D0 38 81 00 08 */ addi r4, r1, 8
/* 802D9A94 002D69D4 38 A0 00 01 */ li r5, 1
/* 802D9A98 002D69D8 48 06 50 25 */ bl OSReceiveMessage
/* 802D9A9C 002D69DC 38 00 00 00 */ li r0, 0
/* 802D9AA0 002D69E0 90 1F 00 F4 */ stw r0, 0xf4(r31)
/* 802D9AA4 002D69E4 38 7F 00 1C */ addi r3, r31, 0x1c
/* 802D9AA8 002D69E8 48 06 56 75 */ bl OSUnlockMutex
/* 802D9AAC 002D69EC 80 61 00 08 */ lwz r3, 8(r1)
/* 802D9AB0 002D69F0 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 802D9AB4 002D69F4 80 01 00 24 */ lwz r0, 0x24(r1)
/* 802D9AB8 002D69F8 7C 08 03 A6 */ mtlr r0
/* 802D9ABC 002D69FC 38 21 00 20 */ addi r1, r1, 0x20
/* 802D9AC0 002D6A00 4E 80 00 20 */ blr
@@ -0,0 +1,15 @@
/* doneProcess__10JKRDvdFileFlP11DVDFileInfo __ct__10JKRDvdFileFv::doneProcess(long, DVDFileInfo *) */
/* JKRDvdFile_NS_doneProcess */
/* 802D9AC4 002D6A04 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 802D9AC8 002D6A08 7C 08 02 A6 */ mflr r0
/* 802D9ACC 002D6A0C 90 01 00 14 */ stw r0, 0x14(r1)
/* 802D9AD0 002D6A10 7C 60 1B 78 */ mr r0, r3
/* 802D9AD4 002D6A14 80 64 00 3C */ lwz r3, 0x3c(r4)
/* 802D9AD8 002D6A18 38 63 00 C0 */ addi r3, r3, 0xc0
/* 802D9ADC 002D6A1C 7C 04 03 78 */ mr r4, r0
/* 802D9AE0 002D6A20 38 A0 00 00 */ li r5, 0
/* 802D9AE4 002D6A24 48 06 4F 11 */ bl OSSendMessage
/* 802D9AE8 002D6A28 80 01 00 14 */ lwz r0, 0x14(r1)
/* 802D9AEC 002D6A2C 7C 08 03 A6 */ mtlr r0
/* 802D9AF0 002D6A30 38 21 00 10 */ addi r1, r1, 0x10
/* 802D9AF4 002D6A34 4E 80 00 20 */ blr
@@ -0,0 +1,4 @@
/* getFileSize__10JKRDvdFileCFv __ct__10JKRDvdFileFv::getFileSize( const(void)) */
/* missing reference */
/* 802D9AF8 002D6A38 80 63 00 90 */ lwz r3, 0x90(r3)
/* 802D9AFC 002D6A3C 4E 80 00 20 */ blr
@@ -0,0 +1,19 @@
/* __sinit_JKRDvdFile_cpp __sinit_JKRDvdFile_cpp */
/* missing reference */
/* 802D9B00 002D6A40 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 802D9B04 002D6A44 7C 08 02 A6 */ mflr r0
/* 802D9B08 002D6A48 90 01 00 14 */ stw r0, 0x14(r1)
/* 802D9B0C 002D6A4C 3C 60 80 43 */ lis r3, lbl_8043436C@ha
/* 802D9B10 002D6A50 38 63 43 6C */ addi r3, r3, lbl_8043436C@l
/* 802D9B14 002D6A54 48 00 24 01 */ bl initiate__10JSUPtrListFv
/* 802D9B18 002D6A58 3C 60 80 43 */ lis r3, lbl_8043436C@ha
/* 802D9B1C 002D6A5C 38 63 43 6C */ addi r3, r3, lbl_8043436C@l
/* 802D9B20 002D6A60 3C 80 80 2E */ lis r4, JSUList_NS_dtor_X7_@ha
/* 802D9B24 002D6A64 38 84 9B 44 */ addi r4, r4, JSUList_NS_dtor_X7_@l
/* 802D9B28 002D6A68 3C A0 80 43 */ lis r5, lbl_80434360@ha
/* 802D9B2C 002D6A6C 38 A5 43 60 */ addi r5, r5, lbl_80434360@l
/* 802D9B30 002D6A70 48 08 80 F5 */ bl func_80361C24
/* 802D9B34 002D6A74 80 01 00 14 */ lwz r0, 0x14(r1)
/* 802D9B38 002D6A78 7C 08 03 A6 */ mtlr r0
/* 802D9B3C 002D6A7C 38 21 00 10 */ addi r1, r1, 0x10
/* 802D9B40 002D6A80 4E 80 00 20 */ blr
@@ -0,0 +1,24 @@
/* __dt__21JSUList<10JKRDvdFile>Fv JSUList<10JKRDvdFile>::__dt(void) */
/* JSUList_NS_dtor_X7_ */
/* 802D9B44 002D6A84 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 802D9B48 002D6A88 7C 08 02 A6 */ mflr r0
/* 802D9B4C 002D6A8C 90 01 00 14 */ stw r0, 0x14(r1)
/* 802D9B50 002D6A90 93 E1 00 0C */ stw r31, 0xc(r1)
/* 802D9B54 002D6A94 93 C1 00 08 */ stw r30, 8(r1)
/* 802D9B58 002D6A98 7C 7E 1B 79 */ or. r30, r3, r3
/* 802D9B5C 002D6A9C 7C 9F 23 78 */ mr r31, r4
/* 802D9B60 002D6AA0 41 82 00 1C */ beq lbl_802D9B7C
/* 802D9B64 002D6AA4 38 80 00 00 */ li r4, 0
/* 802D9B68 002D6AA8 48 00 23 45 */ bl __dt__10JSUPtrListFv
/* 802D9B6C 002D6AAC 7F E0 07 35 */ extsh. r0, r31
/* 802D9B70 002D6AB0 40 81 00 0C */ ble lbl_802D9B7C
/* 802D9B74 002D6AB4 7F C3 F3 78 */ mr r3, r30
/* 802D9B78 002D6AB8 4B FF 51 C5 */ bl __dl__FPv
lbl_802D9B7C:
/* 802D9B7C 002D6ABC 7F C3 F3 78 */ mr r3, r30
/* 802D9B80 002D6AC0 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 802D9B84 002D6AC4 83 C1 00 08 */ lwz r30, 8(r1)
/* 802D9B88 002D6AC8 80 01 00 14 */ lwz r0, 0x14(r1)
/* 802D9B8C 002D6ACC 7C 08 03 A6 */ mtlr r0
/* 802D9B90 002D6AD0 38 21 00 10 */ addi r1, r1, 0x10
/* 802D9B94 002D6AD4 4E 80 00 20 */ blr
+106 -5
View File
@@ -1,6 +1,107 @@
class JKRExpHeap {
public:
s32 getTotalUsedSize() const;
u32 heap_size;
#ifndef __JKREXPHEAP_H__
#define __JKREXPHEAP_H__
};
#include "dolphin/types.h"
#include "JSystem/JKernel/JKRHeap/JKRHeap.h"
class JKRExpHeap : public JKRHeap {
public:
class CMemBlock {
public:
void initiate(CMemBlock*, CMemBlock*, u32, u8, u8);
void allocFore(u32, u8, u8, u8, u8);
void allocBack(u32, u8, u8, u8, u8);
void free(JKRExpHeap*);
void getHeapBlock(void*);
void newGroupId(u8 groupId) {
this->mGroupId = groupId;
}
public:
bool isValid() {
return this->mMagic == 0x484d;
}
bool _isTempMemBlock() {
return (this->mFlags & 0x80) ? true : false;
}
int getAlignment() const {
return this->mFlags & 0x7f;
}
void* getContent() {
return (void*)(this + 1);
}
CMemBlock* getPrevBlock() {
return this->mPrev;
}
CMemBlock* getNextBlock() {
return this->mNext;
}
private:
u16 mMagic;
u8 mFlags; // a|bbbbbbb a=temporary b=alignment
u8 mGroupId;
u32 size;
CMemBlock* mPrev;
CMemBlock* mNext;
};
public:
void createRoot(int, bool);
void create(u32, JKRHeap*, bool);
void create(void*, u32, JKRHeap*, bool);
JKRExpHeap(void*, u32, JKRHeap*, bool);
virtual ~JKRExpHeap();
void allocFromHead(u32, int);
void allocFromHead(u32);
void allocFromTail(u32, int);
void allocFromTail(u32);
s32 getUsedSize(u8) const;
s32 getTotalUsedSize(void) const;
void appendUsedList(CMemBlock*);
void setFreeBlock(CMemBlock*, CMemBlock*, CMemBlock*);
void removeFreeBlock(CMemBlock*);
void removeUsedBlock(CMemBlock*);
void recycleFreeBlock(CMemBlock*);
void joinTwoBlocks(CMemBlock*);
public:
virtual u32 getHeapType();
virtual bool check();
virtual void dump_sort();
virtual bool dump();
virtual void do_destroy();
virtual void* do_alloc(u32 size, int alignment);
virtual void do_free(void* ptr);
virtual void do_freeAll();
virtual void do_freeTail();
virtual void do_fillFreeArea();
virtual s32 do_resize(void* ptr, u32 size);
virtual s32 do_getSize(void* ptr);
virtual s32 do_getFreeSize();
virtual void* do_getMaxFreeBlock();
virtual s32 do_getTotalFreeSize();
virtual u8 do_changeGroupID(u8 param_1);
virtual u8 do_getCurrentGroupId();
virtual void state_register(JKRHeap::TState*, u32) const;
virtual bool state_compare(JKRHeap::TState const&, JKRHeap::TState const&) const;
private:
u32 field_0x6c;
u32 field_0x70;
u32 field_0x74;
CMemBlock* mHeadFreeList;
CMemBlock* mTailFreeList;
CMemBlock* mHeadUsedList;
CMemBlock* mTailUsedList;
};
#endif
@@ -0,0 +1,34 @@
/* createRoot__10JKRExpHeapFib __ct__10JKRExpHeapFPvUlP7JKRHeapb::createRoot(int, bool) */
/* JKRExpHeap_NS_createRoot */
/* 802CEDB4 002CBCF4 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 802CEDB8 002CBCF8 7C 08 02 A6 */ mflr r0
/* 802CEDBC 002CBCFC 90 01 00 24 */ stw r0, 0x24(r1)
/* 802CEDC0 002CBD00 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 802CEDC4 002CBD04 7C 65 1B 78 */ mr r5, r3
/* 802CEDC8 002CBD08 7C 9F 23 78 */ mr r31, r4
/* 802CEDCC 002CBD0C 38 60 00 00 */ li r3, 0
/* 802CEDD0 002CBD10 80 0D 8D F8 */ lwz r0, lbl_80451378-_SDA_BASE_(r13)
/* 802CEDD4 002CBD14 28 00 00 00 */ cmplwi r0, 0
/* 802CEDD8 002CBD18 40 82 00 38 */ bne lbl_802CEE10
/* 802CEDDC 002CBD1C 38 61 00 0C */ addi r3, r1, 0xc
/* 802CEDE0 002CBD20 38 81 00 08 */ addi r4, r1, 8
/* 802CEDE4 002CBD24 4B FF F5 95 */ bl initArena__7JKRHeapFPPcPUli
/* 802CEDE8 002CBD28 80 61 00 0C */ lwz r3, 0xc(r1)
/* 802CEDEC 002CBD2C 38 83 00 90 */ addi r4, r3, 0x90
/* 802CEDF0 002CBD30 80 A1 00 08 */ lwz r5, 8(r1)
/* 802CEDF4 002CBD34 38 A5 FF 70 */ addi r5, r5, -144
/* 802CEDF8 002CBD38 28 03 00 00 */ cmplwi r3, 0
/* 802CEDFC 002CBD3C 41 82 00 10 */ beq lbl_802CEE0C
/* 802CEE00 002CBD40 38 C0 00 00 */ li r6, 0
/* 802CEE04 002CBD44 7F E7 FB 78 */ mr r7, r31
/* 802CEE08 002CBD48 48 00 02 29 */ bl __ct__10JKRExpHeapFPvUlP7JKRHeapb
lbl_802CEE0C:
/* 802CEE0C 002CBD4C 90 6D 8D F8 */ stw r3, lbl_80451378-_SDA_BASE_(r13)
lbl_802CEE10:
/* 802CEE10 002CBD50 38 00 00 01 */ li r0, 1
/* 802CEE14 002CBD54 98 03 00 6E */ stb r0, 0x6e(r3)
/* 802CEE18 002CBD58 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 802CEE1C 002CBD5C 80 01 00 24 */ lwz r0, 0x24(r1)
/* 802CEE20 002CBD60 7C 08 03 A6 */ mtlr r0
/* 802CEE24 002CBD64 38 21 00 20 */ addi r1, r1, 0x20
/* 802CEE28 002CBD68 4E 80 00 20 */ blr
@@ -0,0 +1,62 @@
/* create__10JKRExpHeapFUlP7JKRHeapb __ct__10JKRExpHeapFPvUlP7JKRHeapb::create(unsigned long, JKRHeap *, bool) */
/* JKRExpHeap_NS_create */
/* 802CEE2C 002CBD6C 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 802CEE30 002CBD70 7C 08 02 A6 */ mflr r0
/* 802CEE34 002CBD74 90 01 00 24 */ stw r0, 0x24(r1)
/* 802CEE38 002CBD78 39 61 00 20 */ addi r11, r1, 0x20
/* 802CEE3C 002CBD7C 48 09 33 9D */ bl _savegpr_28
/* 802CEE40 002CBD80 7C 9C 23 79 */ or. r28, r4, r4
/* 802CEE44 002CBD84 7C BD 2B 78 */ mr r29, r5
/* 802CEE48 002CBD88 40 82 00 08 */ bne lbl_802CEE50
/* 802CEE4C 002CBD8C 83 8D 8D F8 */ lwz r28, lbl_80451378-_SDA_BASE_(r13)
lbl_802CEE50:
/* 802CEE50 002CBD90 3C 03 00 01 */ addis r0, r3, 1
/* 802CEE54 002CBD94 28 00 FF FF */ cmplwi r0, 0xffff
/* 802CEE58 002CBD98 40 82 00 10 */ bne lbl_802CEE68
/* 802CEE5C 002CBD9C 7F 83 E3 78 */ mr r3, r28
/* 802CEE60 002CBDA0 38 80 00 10 */ li r4, 0x10
/* 802CEE64 002CBDA4 4B FF F9 79 */ bl getMaxAllocatableSize__7JKRHeapFi
lbl_802CEE68:
/* 802CEE68 002CBDA8 54 7F 00 36 */ rlwinm r31, r3, 0, 0, 0x1b
/* 802CEE6C 002CBDAC 28 1F 00 A0 */ cmplwi r31, 0xa0
/* 802CEE70 002CBDB0 40 80 00 0C */ bge lbl_802CEE7C
/* 802CEE74 002CBDB4 38 60 00 00 */ li r3, 0
/* 802CEE78 002CBDB8 48 00 00 70 */ b lbl_802CEEE8
lbl_802CEE7C:
/* 802CEE7C 002CBDBC 7F E3 FB 78 */ mr r3, r31
/* 802CEE80 002CBDC0 38 80 00 10 */ li r4, 0x10
/* 802CEE84 002CBDC4 7F 85 E3 78 */ mr r5, r28
/* 802CEE88 002CBDC8 4B FF F5 ED */ bl alloc__7JKRHeapFUliP7JKRHeap
/* 802CEE8C 002CBDCC 7C 60 1B 78 */ mr r0, r3
/* 802CEE90 002CBDD0 7C 1E 03 79 */ or. r30, r0, r0
/* 802CEE94 002CBDD4 38 9E 00 90 */ addi r4, r30, 0x90
/* 802CEE98 002CBDD8 40 82 00 0C */ bne lbl_802CEEA4
/* 802CEE9C 002CBDDC 38 60 00 00 */ li r3, 0
/* 802CEEA0 002CBDE0 48 00 00 48 */ b lbl_802CEEE8
lbl_802CEEA4:
/* 802CEEA4 002CBDE4 7F C5 F3 78 */ mr r5, r30
/* 802CEEA8 002CBDE8 41 82 00 18 */ beq lbl_802CEEC0
/* 802CEEAC 002CBDEC 38 BF FF 70 */ addi r5, r31, -144
/* 802CEEB0 002CBDF0 7F 86 E3 78 */ mr r6, r28
/* 802CEEB4 002CBDF4 7F A7 EB 78 */ mr r7, r29
/* 802CEEB8 002CBDF8 48 00 01 79 */ bl __ct__10JKRExpHeapFPvUlP7JKRHeapb
/* 802CEEBC 002CBDFC 7C 65 1B 78 */ mr r5, r3
lbl_802CEEC0:
/* 802CEEC0 002CBE00 28 05 00 00 */ cmplwi r5, 0
/* 802CEEC4 002CBE04 40 82 00 18 */ bne lbl_802CEEDC
/* 802CEEC8 002CBE08 7F C3 F3 78 */ mr r3, r30
/* 802CEECC 002CBE0C 38 80 00 00 */ li r4, 0
/* 802CEED0 002CBE10 4B FF F6 31 */ bl free__7JKRHeapFPvP7JKRHeap
/* 802CEED4 002CBE14 38 60 00 00 */ li r3, 0
/* 802CEED8 002CBE18 48 00 00 10 */ b lbl_802CEEE8
lbl_802CEEDC:
/* 802CEEDC 002CBE1C 38 00 00 00 */ li r0, 0
/* 802CEEE0 002CBE20 98 05 00 6E */ stb r0, 0x6e(r5)
/* 802CEEE4 002CBE24 7C A3 2B 78 */ mr r3, r5
lbl_802CEEE8:
/* 802CEEE8 002CBE28 39 61 00 20 */ addi r11, r1, 0x20
/* 802CEEEC 002CBE2C 48 09 33 39 */ bl _restgpr_28
/* 802CEEF0 002CBE30 80 01 00 24 */ lwz r0, 0x24(r1)
/* 802CEEF4 002CBE34 7C 08 03 A6 */ mtlr r0
/* 802CEEF8 002CBE38 38 21 00 20 */ addi r1, r1, 0x20
/* 802CEEFC 002CBE3C 4E 80 00 20 */ blr
@@ -0,0 +1,50 @@
/* create__10JKRExpHeapFPvUlP7JKRHeapb __ct__10JKRExpHeapFPvUlP7JKRHeapb::create(void *, unsigned long, JKRHeap *, bool) */
/* JKRExpHeap_NS_create_X1_ */
/* 802CEF00 002CBE40 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 802CEF04 002CBE44 7C 08 02 A6 */ mflr r0
/* 802CEF08 002CBE48 90 01 00 24 */ stw r0, 0x24(r1)
/* 802CEF0C 002CBE4C 39 61 00 20 */ addi r11, r1, 0x20
/* 802CEF10 002CBE50 48 09 32 CD */ bl _savegpr_29
/* 802CEF14 002CBE54 7C 7D 1B 78 */ mr r29, r3
/* 802CEF18 002CBE58 7C 9E 23 78 */ mr r30, r4
/* 802CEF1C 002CBE5C 7C DF 33 78 */ mr r31, r6
/* 802CEF20 002CBE60 28 05 00 00 */ cmplwi r5, 0
/* 802CEF24 002CBE64 40 82 00 20 */ bne lbl_802CEF44
/* 802CEF28 002CBE68 80 6D 8D F8 */ lwz r3, lbl_80451378-_SDA_BASE_(r13)
/* 802CEF2C 002CBE6C 7F A4 EB 78 */ mr r4, r29
/* 802CEF30 002CBE70 4B FF F9 65 */ bl find__7JKRHeapCFPv
/* 802CEF34 002CBE74 7C 66 1B 79 */ or. r6, r3, r3
/* 802CEF38 002CBE78 40 82 00 10 */ bne lbl_802CEF48
/* 802CEF3C 002CBE7C 38 60 00 00 */ li r3, 0
/* 802CEF40 002CBE80 48 00 00 54 */ b lbl_802CEF94
lbl_802CEF44:
/* 802CEF44 002CBE84 7C A6 2B 78 */ mr r6, r5
lbl_802CEF48:
/* 802CEF48 002CBE88 38 60 00 00 */ li r3, 0
/* 802CEF4C 002CBE8C 28 1E 00 90 */ cmplwi r30, 0x90
/* 802CEF50 002CBE90 40 80 00 0C */ bge lbl_802CEF5C
/* 802CEF54 002CBE94 38 60 00 00 */ li r3, 0
/* 802CEF58 002CBE98 48 00 00 3C */ b lbl_802CEF94
lbl_802CEF5C:
/* 802CEF5C 002CBE9C 38 9D 00 90 */ addi r4, r29, 0x90
/* 802CEF60 002CBEA0 7C 1D F2 14 */ add r0, r29, r30
/* 802CEF64 002CBEA4 7C 04 00 50 */ subf r0, r4, r0
/* 802CEF68 002CBEA8 54 05 00 36 */ rlwinm r5, r0, 0, 0, 0x1b
/* 802CEF6C 002CBEAC 28 1D 00 00 */ cmplwi r29, 0
/* 802CEF70 002CBEB0 41 82 00 14 */ beq lbl_802CEF84
/* 802CEF74 002CBEB4 7F A3 EB 78 */ mr r3, r29
/* 802CEF78 002CBEB8 41 82 00 0C */ beq lbl_802CEF84
/* 802CEF7C 002CBEBC 7F E7 FB 78 */ mr r7, r31
/* 802CEF80 002CBEC0 48 00 00 B1 */ bl __ct__10JKRExpHeapFPvUlP7JKRHeapb
lbl_802CEF84:
/* 802CEF84 002CBEC4 38 00 00 01 */ li r0, 1
/* 802CEF88 002CBEC8 98 03 00 6E */ stb r0, 0x6e(r3)
/* 802CEF8C 002CBECC 93 A3 00 70 */ stw r29, 0x70(r3)
/* 802CEF90 002CBED0 93 C3 00 74 */ stw r30, 0x74(r3)
lbl_802CEF94:
/* 802CEF94 002CBED4 39 61 00 20 */ addi r11, r1, 0x20
/* 802CEF98 002CBED8 48 09 32 91 */ bl _restgpr_29
/* 802CEF9C 002CBEDC 80 01 00 24 */ lwz r0, 0x24(r1)
/* 802CEFA0 002CBEE0 7C 08 03 A6 */ mtlr r0
/* 802CEFA4 002CBEE4 38 21 00 20 */ addi r1, r1, 0x20
/* 802CEFA8 002CBEE8 4E 80 00 20 */ blr
@@ -0,0 +1,37 @@
/* do_destroy__10JKRExpHeapFv __ct__10JKRExpHeapFPvUlP7JKRHeapb::do_destroy(void) */
/* missing reference */
/* 802CEFAC 002CBEEC 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 802CEFB0 002CBEF0 7C 08 02 A6 */ mflr r0
/* 802CEFB4 002CBEF4 90 01 00 14 */ stw r0, 0x14(r1)
/* 802CEFB8 002CBEF8 93 E1 00 0C */ stw r31, 0xc(r1)
/* 802CEFBC 002CBEFC 93 C1 00 08 */ stw r30, 8(r1)
/* 802CEFC0 002CBF00 7C 7E 1B 78 */ mr r30, r3
/* 802CEFC4 002CBF04 88 03 00 6E */ lbz r0, 0x6e(r3)
/* 802CEFC8 002CBF08 28 00 00 00 */ cmplwi r0, 0
/* 802CEFCC 002CBF0C 40 82 00 38 */ bne lbl_802CF004
/* 802CEFD0 002CBF10 80 9E 00 50 */ lwz r4, 0x50(r30)
/* 802CEFD4 002CBF14 83 E4 00 0C */ lwz r31, 0xc(r4)
/* 802CEFD8 002CBF18 28 1F 00 00 */ cmplwi r31, 0
/* 802CEFDC 002CBF1C 41 82 00 3C */ beq lbl_802CF018
/* 802CEFE0 002CBF20 38 80 FF FF */ li r4, -1
/* 802CEFE4 002CBF24 81 83 00 00 */ lwz r12, 0(r3)
/* 802CEFE8 002CBF28 81 8C 00 08 */ lwz r12, 8(r12)
/* 802CEFEC 002CBF2C 7D 89 03 A6 */ mtctr r12
/* 802CEFF0 002CBF30 4E 80 04 21 */ bctrl
/* 802CEFF4 002CBF34 7F C3 F3 78 */ mr r3, r30
/* 802CEFF8 002CBF38 7F E4 FB 78 */ mr r4, r31
/* 802CEFFC 002CBF3C 4B FF F5 05 */ bl free__7JKRHeapFPvP7JKRHeap
/* 802CF000 002CBF40 48 00 00 18 */ b lbl_802CF018
lbl_802CF004:
/* 802CF004 002CBF44 38 80 FF FF */ li r4, -1
/* 802CF008 002CBF48 81 83 00 00 */ lwz r12, 0(r3)
/* 802CF00C 002CBF4C 81 8C 00 08 */ lwz r12, 8(r12)
/* 802CF010 002CBF50 7D 89 03 A6 */ mtctr r12
/* 802CF014 002CBF54 4E 80 04 21 */ bctrl
lbl_802CF018:
/* 802CF018 002CBF58 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 802CF01C 002CBF5C 83 C1 00 08 */ lwz r30, 8(r1)
/* 802CF020 002CBF60 80 01 00 14 */ lwz r0, 0x14(r1)
/* 802CF024 002CBF64 7C 08 03 A6 */ mtlr r0
/* 802CF028 002CBF68 38 21 00 10 */ addi r1, r1, 0x10
/* 802CF02C 002CBF6C 4E 80 00 20 */ blr
@@ -0,0 +1,38 @@
/* __ct__10JKRExpHeapFPvUlP7JKRHeapb __ct__10JKRExpHeapFPvUlP7JKRHeapb::__ct(void *, unsigned long, JKRHeap *, bool) */
/* JKRExpHeap */
/* 802CF030 002CBF70 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 802CF034 002CBF74 7C 08 02 A6 */ mflr r0
/* 802CF038 002CBF78 90 01 00 24 */ stw r0, 0x24(r1)
/* 802CF03C 002CBF7C 39 61 00 20 */ addi r11, r1, 0x20
/* 802CF040 002CBF80 48 09 31 9D */ bl _savegpr_29
/* 802CF044 002CBF84 7C 7D 1B 78 */ mr r29, r3
/* 802CF048 002CBF88 7C 9E 23 78 */ mr r30, r4
/* 802CF04C 002CBF8C 7C BF 2B 78 */ mr r31, r5
/* 802CF050 002CBF90 4B FF F0 E9 */ bl __ct__7JKRHeapFPvUlP7JKRHeapb
/* 802CF054 002CBF94 3C 60 80 3D */ lis r3, lbl_803CBFD0@ha
/* 802CF058 002CBF98 38 03 BF D0 */ addi r0, r3, lbl_803CBFD0@l
/* 802CF05C 002CBF9C 90 1D 00 00 */ stw r0, 0(r29)
/* 802CF060 002CBFA0 38 00 00 00 */ li r0, 0
/* 802CF064 002CBFA4 98 1D 00 6C */ stb r0, 0x6c(r29)
/* 802CF068 002CBFA8 38 00 00 FF */ li r0, 0xff
/* 802CF06C 002CBFAC 98 1D 00 6D */ stb r0, 0x6d(r29)
/* 802CF070 002CBFB0 93 DD 00 78 */ stw r30, 0x78(r29)
/* 802CF074 002CBFB4 80 1D 00 78 */ lwz r0, 0x78(r29)
/* 802CF078 002CBFB8 90 1D 00 7C */ stw r0, 0x7c(r29)
/* 802CF07C 002CBFBC 80 7D 00 78 */ lwz r3, 0x78(r29)
/* 802CF080 002CBFC0 38 80 00 00 */ li r4, 0
/* 802CF084 002CBFC4 38 A0 00 00 */ li r5, 0
/* 802CF088 002CBFC8 38 DF FF F0 */ addi r6, r31, -16
/* 802CF08C 002CBFCC 38 E0 00 00 */ li r7, 0
/* 802CF090 002CBFD0 39 00 00 00 */ li r8, 0
/* 802CF094 002CBFD4 48 00 17 7D */ bl initiate__Q210JKRExpHeap9CMemBlockFPQ210JKRExpHeap9CMemBlockPQ210JKRExpHeap9CMemBlockUlUcUc
/* 802CF098 002CBFD8 38 00 00 00 */ li r0, 0
/* 802CF09C 002CBFDC 90 1D 00 80 */ stw r0, 0x80(r29)
/* 802CF0A0 002CBFE0 90 1D 00 84 */ stw r0, 0x84(r29)
/* 802CF0A4 002CBFE4 7F A3 EB 78 */ mr r3, r29
/* 802CF0A8 002CBFE8 39 61 00 20 */ addi r11, r1, 0x20
/* 802CF0AC 002CBFEC 48 09 31 7D */ bl _restgpr_29
/* 802CF0B0 002CBFF0 80 01 00 24 */ lwz r0, 0x24(r1)
/* 802CF0B4 002CBFF4 7C 08 03 A6 */ mtlr r0
/* 802CF0B8 002CBFF8 38 21 00 20 */ addi r1, r1, 0x20
/* 802CF0BC 002CBFFC 4E 80 00 20 */ blr
@@ -0,0 +1,29 @@
/* __dt__10JKRExpHeapFv __ct__10JKRExpHeapFPvUlP7JKRHeapb::__dt(void) */
/* missing reference */
/* 802CF0C0 002CC000 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 802CF0C4 002CC004 7C 08 02 A6 */ mflr r0
/* 802CF0C8 002CC008 90 01 00 14 */ stw r0, 0x14(r1)
/* 802CF0CC 002CC00C 93 E1 00 0C */ stw r31, 0xc(r1)
/* 802CF0D0 002CC010 93 C1 00 08 */ stw r30, 8(r1)
/* 802CF0D4 002CC014 7C 7E 1B 79 */ or. r30, r3, r3
/* 802CF0D8 002CC018 7C 9F 23 78 */ mr r31, r4
/* 802CF0DC 002CC01C 41 82 00 30 */ beq lbl_802CF10C
/* 802CF0E0 002CC020 3C 80 80 3D */ lis r4, lbl_803CBFD0@ha
/* 802CF0E4 002CC024 38 04 BF D0 */ addi r0, r4, lbl_803CBFD0@l
/* 802CF0E8 002CC028 90 1E 00 00 */ stw r0, 0(r30)
/* 802CF0EC 002CC02C 4B FF F9 D5 */ bl dispose__7JKRHeapFv
/* 802CF0F0 002CC030 7F C3 F3 78 */ mr r3, r30
/* 802CF0F4 002CC034 38 80 00 00 */ li r4, 0
/* 802CF0F8 002CC038 4B FF F1 6D */ bl __dt__7JKRHeapFv
/* 802CF0FC 002CC03C 7F E0 07 35 */ extsh. r0, r31
/* 802CF100 002CC040 40 81 00 0C */ ble lbl_802CF10C
/* 802CF104 002CC044 7F C3 F3 78 */ mr r3, r30
/* 802CF108 002CC048 4B FF FC 35 */ bl __dl__FPv
lbl_802CF10C:
/* 802CF10C 002CC04C 7F C3 F3 78 */ mr r3, r30
/* 802CF110 002CC050 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 802CF114 002CC054 83 C1 00 08 */ lwz r30, 8(r1)
/* 802CF118 002CC058 80 01 00 14 */ lwz r0, 0x14(r1)
/* 802CF11C 002CC05C 7C 08 03 A6 */ mtlr r0
/* 802CF120 002CC060 38 21 00 10 */ addi r1, r1, 0x10
/* 802CF124 002CC064 4E 80 00 20 */ blr
@@ -0,0 +1,75 @@
/* do_alloc__10JKRExpHeapFUli __ct__10JKRExpHeapFPvUlP7JKRHeapb::do_alloc(unsigned long, int) */
/* missing reference */
/* 802CF128 002CC068 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 802CF12C 002CC06C 7C 08 02 A6 */ mflr r0
/* 802CF130 002CC070 90 01 00 24 */ stw r0, 0x24(r1)
/* 802CF134 002CC074 39 61 00 20 */ addi r11, r1, 0x20
/* 802CF138 002CC078 48 09 30 A1 */ bl _savegpr_28
/* 802CF13C 002CC07C 7C 7C 1B 78 */ mr r28, r3
/* 802CF140 002CC080 7C 9D 23 78 */ mr r29, r4
/* 802CF144 002CC084 7C BE 2B 78 */ mr r30, r5
/* 802CF148 002CC088 38 7C 00 18 */ addi r3, r28, 0x18
/* 802CF14C 002CC08C 48 06 FE F5 */ bl OSLockMutex
/* 802CF150 002CC090 28 1D 00 04 */ cmplwi r29, 4
/* 802CF154 002CC094 40 80 00 08 */ bge lbl_802CF15C
/* 802CF158 002CC098 3B A0 00 04 */ li r29, 4
lbl_802CF15C:
/* 802CF15C 002CC09C 2C 1E 00 00 */ cmpwi r30, 0
/* 802CF160 002CC0A0 41 80 00 38 */ blt lbl_802CF198
/* 802CF164 002CC0A4 2C 1E 00 04 */ cmpwi r30, 4
/* 802CF168 002CC0A8 41 81 00 18 */ bgt lbl_802CF180
/* 802CF16C 002CC0AC 7F 83 E3 78 */ mr r3, r28
/* 802CF170 002CC0B0 7F A4 EB 78 */ mr r4, r29
/* 802CF174 002CC0B4 48 00 03 1D */ bl allocFromHead__10JKRExpHeapFUl
/* 802CF178 002CC0B8 7C 7F 1B 78 */ mr r31, r3
/* 802CF17C 002CC0BC 48 00 00 4C */ b lbl_802CF1C8
lbl_802CF180:
/* 802CF180 002CC0C0 7F 83 E3 78 */ mr r3, r28
/* 802CF184 002CC0C4 7F A4 EB 78 */ mr r4, r29
/* 802CF188 002CC0C8 7F C5 F3 78 */ mr r5, r30
/* 802CF18C 002CC0CC 48 00 00 A9 */ bl allocFromHead__10JKRExpHeapFUli
/* 802CF190 002CC0D0 7C 7F 1B 78 */ mr r31, r3
/* 802CF194 002CC0D4 48 00 00 34 */ b lbl_802CF1C8
lbl_802CF198:
/* 802CF198 002CC0D8 7C BE 00 D0 */ neg r5, r30
/* 802CF19C 002CC0DC 2C 05 00 04 */ cmpwi r5, 4
/* 802CF1A0 002CC0E0 41 81 00 18 */ bgt lbl_802CF1B8
/* 802CF1A4 002CC0E4 7F 83 E3 78 */ mr r3, r28
/* 802CF1A8 002CC0E8 7F A4 EB 78 */ mr r4, r29
/* 802CF1AC 002CC0EC 48 00 05 29 */ bl allocFromTail__10JKRExpHeapFUl
/* 802CF1B0 002CC0F0 7C 7F 1B 78 */ mr r31, r3
/* 802CF1B4 002CC0F4 48 00 00 14 */ b lbl_802CF1C8
lbl_802CF1B8:
/* 802CF1B8 002CC0F8 7F 83 E3 78 */ mr r3, r28
/* 802CF1BC 002CC0FC 7F A4 EB 78 */ mr r4, r29
/* 802CF1C0 002CC100 48 00 03 B5 */ bl allocFromTail__10JKRExpHeapFUli
/* 802CF1C4 002CC104 7C 7F 1B 78 */ mr r31, r3
lbl_802CF1C8:
/* 802CF1C8 002CC108 28 1F 00 00 */ cmplwi r31, 0
/* 802CF1CC 002CC10C 40 82 00 44 */ bne lbl_802CF210
/* 802CF1D0 002CC110 3C 60 80 3A */ lis r3, lbl_8039CAF0@ha
/* 802CF1D4 002CC114 38 63 CA F0 */ addi r3, r3, lbl_8039CAF0@l
/* 802CF1D8 002CC118 7F A4 EB 78 */ mr r4, r29
/* 802CF1DC 002CC11C 4C C6 31 82 */ crclr 6
/* 802CF1E0 002CC120 48 01 94 9D */ bl JUTWarningConsole_f
/* 802CF1E4 002CC124 88 1C 00 68 */ lbz r0, 0x68(r28)
/* 802CF1E8 002CC128 28 00 00 01 */ cmplwi r0, 1
/* 802CF1EC 002CC12C 40 82 00 24 */ bne lbl_802CF210
/* 802CF1F0 002CC130 81 8D 8D FC */ lwz r12, lbl_8045137C-_SDA_BASE_(r13)
/* 802CF1F4 002CC134 28 0C 00 00 */ cmplwi r12, 0
/* 802CF1F8 002CC138 41 82 00 18 */ beq lbl_802CF210
/* 802CF1FC 002CC13C 7F 83 E3 78 */ mr r3, r28
/* 802CF200 002CC140 7F A4 EB 78 */ mr r4, r29
/* 802CF204 002CC144 7F C5 F3 78 */ mr r5, r30
/* 802CF208 002CC148 7D 89 03 A6 */ mtctr r12
/* 802CF20C 002CC14C 4E 80 04 21 */ bctrl
lbl_802CF210:
/* 802CF210 002CC150 38 7C 00 18 */ addi r3, r28, 0x18
/* 802CF214 002CC154 48 06 FF 09 */ bl OSUnlockMutex
/* 802CF218 002CC158 7F E3 FB 78 */ mr r3, r31
/* 802CF21C 002CC15C 39 61 00 20 */ addi r11, r1, 0x20
/* 802CF220 002CC160 48 09 30 05 */ bl _restgpr_28
/* 802CF224 002CC164 80 01 00 24 */ lwz r0, 0x24(r1)
/* 802CF228 002CC168 7C 08 03 A6 */ mtlr r0
/* 802CF22C 002CC16C 38 21 00 20 */ addi r1, r1, 0x20
/* 802CF230 002CC170 4E 80 00 20 */ blr
@@ -0,0 +1,168 @@
/* allocFromHead__10JKRExpHeapFUli __ct__10JKRExpHeapFPvUlP7JKRHeapb::allocFromHead(unsigned long, int) */
/* JKRExpHeap_NS_allocFromHead */
/* 802CF234 002CC174 94 21 FF D0 */ stwu r1, -0x30(r1)
/* 802CF238 002CC178 7C 08 02 A6 */ mflr r0
/* 802CF23C 002CC17C 90 01 00 34 */ stw r0, 0x34(r1)
/* 802CF240 002CC180 39 61 00 30 */ addi r11, r1, 0x30
/* 802CF244 002CC184 48 09 2F 89 */ bl func_803621CC
/* 802CF248 002CC188 7C 7D 1B 78 */ mr r29, r3
/* 802CF24C 002CC18C 38 04 00 03 */ addi r0, r4, 3
/* 802CF250 002CC190 54 1E 00 3A */ rlwinm r30, r0, 0, 0, 0x1d
/* 802CF254 002CC194 38 C0 FF FF */ li r6, -1
/* 802CF258 002CC198 3B 60 00 00 */ li r27, 0
/* 802CF25C 002CC19C 3B E0 00 00 */ li r31, 0
/* 802CF260 002CC1A0 80 E3 00 78 */ lwz r7, 0x78(r3)
/* 802CF264 002CC1A4 38 65 FF FF */ addi r3, r5, -1
/* 802CF268 002CC1A8 7C 64 18 F8 */ nor r4, r3, r3
/* 802CF26C 002CC1AC 48 00 00 50 */ b lbl_802CF2BC
lbl_802CF270:
/* 802CF270 002CC1B0 38 A7 00 10 */ addi r5, r7, 0x10
/* 802CF274 002CC1B4 7C 03 2A 14 */ add r0, r3, r5
/* 802CF278 002CC1B8 7C 80 00 38 */ and r0, r4, r0
/* 802CF27C 002CC1BC 7D 05 00 50 */ subf r8, r5, r0
/* 802CF280 002CC1C0 80 A7 00 04 */ lwz r5, 4(r7)
/* 802CF284 002CC1C4 7C 1E 42 14 */ add r0, r30, r8
/* 802CF288 002CC1C8 7C 05 00 40 */ cmplw r5, r0
/* 802CF28C 002CC1CC 41 80 00 2C */ blt lbl_802CF2B8
/* 802CF290 002CC1D0 7C 06 28 40 */ cmplw r6, r5
/* 802CF294 002CC1D4 40 81 00 24 */ ble lbl_802CF2B8
/* 802CF298 002CC1D8 7C A6 2B 78 */ mr r6, r5
/* 802CF29C 002CC1DC 7C FF 3B 78 */ mr r31, r7
/* 802CF2A0 002CC1E0 7D 1B 43 78 */ mr r27, r8
/* 802CF2A4 002CC1E4 88 1D 00 6C */ lbz r0, 0x6c(r29)
/* 802CF2A8 002CC1E8 28 00 00 00 */ cmplwi r0, 0
/* 802CF2AC 002CC1EC 40 82 00 18 */ bne lbl_802CF2C4
/* 802CF2B0 002CC1F0 7C 05 F0 40 */ cmplw r5, r30
/* 802CF2B4 002CC1F4 41 82 00 10 */ beq lbl_802CF2C4
lbl_802CF2B8:
/* 802CF2B8 002CC1F8 80 E7 00 0C */ lwz r7, 0xc(r7)
lbl_802CF2BC:
/* 802CF2BC 002CC1FC 28 07 00 00 */ cmplwi r7, 0
/* 802CF2C0 002CC200 40 82 FF B0 */ bne lbl_802CF270
lbl_802CF2C4:
/* 802CF2C4 002CC204 90 CD 8E 18 */ stw r6, lbl_80451398-_SDA_BASE_(r13)
/* 802CF2C8 002CC208 93 6D 8E 1C */ stw r27, lbl_8045139C-_SDA_BASE_(r13)
/* 802CF2CC 002CC20C 93 ED 8E 20 */ stw r31, lbl_804513A0-_SDA_BASE_(r13)
/* 802CF2D0 002CC210 28 1F 00 00 */ cmplwi r31, 0
/* 802CF2D4 002CC214 41 82 01 A0 */ beq lbl_802CF474
/* 802CF2D8 002CC218 28 1B 00 10 */ cmplwi r27, 0x10
/* 802CF2DC 002CC21C 41 80 00 C0 */ blt lbl_802CF39C
/* 802CF2E0 002CC220 83 5F 00 08 */ lwz r26, 8(r31)
/* 802CF2E4 002CC224 83 3F 00 0C */ lwz r25, 0xc(r31)
/* 802CF2E8 002CC228 7F E3 FB 78 */ mr r3, r31
/* 802CF2EC 002CC22C 38 9B FF F0 */ addi r4, r27, -16
/* 802CF2F0 002CC230 38 A0 00 00 */ li r5, 0
/* 802CF2F4 002CC234 38 C0 00 00 */ li r6, 0
/* 802CF2F8 002CC238 38 E0 00 00 */ li r7, 0
/* 802CF2FC 002CC23C 39 00 00 00 */ li r8, 0
/* 802CF300 002CC240 48 00 15 31 */ bl allocFore__Q210JKRExpHeap9CMemBlockFUlUcUcUcUc
/* 802CF304 002CC244 7C 7C 1B 79 */ or. r28, r3, r3
/* 802CF308 002CC248 41 82 00 24 */ beq lbl_802CF32C
/* 802CF30C 002CC24C 7F C4 F3 78 */ mr r4, r30
/* 802CF310 002CC250 88 BD 00 6D */ lbz r5, 0x6d(r29)
/* 802CF314 002CC254 38 C0 00 00 */ li r6, 0
/* 802CF318 002CC258 38 E0 00 00 */ li r7, 0
/* 802CF31C 002CC25C 39 00 00 00 */ li r8, 0
/* 802CF320 002CC260 48 00 15 11 */ bl allocFore__Q210JKRExpHeap9CMemBlockFUlUcUcUcUc
/* 802CF324 002CC264 7C 66 1B 78 */ mr r6, r3
/* 802CF328 002CC268 48 00 00 08 */ b lbl_802CF330
lbl_802CF32C:
/* 802CF32C 002CC26C 38 C0 00 00 */ li r6, 0
lbl_802CF330:
/* 802CF330 002CC270 7C DB 33 78 */ mr r27, r6
/* 802CF334 002CC274 28 06 00 00 */ cmplwi r6, 0
/* 802CF338 002CC278 41 82 00 18 */ beq lbl_802CF350
/* 802CF33C 002CC27C 7F A3 EB 78 */ mr r3, r29
/* 802CF340 002CC280 7F E4 FB 78 */ mr r4, r31
/* 802CF344 002CC284 7F 45 D3 78 */ mr r5, r26
/* 802CF348 002CC288 48 00 0B 21 */ bl setFreeBlock__10JKRExpHeapFPQ210JKRExpHeap9CMemBlockPQ210JKRExpHeap9CMemBlockPQ210JKRExpHeap9CMemBlock
/* 802CF34C 002CC28C 48 00 00 18 */ b lbl_802CF364
lbl_802CF350:
/* 802CF350 002CC290 7F A3 EB 78 */ mr r3, r29
/* 802CF354 002CC294 7F E4 FB 78 */ mr r4, r31
/* 802CF358 002CC298 7F 45 D3 78 */ mr r5, r26
/* 802CF35C 002CC29C 7F 26 CB 78 */ mr r6, r25
/* 802CF360 002CC2A0 48 00 0B 09 */ bl setFreeBlock__10JKRExpHeapFPQ210JKRExpHeap9CMemBlockPQ210JKRExpHeap9CMemBlockPQ210JKRExpHeap9CMemBlock
lbl_802CF364:
/* 802CF364 002CC2A4 28 1B 00 00 */ cmplwi r27, 0
/* 802CF368 002CC2A8 41 82 00 18 */ beq lbl_802CF380
/* 802CF36C 002CC2AC 7F A3 EB 78 */ mr r3, r29
/* 802CF370 002CC2B0 7F 64 DB 78 */ mr r4, r27
/* 802CF374 002CC2B4 7F E5 FB 78 */ mr r5, r31
/* 802CF378 002CC2B8 7F 26 CB 78 */ mr r6, r25
/* 802CF37C 002CC2BC 48 00 0A ED */ bl setFreeBlock__10JKRExpHeapFPQ210JKRExpHeap9CMemBlockPQ210JKRExpHeap9CMemBlockPQ210JKRExpHeap9CMemBlock
lbl_802CF380:
/* 802CF380 002CC2C0 7F A3 EB 78 */ mr r3, r29
/* 802CF384 002CC2C4 7F 84 E3 78 */ mr r4, r28
/* 802CF388 002CC2C8 48 00 0A 45 */ bl appendUsedList__10JKRExpHeapFPQ210JKRExpHeap9CMemBlock
/* 802CF38C 002CC2CC 93 6D 8E 24 */ stw r27, lbl_804513A4-_SDA_BASE_(r13)
/* 802CF390 002CC2D0 93 8D 8E 28 */ stw r28, lbl_804513A8-_SDA_BASE_(r13)
/* 802CF394 002CC2D4 38 7C 00 10 */ addi r3, r28, 0x10
/* 802CF398 002CC2D8 48 00 00 E0 */ b lbl_802CF478
lbl_802CF39C:
/* 802CF39C 002CC2DC 28 1B 00 00 */ cmplwi r27, 0
/* 802CF3A0 002CC2E0 41 82 00 70 */ beq lbl_802CF410
/* 802CF3A4 002CC2E4 83 3F 00 08 */ lwz r25, 8(r31)
/* 802CF3A8 002CC2E8 83 5F 00 0C */ lwz r26, 0xc(r31)
/* 802CF3AC 002CC2EC 7F A3 EB 78 */ mr r3, r29
/* 802CF3B0 002CC2F0 7F E4 FB 78 */ mr r4, r31
/* 802CF3B4 002CC2F4 48 00 0B 01 */ bl removeFreeBlock__10JKRExpHeapFPQ210JKRExpHeap9CMemBlock
/* 802CF3B8 002CC2F8 7F 9F DA 14 */ add r28, r31, r27
/* 802CF3BC 002CC2FC 80 1F 00 04 */ lwz r0, 4(r31)
/* 802CF3C0 002CC300 7C 1B 00 50 */ subf r0, r27, r0
/* 802CF3C4 002CC304 90 1C 00 04 */ stw r0, 4(r28)
/* 802CF3C8 002CC308 7F 83 E3 78 */ mr r3, r28
/* 802CF3CC 002CC30C 7F C4 F3 78 */ mr r4, r30
/* 802CF3D0 002CC310 88 BD 00 6D */ lbz r5, 0x6d(r29)
/* 802CF3D4 002CC314 57 66 06 3E */ clrlwi r6, r27, 0x18
/* 802CF3D8 002CC318 38 E0 00 00 */ li r7, 0
/* 802CF3DC 002CC31C 39 00 00 00 */ li r8, 0
/* 802CF3E0 002CC320 48 00 14 51 */ bl allocFore__Q210JKRExpHeap9CMemBlockFUlUcUcUcUc
/* 802CF3E4 002CC324 7C 64 1B 79 */ or. r4, r3, r3
/* 802CF3E8 002CC328 41 82 00 14 */ beq lbl_802CF3FC
/* 802CF3EC 002CC32C 7F A3 EB 78 */ mr r3, r29
/* 802CF3F0 002CC330 7F 25 CB 78 */ mr r5, r25
/* 802CF3F4 002CC334 7F 46 D3 78 */ mr r6, r26
/* 802CF3F8 002CC338 48 00 0A 71 */ bl setFreeBlock__10JKRExpHeapFPQ210JKRExpHeap9CMemBlockPQ210JKRExpHeap9CMemBlockPQ210JKRExpHeap9CMemBlock
lbl_802CF3FC:
/* 802CF3FC 002CC33C 7F A3 EB 78 */ mr r3, r29
/* 802CF400 002CC340 7F 84 E3 78 */ mr r4, r28
/* 802CF404 002CC344 48 00 09 C9 */ bl appendUsedList__10JKRExpHeapFPQ210JKRExpHeap9CMemBlock
/* 802CF408 002CC348 38 7C 00 10 */ addi r3, r28, 0x10
/* 802CF40C 002CC34C 48 00 00 6C */ b lbl_802CF478
lbl_802CF410:
/* 802CF410 002CC350 83 3F 00 08 */ lwz r25, 8(r31)
/* 802CF414 002CC354 83 5F 00 0C */ lwz r26, 0xc(r31)
/* 802CF418 002CC358 7F E3 FB 78 */ mr r3, r31
/* 802CF41C 002CC35C 7F C4 F3 78 */ mr r4, r30
/* 802CF420 002CC360 88 BD 00 6D */ lbz r5, 0x6d(r29)
/* 802CF424 002CC364 38 C0 00 00 */ li r6, 0
/* 802CF428 002CC368 38 E0 00 00 */ li r7, 0
/* 802CF42C 002CC36C 39 00 00 00 */ li r8, 0
/* 802CF430 002CC370 48 00 14 01 */ bl allocFore__Q210JKRExpHeap9CMemBlockFUlUcUcUcUc
/* 802CF434 002CC374 7C 7E 1B 78 */ mr r30, r3
/* 802CF438 002CC378 7F A3 EB 78 */ mr r3, r29
/* 802CF43C 002CC37C 7F E4 FB 78 */ mr r4, r31
/* 802CF440 002CC380 48 00 0A 75 */ bl removeFreeBlock__10JKRExpHeapFPQ210JKRExpHeap9CMemBlock
/* 802CF444 002CC384 28 1E 00 00 */ cmplwi r30, 0
/* 802CF448 002CC388 41 82 00 18 */ beq lbl_802CF460
/* 802CF44C 002CC38C 7F A3 EB 78 */ mr r3, r29
/* 802CF450 002CC390 7F C4 F3 78 */ mr r4, r30
/* 802CF454 002CC394 7F 25 CB 78 */ mr r5, r25
/* 802CF458 002CC398 7F 46 D3 78 */ mr r6, r26
/* 802CF45C 002CC39C 48 00 0A 0D */ bl setFreeBlock__10JKRExpHeapFPQ210JKRExpHeap9CMemBlockPQ210JKRExpHeap9CMemBlockPQ210JKRExpHeap9CMemBlock
lbl_802CF460:
/* 802CF460 002CC3A0 7F A3 EB 78 */ mr r3, r29
/* 802CF464 002CC3A4 7F E4 FB 78 */ mr r4, r31
/* 802CF468 002CC3A8 48 00 09 65 */ bl appendUsedList__10JKRExpHeapFPQ210JKRExpHeap9CMemBlock
/* 802CF46C 002CC3AC 38 7F 00 10 */ addi r3, r31, 0x10
/* 802CF470 002CC3B0 48 00 00 08 */ b lbl_802CF478
lbl_802CF474:
/* 802CF474 002CC3B4 38 60 00 00 */ li r3, 0
lbl_802CF478:
/* 802CF478 002CC3B8 39 61 00 30 */ addi r11, r1, 0x30
/* 802CF47C 002CC3BC 48 09 2D 9D */ bl func_80362218
/* 802CF480 002CC3C0 80 01 00 34 */ lwz r0, 0x34(r1)
/* 802CF484 002CC3C4 7C 08 03 A6 */ mtlr r0
/* 802CF488 002CC3C8 38 21 00 30 */ addi r1, r1, 0x30
/* 802CF48C 002CC3CC 4E 80 00 20 */ blr
@@ -0,0 +1,67 @@
/* allocFromHead__10JKRExpHeapFUl __ct__10JKRExpHeapFPvUlP7JKRHeapb::allocFromHead(unsigned long) */
/* JKRExpHeap_NS_allocFromHead_X1_ */
/* 802CF490 002CC3D0 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 802CF494 002CC3D4 7C 08 02 A6 */ mflr r0
/* 802CF498 002CC3D8 90 01 00 14 */ stw r0, 0x14(r1)
/* 802CF49C 002CC3DC 93 E1 00 0C */ stw r31, 0xc(r1)
/* 802CF4A0 002CC3E0 93 C1 00 08 */ stw r30, 8(r1)
/* 802CF4A4 002CC3E4 7C 7E 1B 78 */ mr r30, r3
/* 802CF4A8 002CC3E8 38 04 00 03 */ addi r0, r4, 3
/* 802CF4AC 002CC3EC 54 04 00 3A */ rlwinm r4, r0, 0, 0, 0x1d
/* 802CF4B0 002CC3F0 38 A0 FF FF */ li r5, -1
/* 802CF4B4 002CC3F4 3B E0 00 00 */ li r31, 0
/* 802CF4B8 002CC3F8 80 C3 00 78 */ lwz r6, 0x78(r3)
/* 802CF4BC 002CC3FC 48 00 00 38 */ b lbl_802CF4F4
lbl_802CF4C0:
/* 802CF4C0 002CC400 80 66 00 04 */ lwz r3, 4(r6)
/* 802CF4C4 002CC404 7C 03 20 40 */ cmplw r3, r4
/* 802CF4C8 002CC408 41 80 00 28 */ blt lbl_802CF4F0
/* 802CF4CC 002CC40C 7C 05 18 40 */ cmplw r5, r3
/* 802CF4D0 002CC410 40 81 00 20 */ ble lbl_802CF4F0
/* 802CF4D4 002CC414 7C 65 1B 78 */ mr r5, r3
/* 802CF4D8 002CC418 7C DF 33 78 */ mr r31, r6
/* 802CF4DC 002CC41C 88 1E 00 6C */ lbz r0, 0x6c(r30)
/* 802CF4E0 002CC420 28 00 00 00 */ cmplwi r0, 0
/* 802CF4E4 002CC424 40 82 00 18 */ bne lbl_802CF4FC
/* 802CF4E8 002CC428 7C 03 20 40 */ cmplw r3, r4
/* 802CF4EC 002CC42C 41 82 00 10 */ beq lbl_802CF4FC
lbl_802CF4F0:
/* 802CF4F0 002CC430 80 C6 00 0C */ lwz r6, 0xc(r6)
lbl_802CF4F4:
/* 802CF4F4 002CC434 28 06 00 00 */ cmplwi r6, 0
/* 802CF4F8 002CC438 40 82 FF C8 */ bne lbl_802CF4C0
lbl_802CF4FC:
/* 802CF4FC 002CC43C 28 1F 00 00 */ cmplwi r31, 0
/* 802CF500 002CC440 41 82 00 58 */ beq lbl_802CF558
/* 802CF504 002CC444 7F E3 FB 78 */ mr r3, r31
/* 802CF508 002CC448 88 BE 00 6D */ lbz r5, 0x6d(r30)
/* 802CF50C 002CC44C 38 C0 00 00 */ li r6, 0
/* 802CF510 002CC450 38 E0 00 00 */ li r7, 0
/* 802CF514 002CC454 39 00 00 00 */ li r8, 0
/* 802CF518 002CC458 48 00 13 19 */ bl allocFore__Q210JKRExpHeap9CMemBlockFUlUcUcUcUc
/* 802CF51C 002CC45C 7C 64 1B 79 */ or. r4, r3, r3
/* 802CF520 002CC460 41 82 00 18 */ beq lbl_802CF538
/* 802CF524 002CC464 7F C3 F3 78 */ mr r3, r30
/* 802CF528 002CC468 80 BF 00 08 */ lwz r5, 8(r31)
/* 802CF52C 002CC46C 80 DF 00 0C */ lwz r6, 0xc(r31)
/* 802CF530 002CC470 48 00 09 39 */ bl setFreeBlock__10JKRExpHeapFPQ210JKRExpHeap9CMemBlockPQ210JKRExpHeap9CMemBlockPQ210JKRExpHeap9CMemBlock
/* 802CF534 002CC474 48 00 00 10 */ b lbl_802CF544
lbl_802CF538:
/* 802CF538 002CC478 7F C3 F3 78 */ mr r3, r30
/* 802CF53C 002CC47C 7F E4 FB 78 */ mr r4, r31
/* 802CF540 002CC480 48 00 09 75 */ bl removeFreeBlock__10JKRExpHeapFPQ210JKRExpHeap9CMemBlock
lbl_802CF544:
/* 802CF544 002CC484 7F C3 F3 78 */ mr r3, r30
/* 802CF548 002CC488 7F E4 FB 78 */ mr r4, r31
/* 802CF54C 002CC48C 48 00 08 81 */ bl appendUsedList__10JKRExpHeapFPQ210JKRExpHeap9CMemBlock
/* 802CF550 002CC490 38 7F 00 10 */ addi r3, r31, 0x10
/* 802CF554 002CC494 48 00 00 08 */ b lbl_802CF55C
lbl_802CF558:
/* 802CF558 002CC498 38 60 00 00 */ li r3, 0
lbl_802CF55C:
/* 802CF55C 002CC49C 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 802CF560 002CC4A0 83 C1 00 08 */ lwz r30, 8(r1)
/* 802CF564 002CC4A4 80 01 00 14 */ lwz r0, 0x14(r1)
/* 802CF568 002CC4A8 7C 08 03 A6 */ mtlr r0
/* 802CF56C 002CC4AC 38 21 00 10 */ addi r1, r1, 0x10
/* 802CF570 002CC4B0 4E 80 00 20 */ blr
@@ -0,0 +1,98 @@
/* allocFromTail__10JKRExpHeapFUli __ct__10JKRExpHeapFPvUlP7JKRHeapb::allocFromTail(unsigned long, int) */
/* JKRExpHeap_NS_allocFromTail */
/* 802CF574 002CC4B4 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 802CF578 002CC4B8 7C 08 02 A6 */ mflr r0
/* 802CF57C 002CC4BC 90 01 00 24 */ stw r0, 0x24(r1)
/* 802CF580 002CC4C0 39 61 00 20 */ addi r11, r1, 0x20
/* 802CF584 002CC4C4 48 09 2C 51 */ bl _savegpr_27
/* 802CF588 002CC4C8 7C 7B 1B 78 */ mr r27, r3
/* 802CF58C 002CC4CC 3B E0 00 00 */ li r31, 0
/* 802CF590 002CC4D0 3B C0 00 00 */ li r30, 0
/* 802CF594 002CC4D4 3B A0 00 00 */ li r29, 0
/* 802CF598 002CC4D8 81 03 00 7C */ lwz r8, 0x7c(r3)
/* 802CF59C 002CC4DC 38 05 FF FF */ addi r0, r5, -1
/* 802CF5A0 002CC4E0 7C 03 00 F8 */ nor r3, r0, r0
/* 802CF5A4 002CC4E4 48 00 00 38 */ b lbl_802CF5DC
lbl_802CF5A8:
/* 802CF5A8 002CC4E8 80 C8 00 04 */ lwz r6, 4(r8)
/* 802CF5AC 002CC4EC 7C A8 32 14 */ add r5, r8, r6
/* 802CF5B0 002CC4F0 38 A5 00 10 */ addi r5, r5, 0x10
/* 802CF5B4 002CC4F4 7C 04 28 50 */ subf r0, r4, r5
/* 802CF5B8 002CC4F8 7C 67 00 38 */ and r7, r3, r0
/* 802CF5BC 002CC4FC 7F 87 28 50 */ subf r28, r7, r5
/* 802CF5C0 002CC500 7C 06 E0 40 */ cmplw r6, r28
/* 802CF5C4 002CC504 41 80 00 14 */ blt lbl_802CF5D8
/* 802CF5C8 002CC508 7D 1E 43 78 */ mr r30, r8
/* 802CF5CC 002CC50C 7F FC 30 50 */ subf r31, r28, r6
/* 802CF5D0 002CC510 3B A7 FF F0 */ addi r29, r7, -16
/* 802CF5D4 002CC514 48 00 00 10 */ b lbl_802CF5E4
lbl_802CF5D8:
/* 802CF5D8 002CC518 81 08 00 08 */ lwz r8, 8(r8)
lbl_802CF5DC:
/* 802CF5DC 002CC51C 28 08 00 00 */ cmplwi r8, 0
/* 802CF5E0 002CC520 40 82 FF C8 */ bne lbl_802CF5A8
lbl_802CF5E4:
/* 802CF5E4 002CC524 28 1E 00 00 */ cmplwi r30, 0
/* 802CF5E8 002CC528 41 82 00 D0 */ beq lbl_802CF6B8
/* 802CF5EC 002CC52C 28 1F 00 10 */ cmplwi r31, 0x10
/* 802CF5F0 002CC530 41 80 00 44 */ blt lbl_802CF634
/* 802CF5F4 002CC534 7F A3 EB 78 */ mr r3, r29
/* 802CF5F8 002CC538 38 80 00 00 */ li r4, 0
/* 802CF5FC 002CC53C 38 A0 00 00 */ li r5, 0
/* 802CF600 002CC540 7F 86 E3 78 */ mr r6, r28
/* 802CF604 002CC544 88 FB 00 6D */ lbz r7, 0x6d(r27)
/* 802CF608 002CC548 39 00 00 80 */ li r8, 0x80
/* 802CF60C 002CC54C 48 00 12 05 */ bl initiate__Q210JKRExpHeap9CMemBlockFPQ210JKRExpHeap9CMemBlockPQ210JKRExpHeap9CMemBlockUlUcUc
/* 802CF610 002CC550 80 1E 00 04 */ lwz r0, 4(r30)
/* 802CF614 002CC554 7C 7C 00 50 */ subf r3, r28, r0
/* 802CF618 002CC558 38 03 FF F0 */ addi r0, r3, -16
/* 802CF61C 002CC55C 90 1E 00 04 */ stw r0, 4(r30)
/* 802CF620 002CC560 7F 63 DB 78 */ mr r3, r27
/* 802CF624 002CC564 7F A4 EB 78 */ mr r4, r29
/* 802CF628 002CC568 48 00 07 A5 */ bl appendUsedList__10JKRExpHeapFPQ210JKRExpHeap9CMemBlock
/* 802CF62C 002CC56C 38 7D 00 10 */ addi r3, r29, 0x10
/* 802CF630 002CC570 48 00 00 8C */ b lbl_802CF6BC
lbl_802CF634:
/* 802CF634 002CC574 28 1F 00 00 */ cmplwi r31, 0
/* 802CF638 002CC578 41 82 00 44 */ beq lbl_802CF67C
/* 802CF63C 002CC57C 7F 63 DB 78 */ mr r3, r27
/* 802CF640 002CC580 7F C4 F3 78 */ mr r4, r30
/* 802CF644 002CC584 48 00 08 71 */ bl removeFreeBlock__10JKRExpHeapFPQ210JKRExpHeap9CMemBlock
/* 802CF648 002CC588 7F A3 EB 78 */ mr r3, r29
/* 802CF64C 002CC58C 38 80 00 00 */ li r4, 0
/* 802CF650 002CC590 38 A0 00 00 */ li r5, 0
/* 802CF654 002CC594 7F 86 E3 78 */ mr r6, r28
/* 802CF658 002CC598 88 FB 00 6D */ lbz r7, 0x6d(r27)
/* 802CF65C 002CC59C 63 E0 00 80 */ ori r0, r31, 0x80
/* 802CF660 002CC5A0 54 08 06 3E */ clrlwi r8, r0, 0x18
/* 802CF664 002CC5A4 48 00 11 AD */ bl initiate__Q210JKRExpHeap9CMemBlockFPQ210JKRExpHeap9CMemBlockPQ210JKRExpHeap9CMemBlockUlUcUc
/* 802CF668 002CC5A8 7F 63 DB 78 */ mr r3, r27
/* 802CF66C 002CC5AC 7F A4 EB 78 */ mr r4, r29
/* 802CF670 002CC5B0 48 00 07 5D */ bl appendUsedList__10JKRExpHeapFPQ210JKRExpHeap9CMemBlock
/* 802CF674 002CC5B4 38 7D 00 10 */ addi r3, r29, 0x10
/* 802CF678 002CC5B8 48 00 00 44 */ b lbl_802CF6BC
lbl_802CF67C:
/* 802CF67C 002CC5BC 7F 63 DB 78 */ mr r3, r27
/* 802CF680 002CC5C0 7F C4 F3 78 */ mr r4, r30
/* 802CF684 002CC5C4 48 00 08 31 */ bl removeFreeBlock__10JKRExpHeapFPQ210JKRExpHeap9CMemBlock
/* 802CF688 002CC5C8 7F A3 EB 78 */ mr r3, r29
/* 802CF68C 002CC5CC 38 80 00 00 */ li r4, 0
/* 802CF690 002CC5D0 38 A0 00 00 */ li r5, 0
/* 802CF694 002CC5D4 7F 86 E3 78 */ mr r6, r28
/* 802CF698 002CC5D8 88 FB 00 6D */ lbz r7, 0x6d(r27)
/* 802CF69C 002CC5DC 39 00 00 80 */ li r8, 0x80
/* 802CF6A0 002CC5E0 48 00 11 71 */ bl initiate__Q210JKRExpHeap9CMemBlockFPQ210JKRExpHeap9CMemBlockPQ210JKRExpHeap9CMemBlockUlUcUc
/* 802CF6A4 002CC5E4 7F 63 DB 78 */ mr r3, r27
/* 802CF6A8 002CC5E8 7F A4 EB 78 */ mr r4, r29
/* 802CF6AC 002CC5EC 48 00 07 21 */ bl appendUsedList__10JKRExpHeapFPQ210JKRExpHeap9CMemBlock
/* 802CF6B0 002CC5F0 38 7D 00 10 */ addi r3, r29, 0x10
/* 802CF6B4 002CC5F4 48 00 00 08 */ b lbl_802CF6BC
lbl_802CF6B8:
/* 802CF6B8 002CC5F8 38 60 00 00 */ li r3, 0
lbl_802CF6BC:
/* 802CF6BC 002CC5FC 39 61 00 20 */ addi r11, r1, 0x20
/* 802CF6C0 002CC600 48 09 2B 61 */ bl _restgpr_27
/* 802CF6C4 002CC604 80 01 00 24 */ lwz r0, 0x24(r1)
/* 802CF6C8 002CC608 7C 08 03 A6 */ mtlr r0
/* 802CF6CC 002CC60C 38 21 00 20 */ addi r1, r1, 0x20
/* 802CF6D0 002CC610 4E 80 00 20 */ blr
@@ -0,0 +1,65 @@
/* allocFromTail__10JKRExpHeapFUl __ct__10JKRExpHeapFPvUlP7JKRHeapb::allocFromTail(unsigned long) */
/* JKRExpHeap_NS_allocFromTail_X1_ */
/* 802CF6D4 002CC614 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 802CF6D8 002CC618 7C 08 02 A6 */ mflr r0
/* 802CF6DC 002CC61C 90 01 00 24 */ stw r0, 0x24(r1)
/* 802CF6E0 002CC620 39 61 00 20 */ addi r11, r1, 0x20
/* 802CF6E4 002CC624 48 09 2A F9 */ bl _savegpr_29
/* 802CF6E8 002CC628 7C 7D 1B 78 */ mr r29, r3
/* 802CF6EC 002CC62C 38 04 00 03 */ addi r0, r4, 3
/* 802CF6F0 002CC630 54 04 00 3A */ rlwinm r4, r0, 0, 0, 0x1d
/* 802CF6F4 002CC634 3B E0 00 00 */ li r31, 0
/* 802CF6F8 002CC638 80 63 00 7C */ lwz r3, 0x7c(r3)
/* 802CF6FC 002CC63C 48 00 00 1C */ b lbl_802CF718
lbl_802CF700:
/* 802CF700 002CC640 80 03 00 04 */ lwz r0, 4(r3)
/* 802CF704 002CC644 7C 00 20 40 */ cmplw r0, r4
/* 802CF708 002CC648 41 80 00 0C */ blt lbl_802CF714
/* 802CF70C 002CC64C 7C 7F 1B 78 */ mr r31, r3
/* 802CF710 002CC650 48 00 00 10 */ b lbl_802CF720
lbl_802CF714:
/* 802CF714 002CC654 80 63 00 08 */ lwz r3, 8(r3)
lbl_802CF718:
/* 802CF718 002CC658 28 03 00 00 */ cmplwi r3, 0
/* 802CF71C 002CC65C 40 82 FF E4 */ bne lbl_802CF700
lbl_802CF720:
/* 802CF720 002CC660 28 1F 00 00 */ cmplwi r31, 0
/* 802CF724 002CC664 41 82 00 6C */ beq lbl_802CF790
/* 802CF728 002CC668 7F E3 FB 78 */ mr r3, r31
/* 802CF72C 002CC66C 38 A0 00 00 */ li r5, 0
/* 802CF730 002CC670 38 C0 00 00 */ li r6, 0
/* 802CF734 002CC674 88 FD 00 6D */ lbz r7, 0x6d(r29)
/* 802CF738 002CC678 39 00 00 00 */ li r8, 0
/* 802CF73C 002CC67C 48 00 11 39 */ bl allocBack__Q210JKRExpHeap9CMemBlockFUlUcUcUcUc
/* 802CF740 002CC680 7C 7E 1B 79 */ or. r30, r3, r3
/* 802CF744 002CC684 41 82 00 0C */ beq lbl_802CF750
/* 802CF748 002CC688 7F E4 FB 78 */ mr r4, r31
/* 802CF74C 002CC68C 48 00 00 18 */ b lbl_802CF764
lbl_802CF750:
/* 802CF750 002CC690 7F A3 EB 78 */ mr r3, r29
/* 802CF754 002CC694 7F E4 FB 78 */ mr r4, r31
/* 802CF758 002CC698 48 00 07 5D */ bl removeFreeBlock__10JKRExpHeapFPQ210JKRExpHeap9CMemBlock
/* 802CF75C 002CC69C 7F FE FB 78 */ mr r30, r31
/* 802CF760 002CC6A0 38 80 00 00 */ li r4, 0
lbl_802CF764:
/* 802CF764 002CC6A4 28 04 00 00 */ cmplwi r4, 0
/* 802CF768 002CC6A8 41 82 00 14 */ beq lbl_802CF77C
/* 802CF76C 002CC6AC 7F A3 EB 78 */ mr r3, r29
/* 802CF770 002CC6B0 80 BF 00 08 */ lwz r5, 8(r31)
/* 802CF774 002CC6B4 80 DF 00 0C */ lwz r6, 0xc(r31)
/* 802CF778 002CC6B8 48 00 06 F1 */ bl setFreeBlock__10JKRExpHeapFPQ210JKRExpHeap9CMemBlockPQ210JKRExpHeap9CMemBlockPQ210JKRExpHeap9CMemBlock
lbl_802CF77C:
/* 802CF77C 002CC6BC 7F A3 EB 78 */ mr r3, r29
/* 802CF780 002CC6C0 7F C4 F3 78 */ mr r4, r30
/* 802CF784 002CC6C4 48 00 06 49 */ bl appendUsedList__10JKRExpHeapFPQ210JKRExpHeap9CMemBlock
/* 802CF788 002CC6C8 38 7E 00 10 */ addi r3, r30, 0x10
/* 802CF78C 002CC6CC 48 00 00 08 */ b lbl_802CF794
lbl_802CF790:
/* 802CF790 002CC6D0 38 60 00 00 */ li r3, 0
lbl_802CF794:
/* 802CF794 002CC6D4 39 61 00 20 */ addi r11, r1, 0x20
/* 802CF798 002CC6D8 48 09 2A 91 */ bl _restgpr_29
/* 802CF79C 002CC6DC 80 01 00 24 */ lwz r0, 0x24(r1)
/* 802CF7A0 002CC6E0 7C 08 03 A6 */ mtlr r0
/* 802CF7A4 002CC6E4 38 21 00 20 */ addi r1, r1, 0x20
/* 802CF7A8 002CC6E8 4E 80 00 20 */ blr
@@ -0,0 +1,32 @@
/* do_free__10JKRExpHeapFPv __ct__10JKRExpHeapFPvUlP7JKRHeapb::do_free(void *) */
/* missing reference */
/* 802CF7AC 002CC6EC 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 802CF7B0 002CC6F0 7C 08 02 A6 */ mflr r0
/* 802CF7B4 002CC6F4 90 01 00 14 */ stw r0, 0x14(r1)
/* 802CF7B8 002CC6F8 93 E1 00 0C */ stw r31, 0xc(r1)
/* 802CF7BC 002CC6FC 93 C1 00 08 */ stw r30, 8(r1)
/* 802CF7C0 002CC700 7C 7E 1B 78 */ mr r30, r3
/* 802CF7C4 002CC704 7C 9F 23 78 */ mr r31, r4
/* 802CF7C8 002CC708 38 7E 00 18 */ addi r3, r30, 0x18
/* 802CF7CC 002CC70C 48 06 F8 75 */ bl OSLockMutex
/* 802CF7D0 002CC710 80 1E 00 30 */ lwz r0, 0x30(r30)
/* 802CF7D4 002CC714 7C 00 F8 40 */ cmplw r0, r31
/* 802CF7D8 002CC718 41 81 00 28 */ bgt lbl_802CF800
/* 802CF7DC 002CC71C 80 1E 00 34 */ lwz r0, 0x34(r30)
/* 802CF7E0 002CC720 7C 1F 00 40 */ cmplw r31, r0
/* 802CF7E4 002CC724 41 81 00 1C */ bgt lbl_802CF800
/* 802CF7E8 002CC728 7F E3 FB 78 */ mr r3, r31
/* 802CF7EC 002CC72C 48 00 11 31 */ bl getHeapBlock__Q210JKRExpHeap9CMemBlockFPv
/* 802CF7F0 002CC730 28 03 00 00 */ cmplwi r3, 0
/* 802CF7F4 002CC734 41 82 00 0C */ beq lbl_802CF800
/* 802CF7F8 002CC738 7F C4 F3 78 */ mr r4, r30
/* 802CF7FC 002CC73C 48 00 10 D1 */ bl free__Q210JKRExpHeap9CMemBlockFP10JKRExpHeap
lbl_802CF800:
/* 802CF800 002CC740 38 7E 00 18 */ addi r3, r30, 0x18
/* 802CF804 002CC744 48 06 F9 19 */ bl OSUnlockMutex
/* 802CF808 002CC748 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 802CF80C 002CC74C 83 C1 00 08 */ lwz r30, 8(r1)
/* 802CF810 002CC750 80 01 00 14 */ lwz r0, 0x14(r1)
/* 802CF814 002CC754 7C 08 03 A6 */ mtlr r0
/* 802CF818 002CC758 38 21 00 10 */ addi r1, r1, 0x10
/* 802CF81C 002CC75C 4E 80 00 20 */ blr
@@ -0,0 +1,33 @@
/* do_freeAll__10JKRExpHeapFv __ct__10JKRExpHeapFPvUlP7JKRHeapb::do_freeAll(void) */
/* missing reference */
/* 802CF820 002CC760 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 802CF824 002CC764 7C 08 02 A6 */ mflr r0
/* 802CF828 002CC768 90 01 00 14 */ stw r0, 0x14(r1)
/* 802CF82C 002CC76C 93 E1 00 0C */ stw r31, 0xc(r1)
/* 802CF830 002CC770 7C 7F 1B 78 */ mr r31, r3
/* 802CF834 002CC774 38 7F 00 18 */ addi r3, r31, 0x18
/* 802CF838 002CC778 48 06 F8 09 */ bl OSLockMutex
/* 802CF83C 002CC77C 7F E3 FB 78 */ mr r3, r31
/* 802CF840 002CC780 4B FF ED 35 */ bl callAllDisposer__7JKRHeapFv
/* 802CF844 002CC784 80 1F 00 30 */ lwz r0, 0x30(r31)
/* 802CF848 002CC788 90 1F 00 78 */ stw r0, 0x78(r31)
/* 802CF84C 002CC78C 80 1F 00 78 */ lwz r0, 0x78(r31)
/* 802CF850 002CC790 90 1F 00 7C */ stw r0, 0x7c(r31)
/* 802CF854 002CC794 80 7F 00 78 */ lwz r3, 0x78(r31)
/* 802CF858 002CC798 38 80 00 00 */ li r4, 0
/* 802CF85C 002CC79C 38 A0 00 00 */ li r5, 0
/* 802CF860 002CC7A0 80 DF 00 38 */ lwz r6, 0x38(r31)
/* 802CF864 002CC7A4 38 C6 FF F0 */ addi r6, r6, -16
/* 802CF868 002CC7A8 38 E0 00 00 */ li r7, 0
/* 802CF86C 002CC7AC 39 00 00 00 */ li r8, 0
/* 802CF870 002CC7B0 48 00 0F A1 */ bl initiate__Q210JKRExpHeap9CMemBlockFPQ210JKRExpHeap9CMemBlockPQ210JKRExpHeap9CMemBlockUlUcUc
/* 802CF874 002CC7B4 38 00 00 00 */ li r0, 0
/* 802CF878 002CC7B8 90 1F 00 80 */ stw r0, 0x80(r31)
/* 802CF87C 002CC7BC 90 1F 00 84 */ stw r0, 0x84(r31)
/* 802CF880 002CC7C0 38 7F 00 18 */ addi r3, r31, 0x18
/* 802CF884 002CC7C4 48 06 F8 99 */ bl OSUnlockMutex
/* 802CF888 002CC7C8 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 802CF88C 002CC7CC 80 01 00 14 */ lwz r0, 0x14(r1)
/* 802CF890 002CC7D0 7C 08 03 A6 */ mtlr r0
/* 802CF894 002CC7D4 38 21 00 10 */ addi r1, r1, 0x10
/* 802CF898 002CC7D8 4E 80 00 20 */ blr
@@ -0,0 +1,39 @@
/* do_freeTail__10JKRExpHeapFv __ct__10JKRExpHeapFPvUlP7JKRHeapb::do_freeTail(void) */
/* missing reference */
/* 802CF89C 002CC7DC 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 802CF8A0 002CC7E0 7C 08 02 A6 */ mflr r0
/* 802CF8A4 002CC7E4 90 01 00 24 */ stw r0, 0x24(r1)
/* 802CF8A8 002CC7E8 39 61 00 20 */ addi r11, r1, 0x20
/* 802CF8AC 002CC7EC 48 09 29 31 */ bl _savegpr_29
/* 802CF8B0 002CC7F0 7C 7D 1B 78 */ mr r29, r3
/* 802CF8B4 002CC7F4 38 7D 00 18 */ addi r3, r29, 0x18
/* 802CF8B8 002CC7F8 48 06 F7 89 */ bl OSLockMutex
/* 802CF8BC 002CC7FC 83 FD 00 80 */ lwz r31, 0x80(r29)
/* 802CF8C0 002CC800 48 00 00 3C */ b lbl_802CF8FC
lbl_802CF8C4:
/* 802CF8C4 002CC804 88 1F 00 02 */ lbz r0, 2(r31)
/* 802CF8C8 002CC808 54 00 06 31 */ rlwinm. r0, r0, 0, 0x18, 0x18
/* 802CF8CC 002CC80C 41 82 00 2C */ beq lbl_802CF8F8
/* 802CF8D0 002CC810 7F A3 EB 78 */ mr r3, r29
/* 802CF8D4 002CC814 38 9F 00 10 */ addi r4, r31, 0x10
/* 802CF8D8 002CC818 80 BF 00 04 */ lwz r5, 4(r31)
/* 802CF8DC 002CC81C 4B FF F1 9D */ bl dispose__7JKRHeapFPvUl
/* 802CF8E0 002CC820 83 DF 00 0C */ lwz r30, 0xc(r31)
/* 802CF8E4 002CC824 7F E3 FB 78 */ mr r3, r31
/* 802CF8E8 002CC828 7F A4 EB 78 */ mr r4, r29
/* 802CF8EC 002CC82C 48 00 0F E1 */ bl free__Q210JKRExpHeap9CMemBlockFP10JKRExpHeap
/* 802CF8F0 002CC830 7F DF F3 78 */ mr r31, r30
/* 802CF8F4 002CC834 48 00 00 08 */ b lbl_802CF8FC
lbl_802CF8F8:
/* 802CF8F8 002CC838 83 FF 00 0C */ lwz r31, 0xc(r31)
lbl_802CF8FC:
/* 802CF8FC 002CC83C 28 1F 00 00 */ cmplwi r31, 0
/* 802CF900 002CC840 40 82 FF C4 */ bne lbl_802CF8C4
/* 802CF904 002CC844 38 7D 00 18 */ addi r3, r29, 0x18
/* 802CF908 002CC848 48 06 F8 15 */ bl OSUnlockMutex
/* 802CF90C 002CC84C 39 61 00 20 */ addi r11, r1, 0x20
/* 802CF910 002CC850 48 09 29 19 */ bl _restgpr_29
/* 802CF914 002CC854 80 01 00 24 */ lwz r0, 0x24(r1)
/* 802CF918 002CC858 7C 08 03 A6 */ mtlr r0
/* 802CF91C 002CC85C 38 21 00 20 */ addi r1, r1, 0x20
/* 802CF920 002CC860 4E 80 00 20 */ blr
@@ -0,0 +1,3 @@
/* do_fillFreeArea__10JKRExpHeapFv __ct__10JKRExpHeapFPvUlP7JKRHeapb::do_fillFreeArea(void) */
/* missing reference */
/* 802CF924 002CC864 4E 80 00 20 */ blr
@@ -0,0 +1,22 @@
/* do_changeGroupID__10JKRExpHeapFUc __ct__10JKRExpHeapFPvUlP7JKRHeapb::do_changeGroupID(unsigned char) */
/* missing reference */
/* 802CF928 002CC868 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 802CF92C 002CC86C 7C 08 02 A6 */ mflr r0
/* 802CF930 002CC870 90 01 00 24 */ stw r0, 0x24(r1)
/* 802CF934 002CC874 39 61 00 20 */ addi r11, r1, 0x20
/* 802CF938 002CC878 48 09 28 A5 */ bl _savegpr_29
/* 802CF93C 002CC87C 7C 7D 1B 78 */ mr r29, r3
/* 802CF940 002CC880 7C 9E 23 78 */ mr r30, r4
/* 802CF944 002CC884 38 7D 00 18 */ addi r3, r29, 0x18
/* 802CF948 002CC888 48 06 F6 F9 */ bl OSLockMutex
/* 802CF94C 002CC88C 8B FD 00 6D */ lbz r31, 0x6d(r29)
/* 802CF950 002CC890 9B DD 00 6D */ stb r30, 0x6d(r29)
/* 802CF954 002CC894 38 7D 00 18 */ addi r3, r29, 0x18
/* 802CF958 002CC898 48 06 F7 C5 */ bl OSUnlockMutex
/* 802CF95C 002CC89C 7F E3 FB 78 */ mr r3, r31
/* 802CF960 002CC8A0 39 61 00 20 */ addi r11, r1, 0x20
/* 802CF964 002CC8A4 48 09 28 C5 */ bl _restgpr_29
/* 802CF968 002CC8A8 80 01 00 24 */ lwz r0, 0x24(r1)
/* 802CF96C 002CC8AC 7C 08 03 A6 */ mtlr r0
/* 802CF970 002CC8B0 38 21 00 20 */ addi r1, r1, 0x20
/* 802CF974 002CC8B4 4E 80 00 20 */ blr
@@ -0,0 +1,121 @@
/* do_resize__10JKRExpHeapFPvUl __ct__10JKRExpHeapFPvUlP7JKRHeapb::do_resize(void *, unsigned long) */
/* missing reference */
/* 802CF978 002CC8B8 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 802CF97C 002CC8BC 7C 08 02 A6 */ mflr r0
/* 802CF980 002CC8C0 90 01 00 24 */ stw r0, 0x24(r1)
/* 802CF984 002CC8C4 39 61 00 20 */ addi r11, r1, 0x20
/* 802CF988 002CC8C8 48 09 28 51 */ bl _savegpr_28
/* 802CF98C 002CC8CC 7C 7D 1B 78 */ mr r29, r3
/* 802CF990 002CC8D0 7C 9C 23 78 */ mr r28, r4
/* 802CF994 002CC8D4 7C BE 2B 78 */ mr r30, r5
/* 802CF998 002CC8D8 38 7D 00 18 */ addi r3, r29, 0x18
/* 802CF99C 002CC8DC 48 06 F6 A5 */ bl OSLockMutex
/* 802CF9A0 002CC8E0 7F 83 E3 78 */ mr r3, r28
/* 802CF9A4 002CC8E4 48 00 0F 79 */ bl getHeapBlock__Q210JKRExpHeap9CMemBlockFPv
/* 802CF9A8 002CC8E8 7C 7F 1B 79 */ or. r31, r3, r3
/* 802CF9AC 002CC8EC 41 82 00 1C */ beq lbl_802CF9C8
/* 802CF9B0 002CC8F0 80 1D 00 30 */ lwz r0, 0x30(r29)
/* 802CF9B4 002CC8F4 7C 1C 00 40 */ cmplw r28, r0
/* 802CF9B8 002CC8F8 41 80 00 10 */ blt lbl_802CF9C8
/* 802CF9BC 002CC8FC 80 1D 00 34 */ lwz r0, 0x34(r29)
/* 802CF9C0 002CC900 7C 00 E0 40 */ cmplw r0, r28
/* 802CF9C4 002CC904 40 80 00 14 */ bge lbl_802CF9D8
lbl_802CF9C8:
/* 802CF9C8 002CC908 38 7D 00 18 */ addi r3, r29, 0x18
/* 802CF9CC 002CC90C 48 06 F7 51 */ bl OSUnlockMutex
/* 802CF9D0 002CC910 38 60 FF FF */ li r3, -1
/* 802CF9D4 002CC914 48 00 01 38 */ b lbl_802CFB0C
lbl_802CF9D8:
/* 802CF9D8 002CC918 38 1E 00 03 */ addi r0, r30, 3
/* 802CF9DC 002CC91C 54 1E 00 3A */ rlwinm r30, r0, 0, 0, 0x1d
/* 802CF9E0 002CC920 80 9F 00 04 */ lwz r4, 4(r31)
/* 802CF9E4 002CC924 7C 1E 20 40 */ cmplw r30, r4
/* 802CF9E8 002CC928 40 82 00 14 */ bne lbl_802CF9FC
/* 802CF9EC 002CC92C 38 7D 00 18 */ addi r3, r29, 0x18
/* 802CF9F0 002CC930 48 06 F7 2D */ bl OSUnlockMutex
/* 802CF9F4 002CC934 7F C3 F3 78 */ mr r3, r30
/* 802CF9F8 002CC938 48 00 01 14 */ b lbl_802CFB0C
lbl_802CF9FC:
/* 802CF9FC 002CC93C 40 81 00 D0 */ ble lbl_802CFACC
/* 802CFA00 002CC940 3B 80 00 00 */ li r28, 0
/* 802CFA04 002CC944 80 7D 00 78 */ lwz r3, 0x78(r29)
/* 802CFA08 002CC948 38 1F 00 10 */ addi r0, r31, 0x10
/* 802CFA0C 002CC94C 7C 00 22 14 */ add r0, r0, r4
/* 802CFA10 002CC950 48 00 00 18 */ b lbl_802CFA28
lbl_802CFA14:
/* 802CFA14 002CC954 7C 03 00 40 */ cmplw r3, r0
/* 802CFA18 002CC958 40 82 00 0C */ bne lbl_802CFA24
/* 802CFA1C 002CC95C 7C 7C 1B 78 */ mr r28, r3
/* 802CFA20 002CC960 48 00 00 10 */ b lbl_802CFA30
lbl_802CFA24:
/* 802CFA24 002CC964 80 63 00 0C */ lwz r3, 0xc(r3)
lbl_802CFA28:
/* 802CFA28 002CC968 28 03 00 00 */ cmplwi r3, 0
/* 802CFA2C 002CC96C 40 82 FF E8 */ bne lbl_802CFA14
lbl_802CFA30:
/* 802CFA30 002CC970 28 1C 00 00 */ cmplwi r28, 0
/* 802CFA34 002CC974 40 82 00 14 */ bne lbl_802CFA48
/* 802CFA38 002CC978 38 7D 00 18 */ addi r3, r29, 0x18
/* 802CFA3C 002CC97C 48 06 F6 E1 */ bl OSUnlockMutex
/* 802CFA40 002CC980 38 60 FF FF */ li r3, -1
/* 802CFA44 002CC984 48 00 00 C8 */ b lbl_802CFB0C
lbl_802CFA48:
/* 802CFA48 002CC988 80 1C 00 04 */ lwz r0, 4(r28)
/* 802CFA4C 002CC98C 7C 64 02 14 */ add r3, r4, r0
/* 802CFA50 002CC990 38 03 00 10 */ addi r0, r3, 0x10
/* 802CFA54 002CC994 7C 1E 00 40 */ cmplw r30, r0
/* 802CFA58 002CC998 40 81 00 14 */ ble lbl_802CFA6C
/* 802CFA5C 002CC99C 38 7D 00 18 */ addi r3, r29, 0x18
/* 802CFA60 002CC9A0 48 06 F6 BD */ bl OSUnlockMutex
/* 802CFA64 002CC9A4 38 60 FF FF */ li r3, -1
/* 802CFA68 002CC9A8 48 00 00 A4 */ b lbl_802CFB0C
lbl_802CFA6C:
/* 802CFA6C 002CC9AC 7F A3 EB 78 */ mr r3, r29
/* 802CFA70 002CC9B0 7F 84 E3 78 */ mr r4, r28
/* 802CFA74 002CC9B4 48 00 04 41 */ bl removeFreeBlock__10JKRExpHeapFPQ210JKRExpHeap9CMemBlock
/* 802CFA78 002CC9B8 80 7F 00 04 */ lwz r3, 4(r31)
/* 802CFA7C 002CC9BC 80 1C 00 04 */ lwz r0, 4(r28)
/* 802CFA80 002CC9C0 7C 60 1A 14 */ add r3, r0, r3
/* 802CFA84 002CC9C4 38 03 00 10 */ addi r0, r3, 0x10
/* 802CFA88 002CC9C8 90 1F 00 04 */ stw r0, 4(r31)
/* 802CFA8C 002CC9CC 80 1F 00 04 */ lwz r0, 4(r31)
/* 802CFA90 002CC9D0 7C 1E 00 50 */ subf r0, r30, r0
/* 802CFA94 002CC9D4 28 00 00 10 */ cmplwi r0, 0x10
/* 802CFA98 002CC9D8 40 81 00 68 */ ble lbl_802CFB00
/* 802CFA9C 002CC9DC 7F E3 FB 78 */ mr r3, r31
/* 802CFAA0 002CC9E0 7F C4 F3 78 */ mr r4, r30
/* 802CFAA4 002CC9E4 88 BF 00 03 */ lbz r5, 3(r31)
/* 802CFAA8 002CC9E8 88 DF 00 02 */ lbz r6, 2(r31)
/* 802CFAAC 002CC9EC 38 E0 00 00 */ li r7, 0
/* 802CFAB0 002CC9F0 39 00 00 00 */ li r8, 0
/* 802CFAB4 002CC9F4 48 00 0D 7D */ bl allocFore__Q210JKRExpHeap9CMemBlockFUlUcUcUcUc
/* 802CFAB8 002CC9F8 7C 64 1B 79 */ or. r4, r3, r3
/* 802CFABC 002CC9FC 41 82 00 44 */ beq lbl_802CFB00
/* 802CFAC0 002CCA00 7F A3 EB 78 */ mr r3, r29
/* 802CFAC4 002CCA04 48 00 04 59 */ bl recycleFreeBlock__10JKRExpHeapFPQ210JKRExpHeap9CMemBlock
/* 802CFAC8 002CCA08 48 00 00 38 */ b lbl_802CFB00
lbl_802CFACC:
/* 802CFACC 002CCA0C 7C 1E 20 50 */ subf r0, r30, r4
/* 802CFAD0 002CCA10 28 00 00 10 */ cmplwi r0, 0x10
/* 802CFAD4 002CCA14 40 81 00 2C */ ble lbl_802CFB00
/* 802CFAD8 002CCA18 7F C4 F3 78 */ mr r4, r30
/* 802CFADC 002CCA1C 88 BF 00 03 */ lbz r5, 3(r31)
/* 802CFAE0 002CCA20 88 DF 00 02 */ lbz r6, 2(r31)
/* 802CFAE4 002CCA24 38 E0 00 00 */ li r7, 0
/* 802CFAE8 002CCA28 39 00 00 00 */ li r8, 0
/* 802CFAEC 002CCA2C 48 00 0D 45 */ bl allocFore__Q210JKRExpHeap9CMemBlockFUlUcUcUcUc
/* 802CFAF0 002CCA30 7C 64 1B 79 */ or. r4, r3, r3
/* 802CFAF4 002CCA34 41 82 00 0C */ beq lbl_802CFB00
/* 802CFAF8 002CCA38 7F A3 EB 78 */ mr r3, r29
/* 802CFAFC 002CCA3C 48 00 04 21 */ bl recycleFreeBlock__10JKRExpHeapFPQ210JKRExpHeap9CMemBlock
lbl_802CFB00:
/* 802CFB00 002CCA40 38 7D 00 18 */ addi r3, r29, 0x18
/* 802CFB04 002CCA44 48 06 F6 19 */ bl OSUnlockMutex
/* 802CFB08 002CCA48 80 7F 00 04 */ lwz r3, 4(r31)
lbl_802CFB0C:
/* 802CFB0C 002CCA4C 39 61 00 20 */ addi r11, r1, 0x20
/* 802CFB10 002CCA50 48 09 27 15 */ bl _restgpr_28
/* 802CFB14 002CCA54 80 01 00 24 */ lwz r0, 0x24(r1)
/* 802CFB18 002CCA58 7C 08 03 A6 */ mtlr r0
/* 802CFB1C 002CCA5C 38 21 00 20 */ addi r1, r1, 0x20
/* 802CFB20 002CCA60 4E 80 00 20 */ blr
@@ -0,0 +1,37 @@
/* do_getSize__10JKRExpHeapFPv __ct__10JKRExpHeapFPvUlP7JKRHeapb::do_getSize(void *) */
/* missing reference */
/* 802CFB24 002CCA64 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 802CFB28 002CCA68 7C 08 02 A6 */ mflr r0
/* 802CFB2C 002CCA6C 90 01 00 24 */ stw r0, 0x24(r1)
/* 802CFB30 002CCA70 39 61 00 20 */ addi r11, r1, 0x20
/* 802CFB34 002CCA74 48 09 26 A9 */ bl _savegpr_29
/* 802CFB38 002CCA78 7C 7D 1B 78 */ mr r29, r3
/* 802CFB3C 002CCA7C 7C 9E 23 78 */ mr r30, r4
/* 802CFB40 002CCA80 38 7D 00 18 */ addi r3, r29, 0x18
/* 802CFB44 002CCA84 48 06 F4 FD */ bl OSLockMutex
/* 802CFB48 002CCA88 7F C3 F3 78 */ mr r3, r30
/* 802CFB4C 002CCA8C 48 00 0D D1 */ bl getHeapBlock__Q210JKRExpHeap9CMemBlockFPv
/* 802CFB50 002CCA90 7C 7F 1B 79 */ or. r31, r3, r3
/* 802CFB54 002CCA94 41 82 00 1C */ beq lbl_802CFB70
/* 802CFB58 002CCA98 80 1D 00 30 */ lwz r0, 0x30(r29)
/* 802CFB5C 002CCA9C 7C 1E 00 40 */ cmplw r30, r0
/* 802CFB60 002CCAA0 41 80 00 10 */ blt lbl_802CFB70
/* 802CFB64 002CCAA4 80 1D 00 34 */ lwz r0, 0x34(r29)
/* 802CFB68 002CCAA8 7C 00 F0 40 */ cmplw r0, r30
/* 802CFB6C 002CCAAC 40 80 00 14 */ bge lbl_802CFB80
lbl_802CFB70:
/* 802CFB70 002CCAB0 38 7D 00 18 */ addi r3, r29, 0x18
/* 802CFB74 002CCAB4 48 06 F5 A9 */ bl OSUnlockMutex
/* 802CFB78 002CCAB8 38 60 FF FF */ li r3, -1
/* 802CFB7C 002CCABC 48 00 00 10 */ b lbl_802CFB8C
lbl_802CFB80:
/* 802CFB80 002CCAC0 38 7D 00 18 */ addi r3, r29, 0x18
/* 802CFB84 002CCAC4 48 06 F5 99 */ bl OSUnlockMutex
/* 802CFB88 002CCAC8 80 7F 00 04 */ lwz r3, 4(r31)
lbl_802CFB8C:
/* 802CFB8C 002CCACC 39 61 00 20 */ addi r11, r1, 0x20
/* 802CFB90 002CCAD0 48 09 26 99 */ bl _restgpr_29
/* 802CFB94 002CCAD4 80 01 00 24 */ lwz r0, 0x24(r1)
/* 802CFB98 002CCAD8 7C 08 03 A6 */ mtlr r0
/* 802CFB9C 002CCADC 38 21 00 20 */ addi r1, r1, 0x20
/* 802CFBA0 002CCAE0 4E 80 00 20 */ blr
@@ -0,0 +1,32 @@
/* do_getFreeSize__10JKRExpHeapFv __ct__10JKRExpHeapFPvUlP7JKRHeapb::do_getFreeSize(void) */
/* missing reference */
/* 802CFBA4 002CCAE4 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 802CFBA8 002CCAE8 7C 08 02 A6 */ mflr r0
/* 802CFBAC 002CCAEC 90 01 00 14 */ stw r0, 0x14(r1)
/* 802CFBB0 002CCAF0 93 E1 00 0C */ stw r31, 0xc(r1)
/* 802CFBB4 002CCAF4 93 C1 00 08 */ stw r30, 8(r1)
/* 802CFBB8 002CCAF8 7C 7E 1B 78 */ mr r30, r3
/* 802CFBBC 002CCAFC 38 7E 00 18 */ addi r3, r30, 0x18
/* 802CFBC0 002CCB00 48 06 F4 81 */ bl OSLockMutex
/* 802CFBC4 002CCB04 3B E0 00 00 */ li r31, 0
/* 802CFBC8 002CCB08 80 7E 00 78 */ lwz r3, 0x78(r30)
/* 802CFBCC 002CCB0C 48 00 00 18 */ b lbl_802CFBE4
lbl_802CFBD0:
/* 802CFBD0 002CCB10 80 03 00 04 */ lwz r0, 4(r3)
/* 802CFBD4 002CCB14 7C 1F 00 00 */ cmpw r31, r0
/* 802CFBD8 002CCB18 40 80 00 08 */ bge lbl_802CFBE0
/* 802CFBDC 002CCB1C 7C 1F 03 78 */ mr r31, r0
lbl_802CFBE0:
/* 802CFBE0 002CCB20 80 63 00 0C */ lwz r3, 0xc(r3)
lbl_802CFBE4:
/* 802CFBE4 002CCB24 28 03 00 00 */ cmplwi r3, 0
/* 802CFBE8 002CCB28 40 82 FF E8 */ bne lbl_802CFBD0
/* 802CFBEC 002CCB2C 38 7E 00 18 */ addi r3, r30, 0x18
/* 802CFBF0 002CCB30 48 06 F5 2D */ bl OSUnlockMutex
/* 802CFBF4 002CCB34 7F E3 FB 78 */ mr r3, r31
/* 802CFBF8 002CCB38 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 802CFBFC 002CCB3C 83 C1 00 08 */ lwz r30, 8(r1)
/* 802CFC00 002CCB40 80 01 00 14 */ lwz r0, 0x14(r1)
/* 802CFC04 002CCB44 7C 08 03 A6 */ mtlr r0
/* 802CFC08 002CCB48 38 21 00 10 */ addi r1, r1, 0x10
/* 802CFC0C 002CCB4C 4E 80 00 20 */ blr
@@ -0,0 +1,34 @@
/* do_getMaxFreeBlock__10JKRExpHeapFv __ct__10JKRExpHeapFPvUlP7JKRHeapb::do_getMaxFreeBlock(void) */
/* missing reference */
/* 802CFC10 002CCB50 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 802CFC14 002CCB54 7C 08 02 A6 */ mflr r0
/* 802CFC18 002CCB58 90 01 00 14 */ stw r0, 0x14(r1)
/* 802CFC1C 002CCB5C 93 E1 00 0C */ stw r31, 0xc(r1)
/* 802CFC20 002CCB60 93 C1 00 08 */ stw r30, 8(r1)
/* 802CFC24 002CCB64 7C 7E 1B 78 */ mr r30, r3
/* 802CFC28 002CCB68 38 7E 00 18 */ addi r3, r30, 0x18
/* 802CFC2C 002CCB6C 48 06 F4 15 */ bl OSLockMutex
/* 802CFC30 002CCB70 38 60 00 00 */ li r3, 0
/* 802CFC34 002CCB74 3B E0 00 00 */ li r31, 0
/* 802CFC38 002CCB78 80 9E 00 78 */ lwz r4, 0x78(r30)
/* 802CFC3C 002CCB7C 48 00 00 1C */ b lbl_802CFC58
lbl_802CFC40:
/* 802CFC40 002CCB80 80 04 00 04 */ lwz r0, 4(r4)
/* 802CFC44 002CCB84 7C 03 00 00 */ cmpw r3, r0
/* 802CFC48 002CCB88 40 80 00 0C */ bge lbl_802CFC54
/* 802CFC4C 002CCB8C 7C 03 03 78 */ mr r3, r0
/* 802CFC50 002CCB90 7C 9F 23 78 */ mr r31, r4
lbl_802CFC54:
/* 802CFC54 002CCB94 80 84 00 0C */ lwz r4, 0xc(r4)
lbl_802CFC58:
/* 802CFC58 002CCB98 28 04 00 00 */ cmplwi r4, 0
/* 802CFC5C 002CCB9C 40 82 FF E4 */ bne lbl_802CFC40
/* 802CFC60 002CCBA0 38 7E 00 18 */ addi r3, r30, 0x18
/* 802CFC64 002CCBA4 48 06 F4 B9 */ bl OSUnlockMutex
/* 802CFC68 002CCBA8 7F E3 FB 78 */ mr r3, r31
/* 802CFC6C 002CCBAC 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 802CFC70 002CCBB0 83 C1 00 08 */ lwz r30, 8(r1)
/* 802CFC74 002CCBB4 80 01 00 14 */ lwz r0, 0x14(r1)
/* 802CFC78 002CCBB8 7C 08 03 A6 */ mtlr r0
/* 802CFC7C 002CCBBC 38 21 00 10 */ addi r1, r1, 0x10
/* 802CFC80 002CCBC0 4E 80 00 20 */ blr
@@ -0,0 +1,29 @@
/* do_getTotalFreeSize__10JKRExpHeapFv __ct__10JKRExpHeapFPvUlP7JKRHeapb::do_getTotalFreeSize(void) */
/* missing reference */
/* 802CFC84 002CCBC4 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 802CFC88 002CCBC8 7C 08 02 A6 */ mflr r0
/* 802CFC8C 002CCBCC 90 01 00 14 */ stw r0, 0x14(r1)
/* 802CFC90 002CCBD0 93 E1 00 0C */ stw r31, 0xc(r1)
/* 802CFC94 002CCBD4 93 C1 00 08 */ stw r30, 8(r1)
/* 802CFC98 002CCBD8 7C 7E 1B 78 */ mr r30, r3
/* 802CFC9C 002CCBDC 3B E0 00 00 */ li r31, 0
/* 802CFCA0 002CCBE0 38 7E 00 18 */ addi r3, r30, 0x18
/* 802CFCA4 002CCBE4 48 06 F3 9D */ bl OSLockMutex
/* 802CFCA8 002CCBE8 80 7E 00 78 */ lwz r3, 0x78(r30)
/* 802CFCAC 002CCBEC 48 00 00 10 */ b lbl_802CFCBC
lbl_802CFCB0:
/* 802CFCB0 002CCBF0 80 03 00 04 */ lwz r0, 4(r3)
/* 802CFCB4 002CCBF4 7F FF 02 14 */ add r31, r31, r0
/* 802CFCB8 002CCBF8 80 63 00 0C */ lwz r3, 0xc(r3)
lbl_802CFCBC:
/* 802CFCBC 002CCBFC 28 03 00 00 */ cmplwi r3, 0
/* 802CFCC0 002CCC00 40 82 FF F0 */ bne lbl_802CFCB0
/* 802CFCC4 002CCC04 38 7E 00 18 */ addi r3, r30, 0x18
/* 802CFCC8 002CCC08 48 06 F4 55 */ bl OSUnlockMutex
/* 802CFCCC 002CCC0C 7F E3 FB 78 */ mr r3, r31
/* 802CFCD0 002CCC10 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 802CFCD4 002CCC14 83 C1 00 08 */ lwz r30, 8(r1)
/* 802CFCD8 002CCC18 80 01 00 14 */ lwz r0, 0x14(r1)
/* 802CFCDC 002CCC1C 7C 08 03 A6 */ mtlr r0
/* 802CFCE0 002CCC20 38 21 00 10 */ addi r1, r1, 0x10
/* 802CFCE4 002CCC24 4E 80 00 20 */ blr
@@ -0,0 +1,36 @@
/* getUsedSize__10JKRExpHeapCFUc __ct__10JKRExpHeapFPvUlP7JKRHeapb::getUsedSize( const(unsigned char)) */
/* JKRExpHeap_NS_getUsedSize */
/* 802CFCE8 002CCC28 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 802CFCEC 002CCC2C 7C 08 02 A6 */ mflr r0
/* 802CFCF0 002CCC30 90 01 00 24 */ stw r0, 0x24(r1)
/* 802CFCF4 002CCC34 39 61 00 20 */ addi r11, r1, 0x20
/* 802CFCF8 002CCC38 48 09 24 E5 */ bl _savegpr_29
/* 802CFCFC 002CCC3C 7C 7D 1B 78 */ mr r29, r3
/* 802CFD00 002CCC40 7C 9E 23 78 */ mr r30, r4
/* 802CFD04 002CCC44 38 7D 00 18 */ addi r3, r29, 0x18
/* 802CFD08 002CCC48 48 06 F3 39 */ bl OSLockMutex
/* 802CFD0C 002CCC4C 3B E0 00 00 */ li r31, 0
/* 802CFD10 002CCC50 80 9D 00 80 */ lwz r4, 0x80(r29)
/* 802CFD14 002CCC54 57 C3 06 3E */ clrlwi r3, r30, 0x18
/* 802CFD18 002CCC58 48 00 00 20 */ b lbl_802CFD38
lbl_802CFD1C:
/* 802CFD1C 002CCC5C 88 04 00 03 */ lbz r0, 3(r4)
/* 802CFD20 002CCC60 7C 00 18 40 */ cmplw r0, r3
/* 802CFD24 002CCC64 40 82 00 10 */ bne lbl_802CFD34
/* 802CFD28 002CCC68 80 04 00 04 */ lwz r0, 4(r4)
/* 802CFD2C 002CCC6C 7F E0 FA 14 */ add r31, r0, r31
/* 802CFD30 002CCC70 3B FF 00 10 */ addi r31, r31, 0x10
lbl_802CFD34:
/* 802CFD34 002CCC74 80 84 00 0C */ lwz r4, 0xc(r4)
lbl_802CFD38:
/* 802CFD38 002CCC78 28 04 00 00 */ cmplwi r4, 0
/* 802CFD3C 002CCC7C 40 82 FF E0 */ bne lbl_802CFD1C
/* 802CFD40 002CCC80 38 7D 00 18 */ addi r3, r29, 0x18
/* 802CFD44 002CCC84 48 06 F3 D9 */ bl OSUnlockMutex
/* 802CFD48 002CCC88 7F E3 FB 78 */ mr r3, r31
/* 802CFD4C 002CCC8C 39 61 00 20 */ addi r11, r1, 0x20
/* 802CFD50 002CCC90 48 09 24 D9 */ bl _restgpr_29
/* 802CFD54 002CCC94 80 01 00 24 */ lwz r0, 0x24(r1)
/* 802CFD58 002CCC98 7C 08 03 A6 */ mtlr r0
/* 802CFD5C 002CCC9C 38 21 00 20 */ addi r1, r1, 0x20
/* 802CFD60 002CCCA0 4E 80 00 20 */ blr

Some files were not shown because too many files have changed in this diff Show More