summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMax <mparisi@stevens.edu>2020-09-23 20:34:18 -0400
committerMax <mparisi@stevens.edu>2020-09-23 20:34:18 -0400
commit33264c47fad6e1107cc8110a97f765cebd0971bf (patch)
tree520c379248dfa75688561de1a3bde8f3861a6dc3
parent85d3aef57c73c271a27ffe3d488c2fff4b2f4a13 (diff)
split ut_DvdFileStream, ut_FileStream, ut_DvdLockedFileStream
-rw-r--r--asm/NW4R/ut_DvdFileStream.s486
-rw-r--r--asm/NW4R/ut_DvdLockedFileStream.s185
-rw-r--r--asm/NW4R/ut_FileStream.s89
-rw-r--r--asm/text_10_3.s686
-rw-r--r--obj_files.mk3
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