diff options
| -rw-r--r-- | asm/NW4R/ut_DvdFileStream.s | 486 | ||||
| -rw-r--r-- | asm/NW4R/ut_DvdLockedFileStream.s | 185 | ||||
| -rw-r--r-- | asm/NW4R/ut_FileStream.s | 89 | ||||
| -rw-r--r-- | asm/text_10_3.s | 686 | ||||
| -rw-r--r-- | obj_files.mk | 3 | 
5 files changed, 772 insertions, 677 deletions
| diff --git a/asm/NW4R/ut_DvdFileStream.s b/asm/NW4R/ut_DvdFileStream.s new file mode 100644 index 0000000..72ae8e0 --- /dev/null +++ b/asm/NW4R/ut_DvdFileStream.s @@ -0,0 +1,486 @@ +.include "macros.inc"
 +
 +.section .text, "ax"  # 0x80006980 - 0x803E1E60
 +
 +.global DvdAsyncCallback___Q34nw4r2ut13DvdFileStreamFlP11DVDFileInfo
 +DvdAsyncCallback___Q34nw4r2ut13DvdFileStreamFlP11DVDFileInfo:
 +/* 80363618 0035F278  80 84 00 3C */	lwz r4, 0x3c(r4)
 +/* 8036361C 0035F27C  38 00 00 00 */	li r0, 0
 +/* 80363620 0035F280  98 04 00 6C */	stb r0, 0x6c(r4)
 +/* 80363624 0035F284  90 64 00 08 */	stw r3, 8(r4)
 +/* 80363628 0035F288  81 84 00 0C */	lwz r12, 0xc(r4)
 +/* 8036362C 0035F28C  2C 0C 00 00 */	cmpwi r12, 0
 +/* 80363630 0035F290  4D 82 00 20 */	beqlr
 +/* 80363634 0035F294  80 A4 00 10 */	lwz r5, 0x10(r4)
 +/* 80363638 0035F298  7D 89 03 A6 */	mtctr r12
 +/* 8036363C 0035F29C  4E 80 04 20 */	bctr
 +/* 80363640 0035F2A0  4E 80 00 20 */	blr
 +
 +.global DvdCBAsyncCallback___Q34nw4r2ut13DvdFileStreamFlP15DVDCommandBlock
 +DvdCBAsyncCallback___Q34nw4r2ut13DvdFileStreamFlP15DVDCommandBlock:
 +/* 80363644 0035F2A4  80 84 00 3C */	lwz r4, 0x3c(r4)
 +/* 80363648 0035F2A8  38 00 00 00 */	li r0, 0
 +/* 8036364C 0035F2AC  98 04 00 24 */	stb r0, 0x24(r4)
 +/* 80363650 0035F2B0  81 84 00 1C */	lwz r12, 0x1c(r4)
 +/* 80363654 0035F2B4  2C 0C 00 00 */	cmpwi r12, 0
 +/* 80363658 0035F2B8  4D 82 00 20 */	beqlr
 +/* 8036365C 0035F2BC  80 A4 00 20 */	lwz r5, 0x20(r4)
 +/* 80363660 0035F2C0  7D 89 03 A6 */	mtctr r12
 +/* 80363664 0035F2C4  4E 80 04 20 */	bctr
 +/* 80363668 0035F2C8  4E 80 00 20 */	blr
 +
 +.global __ct__Q34nw4r2ut13DvdFileStreamFl
 +__ct__Q34nw4r2ut13DvdFileStreamFl:
 +/* 8036366C 0035F2CC  94 21 FF F0 */	stwu r1, -0x10(r1)
 +/* 80363670 0035F2D0  7C 08 02 A6 */	mflr r0
 +/* 80363674 0035F2D4  3C A0 80 45 */	lis r5, lbl_8044C6F0@ha
 +/* 80363678 0035F2D8  38 C0 00 00 */	li r6, 0
 +/* 8036367C 0035F2DC  90 01 00 14 */	stw r0, 0x14(r1)
 +/* 80363680 0035F2E0  38 A5 C6 F0 */	addi r5, r5, lbl_8044C6F0@l
 +/* 80363684 0035F2E4  38 00 00 02 */	li r0, 2
 +/* 80363688 0035F2E8  93 E1 00 0C */	stw r31, 0xc(r1)
 +/* 8036368C 0035F2EC  7C 7F 1B 78 */	mr r31, r3
 +/* 80363690 0035F2F0  98 C3 00 6C */	stb r6, 0x6c(r3)
 +/* 80363694 0035F2F4  90 A3 00 00 */	stw r5, 0(r3)
 +/* 80363698 0035F2F8  90 C3 00 14 */	stw r6, 0x14(r3)
 +/* 8036369C 0035F2FC  90 C3 00 18 */	stw r6, 0x18(r3)
 +/* 803636A0 0035F300  98 C3 00 6D */	stb r6, 0x6d(r3)
 +/* 803636A4 0035F304  98 C3 00 6E */	stb r6, 0x6e(r3)
 +/* 803636A8 0035F308  98 C3 00 04 */	stb r6, 4(r3)
 +/* 803636AC 0035F30C  90 03 00 68 */	stw r0, 0x68(r3)
 +/* 803636B0 0035F310  90 C3 00 0C */	stw r6, 0xc(r3)
 +/* 803636B4 0035F314  90 C3 00 10 */	stw r6, 0x10(r3)
 +/* 803636B8 0035F318  90 C3 00 08 */	stw r6, 8(r3)
 +/* 803636BC 0035F31C  90 C3 00 1C */	stw r6, 0x1c(r3)
 +/* 803636C0 0035F320  98 C3 00 24 */	stb r6, 0x24(r3)
 +/* 803636C4 0035F324  90 C3 00 20 */	stw r6, 0x20(r3)
 +/* 803636C8 0035F328  90 63 00 64 */	stw r3, 0x64(r3)
 +/* 803636CC 0035F32C  48 00 00 08 */	b lbl_803636D4
 +/* 803636D0 0035F330  4E 80 04 21 */	bctrl
 +lbl_803636D4:
 +/* 803636D4 0035F334  7C 83 23 78 */	mr r3, r4
 +/* 803636D8 0035F338  38 9F 00 28 */	addi r4, r31, 0x28
 +/* 803636DC 0035F33C  4B F2 42 E9 */	bl func_802879C4
 +/* 803636E0 0035F340  2C 03 00 00 */	cmpwi r3, 0
 +/* 803636E4 0035F344  41 82 00 2C */	beq lbl_80363710
 +/* 803636E8 0035F348  80 1F 00 5C */	lwz r0, 0x5c(r31)
 +/* 803636EC 0035F34C  38 7F 00 14 */	addi r3, r31, 0x14
 +/* 803636F0 0035F350  38 80 00 00 */	li r4, 0
 +/* 803636F4 0035F354  38 A0 00 00 */	li r5, 0
 +/* 803636F8 0035F358  90 1F 00 14 */	stw r0, 0x14(r31)
 +/* 803636FC 0035F35C  4B FF FE 79 */	bl Seek__Q44nw4r2ut10FileStream12FilePositionFlUl
 +/* 80363700 0035F360  38 00 00 01 */	li r0, 1
 +/* 80363704 0035F364  98 1F 00 6D */	stb r0, 0x6d(r31)
 +/* 80363708 0035F368  98 1F 00 6E */	stb r0, 0x6e(r31)
 +/* 8036370C 0035F36C  98 1F 00 04 */	stb r0, 4(r31)
 +lbl_80363710:
 +/* 80363710 0035F370  7F E3 FB 78 */	mr r3, r31
 +/* 80363714 0035F374  83 E1 00 0C */	lwz r31, 0xc(r1)
 +/* 80363718 0035F378  80 01 00 14 */	lwz r0, 0x14(r1)
 +/* 8036371C 0035F37C  7C 08 03 A6 */	mtlr r0
 +/* 80363720 0035F380  38 21 00 10 */	addi r1, r1, 0x10
 +/* 80363724 0035F384  4E 80 00 20 */	blr
 +
 +.global __ct__Q34nw4r2ut13DvdFileStreamFPC11DVDFileInfob
 +__ct__Q34nw4r2ut13DvdFileStreamFPC11DVDFileInfob:
 +/* 80363728 0035F388  94 21 FF D0 */	stwu r1, -0x30(r1)
 +/* 8036372C 0035F38C  7C 08 02 A6 */	mflr r0
 +/* 80363730 0035F390  90 01 00 34 */	stw r0, 0x34(r1)
 +/* 80363734 0035F394  39 61 00 30 */	addi r11, r1, 0x30
 +/* 80363738 0035F398  4B E6 39 DD */	bl _savegpr_22
 +/* 8036373C 0035F39C  3C C0 80 45 */	lis r6, lbl_8044C6F0@ha
 +/* 80363740 0035F3A0  38 E0 00 00 */	li r7, 0
 +/* 80363744 0035F3A4  38 C6 C6 F0 */	addi r6, r6, lbl_8044C6F0@l
 +/* 80363748 0035F3A8  38 00 00 02 */	li r0, 2
 +/* 8036374C 0035F3AC  98 E3 00 6C */	stb r7, 0x6c(r3)
 +/* 80363750 0035F3B0  7C 7E 1B 78 */	mr r30, r3
 +/* 80363754 0035F3B4  7C 96 23 78 */	mr r22, r4
 +/* 80363758 0035F3B8  7C BF 2B 78 */	mr r31, r5
 +/* 8036375C 0035F3BC  90 C3 00 00 */	stw r6, 0(r3)
 +/* 80363760 0035F3C0  90 E3 00 14 */	stw r7, 0x14(r3)
 +/* 80363764 0035F3C4  90 E3 00 18 */	stw r7, 0x18(r3)
 +/* 80363768 0035F3C8  98 E3 00 6D */	stb r7, 0x6d(r3)
 +/* 8036376C 0035F3CC  98 E3 00 6E */	stb r7, 0x6e(r3)
 +/* 80363770 0035F3D0  98 E3 00 04 */	stb r7, 4(r3)
 +/* 80363774 0035F3D4  90 03 00 68 */	stw r0, 0x68(r3)
 +/* 80363778 0035F3D8  90 E3 00 0C */	stw r7, 0xc(r3)
 +/* 8036377C 0035F3DC  90 E3 00 10 */	stw r7, 0x10(r3)
 +/* 80363780 0035F3E0  90 E3 00 08 */	stw r7, 8(r3)
 +/* 80363784 0035F3E4  90 E3 00 1C */	stw r7, 0x1c(r3)
 +/* 80363788 0035F3E8  98 E3 00 24 */	stb r7, 0x24(r3)
 +/* 8036378C 0035F3EC  90 E3 00 20 */	stw r7, 0x20(r3)
 +/* 80363790 0035F3F0  90 63 00 64 */	stw r3, 0x64(r3)
 +/* 80363794 0035F3F4  48 00 00 08 */	b lbl_8036379C
 +/* 80363798 0035F3F8  4E 80 04 21 */	bctrl
 +lbl_8036379C:
 +/* 8036379C 0035F3FC  80 D6 00 34 */	lwz r6, 0x34(r22)
 +/* 803637A0 0035F400  38 7E 00 14 */	addi r3, r30, 0x14
 +/* 803637A4 0035F404  82 F6 00 00 */	lwz r23, 0(r22)
 +/* 803637A8 0035F408  38 80 00 00 */	li r4, 0
 +/* 803637AC 0035F40C  83 16 00 04 */	lwz r24, 4(r22)
 +/* 803637B0 0035F410  38 A0 00 00 */	li r5, 0
 +/* 803637B4 0035F414  83 36 00 08 */	lwz r25, 8(r22)
 +/* 803637B8 0035F418  83 56 00 0C */	lwz r26, 0xc(r22)
 +/* 803637BC 0035F41C  83 76 00 10 */	lwz r27, 0x10(r22)
 +/* 803637C0 0035F420  83 96 00 14 */	lwz r28, 0x14(r22)
 +/* 803637C4 0035F424  83 B6 00 18 */	lwz r29, 0x18(r22)
 +/* 803637C8 0035F428  81 96 00 1C */	lwz r12, 0x1c(r22)
 +/* 803637CC 0035F42C  81 76 00 20 */	lwz r11, 0x20(r22)
 +/* 803637D0 0035F430  81 56 00 24 */	lwz r10, 0x24(r22)
 +/* 803637D4 0035F434  81 36 00 28 */	lwz r9, 0x28(r22)
 +/* 803637D8 0035F438  81 16 00 2C */	lwz r8, 0x2c(r22)
 +/* 803637DC 0035F43C  80 F6 00 30 */	lwz r7, 0x30(r22)
 +/* 803637E0 0035F440  80 16 00 38 */	lwz r0, 0x38(r22)
 +/* 803637E4 0035F444  92 FE 00 28 */	stw r23, 0x28(r30)
 +/* 803637E8 0035F448  93 1E 00 2C */	stw r24, 0x2c(r30)
 +/* 803637EC 0035F44C  93 3E 00 30 */	stw r25, 0x30(r30)
 +/* 803637F0 0035F450  93 5E 00 34 */	stw r26, 0x34(r30)
 +/* 803637F4 0035F454  93 7E 00 38 */	stw r27, 0x38(r30)
 +/* 803637F8 0035F458  93 9E 00 3C */	stw r28, 0x3c(r30)
 +/* 803637FC 0035F45C  93 BE 00 40 */	stw r29, 0x40(r30)
 +/* 80363800 0035F460  91 9E 00 44 */	stw r12, 0x44(r30)
 +/* 80363804 0035F464  91 7E 00 48 */	stw r11, 0x48(r30)
 +/* 80363808 0035F468  91 5E 00 4C */	stw r10, 0x4c(r30)
 +/* 8036380C 0035F46C  91 3E 00 50 */	stw r9, 0x50(r30)
 +/* 80363810 0035F470  91 1E 00 54 */	stw r8, 0x54(r30)
 +/* 80363814 0035F474  90 FE 00 58 */	stw r7, 0x58(r30)
 +/* 80363818 0035F478  90 DE 00 5C */	stw r6, 0x5c(r30)
 +/* 8036381C 0035F47C  90 1E 00 60 */	stw r0, 0x60(r30)
 +/* 80363820 0035F480  90 DE 00 14 */	stw r6, 0x14(r30)
 +/* 80363824 0035F484  4B FF FD 51 */	bl Seek__Q44nw4r2ut10FileStream12FilePositionFlUl
 +/* 80363828 0035F488  38 60 00 00 */	li r3, 0
 +/* 8036382C 0035F48C  38 00 00 01 */	li r0, 1
 +/* 80363830 0035F490  98 7E 00 6D */	stb r3, 0x6d(r30)
 +/* 80363834 0035F494  39 61 00 30 */	addi r11, r1, 0x30
 +/* 80363838 0035F498  7F C3 F3 78 */	mr r3, r30
 +/* 8036383C 0035F49C  9B FE 00 6E */	stb r31, 0x6e(r30)
 +/* 80363840 0035F4A0  98 1E 00 04 */	stb r0, 4(r30)
 +/* 80363844 0035F4A4  4B E6 39 1D */	bl func_801C7160
 +/* 80363848 0035F4A8  80 01 00 34 */	lwz r0, 0x34(r1)
 +/* 8036384C 0035F4AC  7C 08 03 A6 */	mtlr r0
 +/* 80363850 0035F4B0  38 21 00 30 */	addi r1, r1, 0x30
 +/* 80363854 0035F4B4  4E 80 00 20 */	blr
 +
 +.global __dt__Q34nw4r2ut13DvdFileStreamFv
 +__dt__Q34nw4r2ut13DvdFileStreamFv:
 +/* 80363858 0035F4B8  94 21 FF F0 */	stwu r1, -0x10(r1)
 +/* 8036385C 0035F4BC  7C 08 02 A6 */	mflr r0
 +/* 80363860 0035F4C0  2C 03 00 00 */	cmpwi r3, 0
 +/* 80363864 0035F4C4  90 01 00 14 */	stw r0, 0x14(r1)
 +/* 80363868 0035F4C8  93 E1 00 0C */	stw r31, 0xc(r1)
 +/* 8036386C 0035F4CC  7C 9F 23 78 */	mr r31, r4
 +/* 80363870 0035F4D0  93 C1 00 08 */	stw r30, 8(r1)
 +/* 80363874 0035F4D4  7C 7E 1B 78 */	mr r30, r3
 +/* 80363878 0035F4D8  41 82 00 3C */	beq lbl_803638B4
 +/* 8036387C 0035F4DC  88 03 00 6D */	lbz r0, 0x6d(r3)
 +/* 80363880 0035F4E0  3C 80 80 45 */	lis r4, lbl_8044C6F0@ha
 +/* 80363884 0035F4E4  38 84 C6 F0 */	addi r4, r4, lbl_8044C6F0@l
 +/* 80363888 0035F4E8  2C 00 00 00 */	cmpwi r0, 0
 +/* 8036388C 0035F4EC  90 83 00 00 */	stw r4, 0(r3)
 +/* 80363890 0035F4F0  41 82 00 14 */	beq lbl_803638A4
 +/* 80363894 0035F4F4  81 83 00 00 */	lwz r12, 0(r3)
 +/* 80363898 0035F4F8  81 8C 00 10 */	lwz r12, 0x10(r12)
 +/* 8036389C 0035F4FC  7D 89 03 A6 */	mtctr r12
 +/* 803638A0 0035F500  4E 80 04 21 */	bctrl
 +lbl_803638A4:
 +/* 803638A4 0035F504  2C 1F 00 00 */	cmpwi r31, 0
 +/* 803638A8 0035F508  40 81 00 0C */	ble lbl_803638B4
 +/* 803638AC 0035F50C  7F C3 F3 78 */	mr r3, r30
 +/* 803638B0 0035F510  4B E7 72 09 */	bl func_801DAAB8
 +lbl_803638B4:
 +/* 803638B4 0035F514  7F C3 F3 78 */	mr r3, r30
 +/* 803638B8 0035F518  83 E1 00 0C */	lwz r31, 0xc(r1)
 +/* 803638BC 0035F51C  83 C1 00 08 */	lwz r30, 8(r1)
 +/* 803638C0 0035F520  80 01 00 14 */	lwz r0, 0x14(r1)
 +/* 803638C4 0035F524  7C 08 03 A6 */	mtlr r0
 +/* 803638C8 0035F528  38 21 00 10 */	addi r1, r1, 0x10
 +/* 803638CC 0035F52C  4E 80 00 20 */	blr
 +
 +.global Close__Q34nw4r2ut13DvdFileStreamFv
 +Close__Q34nw4r2ut13DvdFileStreamFv:
 +/* 803638D0 0035F530  94 21 FF F0 */	stwu r1, -0x10(r1)
 +/* 803638D4 0035F534  7C 08 02 A6 */	mflr r0
 +/* 803638D8 0035F538  90 01 00 14 */	stw r0, 0x14(r1)
 +/* 803638DC 0035F53C  93 E1 00 0C */	stw r31, 0xc(r1)
 +/* 803638E0 0035F540  7C 7F 1B 78 */	mr r31, r3
 +/* 803638E4 0035F544  88 03 00 6E */	lbz r0, 0x6e(r3)
 +/* 803638E8 0035F548  2C 00 00 00 */	cmpwi r0, 0
 +/* 803638EC 0035F54C  41 82 00 20 */	beq lbl_8036390C
 +/* 803638F0 0035F550  88 03 00 04 */	lbz r0, 4(r3)
 +/* 803638F4 0035F554  2C 00 00 00 */	cmpwi r0, 0
 +/* 803638F8 0035F558  41 82 00 14 */	beq lbl_8036390C
 +/* 803638FC 0035F55C  38 63 00 28 */	addi r3, r3, 0x28
 +/* 80363900 0035F560  4B F2 43 D9 */	bl func_80287CD8
 +/* 80363904 0035F564  38 00 00 00 */	li r0, 0
 +/* 80363908 0035F568  98 1F 00 04 */	stb r0, 4(r31)
 +lbl_8036390C:
 +/* 8036390C 0035F56C  80 01 00 14 */	lwz r0, 0x14(r1)
 +/* 80363910 0035F570  83 E1 00 0C */	lwz r31, 0xc(r1)
 +/* 80363914 0035F574  7C 08 03 A6 */	mtlr r0
 +/* 80363918 0035F578  38 21 00 10 */	addi r1, r1, 0x10
 +/* 8036391C 0035F57C  4E 80 00 20 */	blr
 +
 +.global Read__Q34nw4r2ut13DvdFileStreamFPvUl
 +Read__Q34nw4r2ut13DvdFileStreamFPvUl:
 +/* 80363920 0035F580  94 21 FF F0 */	stwu r1, -0x10(r1)
 +/* 80363924 0035F584  7C 08 02 A6 */	mflr r0
 +/* 80363928 0035F588  90 01 00 14 */	stw r0, 0x14(r1)
 +/* 8036392C 0035F58C  93 E1 00 0C */	stw r31, 0xc(r1)
 +/* 80363930 0035F590  93 C1 00 08 */	stw r30, 8(r1)
 +/* 80363934 0035F594  7C 7E 1B 78 */	mr r30, r3
 +/* 80363938 0035F598  80 C3 00 18 */	lwz r6, 0x18(r3)
 +/* 8036393C 0035F59C  81 03 00 14 */	lwz r8, 0x14(r3)
 +/* 80363940 0035F5A0  7C E6 2A 14 */	add r7, r6, r5
 +/* 80363944 0035F5A4  38 E7 00 1F */	addi r7, r7, 0x1f
 +/* 80363948 0035F5A8  38 08 00 1F */	addi r0, r8, 0x1f
 +/* 8036394C 0035F5AC  54 E7 00 34 */	rlwinm r7, r7, 0, 0, 0x1a
 +/* 80363950 0035F5B0  54 00 00 34 */	rlwinm r0, r0, 0, 0, 0x1a
 +/* 80363954 0035F5B4  7C 07 00 40 */	cmplw r7, r0
 +/* 80363958 0035F5B8  40 81 00 10 */	ble lbl_80363968
 +/* 8036395C 0035F5BC  7C A6 40 50 */	subf r5, r6, r8
 +/* 80363960 0035F5C0  38 05 00 1F */	addi r0, r5, 0x1f
 +/* 80363964 0035F5C4  54 05 00 34 */	rlwinm r5, r0, 0, 0, 0x1a
 +lbl_80363968:
 +/* 80363968 0035F5C8  80 E3 00 68 */	lwz r7, 0x68(r3)
 +/* 8036396C 0035F5CC  38 63 00 28 */	addi r3, r3, 0x28
 +/* 80363970 0035F5D0  4B F2 46 35 */	bl func_80287FA4
 +/* 80363974 0035F5D4  2C 03 00 00 */	cmpwi r3, 0
 +/* 80363978 0035F5D8  7C 7F 1B 78 */	mr r31, r3
 +/* 8036397C 0035F5DC  40 81 00 10 */	ble lbl_8036398C
 +/* 80363980 0035F5E0  7F E4 FB 78 */	mr r4, r31
 +/* 80363984 0035F5E4  38 7E 00 14 */	addi r3, r30, 0x14
 +/* 80363988 0035F5E8  4B FF FB 89 */	bl Skip__Q44nw4r2ut10FileStream12FilePositionFl
 +lbl_8036398C:
 +/* 8036398C 0035F5EC  7F E3 FB 78 */	mr r3, r31
 +/* 80363990 0035F5F0  83 E1 00 0C */	lwz r31, 0xc(r1)
 +/* 80363994 0035F5F4  83 C1 00 08 */	lwz r30, 8(r1)
 +/* 80363998 0035F5F8  80 01 00 14 */	lwz r0, 0x14(r1)
 +/* 8036399C 0035F5FC  7C 08 03 A6 */	mtlr r0
 +/* 803639A0 0035F600  38 21 00 10 */	addi r1, r1, 0x10
 +/* 803639A4 0035F604  4E 80 00 20 */	blr
 +
 +.global ReadAsync__Q34nw4r2ut13DvdFileStreamFPvUlPFlPQ34nw4r2ut8IOStreamPv_vPv
 +ReadAsync__Q34nw4r2ut13DvdFileStreamFPvUlPFlPQ34nw4r2ut8IOStreamPv_vPv:
 +/* 803639A8 0035F608  94 21 FF E0 */	stwu r1, -0x20(r1)
 +/* 803639AC 0035F60C  7C 08 02 A6 */	mflr r0
 +/* 803639B0 0035F610  90 01 00 24 */	stw r0, 0x24(r1)
 +/* 803639B4 0035F614  93 E1 00 1C */	stw r31, 0x1c(r1)
 +/* 803639B8 0035F618  7C 7F 1B 78 */	mr r31, r3
 +/* 803639BC 0035F61C  93 C1 00 18 */	stw r30, 0x18(r1)
 +/* 803639C0 0035F620  7C BE 2B 78 */	mr r30, r5
 +/* 803639C4 0035F624  93 A1 00 14 */	stw r29, 0x14(r1)
 +/* 803639C8 0035F628  81 03 00 18 */	lwz r8, 0x18(r3)
 +/* 803639CC 0035F62C  81 23 00 14 */	lwz r9, 0x14(r3)
 +/* 803639D0 0035F630  7C A8 2A 14 */	add r5, r8, r5
 +/* 803639D4 0035F634  38 A5 00 1F */	addi r5, r5, 0x1f
 +/* 803639D8 0035F638  38 09 00 1F */	addi r0, r9, 0x1f
 +/* 803639DC 0035F63C  54 A5 00 34 */	rlwinm r5, r5, 0, 0, 0x1a
 +/* 803639E0 0035F640  54 00 00 34 */	rlwinm r0, r0, 0, 0, 0x1a
 +/* 803639E4 0035F644  7C 05 00 40 */	cmplw r5, r0
 +/* 803639E8 0035F648  40 81 00 10 */	ble lbl_803639F8
 +/* 803639EC 0035F64C  7C A8 48 50 */	subf r5, r8, r9
 +/* 803639F0 0035F650  38 05 00 1F */	addi r0, r5, 0x1f
 +/* 803639F4 0035F654  54 1E 00 34 */	rlwinm r30, r0, 0, 0, 0x1a
 +lbl_803639F8:
 +/* 803639F8 0035F658  81 63 00 18 */	lwz r11, 0x18(r3)
 +/* 803639FC 0035F65C  39 20 00 01 */	li r9, 1
 +/* 80363A00 0035F660  81 43 00 14 */	lwz r10, 0x14(r3)
 +/* 80363A04 0035F664  7F C5 F3 78 */	mr r5, r30
 +/* 80363A08 0035F668  7D 0B F2 14 */	add r8, r11, r30
 +/* 80363A0C 0035F66C  90 C3 00 0C */	stw r6, 0xc(r3)
 +/* 80363A10 0035F670  38 C8 00 1F */	addi r6, r8, 0x1f
 +/* 80363A14 0035F674  38 0A 00 1F */	addi r0, r10, 0x1f
 +/* 80363A18 0035F678  54 C6 00 34 */	rlwinm r6, r6, 0, 0, 0x1a
 +/* 80363A1C 0035F67C  90 E3 00 10 */	stw r7, 0x10(r3)
 +/* 80363A20 0035F680  54 00 00 34 */	rlwinm r0, r0, 0, 0, 0x1a
 +/* 80363A24 0035F684  7C 06 00 40 */	cmplw r6, r0
 +/* 80363A28 0035F688  99 23 00 6C */	stb r9, 0x6c(r3)
 +/* 80363A2C 0035F68C  40 81 00 10 */	ble lbl_80363A3C
 +/* 80363A30 0035F690  7C AB 50 50 */	subf r5, r11, r10
 +/* 80363A34 0035F694  38 05 00 1F */	addi r0, r5, 0x1f
 +/* 80363A38 0035F698  54 05 00 34 */	rlwinm r5, r0, 0, 0, 0x1a
 +lbl_80363A3C:
 +/* 80363A3C 0035F69C  81 03 00 68 */	lwz r8, 0x68(r3)
 +/* 80363A40 0035F6A0  3C E0 80 36 */	lis r7, DvdAsyncCallback___Q34nw4r2ut13DvdFileStreamFlP11DVDFileInfo@ha
 +/* 80363A44 0035F6A4  7D 66 5B 78 */	mr r6, r11
 +/* 80363A48 0035F6A8  38 63 00 28 */	addi r3, r3, 0x28
 +/* 80363A4C 0035F6AC  38 E7 36 18 */	addi r7, r7, DvdAsyncCallback___Q34nw4r2ut13DvdFileStreamFlP11DVDFileInfo@l
 +/* 80363A50 0035F6B0  4B F2 44 6D */	bl func_80287EBC
 +/* 80363A54 0035F6B4  7C 03 00 D0 */	neg r0, r3
 +/* 80363A58 0035F6B8  7C 00 1B 78 */	or r0, r0, r3
 +/* 80363A5C 0035F6BC  54 1D 0F FF */	rlwinm. r29, r0, 1, 0x1f, 0x1f
 +/* 80363A60 0035F6C0  41 82 00 14 */	beq lbl_80363A74
 +/* 80363A64 0035F6C4  7F C4 F3 78 */	mr r4, r30
 +/* 80363A68 0035F6C8  38 7F 00 14 */	addi r3, r31, 0x14
 +/* 80363A6C 0035F6CC  4B FF FA A5 */	bl Skip__Q44nw4r2ut10FileStream12FilePositionFl
 +/* 80363A70 0035F6D0  48 00 00 0C */	b lbl_80363A7C
 +lbl_80363A74:
 +/* 80363A74 0035F6D4  38 00 00 00 */	li r0, 0
 +/* 80363A78 0035F6D8  98 1F 00 6C */	stb r0, 0x6c(r31)
 +lbl_80363A7C:
 +/* 80363A7C 0035F6DC  83 E1 00 1C */	lwz r31, 0x1c(r1)
 +/* 80363A80 0035F6E0  7F A3 EB 78 */	mr r3, r29
 +/* 80363A84 0035F6E4  83 C1 00 18 */	lwz r30, 0x18(r1)
 +/* 80363A88 0035F6E8  83 A1 00 14 */	lwz r29, 0x14(r1)
 +/* 80363A8C 0035F6EC  80 01 00 24 */	lwz r0, 0x24(r1)
 +/* 80363A90 0035F6F0  7C 08 03 A6 */	mtlr r0
 +/* 80363A94 0035F6F4  38 21 00 20 */	addi r1, r1, 0x20
 +/* 80363A98 0035F6F8  4E 80 00 20 */	blr
 +
 +.global Peek__Q34nw4r2ut13DvdFileStreamFPvUl
 +Peek__Q34nw4r2ut13DvdFileStreamFPvUl:
 +/* 80363A9C 0035F6FC  80 C3 00 18 */	lwz r6, 0x18(r3)
 +/* 80363AA0 0035F700  81 03 00 14 */	lwz r8, 0x14(r3)
 +/* 80363AA4 0035F704  7C E6 2A 14 */	add r7, r6, r5
 +/* 80363AA8 0035F708  38 E7 00 1F */	addi r7, r7, 0x1f
 +/* 80363AAC 0035F70C  38 08 00 1F */	addi r0, r8, 0x1f
 +/* 80363AB0 0035F710  54 E7 00 34 */	rlwinm r7, r7, 0, 0, 0x1a
 +/* 80363AB4 0035F714  54 00 00 34 */	rlwinm r0, r0, 0, 0, 0x1a
 +/* 80363AB8 0035F718  7C 07 00 40 */	cmplw r7, r0
 +/* 80363ABC 0035F71C  40 81 00 10 */	ble lbl_80363ACC
 +/* 80363AC0 0035F720  7C A6 40 50 */	subf r5, r6, r8
 +/* 80363AC4 0035F724  38 05 00 1F */	addi r0, r5, 0x1f
 +/* 80363AC8 0035F728  54 05 00 34 */	rlwinm r5, r0, 0, 0, 0x1a
 +lbl_80363ACC:
 +/* 80363ACC 0035F72C  80 E3 00 68 */	lwz r7, 0x68(r3)
 +/* 80363AD0 0035F730  38 63 00 28 */	addi r3, r3, 0x28
 +/* 80363AD4 0035F734  4B F2 44 D0 */	b func_80287FA4
 +
 +.global PeekAsync__Q34nw4r2ut13DvdFileStreamFPvUlPFlPQ34nw4r2ut8IOStreamPv_vPv
 +PeekAsync__Q34nw4r2ut13DvdFileStreamFPvUlPFlPQ34nw4r2ut8IOStreamPv_vPv:
 +/* 80363AD8 0035F738  94 21 FF F0 */	stwu r1, -0x10(r1)
 +/* 80363ADC 0035F73C  7C 08 02 A6 */	mflr r0
 +/* 80363AE0 0035F740  39 20 00 01 */	li r9, 1
 +/* 80363AE4 0035F744  90 01 00 14 */	stw r0, 0x14(r1)
 +/* 80363AE8 0035F748  81 63 00 18 */	lwz r11, 0x18(r3)
 +/* 80363AEC 0035F74C  81 43 00 14 */	lwz r10, 0x14(r3)
 +/* 80363AF0 0035F750  7D 0B 2A 14 */	add r8, r11, r5
 +/* 80363AF4 0035F754  90 C3 00 0C */	stw r6, 0xc(r3)
 +/* 80363AF8 0035F758  38 C8 00 1F */	addi r6, r8, 0x1f
 +/* 80363AFC 0035F75C  38 0A 00 1F */	addi r0, r10, 0x1f
 +/* 80363B00 0035F760  54 C6 00 34 */	rlwinm r6, r6, 0, 0, 0x1a
 +/* 80363B04 0035F764  90 E3 00 10 */	stw r7, 0x10(r3)
 +/* 80363B08 0035F768  54 00 00 34 */	rlwinm r0, r0, 0, 0, 0x1a
 +/* 80363B0C 0035F76C  7C 06 00 40 */	cmplw r6, r0
 +/* 80363B10 0035F770  99 23 00 6C */	stb r9, 0x6c(r3)
 +/* 80363B14 0035F774  40 81 00 10 */	ble lbl_80363B24
 +/* 80363B18 0035F778  7C AB 50 50 */	subf r5, r11, r10
 +/* 80363B1C 0035F77C  38 05 00 1F */	addi r0, r5, 0x1f
 +/* 80363B20 0035F780  54 05 00 34 */	rlwinm r5, r0, 0, 0, 0x1a
 +lbl_80363B24:
 +/* 80363B24 0035F784  81 03 00 68 */	lwz r8, 0x68(r3)
 +/* 80363B28 0035F788  3C E0 80 36 */	lis r7, DvdAsyncCallback___Q34nw4r2ut13DvdFileStreamFlP11DVDFileInfo@ha
 +/* 80363B2C 0035F78C  7D 66 5B 78 */	mr r6, r11
 +/* 80363B30 0035F790  38 63 00 28 */	addi r3, r3, 0x28
 +/* 80363B34 0035F794  38 E7 36 18 */	addi r7, r7, DvdAsyncCallback___Q34nw4r2ut13DvdFileStreamFlP11DVDFileInfo@l
 +/* 80363B38 0035F798  4B F2 43 85 */	bl func_80287EBC
 +/* 80363B3C 0035F79C  7C 03 00 D0 */	neg r0, r3
 +/* 80363B40 0035F7A0  7C 00 1B 78 */	or r0, r0, r3
 +/* 80363B44 0035F7A4  54 03 0F FE */	srwi r3, r0, 0x1f
 +/* 80363B48 0035F7A8  80 01 00 14 */	lwz r0, 0x14(r1)
 +/* 80363B4C 0035F7AC  7C 08 03 A6 */	mtlr r0
 +/* 80363B50 0035F7B0  38 21 00 10 */	addi r1, r1, 0x10
 +/* 80363B54 0035F7B4  4E 80 00 20 */	blr
 +
 +.global Seek__Q34nw4r2ut13DvdFileStreamFlUl
 +Seek__Q34nw4r2ut13DvdFileStreamFlUl:
 +/* 80363B58 0035F7B8  38 63 00 14 */	addi r3, r3, 0x14
 +/* 80363B5C 0035F7BC  4B FF FA 18 */	b Seek__Q44nw4r2ut10FileStream12FilePositionFlUl
 +
 +.global Cancel__Q34nw4r2ut13DvdFileStreamFv
 +Cancel__Q34nw4r2ut13DvdFileStreamFv:
 +/* 80363B60 0035F7C0  38 63 00 28 */	addi r3, r3, 0x28
 +/* 80363B64 0035F7C4  4B F2 87 B8 */	b func_8028C31C
 +
 +.global CancelAsync__Q34nw4r2ut13DvdFileStreamFPFlPQ34nw4r2ut8IOStreamPv_vPv
 +CancelAsync__Q34nw4r2ut13DvdFileStreamFPFlPQ34nw4r2ut8IOStreamPv_vPv:
 +/* 80363B68 0035F7C8  94 21 FF F0 */	stwu r1, -0x10(r1)
 +/* 80363B6C 0035F7CC  7C 08 02 A6 */	mflr r0
 +/* 80363B70 0035F7D0  90 01 00 14 */	stw r0, 0x14(r1)
 +/* 80363B74 0035F7D4  93 E1 00 0C */	stw r31, 0xc(r1)
 +/* 80363B78 0035F7D8  7C 7F 1B 78 */	mr r31, r3
 +/* 80363B7C 0035F7DC  90 83 00 1C */	stw r4, 0x1c(r3)
 +/* 80363B80 0035F7E0  3C 80 80 36 */	lis r4, DvdCBAsyncCallback___Q34nw4r2ut13DvdFileStreamFlP15DVDCommandBlock@ha
 +/* 80363B84 0035F7E4  38 84 36 44 */	addi r4, r4, DvdCBAsyncCallback___Q34nw4r2ut13DvdFileStreamFlP15DVDCommandBlock@l
 +/* 80363B88 0035F7E8  90 A3 00 20 */	stw r5, 0x20(r3)
 +/* 80363B8C 0035F7EC  38 63 00 28 */	addi r3, r3, 0x28
 +/* 80363B90 0035F7F0  4B F2 84 39 */	bl func_8028BFC8
 +/* 80363B94 0035F7F4  2C 03 00 00 */	cmpwi r3, 0
 +/* 80363B98 0035F7F8  41 82 00 0C */	beq lbl_80363BA4
 +/* 80363B9C 0035F7FC  38 00 00 01 */	li r0, 1
 +/* 80363BA0 0035F800  98 1F 00 24 */	stb r0, 0x24(r31)
 +lbl_80363BA4:
 +/* 80363BA4 0035F804  7C 03 00 D0 */	neg r0, r3
 +/* 80363BA8 0035F808  83 E1 00 0C */	lwz r31, 0xc(r1)
 +/* 80363BAC 0035F80C  7C 00 1B 78 */	or r0, r0, r3
 +/* 80363BB0 0035F810  54 03 0F FE */	srwi r3, r0, 0x1f
 +/* 80363BB4 0035F814  80 01 00 14 */	lwz r0, 0x14(r1)
 +/* 80363BB8 0035F818  7C 08 03 A6 */	mtlr r0
 +/* 80363BBC 0035F81C  38 21 00 10 */	addi r1, r1, 0x10
 +/* 80363BC0 0035F820  4E 80 00 20 */	blr
 +
 +.global GetBufferAlign__Q34nw4r2ut13DvdFileStreamCFv
 +GetBufferAlign__Q34nw4r2ut13DvdFileStreamCFv:
 +/* 80363BC4 0035F824  38 60 00 20 */	li r3, 0x20
 +/* 80363BC8 0035F828  4E 80 00 20 */	blr
 +
 +.global GetSizeAlign__Q34nw4r2ut13DvdFileStreamCFv
 +GetSizeAlign__Q34nw4r2ut13DvdFileStreamCFv:
 +/* 80363BCC 0035F82C  38 60 00 20 */	li r3, 0x20
 +/* 80363BD0 0035F830  4E 80 00 20 */	blr
 +
 +.global GetOffsetAlign__Q34nw4r2ut13DvdFileStreamCFv
 +GetOffsetAlign__Q34nw4r2ut13DvdFileStreamCFv:
 +/* 80363BD4 0035F834  38 60 00 04 */	li r3, 4
 +/* 80363BD8 0035F838  4E 80 00 20 */	blr
 +
 +.global CanCancel__Q34nw4r2ut13DvdFileStreamCFv
 +CanCancel__Q34nw4r2ut13DvdFileStreamCFv:
 +/* 80363BDC 0035F83C  38 60 00 01 */	li r3, 1
 +/* 80363BE0 0035F840  4E 80 00 20 */	blr
 +
 +.global CanWrite__Q34nw4r2ut13DvdFileStreamCFv
 +CanWrite__Q34nw4r2ut13DvdFileStreamCFv:
 +/* 80363BE4 0035F844  38 60 00 00 */	li r3, 0
 +/* 80363BE8 0035F848  4E 80 00 20 */	blr
 +
 +.global CanRead__Q34nw4r2ut13DvdFileStreamCFv
 +CanRead__Q34nw4r2ut13DvdFileStreamCFv:
 +/* 80363BEC 0035F84C  38 60 00 01 */	li r3, 1
 +/* 80363BF0 0035F850  4E 80 00 20 */	blr
 +
 +.global CanSeek__Q34nw4r2ut13DvdFileStreamCFv
 +CanSeek__Q34nw4r2ut13DvdFileStreamCFv:
 +/* 80363BF4 0035F854  38 60 00 01 */	li r3, 1
 +/* 80363BF8 0035F858  4E 80 00 20 */	blr
 +
 +.global CanAsync__Q34nw4r2ut13DvdFileStreamCFv
 +CanAsync__Q34nw4r2ut13DvdFileStreamCFv:
 +/* 80363BFC 0035F85C  38 60 00 01 */	li r3, 1
 +/* 80363C00 0035F860  4E 80 00 20 */	blr
 +
 +.global GetSize__Q34nw4r2ut13DvdFileStreamCFv
 +GetSize__Q34nw4r2ut13DvdFileStreamCFv:
 +/* 80363C04 0035F864  80 63 00 14 */	lwz r3, 0x14(r3)
 +/* 80363C08 0035F868  4E 80 00 20 */	blr
 +
 +.global Tell__Q34nw4r2ut13DvdFileStreamCFv
 +Tell__Q34nw4r2ut13DvdFileStreamCFv:
 +/* 80363C0C 0035F86C  80 63 00 18 */	lwz r3, 0x18(r3)
 +/* 80363C10 0035F870  4E 80 00 20 */	blr
 +
 +.global IsBusy__Q34nw4r2ut13DvdFileStreamCFv
 +IsBusy__Q34nw4r2ut13DvdFileStreamCFv:
 +/* 80363C14 0035F874  88 63 00 6C */	lbz r3, 0x6c(r3)
 +/* 80363C18 0035F878  4E 80 00 20 */	blr
 +
 +.global GetRuntimeTypeInfo__Q34nw4r2ut13DvdFileStreamCFv
 +GetRuntimeTypeInfo__Q34nw4r2ut13DvdFileStreamCFv:
 +/* 80363C1C 0035F87C  38 6D B1 B0 */	addi r3, r13, lbl_80640470-_SDA_BASE_
 +/* 80363C20 0035F880  4E 80 00 20 */	blr
 +
 +.global __sinit_$3ut_DvdFileStream_cpp
 +__sinit_$3ut_DvdFileStream_cpp:
 +/* 80363C24 0035F884  38 0D B1 A8 */	addi r0, r13, lbl_80640468-_SDA_BASE_
 +/* 80363C28 0035F888  90 0D B1 B0 */	stw r0, lbl_80640470-_SDA_BASE_(r13)
 +/* 80363C2C 0035F88C  4E 80 00 20 */	blr
 diff --git a/asm/NW4R/ut_DvdLockedFileStream.s b/asm/NW4R/ut_DvdLockedFileStream.s new file mode 100644 index 0000000..ed169ec --- /dev/null +++ b/asm/NW4R/ut_DvdLockedFileStream.s @@ -0,0 +1,185 @@ +.include "macros.inc"
 +
 +.section .text, "ax"  # 0x80006980 - 0x803E1E60
 +
 +.global __ct__Q34nw4r2ut19DvdLockedFileStreamFl
 +__ct__Q34nw4r2ut19DvdLockedFileStreamFl:
 +/* 80363C30 0035F890  94 21 FF F0 */	stwu r1, -0x10(r1)
 +/* 80363C34 0035F894  7C 08 02 A6 */	mflr r0
 +/* 80363C38 0035F898  90 01 00 14 */	stw r0, 0x14(r1)
 +/* 80363C3C 0035F89C  93 E1 00 0C */	stw r31, 0xc(r1)
 +/* 80363C40 0035F8A0  93 C1 00 08 */	stw r30, 8(r1)
 +/* 80363C44 0035F8A4  7C 7E 1B 78 */	mr r30, r3
 +/* 80363C48 0035F8A8  4B FF FA 25 */	bl __ct__Q34nw4r2ut13DvdFileStreamFl
 +/* 80363C4C 0035F8AC  3C 60 80 45 */	lis r3, lbl_8044C758@ha
 +/* 80363C50 0035F8B0  38 63 C7 58 */	addi r3, r3, lbl_8044C758@l
 +/* 80363C54 0035F8B4  90 7E 00 00 */	stw r3, 0(r30)
 +/* 80363C58 0035F8B8  4B F0 AB 05 */	bl OSDisableInterrupts
 +/* 80363C5C 0035F8BC  88 0D B1 BC */	lbz r0, lbl_8064047C-_SDA_BASE_(r13)
 +/* 80363C60 0035F8C0  7C 7F 1B 78 */	mr r31, r3
 +/* 80363C64 0035F8C4  2C 00 00 00 */	cmpwi r0, 0
 +/* 80363C68 0035F8C8  40 82 00 18 */	bne lbl_80363C80
 +/* 80363C6C 0035F8CC  3C 60 80 62 */	lis r3, lbl_806216F0@ha
 +/* 80363C70 0035F8D0  38 63 16 F0 */	addi r3, r3, lbl_806216F0@l
 +/* 80363C74 0035F8D4  4B F0 BC 9D */	bl func_8026F910
 +/* 80363C78 0035F8D8  38 00 00 01 */	li r0, 1
 +/* 80363C7C 0035F8DC  98 0D B1 BC */	stb r0, lbl_8064047C-_SDA_BASE_(r13)
 +lbl_80363C80:
 +/* 80363C80 0035F8E0  7F E3 FB 78 */	mr r3, r31
 +/* 80363C84 0035F8E4  4B F0 AB 01 */	bl OSRestoreInterrupts
 +/* 80363C88 0035F8E8  7F C3 F3 78 */	mr r3, r30
 +/* 80363C8C 0035F8EC  83 E1 00 0C */	lwz r31, 0xc(r1)
 +/* 80363C90 0035F8F0  83 C1 00 08 */	lwz r30, 8(r1)
 +/* 80363C94 0035F8F4  80 01 00 14 */	lwz r0, 0x14(r1)
 +/* 80363C98 0035F8F8  7C 08 03 A6 */	mtlr r0
 +/* 80363C9C 0035F8FC  38 21 00 10 */	addi r1, r1, 0x10
 +/* 80363CA0 0035F900  4E 80 00 20 */	blr
 +
 +.global __ct__Q34nw4r2ut19DvdLockedFileStreamFPC11DVDFileInfob
 +__ct__Q34nw4r2ut19DvdLockedFileStreamFPC11DVDFileInfob:
 +/* 80363CA4 0035F904  94 21 FF F0 */	stwu r1, -0x10(r1)
 +/* 80363CA8 0035F908  7C 08 02 A6 */	mflr r0
 +/* 80363CAC 0035F90C  90 01 00 14 */	stw r0, 0x14(r1)
 +/* 80363CB0 0035F910  93 E1 00 0C */	stw r31, 0xc(r1)
 +/* 80363CB4 0035F914  93 C1 00 08 */	stw r30, 8(r1)
 +/* 80363CB8 0035F918  7C 7E 1B 78 */	mr r30, r3
 +/* 80363CBC 0035F91C  4B FF FA 6D */	bl __ct__Q34nw4r2ut13DvdFileStreamFPC11DVDFileInfob
 +/* 80363CC0 0035F920  3C 60 80 45 */	lis r3, lbl_8044C758@ha
 +/* 80363CC4 0035F924  38 63 C7 58 */	addi r3, r3, lbl_8044C758@l
 +/* 80363CC8 0035F928  90 7E 00 00 */	stw r3, 0(r30)
 +/* 80363CCC 0035F92C  4B F0 AA 91 */	bl OSDisableInterrupts
 +/* 80363CD0 0035F930  88 0D B1 BC */	lbz r0, lbl_8064047C-_SDA_BASE_(r13)
 +/* 80363CD4 0035F934  7C 7F 1B 78 */	mr r31, r3
 +/* 80363CD8 0035F938  2C 00 00 00 */	cmpwi r0, 0
 +/* 80363CDC 0035F93C  40 82 00 18 */	bne lbl_80363CF4
 +/* 80363CE0 0035F940  3C 60 80 62 */	lis r3, lbl_806216F0@ha
 +/* 80363CE4 0035F944  38 63 16 F0 */	addi r3, r3, lbl_806216F0@l
 +/* 80363CE8 0035F948  4B F0 BC 29 */	bl func_8026F910
 +/* 80363CEC 0035F94C  38 00 00 01 */	li r0, 1
 +/* 80363CF0 0035F950  98 0D B1 BC */	stb r0, lbl_8064047C-_SDA_BASE_(r13)
 +lbl_80363CF4:
 +/* 80363CF4 0035F954  7F E3 FB 78 */	mr r3, r31
 +/* 80363CF8 0035F958  4B F0 AA 8D */	bl OSRestoreInterrupts
 +/* 80363CFC 0035F95C  7F C3 F3 78 */	mr r3, r30
 +/* 80363D00 0035F960  83 E1 00 0C */	lwz r31, 0xc(r1)
 +/* 80363D04 0035F964  83 C1 00 08 */	lwz r30, 8(r1)
 +/* 80363D08 0035F968  80 01 00 14 */	lwz r0, 0x14(r1)
 +/* 80363D0C 0035F96C  7C 08 03 A6 */	mtlr r0
 +/* 80363D10 0035F970  38 21 00 10 */	addi r1, r1, 0x10
 +/* 80363D14 0035F974  4E 80 00 20 */	blr
 +
 +.global __dt__Q34nw4r2ut19DvdLockedFileStreamFv
 +__dt__Q34nw4r2ut19DvdLockedFileStreamFv:
 +/* 80363D18 0035F978  94 21 FF F0 */	stwu r1, -0x10(r1)
 +/* 80363D1C 0035F97C  7C 08 02 A6 */	mflr r0
 +/* 80363D20 0035F980  2C 03 00 00 */	cmpwi r3, 0
 +/* 80363D24 0035F984  90 01 00 14 */	stw r0, 0x14(r1)
 +/* 80363D28 0035F988  93 E1 00 0C */	stw r31, 0xc(r1)
 +/* 80363D2C 0035F98C  7C 9F 23 78 */	mr r31, r4
 +/* 80363D30 0035F990  93 C1 00 08 */	stw r30, 8(r1)
 +/* 80363D34 0035F994  7C 7E 1B 78 */	mr r30, r3
 +/* 80363D38 0035F998  41 82 00 1C */	beq lbl_80363D54
 +/* 80363D3C 0035F99C  38 80 00 00 */	li r4, 0
 +/* 80363D40 0035F9A0  4B FF FB 19 */	bl __dt__Q34nw4r2ut13DvdFileStreamFv
 +/* 80363D44 0035F9A4  2C 1F 00 00 */	cmpwi r31, 0
 +/* 80363D48 0035F9A8  40 81 00 0C */	ble lbl_80363D54
 +/* 80363D4C 0035F9AC  7F C3 F3 78 */	mr r3, r30
 +/* 80363D50 0035F9B0  4B E7 6D 69 */	bl func_801DAAB8
 +lbl_80363D54:
 +/* 80363D54 0035F9B4  7F C3 F3 78 */	mr r3, r30
 +/* 80363D58 0035F9B8  83 E1 00 0C */	lwz r31, 0xc(r1)
 +/* 80363D5C 0035F9BC  83 C1 00 08 */	lwz r30, 8(r1)
 +/* 80363D60 0035F9C0  80 01 00 14 */	lwz r0, 0x14(r1)
 +/* 80363D64 0035F9C4  7C 08 03 A6 */	mtlr r0
 +/* 80363D68 0035F9C8  38 21 00 10 */	addi r1, r1, 0x10
 +/* 80363D6C 0035F9CC  4E 80 00 20 */	blr
 +
 +.global Read__Q34nw4r2ut19DvdLockedFileStreamFPvUl
 +Read__Q34nw4r2ut19DvdLockedFileStreamFPvUl:
 +/* 80363D70 0035F9D0  94 21 FF E0 */	stwu r1, -0x20(r1)
 +/* 80363D74 0035F9D4  7C 08 02 A6 */	mflr r0
 +/* 80363D78 0035F9D8  90 01 00 24 */	stw r0, 0x24(r1)
 +/* 80363D7C 0035F9DC  93 E1 00 1C */	stw r31, 0x1c(r1)
 +/* 80363D80 0035F9E0  3F E0 80 62 */	lis r31, lbl_806216F0@ha
 +/* 80363D84 0035F9E4  93 C1 00 18 */	stw r30, 0x18(r1)
 +/* 80363D88 0035F9E8  7C BE 2B 78 */	mr r30, r5
 +/* 80363D8C 0035F9EC  93 A1 00 14 */	stw r29, 0x14(r1)
 +/* 80363D90 0035F9F0  7C 9D 23 78 */	mr r29, r4
 +/* 80363D94 0035F9F4  93 81 00 10 */	stw r28, 0x10(r1)
 +/* 80363D98 0035F9F8  7C 7C 1B 78 */	mr r28, r3
 +/* 80363D9C 0035F9FC  38 7F 16 F0 */	addi r3, r31, lbl_806216F0@l
 +/* 80363DA0 0035FA00  4B F0 BB A9 */	bl func_8026F948
 +/* 80363DA4 0035FA04  7F 83 E3 78 */	mr r3, r28
 +/* 80363DA8 0035FA08  7F A4 EB 78 */	mr r4, r29
 +/* 80363DAC 0035FA0C  7F C5 F3 78 */	mr r5, r30
 +/* 80363DB0 0035FA10  4B FF FB 71 */	bl Read__Q34nw4r2ut13DvdFileStreamFPvUl
 +/* 80363DB4 0035FA14  7C 7E 1B 78 */	mr r30, r3
 +/* 80363DB8 0035FA18  38 7F 16 F0 */	addi r3, r31, 0x16f0
 +/* 80363DBC 0035FA1C  4B F0 BC 69 */	bl func_8026FA24
 +/* 80363DC0 0035FA20  7F C3 F3 78 */	mr r3, r30
 +/* 80363DC4 0035FA24  83 E1 00 1C */	lwz r31, 0x1c(r1)
 +/* 80363DC8 0035FA28  83 C1 00 18 */	lwz r30, 0x18(r1)
 +/* 80363DCC 0035FA2C  83 A1 00 14 */	lwz r29, 0x14(r1)
 +/* 80363DD0 0035FA30  83 81 00 10 */	lwz r28, 0x10(r1)
 +/* 80363DD4 0035FA34  80 01 00 24 */	lwz r0, 0x24(r1)
 +/* 80363DD8 0035FA38  7C 08 03 A6 */	mtlr r0
 +/* 80363DDC 0035FA3C  38 21 00 20 */	addi r1, r1, 0x20
 +/* 80363DE0 0035FA40  4E 80 00 20 */	blr
 +
 +.global Peek__Q34nw4r2ut19DvdLockedFileStreamFPvUl
 +Peek__Q34nw4r2ut19DvdLockedFileStreamFPvUl:
 +/* 80363DE4 0035FA44  94 21 FF E0 */	stwu r1, -0x20(r1)
 +/* 80363DE8 0035FA48  7C 08 02 A6 */	mflr r0
 +/* 80363DEC 0035FA4C  90 01 00 24 */	stw r0, 0x24(r1)
 +/* 80363DF0 0035FA50  93 E1 00 1C */	stw r31, 0x1c(r1)
 +/* 80363DF4 0035FA54  3F E0 80 62 */	lis r31, lbl_806216F0@ha
 +/* 80363DF8 0035FA58  93 C1 00 18 */	stw r30, 0x18(r1)
 +/* 80363DFC 0035FA5C  7C BE 2B 78 */	mr r30, r5
 +/* 80363E00 0035FA60  93 A1 00 14 */	stw r29, 0x14(r1)
 +/* 80363E04 0035FA64  7C 9D 23 78 */	mr r29, r4
 +/* 80363E08 0035FA68  93 81 00 10 */	stw r28, 0x10(r1)
 +/* 80363E0C 0035FA6C  7C 7C 1B 78 */	mr r28, r3
 +/* 80363E10 0035FA70  38 7F 16 F0 */	addi r3, r31, lbl_806216F0@l
 +/* 80363E14 0035FA74  4B F0 BB 35 */	bl func_8026F948
 +/* 80363E18 0035FA78  7F 83 E3 78 */	mr r3, r28
 +/* 80363E1C 0035FA7C  7F A4 EB 78 */	mr r4, r29
 +/* 80363E20 0035FA80  7F C5 F3 78 */	mr r5, r30
 +/* 80363E24 0035FA84  4B FF FC 79 */	bl Peek__Q34nw4r2ut13DvdFileStreamFPvUl
 +/* 80363E28 0035FA88  7C 7E 1B 78 */	mr r30, r3
 +/* 80363E2C 0035FA8C  38 7F 16 F0 */	addi r3, r31, 0x16f0
 +/* 80363E30 0035FA90  4B F0 BB F5 */	bl func_8026FA24
 +/* 80363E34 0035FA94  7F C3 F3 78 */	mr r3, r30
 +/* 80363E38 0035FA98  83 E1 00 1C */	lwz r31, 0x1c(r1)
 +/* 80363E3C 0035FA9C  83 C1 00 18 */	lwz r30, 0x18(r1)
 +/* 80363E40 0035FAA0  83 A1 00 14 */	lwz r29, 0x14(r1)
 +/* 80363E44 0035FAA4  83 81 00 10 */	lwz r28, 0x10(r1)
 +/* 80363E48 0035FAA8  80 01 00 24 */	lwz r0, 0x24(r1)
 +/* 80363E4C 0035FAAC  7C 08 03 A6 */	mtlr r0
 +/* 80363E50 0035FAB0  38 21 00 20 */	addi r1, r1, 0x20
 +/* 80363E54 0035FAB4  4E 80 00 20 */	blr
 +
 +.global CanAsync__Q34nw4r2ut19DvdLockedFileStreamCFv
 +CanAsync__Q34nw4r2ut19DvdLockedFileStreamCFv:
 +/* 80363E58 0035FAB8  38 60 00 00 */	li r3, 0
 +/* 80363E5C 0035FABC  4E 80 00 20 */	blr
 +
 +.global PeekAsync__Q34nw4r2ut19DvdLockedFileStreamFPvUlPFlPQ34nw4r2ut8IOStreamPv_vPv
 +PeekAsync__Q34nw4r2ut19DvdLockedFileStreamFPvUlPFlPQ34nw4r2ut8IOStreamPv_vPv:
 +/* 80363E60 0035FAC0  38 60 00 00 */	li r3, 0
 +/* 80363E64 0035FAC4  4E 80 00 20 */	blr
 +
 +.global ReadAsync__Q34nw4r2ut19DvdLockedFileStreamFPvUlPFlPQ34nw4r2ut8IOStreamPv_vPv
 +ReadAsync__Q34nw4r2ut19DvdLockedFileStreamFPvUlPFlPQ34nw4r2ut8IOStreamPv_vPv:
 +/* 80363E68 0035FAC8  38 60 00 00 */	li r3, 0
 +/* 80363E6C 0035FACC  4E 80 00 20 */	blr
 +
 +.global GetRuntimeTypeInfo__Q34nw4r2ut19DvdLockedFileStreamCFv
 +GetRuntimeTypeInfo__Q34nw4r2ut19DvdLockedFileStreamCFv:
 +/* 80363E70 0035FAD0  38 6D B1 B8 */	addi r3, r13, lbl_80640478-_SDA_BASE_
 +/* 80363E74 0035FAD4  4E 80 00 20 */	blr
 +
 +.global ut_DvdLockedFileStream_cpp
 +ut_DvdLockedFileStream_cpp:
 +/* 80363E78 0035FAD8  38 0D B1 B0 */	addi r0, r13, lbl_80640470-_SDA_BASE_
 +/* 80363E7C 0035FADC  90 0D B1 B8 */	stw r0, lbl_80640478-_SDA_BASE_(r13)
 +/* 80363E80 0035FAE0  4E 80 00 20 */	blr
 diff --git a/asm/NW4R/ut_FileStream.s b/asm/NW4R/ut_FileStream.s new file mode 100644 index 0000000..d78710e --- /dev/null +++ b/asm/NW4R/ut_FileStream.s @@ -0,0 +1,89 @@ +.include "macros.inc"
 +
 +.section .text, "ax"  # 0x80006980 - 0x803E1E60
 +
 +.global Skip__Q44nw4r2ut10FileStream12FilePositionFl
 +Skip__Q44nw4r2ut10FileStream12FilePositionFl:
 +/* 80363510 0035F170  2C 04 00 00 */	cmpwi r4, 0
 +/* 80363514 0035F174  41 82 00 58 */	beq lbl_8036356C
 +/* 80363518 0035F178  80 03 00 04 */	lwz r0, 4(r3)
 +/* 8036351C 0035F17C  38 A0 00 00 */	li r5, 0
 +/* 80363520 0035F180  80 C3 00 00 */	lwz r6, 0(r3)
 +/* 80363524 0035F184  6C A5 80 00 */	xoris r5, r5, 0x8000
 +/* 80363528 0035F188  7C E0 22 14 */	add r7, r0, r4
 +/* 8036352C 0035F18C  7C 07 30 10 */	subfc r0, r7, r6
 +/* 80363530 0035F190  7C 05 29 10 */	subfe r0, r5, r5
 +/* 80363534 0035F194  7C 05 29 10 */	subfe r0, r5, r5
 +/* 80363538 0035F198  7C 00 00 D1 */	neg. r0, r0
 +/* 8036353C 0035F19C  41 82 00 08 */	beq lbl_80363544
 +/* 80363540 0035F1A0  48 00 00 28 */	b lbl_80363568
 +lbl_80363544:
 +/* 80363544 0035F1A4  38 C0 00 00 */	li r6, 0
 +/* 80363548 0035F1A8  6C C4 80 00 */	xoris r4, r6, 0x8000
 +/* 8036354C 0035F1AC  7C 06 38 10 */	subfc r0, r6, r7
 +/* 80363550 0035F1B0  7C 84 29 10 */	subfe r4, r4, r5
 +/* 80363554 0035F1B4  7C 85 29 10 */	subfe r4, r5, r5
 +/* 80363558 0035F1B8  7C 84 00 D1 */	neg. r4, r4
 +/* 8036355C 0035F1BC  41 82 00 08 */	beq lbl_80363564
 +/* 80363560 0035F1C0  48 00 00 08 */	b lbl_80363568
 +lbl_80363564:
 +/* 80363564 0035F1C4  7C E6 3B 78 */	mr r6, r7
 +lbl_80363568:
 +/* 80363568 0035F1C8  90 C3 00 04 */	stw r6, 4(r3)
 +lbl_8036356C:
 +/* 8036356C 0035F1CC  80 63 00 04 */	lwz r3, 4(r3)
 +/* 80363570 0035F1D0  4E 80 00 20 */	blr
 +
 +.global Seek__Q44nw4r2ut10FileStream12FilePositionFlUl
 +Seek__Q44nw4r2ut10FileStream12FilePositionFlUl:
 +/* 80363574 0035F1D4  2C 05 00 01 */	cmpwi r5, 1
 +/* 80363578 0035F1D8  41 82 00 34 */	beq lbl_803635AC
 +/* 8036357C 0035F1DC  40 80 00 10 */	bge lbl_8036358C
 +/* 80363580 0035F1E0  2C 05 00 00 */	cmpwi r5, 0
 +/* 80363584 0035F1E4  40 80 00 14 */	bge lbl_80363598
 +/* 80363588 0035F1E8  48 00 00 24 */	b lbl_803635AC
 +lbl_8036358C:
 +/* 8036358C 0035F1EC  2C 05 00 03 */	cmpwi r5, 3
 +/* 80363590 0035F1F0  40 80 00 1C */	bge lbl_803635AC
 +/* 80363594 0035F1F4  48 00 00 10 */	b lbl_803635A4
 +lbl_80363598:
 +/* 80363598 0035F1F8  38 00 00 00 */	li r0, 0
 +/* 8036359C 0035F1FC  90 03 00 04 */	stw r0, 4(r3)
 +/* 803635A0 0035F200  48 00 00 0C */	b lbl_803635AC
 +lbl_803635A4:
 +/* 803635A4 0035F204  80 03 00 00 */	lwz r0, 0(r3)
 +/* 803635A8 0035F208  90 03 00 04 */	stw r0, 4(r3)
 +lbl_803635AC:
 +/* 803635AC 0035F20C  2C 04 00 00 */	cmpwi r4, 0
 +/* 803635B0 0035F210  4D 82 00 20 */	beqlr
 +/* 803635B4 0035F214  80 03 00 04 */	lwz r0, 4(r3)
 +/* 803635B8 0035F218  38 A0 00 00 */	li r5, 0
 +/* 803635BC 0035F21C  80 C3 00 00 */	lwz r6, 0(r3)
 +/* 803635C0 0035F220  6C A5 80 00 */	xoris r5, r5, 0x8000
 +/* 803635C4 0035F224  7C E0 22 14 */	add r7, r0, r4
 +/* 803635C8 0035F228  7C 07 30 10 */	subfc r0, r7, r6
 +/* 803635CC 0035F22C  7C 05 29 10 */	subfe r0, r5, r5
 +/* 803635D0 0035F230  7C 05 29 10 */	subfe r0, r5, r5
 +/* 803635D4 0035F234  7C 00 00 D1 */	neg. r0, r0
 +/* 803635D8 0035F238  41 82 00 08 */	beq lbl_803635E0
 +/* 803635DC 0035F23C  48 00 00 28 */	b lbl_80363604
 +lbl_803635E0:
 +/* 803635E0 0035F240  38 C0 00 00 */	li r6, 0
 +/* 803635E4 0035F244  6C C4 80 00 */	xoris r4, r6, 0x8000
 +/* 803635E8 0035F248  7C 06 38 10 */	subfc r0, r6, r7
 +/* 803635EC 0035F24C  7C 84 29 10 */	subfe r4, r4, r5
 +/* 803635F0 0035F250  7C 85 29 10 */	subfe r4, r5, r5
 +/* 803635F4 0035F254  7C 84 00 D1 */	neg. r4, r4
 +/* 803635F8 0035F258  41 82 00 08 */	beq lbl_80363600
 +/* 803635FC 0035F25C  48 00 00 08 */	b lbl_80363604
 +lbl_80363600:
 +/* 80363600 0035F260  7C E6 3B 78 */	mr r6, r7
 +lbl_80363604:
 +/* 80363604 0035F264  90 C3 00 04 */	stw r6, 4(r3)
 +/* 80363608 0035F268  4E 80 00 20 */	blr
 +
 +.global __sinit_$3ut_FileStream_cpp
 +__sinit_$3ut_FileStream_cpp:
 +/* 8036360C 0035F26C  38 0D B1 A0 */	addi r0, r13, lbl_80640460-_SDA_BASE_
 +/* 80363610 0035F270  90 0D B1 A8 */	stw r0, lbl_80640468-_SDA_BASE_(r13)
 +/* 80363614 0035F274  4E 80 00 20 */	blr
 diff --git a/asm/text_10_3.s b/asm/text_10_3.s index 7d12d94..acdbf51 100644 --- a/asm/text_10_3.s +++ b/asm/text_10_3.s @@ -2,676 +2,6 @@  .section .text, "ax"  # 0x80006980 - 0x803E1E60
 -.global func_80363510
 -func_80363510:
 -/* 80363510 0035F170  2C 04 00 00 */	cmpwi r4, 0
 -/* 80363514 0035F174  41 82 00 58 */	beq lbl_8036356C
 -/* 80363518 0035F178  80 03 00 04 */	lwz r0, 4(r3)
 -/* 8036351C 0035F17C  38 A0 00 00 */	li r5, 0
 -/* 80363520 0035F180  80 C3 00 00 */	lwz r6, 0(r3)
 -/* 80363524 0035F184  6C A5 80 00 */	xoris r5, r5, 0x8000
 -/* 80363528 0035F188  7C E0 22 14 */	add r7, r0, r4
 -/* 8036352C 0035F18C  7C 07 30 10 */	subfc r0, r7, r6
 -/* 80363530 0035F190  7C 05 29 10 */	subfe r0, r5, r5
 -/* 80363534 0035F194  7C 05 29 10 */	subfe r0, r5, r5
 -/* 80363538 0035F198  7C 00 00 D1 */	neg. r0, r0
 -/* 8036353C 0035F19C  41 82 00 08 */	beq lbl_80363544
 -/* 80363540 0035F1A0  48 00 00 28 */	b lbl_80363568
 -lbl_80363544:
 -/* 80363544 0035F1A4  38 C0 00 00 */	li r6, 0
 -/* 80363548 0035F1A8  6C C4 80 00 */	xoris r4, r6, 0x8000
 -/* 8036354C 0035F1AC  7C 06 38 10 */	subfc r0, r6, r7
 -/* 80363550 0035F1B0  7C 84 29 10 */	subfe r4, r4, r5
 -/* 80363554 0035F1B4  7C 85 29 10 */	subfe r4, r5, r5
 -/* 80363558 0035F1B8  7C 84 00 D1 */	neg. r4, r4
 -/* 8036355C 0035F1BC  41 82 00 08 */	beq lbl_80363564
 -/* 80363560 0035F1C0  48 00 00 08 */	b lbl_80363568
 -lbl_80363564:
 -/* 80363564 0035F1C4  7C E6 3B 78 */	mr r6, r7
 -lbl_80363568:
 -/* 80363568 0035F1C8  90 C3 00 04 */	stw r6, 4(r3)
 -lbl_8036356C:
 -/* 8036356C 0035F1CC  80 63 00 04 */	lwz r3, 4(r3)
 -/* 80363570 0035F1D0  4E 80 00 20 */	blr
 -
 -.global func_80363574
 -func_80363574:
 -/* 80363574 0035F1D4  2C 05 00 01 */	cmpwi r5, 1
 -/* 80363578 0035F1D8  41 82 00 34 */	beq lbl_803635AC
 -/* 8036357C 0035F1DC  40 80 00 10 */	bge lbl_8036358C
 -/* 80363580 0035F1E0  2C 05 00 00 */	cmpwi r5, 0
 -/* 80363584 0035F1E4  40 80 00 14 */	bge lbl_80363598
 -/* 80363588 0035F1E8  48 00 00 24 */	b lbl_803635AC
 -lbl_8036358C:
 -/* 8036358C 0035F1EC  2C 05 00 03 */	cmpwi r5, 3
 -/* 80363590 0035F1F0  40 80 00 1C */	bge lbl_803635AC
 -/* 80363594 0035F1F4  48 00 00 10 */	b lbl_803635A4
 -lbl_80363598:
 -/* 80363598 0035F1F8  38 00 00 00 */	li r0, 0
 -/* 8036359C 0035F1FC  90 03 00 04 */	stw r0, 4(r3)
 -/* 803635A0 0035F200  48 00 00 0C */	b lbl_803635AC
 -lbl_803635A4:
 -/* 803635A4 0035F204  80 03 00 00 */	lwz r0, 0(r3)
 -/* 803635A8 0035F208  90 03 00 04 */	stw r0, 4(r3)
 -lbl_803635AC:
 -/* 803635AC 0035F20C  2C 04 00 00 */	cmpwi r4, 0
 -/* 803635B0 0035F210  4D 82 00 20 */	beqlr
 -/* 803635B4 0035F214  80 03 00 04 */	lwz r0, 4(r3)
 -/* 803635B8 0035F218  38 A0 00 00 */	li r5, 0
 -/* 803635BC 0035F21C  80 C3 00 00 */	lwz r6, 0(r3)
 -/* 803635C0 0035F220  6C A5 80 00 */	xoris r5, r5, 0x8000
 -/* 803635C4 0035F224  7C E0 22 14 */	add r7, r0, r4
 -/* 803635C8 0035F228  7C 07 30 10 */	subfc r0, r7, r6
 -/* 803635CC 0035F22C  7C 05 29 10 */	subfe r0, r5, r5
 -/* 803635D0 0035F230  7C 05 29 10 */	subfe r0, r5, r5
 -/* 803635D4 0035F234  7C 00 00 D1 */	neg. r0, r0
 -/* 803635D8 0035F238  41 82 00 08 */	beq lbl_803635E0
 -/* 803635DC 0035F23C  48 00 00 28 */	b lbl_80363604
 -lbl_803635E0:
 -/* 803635E0 0035F240  38 C0 00 00 */	li r6, 0
 -/* 803635E4 0035F244  6C C4 80 00 */	xoris r4, r6, 0x8000
 -/* 803635E8 0035F248  7C 06 38 10 */	subfc r0, r6, r7
 -/* 803635EC 0035F24C  7C 84 29 10 */	subfe r4, r4, r5
 -/* 803635F0 0035F250  7C 85 29 10 */	subfe r4, r5, r5
 -/* 803635F4 0035F254  7C 84 00 D1 */	neg. r4, r4
 -/* 803635F8 0035F258  41 82 00 08 */	beq lbl_80363600
 -/* 803635FC 0035F25C  48 00 00 08 */	b lbl_80363604
 -lbl_80363600:
 -/* 80363600 0035F260  7C E6 3B 78 */	mr r6, r7
 -lbl_80363604:
 -/* 80363604 0035F264  90 C3 00 04 */	stw r6, 4(r3)
 -/* 80363608 0035F268  4E 80 00 20 */	blr
 -/* 8036360C 0035F26C  38 0D B1 A0 */	addi r0, r13, lbl_80640460-_SDA_BASE_
 -/* 80363610 0035F270  90 0D B1 A8 */	stw r0, lbl_80640468-_SDA_BASE_(r13)
 -/* 80363614 0035F274  4E 80 00 20 */	blr
 -lbl_80363618:
 -/* 80363618 0035F278  80 84 00 3C */	lwz r4, 0x3c(r4)
 -/* 8036361C 0035F27C  38 00 00 00 */	li r0, 0
 -/* 80363620 0035F280  98 04 00 6C */	stb r0, 0x6c(r4)
 -/* 80363624 0035F284  90 64 00 08 */	stw r3, 8(r4)
 -/* 80363628 0035F288  81 84 00 0C */	lwz r12, 0xc(r4)
 -/* 8036362C 0035F28C  2C 0C 00 00 */	cmpwi r12, 0
 -/* 80363630 0035F290  4D 82 00 20 */	beqlr
 -/* 80363634 0035F294  80 A4 00 10 */	lwz r5, 0x10(r4)
 -/* 80363638 0035F298  7D 89 03 A6 */	mtctr r12
 -/* 8036363C 0035F29C  4E 80 04 20 */	bctr
 -/* 80363640 0035F2A0  4E 80 00 20 */	blr
 -lbl_80363644:
 -/* 80363644 0035F2A4  80 84 00 3C */	lwz r4, 0x3c(r4)
 -/* 80363648 0035F2A8  38 00 00 00 */	li r0, 0
 -/* 8036364C 0035F2AC  98 04 00 24 */	stb r0, 0x24(r4)
 -/* 80363650 0035F2B0  81 84 00 1C */	lwz r12, 0x1c(r4)
 -/* 80363654 0035F2B4  2C 0C 00 00 */	cmpwi r12, 0
 -/* 80363658 0035F2B8  4D 82 00 20 */	beqlr
 -/* 8036365C 0035F2BC  80 A4 00 20 */	lwz r5, 0x20(r4)
 -/* 80363660 0035F2C0  7D 89 03 A6 */	mtctr r12
 -/* 80363664 0035F2C4  4E 80 04 20 */	bctr
 -/* 80363668 0035F2C8  4E 80 00 20 */	blr
 -
 -.global func_8036366C
 -func_8036366C:
 -/* 8036366C 0035F2CC  94 21 FF F0 */	stwu r1, -0x10(r1)
 -/* 80363670 0035F2D0  7C 08 02 A6 */	mflr r0
 -/* 80363674 0035F2D4  3C A0 80 45 */	lis r5, lbl_8044C6F0@ha
 -/* 80363678 0035F2D8  38 C0 00 00 */	li r6, 0
 -/* 8036367C 0035F2DC  90 01 00 14 */	stw r0, 0x14(r1)
 -/* 80363680 0035F2E0  38 A5 C6 F0 */	addi r5, r5, lbl_8044C6F0@l
 -/* 80363684 0035F2E4  38 00 00 02 */	li r0, 2
 -/* 80363688 0035F2E8  93 E1 00 0C */	stw r31, 0xc(r1)
 -/* 8036368C 0035F2EC  7C 7F 1B 78 */	mr r31, r3
 -/* 80363690 0035F2F0  98 C3 00 6C */	stb r6, 0x6c(r3)
 -/* 80363694 0035F2F4  90 A3 00 00 */	stw r5, 0(r3)
 -/* 80363698 0035F2F8  90 C3 00 14 */	stw r6, 0x14(r3)
 -/* 8036369C 0035F2FC  90 C3 00 18 */	stw r6, 0x18(r3)
 -/* 803636A0 0035F300  98 C3 00 6D */	stb r6, 0x6d(r3)
 -/* 803636A4 0035F304  98 C3 00 6E */	stb r6, 0x6e(r3)
 -/* 803636A8 0035F308  98 C3 00 04 */	stb r6, 4(r3)
 -/* 803636AC 0035F30C  90 03 00 68 */	stw r0, 0x68(r3)
 -/* 803636B0 0035F310  90 C3 00 0C */	stw r6, 0xc(r3)
 -/* 803636B4 0035F314  90 C3 00 10 */	stw r6, 0x10(r3)
 -/* 803636B8 0035F318  90 C3 00 08 */	stw r6, 8(r3)
 -/* 803636BC 0035F31C  90 C3 00 1C */	stw r6, 0x1c(r3)
 -/* 803636C0 0035F320  98 C3 00 24 */	stb r6, 0x24(r3)
 -/* 803636C4 0035F324  90 C3 00 20 */	stw r6, 0x20(r3)
 -/* 803636C8 0035F328  90 63 00 64 */	stw r3, 0x64(r3)
 -/* 803636CC 0035F32C  48 00 00 08 */	b lbl_803636D4
 -/* 803636D0 0035F330  4E 80 04 21 */	bctrl
 -lbl_803636D4:
 -/* 803636D4 0035F334  7C 83 23 78 */	mr r3, r4
 -/* 803636D8 0035F338  38 9F 00 28 */	addi r4, r31, 0x28
 -/* 803636DC 0035F33C  4B F2 42 E9 */	bl func_802879C4
 -/* 803636E0 0035F340  2C 03 00 00 */	cmpwi r3, 0
 -/* 803636E4 0035F344  41 82 00 2C */	beq lbl_80363710
 -/* 803636E8 0035F348  80 1F 00 5C */	lwz r0, 0x5c(r31)
 -/* 803636EC 0035F34C  38 7F 00 14 */	addi r3, r31, 0x14
 -/* 803636F0 0035F350  38 80 00 00 */	li r4, 0
 -/* 803636F4 0035F354  38 A0 00 00 */	li r5, 0
 -/* 803636F8 0035F358  90 1F 00 14 */	stw r0, 0x14(r31)
 -/* 803636FC 0035F35C  4B FF FE 79 */	bl func_80363574
 -/* 80363700 0035F360  38 00 00 01 */	li r0, 1
 -/* 80363704 0035F364  98 1F 00 6D */	stb r0, 0x6d(r31)
 -/* 80363708 0035F368  98 1F 00 6E */	stb r0, 0x6e(r31)
 -/* 8036370C 0035F36C  98 1F 00 04 */	stb r0, 4(r31)
 -lbl_80363710:
 -/* 80363710 0035F370  7F E3 FB 78 */	mr r3, r31
 -/* 80363714 0035F374  83 E1 00 0C */	lwz r31, 0xc(r1)
 -/* 80363718 0035F378  80 01 00 14 */	lwz r0, 0x14(r1)
 -/* 8036371C 0035F37C  7C 08 03 A6 */	mtlr r0
 -/* 80363720 0035F380  38 21 00 10 */	addi r1, r1, 0x10
 -/* 80363724 0035F384  4E 80 00 20 */	blr
 -
 -.global func_80363728
 -func_80363728:
 -/* 80363728 0035F388  94 21 FF D0 */	stwu r1, -0x30(r1)
 -/* 8036372C 0035F38C  7C 08 02 A6 */	mflr r0
 -/* 80363730 0035F390  90 01 00 34 */	stw r0, 0x34(r1)
 -/* 80363734 0035F394  39 61 00 30 */	addi r11, r1, 0x30
 -/* 80363738 0035F398  4B E6 39 DD */	bl _savegpr_22
 -/* 8036373C 0035F39C  3C C0 80 45 */	lis r6, lbl_8044C6F0@ha
 -/* 80363740 0035F3A0  38 E0 00 00 */	li r7, 0
 -/* 80363744 0035F3A4  38 C6 C6 F0 */	addi r6, r6, lbl_8044C6F0@l
 -/* 80363748 0035F3A8  38 00 00 02 */	li r0, 2
 -/* 8036374C 0035F3AC  98 E3 00 6C */	stb r7, 0x6c(r3)
 -/* 80363750 0035F3B0  7C 7E 1B 78 */	mr r30, r3
 -/* 80363754 0035F3B4  7C 96 23 78 */	mr r22, r4
 -/* 80363758 0035F3B8  7C BF 2B 78 */	mr r31, r5
 -/* 8036375C 0035F3BC  90 C3 00 00 */	stw r6, 0(r3)
 -/* 80363760 0035F3C0  90 E3 00 14 */	stw r7, 0x14(r3)
 -/* 80363764 0035F3C4  90 E3 00 18 */	stw r7, 0x18(r3)
 -/* 80363768 0035F3C8  98 E3 00 6D */	stb r7, 0x6d(r3)
 -/* 8036376C 0035F3CC  98 E3 00 6E */	stb r7, 0x6e(r3)
 -/* 80363770 0035F3D0  98 E3 00 04 */	stb r7, 4(r3)
 -/* 80363774 0035F3D4  90 03 00 68 */	stw r0, 0x68(r3)
 -/* 80363778 0035F3D8  90 E3 00 0C */	stw r7, 0xc(r3)
 -/* 8036377C 0035F3DC  90 E3 00 10 */	stw r7, 0x10(r3)
 -/* 80363780 0035F3E0  90 E3 00 08 */	stw r7, 8(r3)
 -/* 80363784 0035F3E4  90 E3 00 1C */	stw r7, 0x1c(r3)
 -/* 80363788 0035F3E8  98 E3 00 24 */	stb r7, 0x24(r3)
 -/* 8036378C 0035F3EC  90 E3 00 20 */	stw r7, 0x20(r3)
 -/* 80363790 0035F3F0  90 63 00 64 */	stw r3, 0x64(r3)
 -/* 80363794 0035F3F4  48 00 00 08 */	b lbl_8036379C
 -/* 80363798 0035F3F8  4E 80 04 21 */	bctrl
 -lbl_8036379C:
 -/* 8036379C 0035F3FC  80 D6 00 34 */	lwz r6, 0x34(r22)
 -/* 803637A0 0035F400  38 7E 00 14 */	addi r3, r30, 0x14
 -/* 803637A4 0035F404  82 F6 00 00 */	lwz r23, 0(r22)
 -/* 803637A8 0035F408  38 80 00 00 */	li r4, 0
 -/* 803637AC 0035F40C  83 16 00 04 */	lwz r24, 4(r22)
 -/* 803637B0 0035F410  38 A0 00 00 */	li r5, 0
 -/* 803637B4 0035F414  83 36 00 08 */	lwz r25, 8(r22)
 -/* 803637B8 0035F418  83 56 00 0C */	lwz r26, 0xc(r22)
 -/* 803637BC 0035F41C  83 76 00 10 */	lwz r27, 0x10(r22)
 -/* 803637C0 0035F420  83 96 00 14 */	lwz r28, 0x14(r22)
 -/* 803637C4 0035F424  83 B6 00 18 */	lwz r29, 0x18(r22)
 -/* 803637C8 0035F428  81 96 00 1C */	lwz r12, 0x1c(r22)
 -/* 803637CC 0035F42C  81 76 00 20 */	lwz r11, 0x20(r22)
 -/* 803637D0 0035F430  81 56 00 24 */	lwz r10, 0x24(r22)
 -/* 803637D4 0035F434  81 36 00 28 */	lwz r9, 0x28(r22)
 -/* 803637D8 0035F438  81 16 00 2C */	lwz r8, 0x2c(r22)
 -/* 803637DC 0035F43C  80 F6 00 30 */	lwz r7, 0x30(r22)
 -/* 803637E0 0035F440  80 16 00 38 */	lwz r0, 0x38(r22)
 -/* 803637E4 0035F444  92 FE 00 28 */	stw r23, 0x28(r30)
 -/* 803637E8 0035F448  93 1E 00 2C */	stw r24, 0x2c(r30)
 -/* 803637EC 0035F44C  93 3E 00 30 */	stw r25, 0x30(r30)
 -/* 803637F0 0035F450  93 5E 00 34 */	stw r26, 0x34(r30)
 -/* 803637F4 0035F454  93 7E 00 38 */	stw r27, 0x38(r30)
 -/* 803637F8 0035F458  93 9E 00 3C */	stw r28, 0x3c(r30)
 -/* 803637FC 0035F45C  93 BE 00 40 */	stw r29, 0x40(r30)
 -/* 80363800 0035F460  91 9E 00 44 */	stw r12, 0x44(r30)
 -/* 80363804 0035F464  91 7E 00 48 */	stw r11, 0x48(r30)
 -/* 80363808 0035F468  91 5E 00 4C */	stw r10, 0x4c(r30)
 -/* 8036380C 0035F46C  91 3E 00 50 */	stw r9, 0x50(r30)
 -/* 80363810 0035F470  91 1E 00 54 */	stw r8, 0x54(r30)
 -/* 80363814 0035F474  90 FE 00 58 */	stw r7, 0x58(r30)
 -/* 80363818 0035F478  90 DE 00 5C */	stw r6, 0x5c(r30)
 -/* 8036381C 0035F47C  90 1E 00 60 */	stw r0, 0x60(r30)
 -/* 80363820 0035F480  90 DE 00 14 */	stw r6, 0x14(r30)
 -/* 80363824 0035F484  4B FF FD 51 */	bl func_80363574
 -/* 80363828 0035F488  38 60 00 00 */	li r3, 0
 -/* 8036382C 0035F48C  38 00 00 01 */	li r0, 1
 -/* 80363830 0035F490  98 7E 00 6D */	stb r3, 0x6d(r30)
 -/* 80363834 0035F494  39 61 00 30 */	addi r11, r1, 0x30
 -/* 80363838 0035F498  7F C3 F3 78 */	mr r3, r30
 -/* 8036383C 0035F49C  9B FE 00 6E */	stb r31, 0x6e(r30)
 -/* 80363840 0035F4A0  98 1E 00 04 */	stb r0, 4(r30)
 -/* 80363844 0035F4A4  4B E6 39 1D */	bl func_801C7160
 -/* 80363848 0035F4A8  80 01 00 34 */	lwz r0, 0x34(r1)
 -/* 8036384C 0035F4AC  7C 08 03 A6 */	mtlr r0
 -/* 80363850 0035F4B0  38 21 00 30 */	addi r1, r1, 0x30
 -/* 80363854 0035F4B4  4E 80 00 20 */	blr
 -
 -.global func_80363858
 -func_80363858:
 -/* 80363858 0035F4B8  94 21 FF F0 */	stwu r1, -0x10(r1)
 -/* 8036385C 0035F4BC  7C 08 02 A6 */	mflr r0
 -/* 80363860 0035F4C0  2C 03 00 00 */	cmpwi r3, 0
 -/* 80363864 0035F4C4  90 01 00 14 */	stw r0, 0x14(r1)
 -/* 80363868 0035F4C8  93 E1 00 0C */	stw r31, 0xc(r1)
 -/* 8036386C 0035F4CC  7C 9F 23 78 */	mr r31, r4
 -/* 80363870 0035F4D0  93 C1 00 08 */	stw r30, 8(r1)
 -/* 80363874 0035F4D4  7C 7E 1B 78 */	mr r30, r3
 -/* 80363878 0035F4D8  41 82 00 3C */	beq lbl_803638B4
 -/* 8036387C 0035F4DC  88 03 00 6D */	lbz r0, 0x6d(r3)
 -/* 80363880 0035F4E0  3C 80 80 45 */	lis r4, lbl_8044C6F0@ha
 -/* 80363884 0035F4E4  38 84 C6 F0 */	addi r4, r4, lbl_8044C6F0@l
 -/* 80363888 0035F4E8  2C 00 00 00 */	cmpwi r0, 0
 -/* 8036388C 0035F4EC  90 83 00 00 */	stw r4, 0(r3)
 -/* 80363890 0035F4F0  41 82 00 14 */	beq lbl_803638A4
 -/* 80363894 0035F4F4  81 83 00 00 */	lwz r12, 0(r3)
 -/* 80363898 0035F4F8  81 8C 00 10 */	lwz r12, 0x10(r12)
 -/* 8036389C 0035F4FC  7D 89 03 A6 */	mtctr r12
 -/* 803638A0 0035F500  4E 80 04 21 */	bctrl
 -lbl_803638A4:
 -/* 803638A4 0035F504  2C 1F 00 00 */	cmpwi r31, 0
 -/* 803638A8 0035F508  40 81 00 0C */	ble lbl_803638B4
 -/* 803638AC 0035F50C  7F C3 F3 78 */	mr r3, r30
 -/* 803638B0 0035F510  4B E7 72 09 */	bl func_801DAAB8
 -lbl_803638B4:
 -/* 803638B4 0035F514  7F C3 F3 78 */	mr r3, r30
 -/* 803638B8 0035F518  83 E1 00 0C */	lwz r31, 0xc(r1)
 -/* 803638BC 0035F51C  83 C1 00 08 */	lwz r30, 8(r1)
 -/* 803638C0 0035F520  80 01 00 14 */	lwz r0, 0x14(r1)
 -/* 803638C4 0035F524  7C 08 03 A6 */	mtlr r0
 -/* 803638C8 0035F528  38 21 00 10 */	addi r1, r1, 0x10
 -/* 803638CC 0035F52C  4E 80 00 20 */	blr
 -/* 803638D0 0035F530  94 21 FF F0 */	stwu r1, -0x10(r1)
 -/* 803638D4 0035F534  7C 08 02 A6 */	mflr r0
 -/* 803638D8 0035F538  90 01 00 14 */	stw r0, 0x14(r1)
 -/* 803638DC 0035F53C  93 E1 00 0C */	stw r31, 0xc(r1)
 -/* 803638E0 0035F540  7C 7F 1B 78 */	mr r31, r3
 -/* 803638E4 0035F544  88 03 00 6E */	lbz r0, 0x6e(r3)
 -/* 803638E8 0035F548  2C 00 00 00 */	cmpwi r0, 0
 -/* 803638EC 0035F54C  41 82 00 20 */	beq lbl_8036390C
 -/* 803638F0 0035F550  88 03 00 04 */	lbz r0, 4(r3)
 -/* 803638F4 0035F554  2C 00 00 00 */	cmpwi r0, 0
 -/* 803638F8 0035F558  41 82 00 14 */	beq lbl_8036390C
 -/* 803638FC 0035F55C  38 63 00 28 */	addi r3, r3, 0x28
 -/* 80363900 0035F560  4B F2 43 D9 */	bl func_80287CD8
 -/* 80363904 0035F564  38 00 00 00 */	li r0, 0
 -/* 80363908 0035F568  98 1F 00 04 */	stb r0, 4(r31)
 -lbl_8036390C:
 -/* 8036390C 0035F56C  80 01 00 14 */	lwz r0, 0x14(r1)
 -/* 80363910 0035F570  83 E1 00 0C */	lwz r31, 0xc(r1)
 -/* 80363914 0035F574  7C 08 03 A6 */	mtlr r0
 -/* 80363918 0035F578  38 21 00 10 */	addi r1, r1, 0x10
 -/* 8036391C 0035F57C  4E 80 00 20 */	blr
 -
 -.global func_80363920
 -func_80363920:
 -/* 80363920 0035F580  94 21 FF F0 */	stwu r1, -0x10(r1)
 -/* 80363924 0035F584  7C 08 02 A6 */	mflr r0
 -/* 80363928 0035F588  90 01 00 14 */	stw r0, 0x14(r1)
 -/* 8036392C 0035F58C  93 E1 00 0C */	stw r31, 0xc(r1)
 -/* 80363930 0035F590  93 C1 00 08 */	stw r30, 8(r1)
 -/* 80363934 0035F594  7C 7E 1B 78 */	mr r30, r3
 -/* 80363938 0035F598  80 C3 00 18 */	lwz r6, 0x18(r3)
 -/* 8036393C 0035F59C  81 03 00 14 */	lwz r8, 0x14(r3)
 -/* 80363940 0035F5A0  7C E6 2A 14 */	add r7, r6, r5
 -/* 80363944 0035F5A4  38 E7 00 1F */	addi r7, r7, 0x1f
 -/* 80363948 0035F5A8  38 08 00 1F */	addi r0, r8, 0x1f
 -/* 8036394C 0035F5AC  54 E7 00 34 */	rlwinm r7, r7, 0, 0, 0x1a
 -/* 80363950 0035F5B0  54 00 00 34 */	rlwinm r0, r0, 0, 0, 0x1a
 -/* 80363954 0035F5B4  7C 07 00 40 */	cmplw r7, r0
 -/* 80363958 0035F5B8  40 81 00 10 */	ble lbl_80363968
 -/* 8036395C 0035F5BC  7C A6 40 50 */	subf r5, r6, r8
 -/* 80363960 0035F5C0  38 05 00 1F */	addi r0, r5, 0x1f
 -/* 80363964 0035F5C4  54 05 00 34 */	rlwinm r5, r0, 0, 0, 0x1a
 -lbl_80363968:
 -/* 80363968 0035F5C8  80 E3 00 68 */	lwz r7, 0x68(r3)
 -/* 8036396C 0035F5CC  38 63 00 28 */	addi r3, r3, 0x28
 -/* 80363970 0035F5D0  4B F2 46 35 */	bl func_80287FA4
 -/* 80363974 0035F5D4  2C 03 00 00 */	cmpwi r3, 0
 -/* 80363978 0035F5D8  7C 7F 1B 78 */	mr r31, r3
 -/* 8036397C 0035F5DC  40 81 00 10 */	ble lbl_8036398C
 -/* 80363980 0035F5E0  7F E4 FB 78 */	mr r4, r31
 -/* 80363984 0035F5E4  38 7E 00 14 */	addi r3, r30, 0x14
 -/* 80363988 0035F5E8  4B FF FB 89 */	bl func_80363510
 -lbl_8036398C:
 -/* 8036398C 0035F5EC  7F E3 FB 78 */	mr r3, r31
 -/* 80363990 0035F5F0  83 E1 00 0C */	lwz r31, 0xc(r1)
 -/* 80363994 0035F5F4  83 C1 00 08 */	lwz r30, 8(r1)
 -/* 80363998 0035F5F8  80 01 00 14 */	lwz r0, 0x14(r1)
 -/* 8036399C 0035F5FC  7C 08 03 A6 */	mtlr r0
 -/* 803639A0 0035F600  38 21 00 10 */	addi r1, r1, 0x10
 -/* 803639A4 0035F604  4E 80 00 20 */	blr
 -/* 803639A8 0035F608  94 21 FF E0 */	stwu r1, -0x20(r1)
 -/* 803639AC 0035F60C  7C 08 02 A6 */	mflr r0
 -/* 803639B0 0035F610  90 01 00 24 */	stw r0, 0x24(r1)
 -/* 803639B4 0035F614  93 E1 00 1C */	stw r31, 0x1c(r1)
 -/* 803639B8 0035F618  7C 7F 1B 78 */	mr r31, r3
 -/* 803639BC 0035F61C  93 C1 00 18 */	stw r30, 0x18(r1)
 -/* 803639C0 0035F620  7C BE 2B 78 */	mr r30, r5
 -/* 803639C4 0035F624  93 A1 00 14 */	stw r29, 0x14(r1)
 -/* 803639C8 0035F628  81 03 00 18 */	lwz r8, 0x18(r3)
 -/* 803639CC 0035F62C  81 23 00 14 */	lwz r9, 0x14(r3)
 -/* 803639D0 0035F630  7C A8 2A 14 */	add r5, r8, r5
 -/* 803639D4 0035F634  38 A5 00 1F */	addi r5, r5, 0x1f
 -/* 803639D8 0035F638  38 09 00 1F */	addi r0, r9, 0x1f
 -/* 803639DC 0035F63C  54 A5 00 34 */	rlwinm r5, r5, 0, 0, 0x1a
 -/* 803639E0 0035F640  54 00 00 34 */	rlwinm r0, r0, 0, 0, 0x1a
 -/* 803639E4 0035F644  7C 05 00 40 */	cmplw r5, r0
 -/* 803639E8 0035F648  40 81 00 10 */	ble lbl_803639F8
 -/* 803639EC 0035F64C  7C A8 48 50 */	subf r5, r8, r9
 -/* 803639F0 0035F650  38 05 00 1F */	addi r0, r5, 0x1f
 -/* 803639F4 0035F654  54 1E 00 34 */	rlwinm r30, r0, 0, 0, 0x1a
 -lbl_803639F8:
 -/* 803639F8 0035F658  81 63 00 18 */	lwz r11, 0x18(r3)
 -/* 803639FC 0035F65C  39 20 00 01 */	li r9, 1
 -/* 80363A00 0035F660  81 43 00 14 */	lwz r10, 0x14(r3)
 -/* 80363A04 0035F664  7F C5 F3 78 */	mr r5, r30
 -/* 80363A08 0035F668  7D 0B F2 14 */	add r8, r11, r30
 -/* 80363A0C 0035F66C  90 C3 00 0C */	stw r6, 0xc(r3)
 -/* 80363A10 0035F670  38 C8 00 1F */	addi r6, r8, 0x1f
 -/* 80363A14 0035F674  38 0A 00 1F */	addi r0, r10, 0x1f
 -/* 80363A18 0035F678  54 C6 00 34 */	rlwinm r6, r6, 0, 0, 0x1a
 -/* 80363A1C 0035F67C  90 E3 00 10 */	stw r7, 0x10(r3)
 -/* 80363A20 0035F680  54 00 00 34 */	rlwinm r0, r0, 0, 0, 0x1a
 -/* 80363A24 0035F684  7C 06 00 40 */	cmplw r6, r0
 -/* 80363A28 0035F688  99 23 00 6C */	stb r9, 0x6c(r3)
 -/* 80363A2C 0035F68C  40 81 00 10 */	ble lbl_80363A3C
 -/* 80363A30 0035F690  7C AB 50 50 */	subf r5, r11, r10
 -/* 80363A34 0035F694  38 05 00 1F */	addi r0, r5, 0x1f
 -/* 80363A38 0035F698  54 05 00 34 */	rlwinm r5, r0, 0, 0, 0x1a
 -lbl_80363A3C:
 -/* 80363A3C 0035F69C  81 03 00 68 */	lwz r8, 0x68(r3)
 -/* 80363A40 0035F6A0  3C E0 80 36 */	lis r7, lbl_80363618@ha
 -/* 80363A44 0035F6A4  7D 66 5B 78 */	mr r6, r11
 -/* 80363A48 0035F6A8  38 63 00 28 */	addi r3, r3, 0x28
 -/* 80363A4C 0035F6AC  38 E7 36 18 */	addi r7, r7, lbl_80363618@l
 -/* 80363A50 0035F6B0  4B F2 44 6D */	bl func_80287EBC
 -/* 80363A54 0035F6B4  7C 03 00 D0 */	neg r0, r3
 -/* 80363A58 0035F6B8  7C 00 1B 78 */	or r0, r0, r3
 -/* 80363A5C 0035F6BC  54 1D 0F FF */	rlwinm. r29, r0, 1, 0x1f, 0x1f
 -/* 80363A60 0035F6C0  41 82 00 14 */	beq lbl_80363A74
 -/* 80363A64 0035F6C4  7F C4 F3 78 */	mr r4, r30
 -/* 80363A68 0035F6C8  38 7F 00 14 */	addi r3, r31, 0x14
 -/* 80363A6C 0035F6CC  4B FF FA A5 */	bl func_80363510
 -/* 80363A70 0035F6D0  48 00 00 0C */	b lbl_80363A7C
 -lbl_80363A74:
 -/* 80363A74 0035F6D4  38 00 00 00 */	li r0, 0
 -/* 80363A78 0035F6D8  98 1F 00 6C */	stb r0, 0x6c(r31)
 -lbl_80363A7C:
 -/* 80363A7C 0035F6DC  83 E1 00 1C */	lwz r31, 0x1c(r1)
 -/* 80363A80 0035F6E0  7F A3 EB 78 */	mr r3, r29
 -/* 80363A84 0035F6E4  83 C1 00 18 */	lwz r30, 0x18(r1)
 -/* 80363A88 0035F6E8  83 A1 00 14 */	lwz r29, 0x14(r1)
 -/* 80363A8C 0035F6EC  80 01 00 24 */	lwz r0, 0x24(r1)
 -/* 80363A90 0035F6F0  7C 08 03 A6 */	mtlr r0
 -/* 80363A94 0035F6F4  38 21 00 20 */	addi r1, r1, 0x20
 -/* 80363A98 0035F6F8  4E 80 00 20 */	blr
 -
 -.global func_80363A9C
 -func_80363A9C:
 -/* 80363A9C 0035F6FC  80 C3 00 18 */	lwz r6, 0x18(r3)
 -/* 80363AA0 0035F700  81 03 00 14 */	lwz r8, 0x14(r3)
 -/* 80363AA4 0035F704  7C E6 2A 14 */	add r7, r6, r5
 -/* 80363AA8 0035F708  38 E7 00 1F */	addi r7, r7, 0x1f
 -/* 80363AAC 0035F70C  38 08 00 1F */	addi r0, r8, 0x1f
 -/* 80363AB0 0035F710  54 E7 00 34 */	rlwinm r7, r7, 0, 0, 0x1a
 -/* 80363AB4 0035F714  54 00 00 34 */	rlwinm r0, r0, 0, 0, 0x1a
 -/* 80363AB8 0035F718  7C 07 00 40 */	cmplw r7, r0
 -/* 80363ABC 0035F71C  40 81 00 10 */	ble lbl_80363ACC
 -/* 80363AC0 0035F720  7C A6 40 50 */	subf r5, r6, r8
 -/* 80363AC4 0035F724  38 05 00 1F */	addi r0, r5, 0x1f
 -/* 80363AC8 0035F728  54 05 00 34 */	rlwinm r5, r0, 0, 0, 0x1a
 -lbl_80363ACC:
 -/* 80363ACC 0035F72C  80 E3 00 68 */	lwz r7, 0x68(r3)
 -/* 80363AD0 0035F730  38 63 00 28 */	addi r3, r3, 0x28
 -/* 80363AD4 0035F734  4B F2 44 D0 */	b func_80287FA4
 -/* 80363AD8 0035F738  94 21 FF F0 */	stwu r1, -0x10(r1)
 -/* 80363ADC 0035F73C  7C 08 02 A6 */	mflr r0
 -/* 80363AE0 0035F740  39 20 00 01 */	li r9, 1
 -/* 80363AE4 0035F744  90 01 00 14 */	stw r0, 0x14(r1)
 -/* 80363AE8 0035F748  81 63 00 18 */	lwz r11, 0x18(r3)
 -/* 80363AEC 0035F74C  81 43 00 14 */	lwz r10, 0x14(r3)
 -/* 80363AF0 0035F750  7D 0B 2A 14 */	add r8, r11, r5
 -/* 80363AF4 0035F754  90 C3 00 0C */	stw r6, 0xc(r3)
 -/* 80363AF8 0035F758  38 C8 00 1F */	addi r6, r8, 0x1f
 -/* 80363AFC 0035F75C  38 0A 00 1F */	addi r0, r10, 0x1f
 -/* 80363B00 0035F760  54 C6 00 34 */	rlwinm r6, r6, 0, 0, 0x1a
 -/* 80363B04 0035F764  90 E3 00 10 */	stw r7, 0x10(r3)
 -/* 80363B08 0035F768  54 00 00 34 */	rlwinm r0, r0, 0, 0, 0x1a
 -/* 80363B0C 0035F76C  7C 06 00 40 */	cmplw r6, r0
 -/* 80363B10 0035F770  99 23 00 6C */	stb r9, 0x6c(r3)
 -/* 80363B14 0035F774  40 81 00 10 */	ble lbl_80363B24
 -/* 80363B18 0035F778  7C AB 50 50 */	subf r5, r11, r10
 -/* 80363B1C 0035F77C  38 05 00 1F */	addi r0, r5, 0x1f
 -/* 80363B20 0035F780  54 05 00 34 */	rlwinm r5, r0, 0, 0, 0x1a
 -lbl_80363B24:
 -/* 80363B24 0035F784  81 03 00 68 */	lwz r8, 0x68(r3)
 -/* 80363B28 0035F788  3C E0 80 36 */	lis r7, lbl_80363618@ha
 -/* 80363B2C 0035F78C  7D 66 5B 78 */	mr r6, r11
 -/* 80363B30 0035F790  38 63 00 28 */	addi r3, r3, 0x28
 -/* 80363B34 0035F794  38 E7 36 18 */	addi r7, r7, lbl_80363618@l
 -/* 80363B38 0035F798  4B F2 43 85 */	bl func_80287EBC
 -/* 80363B3C 0035F79C  7C 03 00 D0 */	neg r0, r3
 -/* 80363B40 0035F7A0  7C 00 1B 78 */	or r0, r0, r3
 -/* 80363B44 0035F7A4  54 03 0F FE */	srwi r3, r0, 0x1f
 -/* 80363B48 0035F7A8  80 01 00 14 */	lwz r0, 0x14(r1)
 -/* 80363B4C 0035F7AC  7C 08 03 A6 */	mtlr r0
 -/* 80363B50 0035F7B0  38 21 00 10 */	addi r1, r1, 0x10
 -/* 80363B54 0035F7B4  4E 80 00 20 */	blr
 -
 -.global func_80363B58
 -func_80363B58:
 -/* 80363B58 0035F7B8  38 63 00 14 */	addi r3, r3, 0x14
 -/* 80363B5C 0035F7BC  4B FF FA 18 */	b func_80363574
 -/* 80363B60 0035F7C0  38 63 00 28 */	addi r3, r3, 0x28
 -/* 80363B64 0035F7C4  4B F2 87 B8 */	b func_8028C31C
 -/* 80363B68 0035F7C8  94 21 FF F0 */	stwu r1, -0x10(r1)
 -/* 80363B6C 0035F7CC  7C 08 02 A6 */	mflr r0
 -/* 80363B70 0035F7D0  90 01 00 14 */	stw r0, 0x14(r1)
 -/* 80363B74 0035F7D4  93 E1 00 0C */	stw r31, 0xc(r1)
 -/* 80363B78 0035F7D8  7C 7F 1B 78 */	mr r31, r3
 -/* 80363B7C 0035F7DC  90 83 00 1C */	stw r4, 0x1c(r3)
 -/* 80363B80 0035F7E0  3C 80 80 36 */	lis r4, lbl_80363644@ha
 -/* 80363B84 0035F7E4  38 84 36 44 */	addi r4, r4, lbl_80363644@l
 -/* 80363B88 0035F7E8  90 A3 00 20 */	stw r5, 0x20(r3)
 -/* 80363B8C 0035F7EC  38 63 00 28 */	addi r3, r3, 0x28
 -/* 80363B90 0035F7F0  4B F2 84 39 */	bl func_8028BFC8
 -/* 80363B94 0035F7F4  2C 03 00 00 */	cmpwi r3, 0
 -/* 80363B98 0035F7F8  41 82 00 0C */	beq lbl_80363BA4
 -/* 80363B9C 0035F7FC  38 00 00 01 */	li r0, 1
 -/* 80363BA0 0035F800  98 1F 00 24 */	stb r0, 0x24(r31)
 -lbl_80363BA4:
 -/* 80363BA4 0035F804  7C 03 00 D0 */	neg r0, r3
 -/* 80363BA8 0035F808  83 E1 00 0C */	lwz r31, 0xc(r1)
 -/* 80363BAC 0035F80C  7C 00 1B 78 */	or r0, r0, r3
 -/* 80363BB0 0035F810  54 03 0F FE */	srwi r3, r0, 0x1f
 -/* 80363BB4 0035F814  80 01 00 14 */	lwz r0, 0x14(r1)
 -/* 80363BB8 0035F818  7C 08 03 A6 */	mtlr r0
 -/* 80363BBC 0035F81C  38 21 00 10 */	addi r1, r1, 0x10
 -/* 80363BC0 0035F820  4E 80 00 20 */	blr
 -/* 80363BC4 0035F824  38 60 00 20 */	li r3, 0x20
 -/* 80363BC8 0035F828  4E 80 00 20 */	blr
 -/* 80363BCC 0035F82C  38 60 00 20 */	li r3, 0x20
 -/* 80363BD0 0035F830  4E 80 00 20 */	blr
 -/* 80363BD4 0035F834  38 60 00 04 */	li r3, 4
 -/* 80363BD8 0035F838  4E 80 00 20 */	blr
 -/* 80363BDC 0035F83C  38 60 00 01 */	li r3, 1
 -/* 80363BE0 0035F840  4E 80 00 20 */	blr
 -/* 80363BE4 0035F844  38 60 00 00 */	li r3, 0
 -/* 80363BE8 0035F848  4E 80 00 20 */	blr
 -/* 80363BEC 0035F84C  38 60 00 01 */	li r3, 1
 -/* 80363BF0 0035F850  4E 80 00 20 */	blr
 -/* 80363BF4 0035F854  38 60 00 01 */	li r3, 1
 -/* 80363BF8 0035F858  4E 80 00 20 */	blr
 -/* 80363BFC 0035F85C  38 60 00 01 */	li r3, 1
 -/* 80363C00 0035F860  4E 80 00 20 */	blr
 -/* 80363C04 0035F864  80 63 00 14 */	lwz r3, 0x14(r3)
 -/* 80363C08 0035F868  4E 80 00 20 */	blr
 -/* 80363C0C 0035F86C  80 63 00 18 */	lwz r3, 0x18(r3)
 -/* 80363C10 0035F870  4E 80 00 20 */	blr
 -/* 80363C14 0035F874  88 63 00 6C */	lbz r3, 0x6c(r3)
 -/* 80363C18 0035F878  4E 80 00 20 */	blr
 -/* 80363C1C 0035F87C  38 6D B1 B0 */	addi r3, r13, lbl_80640470-_SDA_BASE_
 -/* 80363C20 0035F880  4E 80 00 20 */	blr
 -/* 80363C24 0035F884  38 0D B1 A8 */	addi r0, r13, lbl_80640468-_SDA_BASE_
 -/* 80363C28 0035F888  90 0D B1 B0 */	stw r0, lbl_80640470-_SDA_BASE_(r13)
 -/* 80363C2C 0035F88C  4E 80 00 20 */	blr
 -
 -.global func_80363C30
 -func_80363C30:
 -/* 80363C30 0035F890  94 21 FF F0 */	stwu r1, -0x10(r1)
 -/* 80363C34 0035F894  7C 08 02 A6 */	mflr r0
 -/* 80363C38 0035F898  90 01 00 14 */	stw r0, 0x14(r1)
 -/* 80363C3C 0035F89C  93 E1 00 0C */	stw r31, 0xc(r1)
 -/* 80363C40 0035F8A0  93 C1 00 08 */	stw r30, 8(r1)
 -/* 80363C44 0035F8A4  7C 7E 1B 78 */	mr r30, r3
 -/* 80363C48 0035F8A8  4B FF FA 25 */	bl func_8036366C
 -/* 80363C4C 0035F8AC  3C 60 80 45 */	lis r3, lbl_8044C758@ha
 -/* 80363C50 0035F8B0  38 63 C7 58 */	addi r3, r3, lbl_8044C758@l
 -/* 80363C54 0035F8B4  90 7E 00 00 */	stw r3, 0(r30)
 -/* 80363C58 0035F8B8  4B F0 AB 05 */	bl OSDisableInterrupts
 -/* 80363C5C 0035F8BC  88 0D B1 BC */	lbz r0, lbl_8064047C-_SDA_BASE_(r13)
 -/* 80363C60 0035F8C0  7C 7F 1B 78 */	mr r31, r3
 -/* 80363C64 0035F8C4  2C 00 00 00 */	cmpwi r0, 0
 -/* 80363C68 0035F8C8  40 82 00 18 */	bne lbl_80363C80
 -/* 80363C6C 0035F8CC  3C 60 80 62 */	lis r3, lbl_806216F0@ha
 -/* 80363C70 0035F8D0  38 63 16 F0 */	addi r3, r3, lbl_806216F0@l
 -/* 80363C74 0035F8D4  4B F0 BC 9D */	bl func_8026F910
 -/* 80363C78 0035F8D8  38 00 00 01 */	li r0, 1
 -/* 80363C7C 0035F8DC  98 0D B1 BC */	stb r0, lbl_8064047C-_SDA_BASE_(r13)
 -lbl_80363C80:
 -/* 80363C80 0035F8E0  7F E3 FB 78 */	mr r3, r31
 -/* 80363C84 0035F8E4  4B F0 AB 01 */	bl OSRestoreInterrupts
 -/* 80363C88 0035F8E8  7F C3 F3 78 */	mr r3, r30
 -/* 80363C8C 0035F8EC  83 E1 00 0C */	lwz r31, 0xc(r1)
 -/* 80363C90 0035F8F0  83 C1 00 08 */	lwz r30, 8(r1)
 -/* 80363C94 0035F8F4  80 01 00 14 */	lwz r0, 0x14(r1)
 -/* 80363C98 0035F8F8  7C 08 03 A6 */	mtlr r0
 -/* 80363C9C 0035F8FC  38 21 00 10 */	addi r1, r1, 0x10
 -/* 80363CA0 0035F900  4E 80 00 20 */	blr
 -
 -.global func_80363CA4
 -func_80363CA4:
 -/* 80363CA4 0035F904  94 21 FF F0 */	stwu r1, -0x10(r1)
 -/* 80363CA8 0035F908  7C 08 02 A6 */	mflr r0
 -/* 80363CAC 0035F90C  90 01 00 14 */	stw r0, 0x14(r1)
 -/* 80363CB0 0035F910  93 E1 00 0C */	stw r31, 0xc(r1)
 -/* 80363CB4 0035F914  93 C1 00 08 */	stw r30, 8(r1)
 -/* 80363CB8 0035F918  7C 7E 1B 78 */	mr r30, r3
 -/* 80363CBC 0035F91C  4B FF FA 6D */	bl func_80363728
 -/* 80363CC0 0035F920  3C 60 80 45 */	lis r3, lbl_8044C758@ha
 -/* 80363CC4 0035F924  38 63 C7 58 */	addi r3, r3, lbl_8044C758@l
 -/* 80363CC8 0035F928  90 7E 00 00 */	stw r3, 0(r30)
 -/* 80363CCC 0035F92C  4B F0 AA 91 */	bl OSDisableInterrupts
 -/* 80363CD0 0035F930  88 0D B1 BC */	lbz r0, lbl_8064047C-_SDA_BASE_(r13)
 -/* 80363CD4 0035F934  7C 7F 1B 78 */	mr r31, r3
 -/* 80363CD8 0035F938  2C 00 00 00 */	cmpwi r0, 0
 -/* 80363CDC 0035F93C  40 82 00 18 */	bne lbl_80363CF4
 -/* 80363CE0 0035F940  3C 60 80 62 */	lis r3, lbl_806216F0@ha
 -/* 80363CE4 0035F944  38 63 16 F0 */	addi r3, r3, lbl_806216F0@l
 -/* 80363CE8 0035F948  4B F0 BC 29 */	bl func_8026F910
 -/* 80363CEC 0035F94C  38 00 00 01 */	li r0, 1
 -/* 80363CF0 0035F950  98 0D B1 BC */	stb r0, lbl_8064047C-_SDA_BASE_(r13)
 -lbl_80363CF4:
 -/* 80363CF4 0035F954  7F E3 FB 78 */	mr r3, r31
 -/* 80363CF8 0035F958  4B F0 AA 8D */	bl OSRestoreInterrupts
 -/* 80363CFC 0035F95C  7F C3 F3 78 */	mr r3, r30
 -/* 80363D00 0035F960  83 E1 00 0C */	lwz r31, 0xc(r1)
 -/* 80363D04 0035F964  83 C1 00 08 */	lwz r30, 8(r1)
 -/* 80363D08 0035F968  80 01 00 14 */	lwz r0, 0x14(r1)
 -/* 80363D0C 0035F96C  7C 08 03 A6 */	mtlr r0
 -/* 80363D10 0035F970  38 21 00 10 */	addi r1, r1, 0x10
 -/* 80363D14 0035F974  4E 80 00 20 */	blr
 -
 -.global func_80363D18
 -func_80363D18:
 -/* 80363D18 0035F978  94 21 FF F0 */	stwu r1, -0x10(r1)
 -/* 80363D1C 0035F97C  7C 08 02 A6 */	mflr r0
 -/* 80363D20 0035F980  2C 03 00 00 */	cmpwi r3, 0
 -/* 80363D24 0035F984  90 01 00 14 */	stw r0, 0x14(r1)
 -/* 80363D28 0035F988  93 E1 00 0C */	stw r31, 0xc(r1)
 -/* 80363D2C 0035F98C  7C 9F 23 78 */	mr r31, r4
 -/* 80363D30 0035F990  93 C1 00 08 */	stw r30, 8(r1)
 -/* 80363D34 0035F994  7C 7E 1B 78 */	mr r30, r3
 -/* 80363D38 0035F998  41 82 00 1C */	beq lbl_80363D54
 -/* 80363D3C 0035F99C  38 80 00 00 */	li r4, 0
 -/* 80363D40 0035F9A0  4B FF FB 19 */	bl func_80363858
 -/* 80363D44 0035F9A4  2C 1F 00 00 */	cmpwi r31, 0
 -/* 80363D48 0035F9A8  40 81 00 0C */	ble lbl_80363D54
 -/* 80363D4C 0035F9AC  7F C3 F3 78 */	mr r3, r30
 -/* 80363D50 0035F9B0  4B E7 6D 69 */	bl func_801DAAB8
 -lbl_80363D54:
 -/* 80363D54 0035F9B4  7F C3 F3 78 */	mr r3, r30
 -/* 80363D58 0035F9B8  83 E1 00 0C */	lwz r31, 0xc(r1)
 -/* 80363D5C 0035F9BC  83 C1 00 08 */	lwz r30, 8(r1)
 -/* 80363D60 0035F9C0  80 01 00 14 */	lwz r0, 0x14(r1)
 -/* 80363D64 0035F9C4  7C 08 03 A6 */	mtlr r0
 -/* 80363D68 0035F9C8  38 21 00 10 */	addi r1, r1, 0x10
 -/* 80363D6C 0035F9CC  4E 80 00 20 */	blr
 -lbl_80363D70:
 -/* 80363D70 0035F9D0  94 21 FF E0 */	stwu r1, -0x20(r1)
 -/* 80363D74 0035F9D4  7C 08 02 A6 */	mflr r0
 -/* 80363D78 0035F9D8  90 01 00 24 */	stw r0, 0x24(r1)
 -/* 80363D7C 0035F9DC  93 E1 00 1C */	stw r31, 0x1c(r1)
 -/* 80363D80 0035F9E0  3F E0 80 62 */	lis r31, lbl_806216F0@ha
 -/* 80363D84 0035F9E4  93 C1 00 18 */	stw r30, 0x18(r1)
 -/* 80363D88 0035F9E8  7C BE 2B 78 */	mr r30, r5
 -/* 80363D8C 0035F9EC  93 A1 00 14 */	stw r29, 0x14(r1)
 -/* 80363D90 0035F9F0  7C 9D 23 78 */	mr r29, r4
 -/* 80363D94 0035F9F4  93 81 00 10 */	stw r28, 0x10(r1)
 -/* 80363D98 0035F9F8  7C 7C 1B 78 */	mr r28, r3
 -/* 80363D9C 0035F9FC  38 7F 16 F0 */	addi r3, r31, lbl_806216F0@l
 -/* 80363DA0 0035FA00  4B F0 BB A9 */	bl func_8026F948
 -/* 80363DA4 0035FA04  7F 83 E3 78 */	mr r3, r28
 -/* 80363DA8 0035FA08  7F A4 EB 78 */	mr r4, r29
 -/* 80363DAC 0035FA0C  7F C5 F3 78 */	mr r5, r30
 -/* 80363DB0 0035FA10  4B FF FB 71 */	bl func_80363920
 -/* 80363DB4 0035FA14  7C 7E 1B 78 */	mr r30, r3
 -/* 80363DB8 0035FA18  38 7F 16 F0 */	addi r3, r31, 0x16f0
 -/* 80363DBC 0035FA1C  4B F0 BC 69 */	bl func_8026FA24
 -/* 80363DC0 0035FA20  7F C3 F3 78 */	mr r3, r30
 -/* 80363DC4 0035FA24  83 E1 00 1C */	lwz r31, 0x1c(r1)
 -/* 80363DC8 0035FA28  83 C1 00 18 */	lwz r30, 0x18(r1)
 -/* 80363DCC 0035FA2C  83 A1 00 14 */	lwz r29, 0x14(r1)
 -/* 80363DD0 0035FA30  83 81 00 10 */	lwz r28, 0x10(r1)
 -/* 80363DD4 0035FA34  80 01 00 24 */	lwz r0, 0x24(r1)
 -/* 80363DD8 0035FA38  7C 08 03 A6 */	mtlr r0
 -/* 80363DDC 0035FA3C  38 21 00 20 */	addi r1, r1, 0x20
 -/* 80363DE0 0035FA40  4E 80 00 20 */	blr
 -/* 80363DE4 0035FA44  94 21 FF E0 */	stwu r1, -0x20(r1)
 -/* 80363DE8 0035FA48  7C 08 02 A6 */	mflr r0
 -/* 80363DEC 0035FA4C  90 01 00 24 */	stw r0, 0x24(r1)
 -/* 80363DF0 0035FA50  93 E1 00 1C */	stw r31, 0x1c(r1)
 -/* 80363DF4 0035FA54  3F E0 80 62 */	lis r31, lbl_806216F0@ha
 -/* 80363DF8 0035FA58  93 C1 00 18 */	stw r30, 0x18(r1)
 -/* 80363DFC 0035FA5C  7C BE 2B 78 */	mr r30, r5
 -/* 80363E00 0035FA60  93 A1 00 14 */	stw r29, 0x14(r1)
 -/* 80363E04 0035FA64  7C 9D 23 78 */	mr r29, r4
 -/* 80363E08 0035FA68  93 81 00 10 */	stw r28, 0x10(r1)
 -/* 80363E0C 0035FA6C  7C 7C 1B 78 */	mr r28, r3
 -/* 80363E10 0035FA70  38 7F 16 F0 */	addi r3, r31, lbl_806216F0@l
 -/* 80363E14 0035FA74  4B F0 BB 35 */	bl func_8026F948
 -/* 80363E18 0035FA78  7F 83 E3 78 */	mr r3, r28
 -/* 80363E1C 0035FA7C  7F A4 EB 78 */	mr r4, r29
 -/* 80363E20 0035FA80  7F C5 F3 78 */	mr r5, r30
 -/* 80363E24 0035FA84  4B FF FC 79 */	bl func_80363A9C
 -/* 80363E28 0035FA88  7C 7E 1B 78 */	mr r30, r3
 -/* 80363E2C 0035FA8C  38 7F 16 F0 */	addi r3, r31, 0x16f0
 -/* 80363E30 0035FA90  4B F0 BB F5 */	bl func_8026FA24
 -/* 80363E34 0035FA94  7F C3 F3 78 */	mr r3, r30
 -/* 80363E38 0035FA98  83 E1 00 1C */	lwz r31, 0x1c(r1)
 -/* 80363E3C 0035FA9C  83 C1 00 18 */	lwz r30, 0x18(r1)
 -/* 80363E40 0035FAA0  83 A1 00 14 */	lwz r29, 0x14(r1)
 -/* 80363E44 0035FAA4  83 81 00 10 */	lwz r28, 0x10(r1)
 -/* 80363E48 0035FAA8  80 01 00 24 */	lwz r0, 0x24(r1)
 -/* 80363E4C 0035FAAC  7C 08 03 A6 */	mtlr r0
 -/* 80363E50 0035FAB0  38 21 00 20 */	addi r1, r1, 0x20
 -/* 80363E54 0035FAB4  4E 80 00 20 */	blr
 -/* 80363E58 0035FAB8  38 60 00 00 */	li r3, 0
 -/* 80363E5C 0035FABC  4E 80 00 20 */	blr
 -/* 80363E60 0035FAC0  38 60 00 00 */	li r3, 0
 -/* 80363E64 0035FAC4  4E 80 00 20 */	blr
 -/* 80363E68 0035FAC8  38 60 00 00 */	li r3, 0
 -/* 80363E6C 0035FACC  4E 80 00 20 */	blr
 -/* 80363E70 0035FAD0  38 6D B1 B8 */	addi r3, r13, lbl_80640478-_SDA_BASE_
 -/* 80363E74 0035FAD4  4E 80 00 20 */	blr
 -/* 80363E78 0035FAD8  38 0D B1 B0 */	addi r0, r13, lbl_80640470-_SDA_BASE_
 -/* 80363E7C 0035FADC  90 0D B1 B8 */	stw r0, lbl_80640478-_SDA_BASE_(r13)
 -/* 80363E80 0035FAE0  4E 80 00 20 */	blr
 -
  .global func_80363E84
  func_80363E84:
  /* 80363E84 0035FAE4  2C 04 00 02 */	cmpwi r4, 2
 @@ -720,6 +50,8 @@ lbl_80363F0C:  /* 80363F20 0035FB80  80 04 00 08 */	lwz r0, 8(r4)
  /* 80363F24 0035FB84  90 03 00 0C */	stw r0, 0xc(r3)
  /* 80363F28 0035FB88  4E 80 00 20 */	blr
 +
 +
  /* 80363F2C 0035FB8C  94 21 FF F0 */	stwu r1, -0x10(r1)
  /* 80363F30 0035FB90  7C 08 02 A6 */	mflr r0
  /* 80363F34 0035FB94  2C 03 00 00 */	cmpwi r3, 0
 @@ -13925,7 +13257,7 @@ lbl_8036F940:  /* 8036F948 0036B5A8  7F A3 EB 78 */	mr r3, r29
  /* 8036F94C 0036B5AC  38 88 01 4C */	addi r4, r8, 0x14c
  /* 8036F950 0036B5B0  38 A0 00 00 */	li r5, 0
 -/* 8036F954 0036B5B4  4B FF 43 51 */	bl func_80363CA4
 +/* 8036F954 0036B5B4  4B FF 43 51 */	bl __ct__Q34nw4r2ut19DvdLockedFileStreamFPC11DVDFileInfob
  /* 8036F958 0036B5B8  3C 60 80 45 */	lis r3, lbl_8044C9A0@ha
  /* 8036F95C 0036B5BC  2C 1F 00 00 */	cmpwi r31, 0
  /* 8036F960 0036B5C0  38 63 C9 A0 */	addi r3, r3, lbl_8044C9A0@l
 @@ -13939,7 +13271,7 @@ lbl_8036F97C:  /* 8036F97C 0036B5DC  80 9D 00 70 */	lwz r4, 0x70(r29)
  /* 8036F980 0036B5E0  7F A3 EB 78 */	mr r3, r29
  /* 8036F984 0036B5E4  38 A0 00 00 */	li r5, 0
 -/* 8036F988 0036B5E8  4B FF 41 D1 */	bl func_80363B58
 +/* 8036F988 0036B5E8  4B FF 41 D1 */	bl Seek__Q34nw4r2ut13DvdFileStreamFlUl
  lbl_8036F98C:
  /* 8036F98C 0036B5EC  7F A3 EB 78 */	mr r3, r29
  lbl_8036F990:
 @@ -13981,7 +13313,7 @@ lbl_8036FA10:  /* 8036FA10 0036B670  2C 1D 00 00 */	cmpwi r29, 0
  /* 8036FA14 0036B674  41 82 00 40 */	beq lbl_8036FA54
  /* 8036FA18 0036B678  7F A3 EB 78 */	mr r3, r29
 -/* 8036FA1C 0036B67C  4B FF 42 15 */	bl func_80363C30
 +/* 8036FA1C 0036B67C  4B FF 42 15 */	bl __ct__Q34nw4r2ut19DvdLockedFileStreamFl
  /* 8036FA20 0036B680  3C 60 80 45 */	lis r3, lbl_8044C9A0@ha
  /* 8036FA24 0036B684  2C 1F 00 00 */	cmpwi r31, 0
  /* 8036FA28 0036B688  38 63 C9 A0 */	addi r3, r3, lbl_8044C9A0@l
 @@ -13995,7 +13327,7 @@ lbl_8036FA44:  /* 8036FA44 0036B6A4  80 9D 00 70 */	lwz r4, 0x70(r29)
  /* 8036FA48 0036B6A8  7F A3 EB 78 */	mr r3, r29
  /* 8036FA4C 0036B6AC  38 A0 00 00 */	li r5, 0
 -/* 8036FA50 0036B6B0  4B FF 41 09 */	bl func_80363B58
 +/* 8036FA50 0036B6B0  4B FF 41 09 */	bl Seek__Q34nw4r2ut13DvdFileStreamFlUl
  lbl_8036FA54:
  /* 8036FA54 0036B6B4  7F A3 EB 78 */	mr r3, r29
  lbl_8036FA58:
 @@ -14059,7 +13391,7 @@ lbl_8036FAE8:  /* 8036FB24 0036B784  38 05 00 1F */	addi r0, r5, 0x1f
  /* 8036FB28 0036B788  54 05 00 34 */	rlwinm r5, r0, 0, 0, 0x1a
  lbl_8036FB2C:
 -/* 8036FB2C 0036B78C  4B FF 42 44 */	b lbl_80363D70
 +/* 8036FB2C 0036B78C  4B FF 42 44 */	b Read__Q34nw4r2ut19DvdLockedFileStreamFPvUl
  /* 8036FB30 0036B790  2C 05 00 01 */	cmpwi r5, 1
  /* 8036FB34 0036B794  41 82 00 2C */	beq lbl_8036FB60
  /* 8036FB38 0036B798  40 80 00 10 */	bge lbl_8036FB48
 @@ -14099,7 +13431,7 @@ lbl_8036FB98:  /* 8036FBA8 0036B808  7C 04 03 78 */	mr r4, r0
  lbl_8036FBAC:
  /* 8036FBAC 0036B80C  38 A0 00 00 */	li r5, 0
 -/* 8036FBB0 0036B810  4B FF 3F A8 */	b func_80363B58
 +/* 8036FBB0 0036B810  4B FF 3F A8 */	b Seek__Q34nw4r2ut13DvdFileStreamFlUl
  /* 8036FBB4 0036B814  4E 80 00 20 */	blr
  /* 8036FBB8 0036B818  80 63 00 74 */	lwz r3, 0x74(r3)
  /* 8036FBBC 0036B81C  4E 80 00 20 */	blr
 @@ -14121,7 +13453,7 @@ lbl_8036FBAC:  /* 8036FBFC 0036B85C  7C 7E 1B 78 */	mr r30, r3
  /* 8036FC00 0036B860  41 82 00 1C */	beq lbl_8036FC1C
  /* 8036FC04 0036B864  38 80 00 00 */	li r4, 0
 -/* 8036FC08 0036B868  4B FF 41 11 */	bl func_80363D18
 +/* 8036FC08 0036B868  4B FF 41 11 */	bl __dt__Q34nw4r2ut19DvdLockedFileStreamFv
  /* 8036FC0C 0036B86C  2C 1F 00 00 */	cmpwi r31, 0
  /* 8036FC10 0036B870  40 81 00 0C */	ble lbl_8036FC1C
  /* 8036FC14 0036B874  7F C3 F3 78 */	mr r3, r30
 diff --git a/obj_files.mk b/obj_files.mk index a00b5ba..0c9729b 100644 --- a/obj_files.mk +++ b/obj_files.mk @@ -96,6 +96,9 @@ TEXT_O_FILES := 						                          \  	$(BUILD_DIR)/asm/NW4R/ut_CharStrmReader.o                     \  	$(BUILD_DIR)/asm/NW4R/ut_TagProcessorBase.o                   \  	$(BUILD_DIR)/asm/NW4R/ut_IOStream.o                           \ +	$(BUILD_DIR)/asm/NW4R/ut_FileStream.o                         \ +	$(BUILD_DIR)/asm/NW4R/ut_DvdFileStream.o                      \ +	$(BUILD_DIR)/asm/NW4R/ut_DvdLockedFileStream.o                      \  	$(BUILD_DIR)/asm/text_10_3.o                                  \  	$(BUILD_DIR)/asm/text_11.o | 
