diff options
| -rw-r--r-- | asm/nw4r/snd/detail/snd_SoundArchive.s | 485 | ||||
| -rw-r--r-- | asm/nw4r/snd/detail/snd_SoundArchiveFile.s | 1041 | ||||
| -rw-r--r-- | asm/nw4r/snd/snd_DvdSoundArchive.s | 18 | ||||
| -rw-r--r-- | asm/nw4r/snd/snd_MemorySoundArchive.s | 2 | ||||
| -rw-r--r-- | asm/nw4r/snd/snd_NandSoundArchive.s | 2 | ||||
| -rw-r--r-- | asm/text_10_6.s | 1512 | ||||
| -rw-r--r-- | obj_files.mk | 2 | 
7 files changed, 1548 insertions, 1514 deletions
| diff --git a/asm/nw4r/snd/detail/snd_SoundArchive.s b/asm/nw4r/snd/detail/snd_SoundArchive.s new file mode 100644 index 0000000..c1a20ee --- /dev/null +++ b/asm/nw4r/snd/detail/snd_SoundArchive.s @@ -0,0 +1,485 @@ +.include "macros.inc"
 +
 +.section .text, "ax"  # 0x80006980 - 0x803E1E60
 +
 +.global __ct__Q34nw4r3snd12SoundArchiveFv
 +__ct__Q34nw4r3snd12SoundArchiveFv:
 +/* 80376F8C 00372BEC  3C A0 80 45 */	lis r5, lbl_8044CE48@ha
 +/* 80376F90 00372BF0  38 80 00 00 */	li r4, 0
 +/* 80376F94 00372BF4  38 A5 CE 48 */	addi r5, r5, lbl_8044CE48@l
 +/* 80376F98 00372BF8  38 00 00 2F */	li r0, 0x2f
 +/* 80376F9C 00372BFC  90 A3 00 00 */	stw r5, 0(r3)
 +/* 80376FA0 00372C00  90 83 00 04 */	stw r4, 4(r3)
 +/* 80376FA4 00372C04  98 03 00 08 */	stb r0, 8(r3)
 +/* 80376FA8 00372C08  98 83 00 09 */	stb r4, 9(r3)
 +/* 80376FAC 00372C0C  4E 80 00 20 */	blr
 +
 +.global __dt__Q34nw4r3snd12SoundArchiveFv
 +__dt__Q34nw4r3snd12SoundArchiveFv:
 +/* 80376FB0 00372C10  94 21 FF F0 */	stwu r1, -0x10(r1)
 +/* 80376FB4 00372C14  7C 08 02 A6 */	mflr r0
 +/* 80376FB8 00372C18  2C 03 00 00 */	cmpwi r3, 0
 +/* 80376FBC 00372C1C  90 01 00 14 */	stw r0, 0x14(r1)
 +/* 80376FC0 00372C20  93 E1 00 0C */	stw r31, 0xc(r1)
 +/* 80376FC4 00372C24  7C 7F 1B 78 */	mr r31, r3
 +/* 80376FC8 00372C28  41 82 00 10 */	beq lbl_80376FD8
 +/* 80376FCC 00372C2C  2C 04 00 00 */	cmpwi r4, 0
 +/* 80376FD0 00372C30  40 81 00 08 */	ble lbl_80376FD8
 +/* 80376FD4 00372C34  4B E6 3A E5 */	bl func_801DAAB8
 +lbl_80376FD8:
 +/* 80376FD8 00372C38  7F E3 FB 78 */	mr r3, r31
 +/* 80376FDC 00372C3C  83 E1 00 0C */	lwz r31, 0xc(r1)
 +/* 80376FE0 00372C40  80 01 00 14 */	lwz r0, 0x14(r1)
 +/* 80376FE4 00372C44  7C 08 03 A6 */	mtlr r0
 +/* 80376FE8 00372C48  38 21 00 10 */	addi r1, r1, 0x10
 +/* 80376FEC 00372C4C  4E 80 00 20 */	blr
 +
 +.global IsAvailable__Q34nw4r3snd12SoundArchiveCFv
 +IsAvailable__Q34nw4r3snd12SoundArchiveCFv:
 +/* 80376FF0 00372C50  80 63 00 04 */	lwz r3, 4(r3)
 +/* 80376FF4 00372C54  7C 03 00 D0 */	neg r0, r3
 +/* 80376FF8 00372C58  7C 00 1B 78 */	or r0, r0, r3
 +/* 80376FFC 00372C5C  54 03 0F FE */	srwi r3, r0, 0x1f
 +/* 80377000 00372C60  4E 80 00 20 */	blr
 +
 +.global Setup__Q34nw4r3snd12SoundArchiveFPQ44nw4r3snd6detail22SoundArchiveFileReader
 +Setup__Q34nw4r3snd12SoundArchiveFPQ44nw4r3snd6detail22SoundArchiveFileReader:
 +/* 80377004 00372C64  90 83 00 04 */	stw r4, 4(r3)
 +/* 80377008 00372C68  4E 80 00 20 */	blr
 +
 +.global Shutdown__Q34nw4r3snd12SoundArchiveFv
 +Shutdown__Q34nw4r3snd12SoundArchiveFv:
 +/* 8037700C 00372C6C  38 80 00 00 */	li r4, 0
 +/* 80377010 00372C70  38 00 00 2F */	li r0, 0x2f
 +/* 80377014 00372C74  90 83 00 04 */	stw r4, 4(r3)
 +/* 80377018 00372C78  98 03 00 08 */	stb r0, 8(r3)
 +/* 8037701C 00372C7C  98 83 00 09 */	stb r4, 9(r3)
 +/* 80377020 00372C80  4E 80 00 20 */	blr
 +
 +.global func_80377024
 +func_80377024:
 +/* 80377024 00372C84  80 63 00 04 */	lwz r3, 4(r3)
 +/* 80377028 00372C88  48 00 0E 08 */	b GetSoundCount__Q44nw4r3snd6detail22SoundArchiveFileReaderCFv
 +
 +.global func_8037702C
 +func_8037702C:
 +/* 8037702C 00372C8C  80 63 00 04 */	lwz r3, 4(r3)
 +/* 80377030 00372C90  48 00 0E 40 */	b GetPlayerCount__Q44nw4r3snd6detail22SoundArchiveFileReaderCFv
 +
 +.global func_80377034
 +func_80377034:
 +/* 80377034 00372C94  80 63 00 04 */	lwz r3, 4(r3)
 +/* 80377038 00372C98  48 00 0E 78 */	b GetGroupCount__Q44nw4r3snd6detail22SoundArchiveFileReaderCFv
 +
 +.global ConvertLabelStringToSoundId__Q34nw4r3snd12SoundArchiveCFPCc
 +ConvertLabelStringToSoundId__Q34nw4r3snd12SoundArchiveCFPCc:
 +/* 8037703C 00372C9C  80 63 00 04 */	lwz r3, 4(r3)
 +/* 80377040 00372CA0  7C 85 23 78 */	mr r5, r4
 +/* 80377044 00372CA4  80 83 00 34 */	lwz r4, 0x34(r3)
 +/* 80377048 00372CA8  48 00 10 CC */	b ConvertLabelStringToId__Q44nw4r3snd6detail22SoundArchiveFileReaderCFPCQ54nw4r3snd6detail16SoundArchiveFile10StringTreePCc
 +
 +.global func_8037704C
 +func_8037704C:
 +/* 8037704C 00372CAC  80 63 00 04 */	lwz r3, 4(r3)
 +/* 80377050 00372CB0  48 00 06 0C */	b GetSoundType__Q44nw4r3snd6detail22SoundArchiveFileReaderCFUl
 +
 +.global func_80377054
 +func_80377054:
 +/* 80377054 00372CB4  80 63 00 04 */	lwz r3, 4(r3)
 +/* 80377058 00372CB8  48 00 06 F4 */	b ReadSoundInfo__Q44nw4r3snd6detail22SoundArchiveFileReaderCFUlPQ44nw4r3snd12SoundArchive9SoundInfo
 +
 +.global func_8037705C
 +func_8037705C:
 +/* 8037705C 00372CBC  80 63 00 04 */	lwz r3, 4(r3)
 +/* 80377060 00372CC0  48 00 08 0C */	b ReadSeqSoundInfo__Q44nw4r3snd6detail22SoundArchiveFileReaderCFUlPQ44nw4r3snd12SoundArchive12SeqSoundInfo
 +
 +.global func_80377064
 +func_80377064:
 +/* 80377064 00372CC4  80 63 00 04 */	lwz r3, 4(r3)
 +/* 80377068 00372CC8  48 00 08 B0 */	b ReadStrmSoundInfo__Q44nw4r3snd6detail22SoundArchiveFileReaderCFUlPQ44nw4r3snd12SoundArchive13StrmSoundInfo
 +
 +.global func_8037706C
 +func_8037706C:
 +/* 8037706C 00372CCC  80 63 00 04 */	lwz r3, 4(r3)
 +/* 80377070 00372CD0  48 00 08 F4 */	b ReadWaveSoundInfo__Q44nw4r3snd6detail22SoundArchiveFileReaderCFUlPQ44nw4r3snd12SoundArchive13WaveSoundInfo
 +
 +.global func_80377074
 +func_80377074:
 +/* 80377074 00372CD4  80 63 00 04 */	lwz r3, 4(r3)
 +/* 80377078 00372CD8  48 00 0A 34 */	b ReadPlayerInfo__Q44nw4r3snd6detail22SoundArchiveFileReaderCFUlPQ44nw4r3snd12SoundArchive10PlayerInfo
 +
 +.global func_8037707C
 +func_8037707C:
 +/* 8037707C 00372CDC  80 63 00 04 */	lwz r3, 4(r3)
 +/* 80377080 00372CE0  48 00 0D 2C */	b ReadSoundArchivePlayerInfo__Q44nw4r3snd6detail22SoundArchiveFileReaderCFPQ44nw4r3snd12SoundArchive22SoundArchivePlayerInfo
 +
 +.global func_80377084
 +func_80377084:
 +/* 80377084 00372CE4  80 63 00 04 */	lwz r3, 4(r3)
 +/* 80377088 00372CE8  48 00 09 78 */	b ReadBankInfo__Q44nw4r3snd6detail22SoundArchiveFileReaderCFUlPQ44nw4r3snd12SoundArchive8BankInfo
 +
 +.global func_8037708C
 +func_8037708C:
 +/* 8037708C 00372CEC  80 63 00 04 */	lwz r3, 4(r3)
 +/* 80377090 00372CF0  48 00 0A D4 */	b ReadGroupInfo__Q44nw4r3snd6detail22SoundArchiveFileReaderCFUlPQ44nw4r3snd12SoundArchive9GroupInfo
 +
 +.global func_80377094
 +func_80377094:
 +/* 80377094 00372CF4  80 63 00 04 */	lwz r3, 4(r3)
 +/* 80377098 00372CF8  48 00 0B DC */	b ReadGroupItemInfo__Q44nw4r3snd6detail22SoundArchiveFileReaderCFUlUlPQ44nw4r3snd12SoundArchive13GroupItemInfo
 +
 +.global func_8037709C
 +func_8037709C:
 +/* 8037709C 00372CFC  80 63 00 04 */	lwz r3, 4(r3)
 +/* 803770A0 00372D00  48 00 0E 54 */	b ReadFileInfo__Q44nw4r3snd6detail22SoundArchiveFileReaderCFUlPQ44nw4r3snd12SoundArchive8FileInfo
 +
 +.global func_803770A4
 +func_803770A4:
 +/* 803770A4 00372D04  80 63 00 04 */	lwz r3, 4(r3)
 +/* 803770A8 00372D08  48 00 0F 4C */	b ReadFilePos__Q44nw4r3snd6detail22SoundArchiveFileReaderCFUlUlPQ44nw4r3snd12SoundArchive7FilePos
 +
 +.global detail_OpenFileStream__Q34nw4r3snd12SoundArchiveCFUlPvi
 +detail_OpenFileStream__Q34nw4r3snd12SoundArchiveCFUlPvi:
 +/* 803770AC 00372D0C  94 21 FD 90 */	stwu r1, -0x270(r1)
 +/* 803770B0 00372D10  7C 08 02 A6 */	mflr r0
 +/* 803770B4 00372D14  90 01 02 74 */	stw r0, 0x274(r1)
 +/* 803770B8 00372D18  39 61 02 70 */	addi r11, r1, 0x270
 +/* 803770BC 00372D1C  4B E5 00 65 */	bl _savegpr_25
 +/* 803770C0 00372D20  7C 7D 1B 78 */	mr r29, r3
 +/* 803770C4 00372D24  80 63 00 04 */	lwz r3, 4(r3)
 +/* 803770C8 00372D28  7C BE 2B 78 */	mr r30, r5
 +/* 803770CC 00372D2C  7C 99 23 78 */	mr r25, r4
 +/* 803770D0 00372D30  7C DF 33 78 */	mr r31, r6
 +/* 803770D4 00372D34  38 A1 00 10 */	addi r5, r1, 0x10
 +/* 803770D8 00372D38  48 00 0E 1D */	bl ReadFileInfo__Q44nw4r3snd6detail22SoundArchiveFileReaderCFUlPQ44nw4r3snd12SoundArchive8FileInfo
 +/* 803770DC 00372D3C  2C 03 00 00 */	cmpwi r3, 0
 +/* 803770E0 00372D40  40 82 00 0C */	bne lbl_803770EC
 +/* 803770E4 00372D44  38 60 00 00 */	li r3, 0
 +/* 803770E8 00372D48  48 00 01 D0 */	b lbl_803772B8
 +lbl_803770EC:
 +/* 803770EC 00372D4C  83 61 00 18 */	lwz r27, 0x18(r1)
 +/* 803770F0 00372D50  2C 1B 00 00 */	cmpwi r27, 0
 +/* 803770F4 00372D54  41 82 00 90 */	beq lbl_80377184
 +/* 803770F8 00372D58  88 1B 00 00 */	lbz r0, 0(r27)
 +/* 803770FC 00372D5C  2C 00 00 2F */	cmpwi r0, 0x2f
 +/* 80377100 00372D60  40 82 00 08 */	bne lbl_80377108
 +/* 80377104 00372D64  48 00 00 54 */	b lbl_80377158
 +lbl_80377108:
 +/* 80377108 00372D68  7F 63 DB 78 */	mr r3, r27
 +/* 8037710C 00372D6C  4B E4 FA 59 */	bl strlen
 +/* 80377110 00372D70  7C 7C 1B 78 */	mr r28, r3
 +/* 80377114 00372D74  38 7D 00 08 */	addi r3, r29, 8
 +/* 80377118 00372D78  4B E4 FA 4D */	bl strlen
 +/* 8037711C 00372D7C  7C 1C 1A 14 */	add r0, r28, r3
 +/* 80377120 00372D80  7C 65 1B 78 */	mr r5, r3
 +/* 80377124 00372D84  28 00 01 00 */	cmplwi r0, 0x100
 +/* 80377128 00372D88  41 80 00 0C */	blt lbl_80377134
 +/* 8037712C 00372D8C  38 60 00 00 */	li r3, 0
 +/* 80377130 00372D90  48 00 01 88 */	b lbl_803772B8
 +lbl_80377134:
 +/* 80377134 00372D94  38 61 01 50 */	addi r3, r1, 0x150
 +/* 80377138 00372D98  38 9D 00 08 */	addi r4, r29, 8
 +/* 8037713C 00372D9C  38 A5 00 01 */	addi r5, r5, 1
 +/* 80377140 00372DA0  4B E5 72 51 */	bl func_801CE390
 +/* 80377144 00372DA4  7F 64 DB 78 */	mr r4, r27
 +/* 80377148 00372DA8  38 61 01 50 */	addi r3, r1, 0x150
 +/* 8037714C 00372DAC  38 BC 00 01 */	addi r5, r28, 1
 +/* 80377150 00372DB0  4B E5 72 B1 */	bl func_801CE400
 +/* 80377154 00372DB4  3B 61 01 50 */	addi r27, r1, 0x150
 +lbl_80377158:
 +/* 80377158 00372DB8  81 9D 00 00 */	lwz r12, 0(r29)
 +/* 8037715C 00372DBC  7F A3 EB 78 */	mr r3, r29
 +/* 80377160 00372DC0  7F C4 F3 78 */	mr r4, r30
 +/* 80377164 00372DC4  7F E5 FB 78 */	mr r5, r31
 +/* 80377168 00372DC8  81 8C 00 1C */	lwz r12, 0x1c(r12)
 +/* 8037716C 00372DCC  7F 66 DB 78 */	mr r6, r27
 +/* 80377170 00372DD0  38 E0 00 00 */	li r7, 0
 +/* 80377174 00372DD4  39 00 00 00 */	li r8, 0
 +/* 80377178 00372DD8  7D 89 03 A6 */	mtctr r12
 +/* 8037717C 00372DDC  4E 80 04 21 */	bctrl
 +/* 80377180 00372DE0  48 00 01 38 */	b lbl_803772B8
 +lbl_80377184:
 +/* 80377184 00372DE4  80 7D 00 04 */	lwz r3, 4(r29)
 +/* 80377188 00372DE8  7F 24 CB 78 */	mr r4, r25
 +/* 8037718C 00372DEC  38 C1 00 08 */	addi r6, r1, 8
 +/* 80377190 00372DF0  38 A0 00 00 */	li r5, 0
 +/* 80377194 00372DF4  48 00 0E 61 */	bl ReadFilePos__Q44nw4r3snd6detail22SoundArchiveFileReaderCFUlUlPQ44nw4r3snd12SoundArchive7FilePos
 +/* 80377198 00372DF8  2C 03 00 00 */	cmpwi r3, 0
 +/* 8037719C 00372DFC  40 82 00 0C */	bne lbl_803771A8
 +/* 803771A0 00372E00  38 60 00 00 */	li r3, 0
 +/* 803771A4 00372E04  48 00 01 14 */	b lbl_803772B8
 +lbl_803771A8:
 +/* 803771A8 00372E08  80 7D 00 04 */	lwz r3, 4(r29)
 +/* 803771AC 00372E0C  38 A1 00 38 */	addi r5, r1, 0x38
 +/* 803771B0 00372E10  80 81 00 08 */	lwz r4, 8(r1)
 +/* 803771B4 00372E14  48 00 09 B1 */	bl ReadGroupInfo__Q44nw4r3snd6detail22SoundArchiveFileReaderCFUlPQ44nw4r3snd12SoundArchive9GroupInfo
 +/* 803771B8 00372E18  2C 03 00 00 */	cmpwi r3, 0
 +/* 803771BC 00372E1C  40 82 00 0C */	bne lbl_803771C8
 +/* 803771C0 00372E20  38 60 00 00 */	li r3, 0
 +/* 803771C4 00372E24  48 00 00 F4 */	b lbl_803772B8
 +lbl_803771C8:
 +/* 803771C8 00372E28  80 7D 00 04 */	lwz r3, 4(r29)
 +/* 803771CC 00372E2C  38 C1 00 20 */	addi r6, r1, 0x20
 +/* 803771D0 00372E30  80 81 00 08 */	lwz r4, 8(r1)
 +/* 803771D4 00372E34  80 A1 00 0C */	lwz r5, 0xc(r1)
 +/* 803771D8 00372E38  48 00 0A 9D */	bl ReadGroupItemInfo__Q44nw4r3snd6detail22SoundArchiveFileReaderCFUlUlPQ44nw4r3snd12SoundArchive13GroupItemInfo
 +/* 803771DC 00372E3C  2C 03 00 00 */	cmpwi r3, 0
 +/* 803771E0 00372E40  40 82 00 0C */	bne lbl_803771EC
 +/* 803771E4 00372E44  38 60 00 00 */	li r3, 0
 +/* 803771E8 00372E48  48 00 00 D0 */	b lbl_803772B8
 +lbl_803771EC:
 +/* 803771EC 00372E4C  83 61 00 3C */	lwz r27, 0x3c(r1)
 +/* 803771F0 00372E50  80 61 00 40 */	lwz r3, 0x40(r1)
 +/* 803771F4 00372E54  80 01 00 24 */	lwz r0, 0x24(r1)
 +/* 803771F8 00372E58  2C 1B 00 00 */	cmpwi r27, 0
 +/* 803771FC 00372E5C  83 21 00 28 */	lwz r25, 0x28(r1)
 +/* 80377200 00372E60  7F 43 02 14 */	add r26, r3, r0
 +/* 80377204 00372E64  41 82 00 90 */	beq lbl_80377294
 +/* 80377208 00372E68  88 1B 00 00 */	lbz r0, 0(r27)
 +/* 8037720C 00372E6C  2C 00 00 2F */	cmpwi r0, 0x2f
 +/* 80377210 00372E70  40 82 00 08 */	bne lbl_80377218
 +/* 80377214 00372E74  48 00 00 54 */	b lbl_80377268
 +lbl_80377218:
 +/* 80377218 00372E78  7F 63 DB 78 */	mr r3, r27
 +/* 8037721C 00372E7C  4B E4 F9 49 */	bl strlen
 +/* 80377220 00372E80  7C 7C 1B 78 */	mr r28, r3
 +/* 80377224 00372E84  38 7D 00 08 */	addi r3, r29, 8
 +/* 80377228 00372E88  4B E4 F9 3D */	bl strlen
 +/* 8037722C 00372E8C  7C 1C 1A 14 */	add r0, r28, r3
 +/* 80377230 00372E90  7C 65 1B 78 */	mr r5, r3
 +/* 80377234 00372E94  28 00 01 00 */	cmplwi r0, 0x100
 +/* 80377238 00372E98  41 80 00 0C */	blt lbl_80377244
 +/* 8037723C 00372E9C  38 60 00 00 */	li r3, 0
 +/* 80377240 00372EA0  48 00 00 78 */	b lbl_803772B8
 +lbl_80377244:
 +/* 80377244 00372EA4  38 61 00 50 */	addi r3, r1, 0x50
 +/* 80377248 00372EA8  38 9D 00 08 */	addi r4, r29, 8
 +/* 8037724C 00372EAC  38 A5 00 01 */	addi r5, r5, 1
 +/* 80377250 00372EB0  4B E5 71 41 */	bl func_801CE390
 +/* 80377254 00372EB4  7F 64 DB 78 */	mr r4, r27
 +/* 80377258 00372EB8  38 61 00 50 */	addi r3, r1, 0x50
 +/* 8037725C 00372EBC  38 BC 00 01 */	addi r5, r28, 1
 +/* 80377260 00372EC0  4B E5 71 A1 */	bl func_801CE400
 +/* 80377264 00372EC4  3B 61 00 50 */	addi r27, r1, 0x50
 +lbl_80377268:
 +/* 80377268 00372EC8  81 9D 00 00 */	lwz r12, 0(r29)
 +/* 8037726C 00372ECC  7F A3 EB 78 */	mr r3, r29
 +/* 80377270 00372ED0  7F C4 F3 78 */	mr r4, r30
 +/* 80377274 00372ED4  7F E5 FB 78 */	mr r5, r31
 +/* 80377278 00372ED8  81 8C 00 1C */	lwz r12, 0x1c(r12)
 +/* 8037727C 00372EDC  7F 66 DB 78 */	mr r6, r27
 +/* 80377280 00372EE0  7F 47 D3 78 */	mr r7, r26
 +/* 80377284 00372EE4  7F 28 CB 78 */	mr r8, r25
 +/* 80377288 00372EE8  7D 89 03 A6 */	mtctr r12
 +/* 8037728C 00372EEC  4E 80 04 21 */	bctrl
 +/* 80377290 00372EF0  48 00 00 28 */	b lbl_803772B8
 +lbl_80377294:
 +/* 80377294 00372EF4  81 9D 00 00 */	lwz r12, 0(r29)
 +/* 80377298 00372EF8  7F A3 EB 78 */	mr r3, r29
 +/* 8037729C 00372EFC  7F C4 F3 78 */	mr r4, r30
 +/* 803772A0 00372F00  7F E5 FB 78 */	mr r5, r31
 +/* 803772A4 00372F04  81 8C 00 18 */	lwz r12, 0x18(r12)
 +/* 803772A8 00372F08  7F 46 D3 78 */	mr r6, r26
 +/* 803772AC 00372F0C  7F 27 CB 78 */	mr r7, r25
 +/* 803772B0 00372F10  7D 89 03 A6 */	mtctr r12
 +/* 803772B4 00372F14  4E 80 04 21 */	bctrl
 +lbl_803772B8:
 +/* 803772B8 00372F18  39 61 02 70 */	addi r11, r1, 0x270
 +/* 803772BC 00372F1C  4B E4 FE B1 */	bl func_801C716C
 +/* 803772C0 00372F20  80 01 02 74 */	lwz r0, 0x274(r1)
 +/* 803772C4 00372F24  7C 08 03 A6 */	mtlr r0
 +/* 803772C8 00372F28  38 21 02 70 */	addi r1, r1, 0x270
 +/* 803772CC 00372F2C  4E 80 00 20 */	blr
 +
 +.global detail_OpenGroupStream__Q34nw4r3snd12SoundArchiveCFUlPvi
 +detail_OpenGroupStream__Q34nw4r3snd12SoundArchiveCFUlPvi:
 +/* 803772D0 00372F30  94 21 FE C0 */	stwu r1, -0x140(r1)
 +/* 803772D4 00372F34  7C 08 02 A6 */	mflr r0
 +/* 803772D8 00372F38  90 01 01 44 */	stw r0, 0x144(r1)
 +/* 803772DC 00372F3C  39 61 01 40 */	addi r11, r1, 0x140
 +/* 803772E0 00372F40  4B E4 FE 41 */	bl _savegpr_25
 +/* 803772E4 00372F44  7C 79 1B 78 */	mr r25, r3
 +/* 803772E8 00372F48  80 63 00 04 */	lwz r3, 4(r3)
 +/* 803772EC 00372F4C  7C BA 2B 78 */	mr r26, r5
 +/* 803772F0 00372F50  7C DB 33 78 */	mr r27, r6
 +/* 803772F4 00372F54  38 A1 00 08 */	addi r5, r1, 8
 +/* 803772F8 00372F58  48 00 08 6D */	bl ReadGroupInfo__Q44nw4r3snd6detail22SoundArchiveFileReaderCFUlPQ44nw4r3snd12SoundArchive9GroupInfo
 +/* 803772FC 00372F5C  2C 03 00 00 */	cmpwi r3, 0
 +/* 80377300 00372F60  40 82 00 0C */	bne lbl_8037730C
 +/* 80377304 00372F64  38 60 00 00 */	li r3, 0
 +/* 80377308 00372F68  48 00 00 C8 */	b lbl_803773D0
 +lbl_8037730C:
 +/* 8037730C 00372F6C  83 81 00 0C */	lwz r28, 0xc(r1)
 +/* 80377310 00372F70  2C 1C 00 00 */	cmpwi r28, 0
 +/* 80377314 00372F74  41 82 00 98 */	beq lbl_803773AC
 +/* 80377318 00372F78  88 1C 00 00 */	lbz r0, 0(r28)
 +/* 8037731C 00372F7C  83 A1 00 14 */	lwz r29, 0x14(r1)
 +/* 80377320 00372F80  2C 00 00 2F */	cmpwi r0, 0x2f
 +/* 80377324 00372F84  83 C1 00 10 */	lwz r30, 0x10(r1)
 +/* 80377328 00372F88  40 82 00 08 */	bne lbl_80377330
 +/* 8037732C 00372F8C  48 00 00 54 */	b lbl_80377380
 +lbl_80377330:
 +/* 80377330 00372F90  7F 83 E3 78 */	mr r3, r28
 +/* 80377334 00372F94  4B E4 F8 31 */	bl strlen
 +/* 80377338 00372F98  7C 7F 1B 78 */	mr r31, r3
 +/* 8037733C 00372F9C  38 79 00 08 */	addi r3, r25, 8
 +/* 80377340 00372FA0  4B E4 F8 25 */	bl strlen
 +/* 80377344 00372FA4  7C 1F 1A 14 */	add r0, r31, r3
 +/* 80377348 00372FA8  7C 65 1B 78 */	mr r5, r3
 +/* 8037734C 00372FAC  28 00 01 00 */	cmplwi r0, 0x100
 +/* 80377350 00372FB0  41 80 00 0C */	blt lbl_8037735C
 +/* 80377354 00372FB4  38 60 00 00 */	li r3, 0
 +/* 80377358 00372FB8  48 00 00 78 */	b lbl_803773D0
 +lbl_8037735C:
 +/* 8037735C 00372FBC  38 61 00 20 */	addi r3, r1, 0x20
 +/* 80377360 00372FC0  38 99 00 08 */	addi r4, r25, 8
 +/* 80377364 00372FC4  38 A5 00 01 */	addi r5, r5, 1
 +/* 80377368 00372FC8  4B E5 70 29 */	bl func_801CE390
 +/* 8037736C 00372FCC  7F 84 E3 78 */	mr r4, r28
 +/* 80377370 00372FD0  38 61 00 20 */	addi r3, r1, 0x20
 +/* 80377374 00372FD4  38 BF 00 01 */	addi r5, r31, 1
 +/* 80377378 00372FD8  4B E5 70 89 */	bl func_801CE400
 +/* 8037737C 00372FDC  3B 81 00 20 */	addi r28, r1, 0x20
 +lbl_80377380:
 +/* 80377380 00372FE0  81 99 00 00 */	lwz r12, 0(r25)
 +/* 80377384 00372FE4  7F 23 CB 78 */	mr r3, r25
 +/* 80377388 00372FE8  7F 44 D3 78 */	mr r4, r26
 +/* 8037738C 00372FEC  7F 65 DB 78 */	mr r5, r27
 +/* 80377390 00372FF0  81 8C 00 1C */	lwz r12, 0x1c(r12)
 +/* 80377394 00372FF4  7F 86 E3 78 */	mr r6, r28
 +/* 80377398 00372FF8  7F C7 F3 78 */	mr r7, r30
 +/* 8037739C 00372FFC  7F A8 EB 78 */	mr r8, r29
 +/* 803773A0 00373000  7D 89 03 A6 */	mtctr r12
 +/* 803773A4 00373004  4E 80 04 21 */	bctrl
 +/* 803773A8 00373008  48 00 00 28 */	b lbl_803773D0
 +lbl_803773AC:
 +/* 803773AC 0037300C  81 99 00 00 */	lwz r12, 0(r25)
 +/* 803773B0 00373010  7F 23 CB 78 */	mr r3, r25
 +/* 803773B4 00373014  7F 44 D3 78 */	mr r4, r26
 +/* 803773B8 00373018  7F 65 DB 78 */	mr r5, r27
 +/* 803773BC 0037301C  81 8C 00 18 */	lwz r12, 0x18(r12)
 +/* 803773C0 00373020  80 C1 00 10 */	lwz r6, 0x10(r1)
 +/* 803773C4 00373024  80 E1 00 14 */	lwz r7, 0x14(r1)
 +/* 803773C8 00373028  7D 89 03 A6 */	mtctr r12
 +/* 803773CC 0037302C  4E 80 04 21 */	bctrl
 +lbl_803773D0:
 +/* 803773D0 00373030  39 61 01 40 */	addi r11, r1, 0x140
 +/* 803773D4 00373034  4B E4 FD 99 */	bl func_801C716C
 +/* 803773D8 00373038  80 01 01 44 */	lwz r0, 0x144(r1)
 +/* 803773DC 0037303C  7C 08 03 A6 */	mtlr r0
 +/* 803773E0 00373040  38 21 01 40 */	addi r1, r1, 0x140
 +/* 803773E4 00373044  4E 80 00 20 */	blr
 +
 +.global detail_OpenGroupWaveDataStream__Q34nw4r3snd12SoundArchiveCFUlPvi
 +detail_OpenGroupWaveDataStream__Q34nw4r3snd12SoundArchiveCFUlPvi:
 +/* 803773E8 00373048  94 21 FE C0 */	stwu r1, -0x140(r1)
 +/* 803773EC 0037304C  7C 08 02 A6 */	mflr r0
 +/* 803773F0 00373050  90 01 01 44 */	stw r0, 0x144(r1)
 +/* 803773F4 00373054  39 61 01 40 */	addi r11, r1, 0x140
 +/* 803773F8 00373058  4B E4 FD 29 */	bl _savegpr_25
 +/* 803773FC 0037305C  7C 79 1B 78 */	mr r25, r3
 +/* 80377400 00373060  80 63 00 04 */	lwz r3, 4(r3)
 +/* 80377404 00373064  7C BA 2B 78 */	mr r26, r5
 +/* 80377408 00373068  7C DB 33 78 */	mr r27, r6
 +/* 8037740C 0037306C  38 A1 00 08 */	addi r5, r1, 8
 +/* 80377410 00373070  48 00 07 55 */	bl ReadGroupInfo__Q44nw4r3snd6detail22SoundArchiveFileReaderCFUlPQ44nw4r3snd12SoundArchive9GroupInfo
 +/* 80377414 00373074  2C 03 00 00 */	cmpwi r3, 0
 +/* 80377418 00373078  40 82 00 0C */	bne lbl_80377424
 +/* 8037741C 0037307C  38 60 00 00 */	li r3, 0
 +/* 80377420 00373080  48 00 00 C8 */	b lbl_803774E8
 +lbl_80377424:
 +/* 80377424 00373084  83 81 00 0C */	lwz r28, 0xc(r1)
 +/* 80377428 00373088  2C 1C 00 00 */	cmpwi r28, 0
 +/* 8037742C 0037308C  41 82 00 98 */	beq lbl_803774C4
 +/* 80377430 00373090  88 1C 00 00 */	lbz r0, 0(r28)
 +/* 80377434 00373094  83 A1 00 1C */	lwz r29, 0x1c(r1)
 +/* 80377438 00373098  2C 00 00 2F */	cmpwi r0, 0x2f
 +/* 8037743C 0037309C  83 C1 00 18 */	lwz r30, 0x18(r1)
 +/* 80377440 003730A0  40 82 00 08 */	bne lbl_80377448
 +/* 80377444 003730A4  48 00 00 54 */	b lbl_80377498
 +lbl_80377448:
 +/* 80377448 003730A8  7F 83 E3 78 */	mr r3, r28
 +/* 8037744C 003730AC  4B E4 F7 19 */	bl strlen
 +/* 80377450 003730B0  7C 7F 1B 78 */	mr r31, r3
 +/* 80377454 003730B4  38 79 00 08 */	addi r3, r25, 8
 +/* 80377458 003730B8  4B E4 F7 0D */	bl strlen
 +/* 8037745C 003730BC  7C 1F 1A 14 */	add r0, r31, r3
 +/* 80377460 003730C0  7C 65 1B 78 */	mr r5, r3
 +/* 80377464 003730C4  28 00 01 00 */	cmplwi r0, 0x100
 +/* 80377468 003730C8  41 80 00 0C */	blt lbl_80377474
 +/* 8037746C 003730CC  38 60 00 00 */	li r3, 0
 +/* 80377470 003730D0  48 00 00 78 */	b lbl_803774E8
 +lbl_80377474:
 +/* 80377474 003730D4  38 61 00 20 */	addi r3, r1, 0x20
 +/* 80377478 003730D8  38 99 00 08 */	addi r4, r25, 8
 +/* 8037747C 003730DC  38 A5 00 01 */	addi r5, r5, 1
 +/* 80377480 003730E0  4B E5 6F 11 */	bl func_801CE390
 +/* 80377484 003730E4  7F 84 E3 78 */	mr r4, r28
 +/* 80377488 003730E8  38 61 00 20 */	addi r3, r1, 0x20
 +/* 8037748C 003730EC  38 BF 00 01 */	addi r5, r31, 1
 +/* 80377490 003730F0  4B E5 6F 71 */	bl func_801CE400
 +/* 80377494 003730F4  3B 81 00 20 */	addi r28, r1, 0x20
 +lbl_80377498:
 +/* 80377498 003730F8  81 99 00 00 */	lwz r12, 0(r25)
 +/* 8037749C 003730FC  7F 23 CB 78 */	mr r3, r25
 +/* 803774A0 00373100  7F 44 D3 78 */	mr r4, r26
 +/* 803774A4 00373104  7F 65 DB 78 */	mr r5, r27
 +/* 803774A8 00373108  81 8C 00 1C */	lwz r12, 0x1c(r12)
 +/* 803774AC 0037310C  7F 86 E3 78 */	mr r6, r28
 +/* 803774B0 00373110  7F C7 F3 78 */	mr r7, r30
 +/* 803774B4 00373114  7F A8 EB 78 */	mr r8, r29
 +/* 803774B8 00373118  7D 89 03 A6 */	mtctr r12
 +/* 803774BC 0037311C  4E 80 04 21 */	bctrl
 +/* 803774C0 00373120  48 00 00 28 */	b lbl_803774E8
 +lbl_803774C4:
 +/* 803774C4 00373124  81 99 00 00 */	lwz r12, 0(r25)
 +/* 803774C8 00373128  7F 23 CB 78 */	mr r3, r25
 +/* 803774CC 0037312C  7F 44 D3 78 */	mr r4, r26
 +/* 803774D0 00373130  7F 65 DB 78 */	mr r5, r27
 +/* 803774D4 00373134  81 8C 00 18 */	lwz r12, 0x18(r12)
 +/* 803774D8 00373138  80 C1 00 18 */	lwz r6, 0x18(r1)
 +/* 803774DC 0037313C  80 E1 00 1C */	lwz r7, 0x1c(r1)
 +/* 803774E0 00373140  7D 89 03 A6 */	mtctr r12
 +/* 803774E4 00373144  4E 80 04 21 */	bctrl
 +lbl_803774E8:
 +/* 803774E8 00373148  39 61 01 40 */	addi r11, r1, 0x140
 +/* 803774EC 0037314C  4B E4 FC 81 */	bl func_801C716C
 +/* 803774F0 00373150  80 01 01 44 */	lwz r0, 0x144(r1)
 +/* 803774F4 00373154  7C 08 03 A6 */	mtlr r0
 +/* 803774F8 00373158  38 21 01 40 */	addi r1, r1, 0x140
 +/* 803774FC 0037315C  4E 80 00 20 */	blr
 +
 +.global SetExternalFileRoot__Q34nw4r3snd12SoundArchiveFPCc
 +SetExternalFileRoot__Q34nw4r3snd12SoundArchiveFPCc:
 +/* 80377500 00373160  94 21 FF F0 */	stwu r1, -0x10(r1)
 +/* 80377504 00373164  7C 08 02 A6 */	mflr r0
 +/* 80377508 00373168  90 01 00 14 */	stw r0, 0x14(r1)
 +/* 8037750C 0037316C  93 E1 00 0C */	stw r31, 0xc(r1)
 +/* 80377510 00373170  7C 9F 23 78 */	mr r31, r4
 +/* 80377514 00373174  93 C1 00 08 */	stw r30, 8(r1)
 +/* 80377518 00373178  7C 7E 1B 78 */	mr r30, r3
 +/* 8037751C 0037317C  7F E3 FB 78 */	mr r3, r31
 +/* 80377520 00373180  4B E4 F6 45 */	bl strlen
 +/* 80377524 00373184  7C 9F 1A 14 */	add r4, r31, r3
 +/* 80377528 00373188  88 04 FF FF */	lbz r0, -1(r4)
 +/* 8037752C 0037318C  7C 64 1B 78 */	mr r4, r3
 +/* 80377530 00373190  2C 00 00 2F */	cmpwi r0, 0x2f
 +/* 80377534 00373194  41 82 00 14 */	beq lbl_80377548
 +/* 80377538 00373198  7C 9E 1A 14 */	add r4, r30, r3
 +/* 8037753C 0037319C  38 00 00 2F */	li r0, 0x2f
 +/* 80377540 003731A0  98 04 00 08 */	stb r0, 8(r4)
 +/* 80377544 003731A4  38 83 00 01 */	addi r4, r3, 1
 +lbl_80377548:
 +/* 80377548 003731A8  7C 9E 22 14 */	add r4, r30, r4
 +/* 8037754C 003731AC  38 00 00 00 */	li r0, 0
 +/* 80377550 003731B0  98 04 00 08 */	stb r0, 8(r4)
 +/* 80377554 003731B4  7C 65 1B 78 */	mr r5, r3
 +/* 80377558 003731B8  7F E4 FB 78 */	mr r4, r31
 +/* 8037755C 003731BC  38 7E 00 08 */	addi r3, r30, 8
 +/* 80377560 003731C0  4B E5 6E 31 */	bl func_801CE390
 +/* 80377564 003731C4  80 01 00 14 */	lwz r0, 0x14(r1)
 +/* 80377568 003731C8  83 E1 00 0C */	lwz r31, 0xc(r1)
 +/* 8037756C 003731CC  83 C1 00 08 */	lwz r30, 8(r1)
 +/* 80377570 003731D0  7C 08 03 A6 */	mtlr r0
 +/* 80377574 003731D4  38 21 00 10 */	addi r1, r1, 0x10
 +/* 80377578 003731D8  4E 80 00 20 */	blr
 diff --git a/asm/nw4r/snd/detail/snd_SoundArchiveFile.s b/asm/nw4r/snd/detail/snd_SoundArchiveFile.s new file mode 100644 index 0000000..e55648c --- /dev/null +++ b/asm/nw4r/snd/detail/snd_SoundArchiveFile.s @@ -0,0 +1,1041 @@ +.include "macros.inc"
 +
 +.section .text, "ax"  # 0x80006980 - 0x803E1E60
 +
 +.global __ct__Q44nw4r3snd6detail22SoundArchiveFileReaderFv
 +__ct__Q44nw4r3snd6detail22SoundArchiveFileReaderFv:
 +/* 8037757C 003731DC  38 00 00 00 */	li r0, 0
 +/* 80377580 003731E0  90 03 00 28 */	stw r0, 0x28(r3)
 +/* 80377584 003731E4  90 03 00 2C */	stw r0, 0x2c(r3)
 +/* 80377588 003731E8  90 03 00 30 */	stw r0, 0x30(r3)
 +/* 8037758C 003731EC  90 03 00 34 */	stw r0, 0x34(r3)
 +/* 80377590 003731F0  90 03 00 38 */	stw r0, 0x38(r3)
 +/* 80377594 003731F4  90 03 00 3C */	stw r0, 0x3c(r3)
 +/* 80377598 003731F8  90 03 00 40 */	stw r0, 0x40(r3)
 +/* 8037759C 003731FC  4E 80 00 20 */	blr
 +
 +.global Init__Q44nw4r3snd6detail22SoundArchiveFileReaderFPCv
 +Init__Q44nw4r3snd6detail22SoundArchiveFileReaderFPCv:
 +/* 803775A0 00373200  80 A4 00 00 */	lwz r5, 0(r4)
 +/* 803775A4 00373204  94 21 FF F0 */	stwu r1, -0x10(r1)
 +/* 803775A8 00373208  3C 05 AD AD */	addis r0, r5, 0xadad
 +/* 803775AC 0037320C  28 00 41 52 */	cmplwi r0, 0x4152
 +/* 803775B0 00373210  93 E1 00 0C */	stw r31, 0xc(r1)
 +/* 803775B4 00373214  41 82 00 0C */	beq lbl_803775C0
 +/* 803775B8 00373218  38 00 00 00 */	li r0, 0
 +/* 803775BC 0037321C  48 00 00 30 */	b lbl_803775EC
 +lbl_803775C0:
 +/* 803775C0 00373220  A0 C4 00 06 */	lhz r6, 6(r4)
 +/* 803775C4 00373224  28 06 01 00 */	cmplwi r6, 0x100
 +/* 803775C8 00373228  40 80 00 0C */	bge lbl_803775D4
 +/* 803775CC 0037322C  38 00 00 00 */	li r0, 0
 +/* 803775D0 00373230  48 00 00 1C */	b lbl_803775EC
 +lbl_803775D4:
 +/* 803775D4 00373234  20 06 01 03 */	subfic r0, r6, 0x103
 +/* 803775D8 00373238  38 A0 01 03 */	li r5, 0x103
 +/* 803775DC 0037323C  7C A5 33 38 */	orc r5, r5, r6
 +/* 803775E0 00373240  54 00 F8 7E */	srwi r0, r0, 1
 +/* 803775E4 00373244  7C 00 28 50 */	subf r0, r0, r5
 +/* 803775E8 00373248  54 00 0F FE */	srwi r0, r0, 0x1f
 +lbl_803775EC:
 +/* 803775EC 0037324C  2C 00 00 00 */	cmpwi r0, 0
 +/* 803775F0 00373250  41 82 00 54 */	beq lbl_80377644
 +/* 803775F4 00373254  83 E4 00 00 */	lwz r31, 0(r4)
 +/* 803775F8 00373258  81 84 00 04 */	lwz r12, 4(r4)
 +/* 803775FC 0037325C  81 64 00 08 */	lwz r11, 8(r4)
 +/* 80377600 00373260  81 44 00 0C */	lwz r10, 0xc(r4)
 +/* 80377604 00373264  81 24 00 10 */	lwz r9, 0x10(r4)
 +/* 80377608 00373268  81 04 00 14 */	lwz r8, 0x14(r4)
 +/* 8037760C 0037326C  80 E4 00 18 */	lwz r7, 0x18(r4)
 +/* 80377610 00373270  80 C4 00 1C */	lwz r6, 0x1c(r4)
 +/* 80377614 00373274  80 A4 00 20 */	lwz r5, 0x20(r4)
 +/* 80377618 00373278  80 04 00 24 */	lwz r0, 0x24(r4)
 +/* 8037761C 0037327C  93 E3 00 00 */	stw r31, 0(r3)
 +/* 80377620 00373280  91 83 00 04 */	stw r12, 4(r3)
 +/* 80377624 00373284  91 63 00 08 */	stw r11, 8(r3)
 +/* 80377628 00373288  91 43 00 0C */	stw r10, 0xc(r3)
 +/* 8037762C 0037328C  91 23 00 10 */	stw r9, 0x10(r3)
 +/* 80377630 00373290  91 03 00 14 */	stw r8, 0x14(r3)
 +/* 80377634 00373294  90 E3 00 18 */	stw r7, 0x18(r3)
 +/* 80377638 00373298  90 C3 00 1C */	stw r6, 0x1c(r3)
 +/* 8037763C 0037329C  90 A3 00 20 */	stw r5, 0x20(r3)
 +/* 80377640 003732A0  90 03 00 24 */	stw r0, 0x24(r3)
 +lbl_80377644:
 +/* 80377644 003732A4  83 E1 00 0C */	lwz r31, 0xc(r1)
 +/* 80377648 003732A8  38 21 00 10 */	addi r1, r1, 0x10
 +/* 8037764C 003732AC  4E 80 00 20 */	blr
 +
 +.global SetInfoChunk__Q44nw4r3snd6detail22SoundArchiveFileReaderFPCvUl
 +SetInfoChunk__Q44nw4r3snd6detail22SoundArchiveFileReaderFPCvUl:
 +/* 80377650 003732B0  38 04 00 08 */	addi r0, r4, 8
 +/* 80377654 003732B4  90 03 00 28 */	stw r0, 0x28(r3)
 +/* 80377658 003732B8  4E 80 00 20 */	blr
 +
 +.global GetSoundType__Q44nw4r3snd6detail22SoundArchiveFileReaderCFUl
 +GetSoundType__Q44nw4r3snd6detail22SoundArchiveFileReaderCFUl:
 +/* 8037765C 003732BC  94 21 FF F0 */	stwu r1, -0x10(r1)
 +/* 80377660 003732C0  7C 08 02 A6 */	mflr r0
 +/* 80377664 003732C4  80 A3 00 28 */	lwz r5, 0x28(r3)
 +/* 80377668 003732C8  90 01 00 14 */	stw r0, 0x14(r1)
 +/* 8037766C 003732CC  93 E1 00 0C */	stw r31, 0xc(r1)
 +/* 80377670 003732D0  7C 9F 23 78 */	mr r31, r4
 +/* 80377674 003732D4  93 C1 00 08 */	stw r30, 8(r1)
 +/* 80377678 003732D8  7C 7E 1B 78 */	mr r30, r3
 +/* 8037767C 003732DC  88 65 00 00 */	lbz r3, 0(r5)
 +/* 80377680 003732E0  80 85 00 04 */	lwz r4, 4(r5)
 +/* 80377684 003732E4  48 00 BD 65 */	bl func_803833E8
 +/* 80377688 003732E8  2C 03 00 00 */	cmpwi r3, 0
 +/* 8037768C 003732EC  40 82 00 0C */	bne lbl_80377698
 +/* 80377690 003732F0  38 60 00 00 */	li r3, 0
 +/* 80377694 003732F4  48 00 00 A0 */	b lbl_80377734
 +lbl_80377698:
 +/* 80377698 003732F8  80 03 00 00 */	lwz r0, 0(r3)
 +/* 8037769C 003732FC  7C 1F 00 40 */	cmplw r31, r0
 +/* 803776A0 00373300  41 80 00 0C */	blt lbl_803776AC
 +/* 803776A4 00373304  38 60 00 00 */	li r3, 0
 +/* 803776A8 00373308  48 00 00 8C */	b lbl_80377734
 +lbl_803776AC:
 +/* 803776AC 0037330C  A0 1E 00 06 */	lhz r0, 6(r30)
 +/* 803776B0 00373310  28 00 01 01 */	cmplwi r0, 0x101
 +/* 803776B4 00373314  41 80 00 34 */	blt lbl_803776E8
 +/* 803776B8 00373318  57 E0 18 38 */	slwi r0, r31, 3
 +/* 803776BC 0037331C  80 BE 00 28 */	lwz r5, 0x28(r30)
 +/* 803776C0 00373320  7C 83 02 14 */	add r4, r3, r0
 +/* 803776C4 00373324  88 64 00 04 */	lbz r3, 4(r4)
 +/* 803776C8 00373328  80 84 00 08 */	lwz r4, 8(r4)
 +/* 803776CC 0037332C  48 00 BD 1D */	bl func_803833E8
 +/* 803776D0 00373330  2C 03 00 00 */	cmpwi r3, 0
 +/* 803776D4 00373334  40 82 00 0C */	bne lbl_803776E0
 +/* 803776D8 00373338  38 60 00 00 */	li r3, 0
 +/* 803776DC 0037333C  48 00 00 58 */	b lbl_80377734
 +lbl_803776E0:
 +/* 803776E0 00373340  88 03 00 16 */	lbz r0, 0x16(r3)
 +/* 803776E4 00373344  48 00 00 10 */	b lbl_803776F4
 +lbl_803776E8:
 +/* 803776E8 00373348  57 E0 18 38 */	slwi r0, r31, 3
 +/* 803776EC 0037334C  7C 63 02 14 */	add r3, r3, r0
 +/* 803776F0 00373350  88 03 00 05 */	lbz r0, 5(r3)
 +lbl_803776F4:
 +/* 803776F4 00373354  2C 00 00 02 */	cmpwi r0, 2
 +/* 803776F8 00373358  41 82 00 28 */	beq lbl_80377720
 +/* 803776FC 0037335C  40 80 00 10 */	bge lbl_8037770C
 +/* 80377700 00373360  2C 00 00 01 */	cmpwi r0, 1
 +/* 80377704 00373364  40 80 00 14 */	bge lbl_80377718
 +/* 80377708 00373368  48 00 00 28 */	b lbl_80377730
 +lbl_8037770C:
 +/* 8037770C 0037336C  2C 00 00 04 */	cmpwi r0, 4
 +/* 80377710 00373370  40 80 00 20 */	bge lbl_80377730
 +/* 80377714 00373374  48 00 00 14 */	b lbl_80377728
 +lbl_80377718:
 +/* 80377718 00373378  38 60 00 01 */	li r3, 1
 +/* 8037771C 0037337C  48 00 00 18 */	b lbl_80377734
 +lbl_80377720:
 +/* 80377720 00373380  38 60 00 02 */	li r3, 2
 +/* 80377724 00373384  48 00 00 10 */	b lbl_80377734
 +lbl_80377728:
 +/* 80377728 00373388  38 60 00 03 */	li r3, 3
 +/* 8037772C 0037338C  48 00 00 08 */	b lbl_80377734
 +lbl_80377730:
 +/* 80377730 00373390  38 60 00 00 */	li r3, 0
 +lbl_80377734:
 +/* 80377734 00373394  80 01 00 14 */	lwz r0, 0x14(r1)
 +/* 80377738 00373398  83 E1 00 0C */	lwz r31, 0xc(r1)
 +/* 8037773C 0037339C  83 C1 00 08 */	lwz r30, 8(r1)
 +/* 80377740 003733A0  7C 08 03 A6 */	mtlr r0
 +/* 80377744 003733A4  38 21 00 10 */	addi r1, r1, 0x10
 +/* 80377748 003733A8  4E 80 00 20 */	blr
 +
 +.global ReadSoundInfo__Q44nw4r3snd6detail22SoundArchiveFileReaderCFUlPQ44nw4r3snd12SoundArchive9SoundInfo
 +ReadSoundInfo__Q44nw4r3snd6detail22SoundArchiveFileReaderCFUlPQ44nw4r3snd12SoundArchive9SoundInfo:
 +/* 8037774C 003733AC  94 21 FF E0 */	stwu r1, -0x20(r1)
 +/* 80377750 003733B0  7C 08 02 A6 */	mflr r0
 +/* 80377754 003733B4  80 C3 00 28 */	lwz r6, 0x28(r3)
 +/* 80377758 003733B8  90 01 00 24 */	stw r0, 0x24(r1)
 +/* 8037775C 003733BC  93 E1 00 1C */	stw r31, 0x1c(r1)
 +/* 80377760 003733C0  7C BF 2B 78 */	mr r31, r5
 +/* 80377764 003733C4  7C C5 33 78 */	mr r5, r6
 +/* 80377768 003733C8  93 C1 00 18 */	stw r30, 0x18(r1)
 +/* 8037776C 003733CC  7C 9E 23 78 */	mr r30, r4
 +/* 80377770 003733D0  93 A1 00 14 */	stw r29, 0x14(r1)
 +/* 80377774 003733D4  7C 7D 1B 78 */	mr r29, r3
 +/* 80377778 003733D8  88 66 00 00 */	lbz r3, 0(r6)
 +/* 8037777C 003733DC  80 86 00 04 */	lwz r4, 4(r6)
 +/* 80377780 003733E0  48 00 BC 69 */	bl func_803833E8
 +/* 80377784 003733E4  2C 03 00 00 */	cmpwi r3, 0
 +/* 80377788 003733E8  40 82 00 0C */	bne lbl_80377794
 +/* 8037778C 003733EC  38 60 00 00 */	li r3, 0
 +/* 80377790 003733F0  48 00 00 54 */	b lbl_803777E4
 +lbl_80377794:
 +/* 80377794 003733F4  80 03 00 00 */	lwz r0, 0(r3)
 +/* 80377798 003733F8  7C 1E 00 40 */	cmplw r30, r0
 +/* 8037779C 003733FC  41 80 00 0C */	blt lbl_803777A8
 +/* 803777A0 00373400  38 60 00 00 */	li r3, 0
 +/* 803777A4 00373404  48 00 00 40 */	b lbl_803777E4
 +lbl_803777A8:
 +/* 803777A8 00373408  A0 1D 00 06 */	lhz r0, 6(r29)
 +/* 803777AC 0037340C  28 00 01 01 */	cmplwi r0, 0x101
 +/* 803777B0 00373410  41 80 00 20 */	blt lbl_803777D0
 +/* 803777B4 00373414  57 C0 18 38 */	slwi r0, r30, 3
 +/* 803777B8 00373418  80 BD 00 28 */	lwz r5, 0x28(r29)
 +/* 803777BC 0037341C  7C 83 02 14 */	add r4, r3, r0
 +/* 803777C0 00373420  88 64 00 04 */	lbz r3, 4(r4)
 +/* 803777C4 00373424  80 84 00 08 */	lwz r4, 8(r4)
 +/* 803777C8 00373428  48 00 BC 21 */	bl func_803833E8
 +/* 803777CC 0037342C  48 00 00 18 */	b lbl_803777E4
 +lbl_803777D0:
 +/* 803777D0 00373430  57 C4 18 38 */	slwi r4, r30, 3
 +/* 803777D4 00373434  80 1D 00 28 */	lwz r0, 0x28(r29)
 +/* 803777D8 00373438  7C 63 22 14 */	add r3, r3, r4
 +/* 803777DC 0037343C  80 63 00 08 */	lwz r3, 8(r3)
 +/* 803777E0 00373440  7C 63 02 14 */	add r3, r3, r0
 +lbl_803777E4:
 +/* 803777E4 00373444  2C 03 00 00 */	cmpwi r3, 0
 +/* 803777E8 00373448  40 82 00 0C */	bne lbl_803777F4
 +/* 803777EC 0037344C  38 60 00 00 */	li r3, 0
 +/* 803777F0 00373450  48 00 00 60 */	b lbl_80377850
 +lbl_803777F4:
 +/* 803777F4 00373454  80 83 00 04 */	lwz r4, 4(r3)
 +/* 803777F8 00373458  A0 1D 00 06 */	lhz r0, 6(r29)
 +/* 803777FC 0037345C  90 9F 00 00 */	stw r4, 0(r31)
 +/* 80377800 00373460  28 00 01 02 */	cmplwi r0, 0x102
 +/* 80377804 00373464  80 03 00 08 */	lwz r0, 8(r3)
 +/* 80377808 00373468  90 1F 00 04 */	stw r0, 4(r31)
 +/* 8037780C 0037346C  88 03 00 15 */	lbz r0, 0x15(r3)
 +/* 80377810 00373470  90 1F 00 08 */	stw r0, 8(r31)
 +/* 80377814 00373474  88 03 00 14 */	lbz r0, 0x14(r3)
 +/* 80377818 00373478  90 1F 00 0C */	stw r0, 0xc(r31)
 +/* 8037781C 0037347C  88 03 00 17 */	lbz r0, 0x17(r3)
 +/* 80377820 00373480  90 1F 00 10 */	stw r0, 0x10(r31)
 +/* 80377824 00373484  41 80 00 18 */	blt lbl_8037783C
 +/* 80377828 00373488  88 03 00 28 */	lbz r0, 0x28(r3)
 +/* 8037782C 0037348C  90 1F 00 14 */	stw r0, 0x14(r31)
 +/* 80377830 00373490  88 03 00 29 */	lbz r0, 0x29(r3)
 +/* 80377834 00373494  90 1F 00 18 */	stw r0, 0x18(r31)
 +/* 80377838 00373498  48 00 00 14 */	b lbl_8037784C
 +lbl_8037783C:
 +/* 8037783C 0037349C  38 60 00 01 */	li r3, 1
 +/* 80377840 003734A0  38 00 00 00 */	li r0, 0
 +/* 80377844 003734A4  90 7F 00 14 */	stw r3, 0x14(r31)
 +/* 80377848 003734A8  90 1F 00 18 */	stw r0, 0x18(r31)
 +lbl_8037784C:
 +/* 8037784C 003734AC  38 60 00 01 */	li r3, 1
 +lbl_80377850:
 +/* 80377850 003734B0  80 01 00 24 */	lwz r0, 0x24(r1)
 +/* 80377854 003734B4  83 E1 00 1C */	lwz r31, 0x1c(r1)
 +/* 80377858 003734B8  83 C1 00 18 */	lwz r30, 0x18(r1)
 +/* 8037785C 003734BC  83 A1 00 14 */	lwz r29, 0x14(r1)
 +/* 80377860 003734C0  7C 08 03 A6 */	mtlr r0
 +/* 80377864 003734C4  38 21 00 20 */	addi r1, r1, 0x20
 +/* 80377868 003734C8  4E 80 00 20 */	blr
 +
 +.global ReadSeqSoundInfo__Q44nw4r3snd6detail22SoundArchiveFileReaderCFUlPQ44nw4r3snd12SoundArchive12SeqSoundInfo
 +ReadSeqSoundInfo__Q44nw4r3snd6detail22SoundArchiveFileReaderCFUlPQ44nw4r3snd12SoundArchive12SeqSoundInfo:
 +/* 8037786C 003734CC  94 21 FF E0 */	stwu r1, -0x20(r1)
 +/* 80377870 003734D0  7C 08 02 A6 */	mflr r0
 +/* 80377874 003734D4  90 01 00 24 */	stw r0, 0x24(r1)
 +/* 80377878 003734D8  93 E1 00 1C */	stw r31, 0x1c(r1)
 +/* 8037787C 003734DC  7C BF 2B 78 */	mr r31, r5
 +/* 80377880 003734E0  93 C1 00 18 */	stw r30, 0x18(r1)
 +/* 80377884 003734E4  7C 7E 1B 78 */	mr r30, r3
 +/* 80377888 003734E8  48 00 09 D5 */	bl impl_GetSoundInfoOffset__Q44nw4r3snd6detail22SoundArchiveFileReaderCFUl
 +/* 8037788C 003734EC  90 61 00 08 */	stw r3, 8(r1)
 +/* 80377890 003734F0  80 BE 00 28 */	lwz r5, 0x28(r30)
 +/* 80377894 003734F4  90 81 00 0C */	stw r4, 0xc(r1)
 +/* 80377898 003734F8  88 61 00 08 */	lbz r3, 8(r1)
 +/* 8037789C 003734FC  48 00 BB 4D */	bl func_803833E8
 +/* 803778A0 00373500  2C 03 00 00 */	cmpwi r3, 0
 +/* 803778A4 00373504  40 82 00 0C */	bne lbl_803778B0
 +/* 803778A8 00373508  38 60 00 00 */	li r3, 0
 +/* 803778AC 0037350C  48 00 00 54 */	b lbl_80377900
 +lbl_803778B0:
 +/* 803778B0 00373510  80 83 00 00 */	lwz r4, 0(r3)
 +/* 803778B4 00373514  A0 1E 00 06 */	lhz r0, 6(r30)
 +/* 803778B8 00373518  90 9F 00 00 */	stw r4, 0(r31)
 +/* 803778BC 0037351C  28 00 01 03 */	cmplwi r0, 0x103
 +/* 803778C0 00373520  80 03 00 04 */	lwz r0, 4(r3)
 +/* 803778C4 00373524  90 1F 00 04 */	stw r0, 4(r31)
 +/* 803778C8 00373528  88 03 00 0C */	lbz r0, 0xc(r3)
 +/* 803778CC 0037352C  90 1F 00 0C */	stw r0, 0xc(r31)
 +/* 803778D0 00373530  80 03 00 08 */	lwz r0, 8(r3)
 +/* 803778D4 00373534  90 1F 00 08 */	stw r0, 8(r31)
 +/* 803778D8 00373538  41 80 00 1C */	blt lbl_803778F4
 +/* 803778DC 0037353C  88 63 00 0D */	lbz r3, 0xd(r3)
 +/* 803778E0 00373540  7C 03 00 D0 */	neg r0, r3
 +/* 803778E4 00373544  7C 00 1B 78 */	or r0, r0, r3
 +/* 803778E8 00373548  54 00 0F FE */	srwi r0, r0, 0x1f
 +/* 803778EC 0037354C  98 1F 00 10 */	stb r0, 0x10(r31)
 +/* 803778F0 00373550  48 00 00 0C */	b lbl_803778FC
 +lbl_803778F4:
 +/* 803778F4 00373554  38 00 00 00 */	li r0, 0
 +/* 803778F8 00373558  98 1F 00 10 */	stb r0, 0x10(r31)
 +lbl_803778FC:
 +/* 803778FC 0037355C  38 60 00 01 */	li r3, 1
 +lbl_80377900:
 +/* 80377900 00373560  80 01 00 24 */	lwz r0, 0x24(r1)
 +/* 80377904 00373564  83 E1 00 1C */	lwz r31, 0x1c(r1)
 +/* 80377908 00373568  83 C1 00 18 */	lwz r30, 0x18(r1)
 +/* 8037790C 0037356C  7C 08 03 A6 */	mtlr r0
 +/* 80377910 00373570  38 21 00 20 */	addi r1, r1, 0x20
 +/* 80377914 00373574  4E 80 00 20 */	blr
 +
 +.global ReadStrmSoundInfo__Q44nw4r3snd6detail22SoundArchiveFileReaderCFUlPQ44nw4r3snd12SoundArchive13StrmSoundInfo
 +ReadStrmSoundInfo__Q44nw4r3snd6detail22SoundArchiveFileReaderCFUlPQ44nw4r3snd12SoundArchive13StrmSoundInfo:
 +/* 80377918 00373578  94 21 FF E0 */	stwu r1, -0x20(r1)
 +/* 8037791C 0037357C  7C 08 02 A6 */	mflr r0
 +/* 80377920 00373580  90 01 00 24 */	stw r0, 0x24(r1)
 +/* 80377924 00373584  93 E1 00 1C */	stw r31, 0x1c(r1)
 +/* 80377928 00373588  7C 7F 1B 78 */	mr r31, r3
 +/* 8037792C 0037358C  48 00 09 31 */	bl impl_GetSoundInfoOffset__Q44nw4r3snd6detail22SoundArchiveFileReaderCFUl
 +/* 80377930 00373590  90 61 00 08 */	stw r3, 8(r1)
 +/* 80377934 00373594  80 BF 00 28 */	lwz r5, 0x28(r31)
 +/* 80377938 00373598  90 81 00 0C */	stw r4, 0xc(r1)
 +/* 8037793C 0037359C  88 61 00 08 */	lbz r3, 8(r1)
 +/* 80377940 003735A0  48 00 BA A9 */	bl func_803833E8
 +/* 80377944 003735A4  7C 03 00 D0 */	neg r0, r3
 +/* 80377948 003735A8  83 E1 00 1C */	lwz r31, 0x1c(r1)
 +/* 8037794C 003735AC  7C 00 1B 78 */	or r0, r0, r3
 +/* 80377950 003735B0  54 03 0F FE */	srwi r3, r0, 0x1f
 +/* 80377954 003735B4  80 01 00 24 */	lwz r0, 0x24(r1)
 +/* 80377958 003735B8  7C 08 03 A6 */	mtlr r0
 +/* 8037795C 003735BC  38 21 00 20 */	addi r1, r1, 0x20
 +/* 80377960 003735C0  4E 80 00 20 */	blr
 +
 +.global ReadWaveSoundInfo__Q44nw4r3snd6detail22SoundArchiveFileReaderCFUlPQ44nw4r3snd12SoundArchive13WaveSoundInfo
 +ReadWaveSoundInfo__Q44nw4r3snd6detail22SoundArchiveFileReaderCFUlPQ44nw4r3snd12SoundArchive13WaveSoundInfo:
 +/* 80377964 003735C4  94 21 FF E0 */	stwu r1, -0x20(r1)
 +/* 80377968 003735C8  7C 08 02 A6 */	mflr r0
 +/* 8037796C 003735CC  90 01 00 24 */	stw r0, 0x24(r1)
 +/* 80377970 003735D0  93 E1 00 1C */	stw r31, 0x1c(r1)
 +/* 80377974 003735D4  7C BF 2B 78 */	mr r31, r5
 +/* 80377978 003735D8  93 C1 00 18 */	stw r30, 0x18(r1)
 +/* 8037797C 003735DC  7C 7E 1B 78 */	mr r30, r3
 +/* 80377980 003735E0  48 00 08 DD */	bl impl_GetSoundInfoOffset__Q44nw4r3snd6detail22SoundArchiveFileReaderCFUl
 +/* 80377984 003735E4  90 61 00 08 */	stw r3, 8(r1)
 +/* 80377988 003735E8  80 BE 00 28 */	lwz r5, 0x28(r30)
 +/* 8037798C 003735EC  90 81 00 0C */	stw r4, 0xc(r1)
 +/* 80377990 003735F0  88 61 00 08 */	lbz r3, 8(r1)
 +/* 80377994 003735F4  48 00 BA 55 */	bl func_803833E8
 +/* 80377998 003735F8  2C 03 00 00 */	cmpwi r3, 0
 +/* 8037799C 003735FC  40 82 00 0C */	bne lbl_803779A8
 +/* 803779A0 00373600  38 60 00 00 */	li r3, 0
 +/* 803779A4 00373604  48 00 00 44 */	b lbl_803779E8
 +lbl_803779A8:
 +/* 803779A8 00373608  80 83 00 00 */	lwz r4, 0(r3)
 +/* 803779AC 0037360C  A0 1E 00 06 */	lhz r0, 6(r30)
 +/* 803779B0 00373610  90 9F 00 00 */	stw r4, 0(r31)
 +/* 803779B4 00373614  28 00 01 03 */	cmplwi r0, 0x103
 +/* 803779B8 00373618  88 03 00 08 */	lbz r0, 8(r3)
 +/* 803779BC 0037361C  90 1F 00 04 */	stw r0, 4(r31)
 +/* 803779C0 00373620  41 80 00 1C */	blt lbl_803779DC
 +/* 803779C4 00373624  88 63 00 09 */	lbz r3, 9(r3)
 +/* 803779C8 00373628  7C 03 00 D0 */	neg r0, r3
 +/* 803779CC 0037362C  7C 00 1B 78 */	or r0, r0, r3
 +/* 803779D0 00373630  54 00 0F FE */	srwi r0, r0, 0x1f
 +/* 803779D4 00373634  98 1F 00 08 */	stb r0, 8(r31)
 +/* 803779D8 00373638  48 00 00 0C */	b lbl_803779E4
 +lbl_803779DC:
 +/* 803779DC 0037363C  38 00 00 00 */	li r0, 0
 +/* 803779E0 00373640  98 1F 00 08 */	stb r0, 8(r31)
 +lbl_803779E4:
 +/* 803779E4 00373644  38 60 00 01 */	li r3, 1
 +lbl_803779E8:
 +/* 803779E8 00373648  80 01 00 24 */	lwz r0, 0x24(r1)
 +/* 803779EC 0037364C  83 E1 00 1C */	lwz r31, 0x1c(r1)
 +/* 803779F0 00373650  83 C1 00 18 */	lwz r30, 0x18(r1)
 +/* 803779F4 00373654  7C 08 03 A6 */	mtlr r0
 +/* 803779F8 00373658  38 21 00 20 */	addi r1, r1, 0x20
 +/* 803779FC 0037365C  4E 80 00 20 */	blr
 +
 +.global ReadBankInfo__Q44nw4r3snd6detail22SoundArchiveFileReaderCFUlPQ44nw4r3snd12SoundArchive8BankInfo
 +ReadBankInfo__Q44nw4r3snd6detail22SoundArchiveFileReaderCFUlPQ44nw4r3snd12SoundArchive8BankInfo:
 +/* 80377A00 00373660  94 21 FF E0 */	stwu r1, -0x20(r1)
 +/* 80377A04 00373664  7C 08 02 A6 */	mflr r0
 +/* 80377A08 00373668  80 C3 00 28 */	lwz r6, 0x28(r3)
 +/* 80377A0C 0037366C  90 01 00 24 */	stw r0, 0x24(r1)
 +/* 80377A10 00373670  93 E1 00 1C */	stw r31, 0x1c(r1)
 +/* 80377A14 00373674  7C BF 2B 78 */	mr r31, r5
 +/* 80377A18 00373678  7C C5 33 78 */	mr r5, r6
 +/* 80377A1C 0037367C  93 C1 00 18 */	stw r30, 0x18(r1)
 +/* 80377A20 00373680  7C 9E 23 78 */	mr r30, r4
 +/* 80377A24 00373684  93 A1 00 14 */	stw r29, 0x14(r1)
 +/* 80377A28 00373688  7C 7D 1B 78 */	mr r29, r3
 +/* 80377A2C 0037368C  88 66 00 08 */	lbz r3, 8(r6)
 +/* 80377A30 00373690  80 86 00 0C */	lwz r4, 0xc(r6)
 +/* 80377A34 00373694  48 00 B9 B5 */	bl func_803833E8
 +/* 80377A38 00373698  2C 03 00 00 */	cmpwi r3, 0
 +/* 80377A3C 0037369C  40 82 00 0C */	bne lbl_80377A48
 +/* 80377A40 003736A0  38 60 00 00 */	li r3, 0
 +/* 80377A44 003736A4  48 00 00 30 */	b lbl_80377A74
 +lbl_80377A48:
 +/* 80377A48 003736A8  80 03 00 00 */	lwz r0, 0(r3)
 +/* 80377A4C 003736AC  7C 1E 00 40 */	cmplw r30, r0
 +/* 80377A50 003736B0  41 80 00 0C */	blt lbl_80377A5C
 +/* 80377A54 003736B4  38 60 00 00 */	li r3, 0
 +/* 80377A58 003736B8  48 00 00 1C */	b lbl_80377A74
 +lbl_80377A5C:
 +/* 80377A5C 003736BC  57 C0 18 38 */	slwi r0, r30, 3
 +/* 80377A60 003736C0  80 BD 00 28 */	lwz r5, 0x28(r29)
 +/* 80377A64 003736C4  7C 83 02 14 */	add r4, r3, r0
 +/* 80377A68 003736C8  88 64 00 04 */	lbz r3, 4(r4)
 +/* 80377A6C 003736CC  80 84 00 08 */	lwz r4, 8(r4)
 +/* 80377A70 003736D0  48 00 B9 79 */	bl func_803833E8
 +lbl_80377A74:
 +/* 80377A74 003736D4  2C 03 00 00 */	cmpwi r3, 0
 +/* 80377A78 003736D8  40 82 00 0C */	bne lbl_80377A84
 +/* 80377A7C 003736DC  38 60 00 00 */	li r3, 0
 +/* 80377A80 003736E0  48 00 00 10 */	b lbl_80377A90
 +lbl_80377A84:
 +/* 80377A84 003736E4  80 03 00 04 */	lwz r0, 4(r3)
 +/* 80377A88 003736E8  38 60 00 01 */	li r3, 1
 +/* 80377A8C 003736EC  90 1F 00 00 */	stw r0, 0(r31)
 +lbl_80377A90:
 +/* 80377A90 003736F0  80 01 00 24 */	lwz r0, 0x24(r1)
 +/* 80377A94 003736F4  83 E1 00 1C */	lwz r31, 0x1c(r1)
 +/* 80377A98 003736F8  83 C1 00 18 */	lwz r30, 0x18(r1)
 +/* 80377A9C 003736FC  83 A1 00 14 */	lwz r29, 0x14(r1)
 +/* 80377AA0 00373700  7C 08 03 A6 */	mtlr r0
 +/* 80377AA4 00373704  38 21 00 20 */	addi r1, r1, 0x20
 +/* 80377AA8 00373708  4E 80 00 20 */	blr
 +
 +.global ReadPlayerInfo__Q44nw4r3snd6detail22SoundArchiveFileReaderCFUlPQ44nw4r3snd12SoundArchive10PlayerInfo
 +ReadPlayerInfo__Q44nw4r3snd6detail22SoundArchiveFileReaderCFUlPQ44nw4r3snd12SoundArchive10PlayerInfo:
 +/* 80377AAC 0037370C  94 21 FF E0 */	stwu r1, -0x20(r1)
 +/* 80377AB0 00373710  7C 08 02 A6 */	mflr r0
 +/* 80377AB4 00373714  80 C3 00 28 */	lwz r6, 0x28(r3)
 +/* 80377AB8 00373718  90 01 00 24 */	stw r0, 0x24(r1)
 +/* 80377ABC 0037371C  93 E1 00 1C */	stw r31, 0x1c(r1)
 +/* 80377AC0 00373720  7C BF 2B 78 */	mr r31, r5
 +/* 80377AC4 00373724  7C C5 33 78 */	mr r5, r6
 +/* 80377AC8 00373728  93 C1 00 18 */	stw r30, 0x18(r1)
 +/* 80377ACC 0037372C  7C 9E 23 78 */	mr r30, r4
 +/* 80377AD0 00373730  93 A1 00 14 */	stw r29, 0x14(r1)
 +/* 80377AD4 00373734  7C 7D 1B 78 */	mr r29, r3
 +/* 80377AD8 00373738  88 66 00 10 */	lbz r3, 0x10(r6)
 +/* 80377ADC 0037373C  80 86 00 14 */	lwz r4, 0x14(r6)
 +/* 80377AE0 00373740  48 00 B9 09 */	bl func_803833E8
 +/* 80377AE4 00373744  2C 03 00 00 */	cmpwi r3, 0
 +/* 80377AE8 00373748  40 82 00 0C */	bne lbl_80377AF4
 +/* 80377AEC 0037374C  38 80 00 00 */	li r4, 0
 +/* 80377AF0 00373750  48 00 00 34 */	b lbl_80377B24
 +lbl_80377AF4:
 +/* 80377AF4 00373754  80 03 00 00 */	lwz r0, 0(r3)
 +/* 80377AF8 00373758  7C 1E 00 40 */	cmplw r30, r0
 +/* 80377AFC 0037375C  41 80 00 0C */	blt lbl_80377B08
 +/* 80377B00 00373760  38 80 00 00 */	li r4, 0
 +/* 80377B04 00373764  48 00 00 20 */	b lbl_80377B24
 +lbl_80377B08:
 +/* 80377B08 00373768  57 C0 18 38 */	slwi r0, r30, 3
 +/* 80377B0C 0037376C  80 BD 00 28 */	lwz r5, 0x28(r29)
 +/* 80377B10 00373770  7C 83 02 14 */	add r4, r3, r0
 +/* 80377B14 00373774  88 64 00 04 */	lbz r3, 4(r4)
 +/* 80377B18 00373778  80 84 00 08 */	lwz r4, 8(r4)
 +/* 80377B1C 0037377C  48 00 B8 CD */	bl func_803833E8
 +/* 80377B20 00373780  7C 64 1B 78 */	mr r4, r3
 +lbl_80377B24:
 +/* 80377B24 00373784  2C 04 00 00 */	cmpwi r4, 0
 +/* 80377B28 00373788  40 82 00 0C */	bne lbl_80377B34
 +/* 80377B2C 0037378C  38 60 00 00 */	li r3, 0
 +/* 80377B30 00373790  48 00 00 18 */	b lbl_80377B48
 +lbl_80377B34:
 +/* 80377B34 00373794  88 04 00 04 */	lbz r0, 4(r4)
 +/* 80377B38 00373798  38 60 00 01 */	li r3, 1
 +/* 80377B3C 0037379C  90 1F 00 00 */	stw r0, 0(r31)
 +/* 80377B40 003737A0  80 04 00 08 */	lwz r0, 8(r4)
 +/* 80377B44 003737A4  90 1F 00 04 */	stw r0, 4(r31)
 +lbl_80377B48:
 +/* 80377B48 003737A8  80 01 00 24 */	lwz r0, 0x24(r1)
 +/* 80377B4C 003737AC  83 E1 00 1C */	lwz r31, 0x1c(r1)
 +/* 80377B50 003737B0  83 C1 00 18 */	lwz r30, 0x18(r1)
 +/* 80377B54 003737B4  83 A1 00 14 */	lwz r29, 0x14(r1)
 +/* 80377B58 003737B8  7C 08 03 A6 */	mtlr r0
 +/* 80377B5C 003737BC  38 21 00 20 */	addi r1, r1, 0x20
 +/* 80377B60 003737C0  4E 80 00 20 */	blr
 +
 +.global ReadGroupInfo__Q44nw4r3snd6detail22SoundArchiveFileReaderCFUlPQ44nw4r3snd12SoundArchive9GroupInfo
 +ReadGroupInfo__Q44nw4r3snd6detail22SoundArchiveFileReaderCFUlPQ44nw4r3snd12SoundArchive9GroupInfo:
 +/* 80377B64 003737C4  94 21 FF E0 */	stwu r1, -0x20(r1)
 +/* 80377B68 003737C8  7C 08 02 A6 */	mflr r0
 +/* 80377B6C 003737CC  80 C3 00 28 */	lwz r6, 0x28(r3)
 +/* 80377B70 003737D0  90 01 00 24 */	stw r0, 0x24(r1)
 +/* 80377B74 003737D4  93 E1 00 1C */	stw r31, 0x1c(r1)
 +/* 80377B78 003737D8  93 C1 00 18 */	stw r30, 0x18(r1)
 +/* 80377B7C 003737DC  7C 9E 23 78 */	mr r30, r4
 +/* 80377B80 003737E0  93 A1 00 14 */	stw r29, 0x14(r1)
 +/* 80377B84 003737E4  7C BD 2B 78 */	mr r29, r5
 +/* 80377B88 003737E8  7C C5 33 78 */	mr r5, r6
 +/* 80377B8C 003737EC  93 81 00 10 */	stw r28, 0x10(r1)
 +/* 80377B90 003737F0  7C 7C 1B 78 */	mr r28, r3
 +/* 80377B94 003737F4  88 66 00 20 */	lbz r3, 0x20(r6)
 +/* 80377B98 003737F8  80 86 00 24 */	lwz r4, 0x24(r6)
 +/* 80377B9C 003737FC  48 00 B8 4D */	bl func_803833E8
 +/* 80377BA0 00373800  2C 03 00 00 */	cmpwi r3, 0
 +/* 80377BA4 00373804  40 82 00 0C */	bne lbl_80377BB0
 +/* 80377BA8 00373808  3B C0 00 00 */	li r30, 0
 +/* 80377BAC 0037380C  48 00 00 34 */	b lbl_80377BE0
 +lbl_80377BB0:
 +/* 80377BB0 00373810  80 03 00 00 */	lwz r0, 0(r3)
 +/* 80377BB4 00373814  7C 1E 00 40 */	cmplw r30, r0
 +/* 80377BB8 00373818  41 80 00 0C */	blt lbl_80377BC4
 +/* 80377BBC 0037381C  3B C0 00 00 */	li r30, 0
 +/* 80377BC0 00373820  48 00 00 20 */	b lbl_80377BE0
 +lbl_80377BC4:
 +/* 80377BC4 00373824  57 C0 18 38 */	slwi r0, r30, 3
 +/* 80377BC8 00373828  80 BC 00 28 */	lwz r5, 0x28(r28)
 +/* 80377BCC 0037382C  7C 83 02 14 */	add r4, r3, r0
 +/* 80377BD0 00373830  88 64 00 04 */	lbz r3, 4(r4)
 +/* 80377BD4 00373834  80 84 00 08 */	lwz r4, 8(r4)
 +/* 80377BD8 00373838  48 00 B8 11 */	bl func_803833E8
 +/* 80377BDC 0037383C  7C 7E 1B 78 */	mr r30, r3
 +lbl_80377BE0:
 +/* 80377BE0 00373840  2C 1E 00 00 */	cmpwi r30, 0
 +/* 80377BE4 00373844  40 82 00 0C */	bne lbl_80377BF0
 +/* 80377BE8 00373848  38 60 00 00 */	li r3, 0
 +/* 80377BEC 0037384C  48 00 00 68 */	b lbl_80377C54
 +lbl_80377BF0:
 +/* 80377BF0 00373850  88 7E 00 20 */	lbz r3, 0x20(r30)
 +/* 80377BF4 00373854  80 9E 00 24 */	lwz r4, 0x24(r30)
 +/* 80377BF8 00373858  80 BC 00 28 */	lwz r5, 0x28(r28)
 +/* 80377BFC 0037385C  48 00 B7 ED */	bl func_803833E8
 +/* 80377C00 00373860  2C 03 00 00 */	cmpwi r3, 0
 +/* 80377C04 00373864  7C 7F 1B 78 */	mr r31, r3
 +/* 80377C08 00373868  40 82 00 0C */	bne lbl_80377C14
 +/* 80377C0C 0037386C  38 60 00 00 */	li r3, 0
 +/* 80377C10 00373870  48 00 00 44 */	b lbl_80377C54
 +lbl_80377C14:
 +/* 80377C14 00373874  88 7E 00 08 */	lbz r3, 8(r30)
 +/* 80377C18 00373878  80 9E 00 0C */	lwz r4, 0xc(r30)
 +/* 80377C1C 0037387C  80 BC 00 28 */	lwz r5, 0x28(r28)
 +/* 80377C20 00373880  48 00 B7 C9 */	bl func_803833E8
 +/* 80377C24 00373884  90 7D 00 04 */	stw r3, 4(r29)
 +/* 80377C28 00373888  38 60 00 01 */	li r3, 1
 +/* 80377C2C 0037388C  80 1E 00 10 */	lwz r0, 0x10(r30)
 +/* 80377C30 00373890  90 1D 00 08 */	stw r0, 8(r29)
 +/* 80377C34 00373894  80 1E 00 14 */	lwz r0, 0x14(r30)
 +/* 80377C38 00373898  90 1D 00 0C */	stw r0, 0xc(r29)
 +/* 80377C3C 0037389C  80 1E 00 18 */	lwz r0, 0x18(r30)
 +/* 80377C40 003738A0  90 1D 00 10 */	stw r0, 0x10(r29)
 +/* 80377C44 003738A4  80 1E 00 1C */	lwz r0, 0x1c(r30)
 +/* 80377C48 003738A8  90 1D 00 14 */	stw r0, 0x14(r29)
 +/* 80377C4C 003738AC  80 1F 00 00 */	lwz r0, 0(r31)
 +/* 80377C50 003738B0  90 1D 00 00 */	stw r0, 0(r29)
 +lbl_80377C54:
 +/* 80377C54 003738B4  80 01 00 24 */	lwz r0, 0x24(r1)
 +/* 80377C58 003738B8  83 E1 00 1C */	lwz r31, 0x1c(r1)
 +/* 80377C5C 003738BC  83 C1 00 18 */	lwz r30, 0x18(r1)
 +/* 80377C60 003738C0  83 A1 00 14 */	lwz r29, 0x14(r1)
 +/* 80377C64 003738C4  83 81 00 10 */	lwz r28, 0x10(r1)
 +/* 80377C68 003738C8  7C 08 03 A6 */	mtlr r0
 +/* 80377C6C 003738CC  38 21 00 20 */	addi r1, r1, 0x20
 +/* 80377C70 003738D0  4E 80 00 20 */	blr
 +
 +.global ReadGroupItemInfo__Q44nw4r3snd6detail22SoundArchiveFileReaderCFUlUlPQ44nw4r3snd12SoundArchive13GroupItemInfo
 +ReadGroupItemInfo__Q44nw4r3snd6detail22SoundArchiveFileReaderCFUlUlPQ44nw4r3snd12SoundArchive13GroupItemInfo:
 +/* 80377C74 003738D4  94 21 FF E0 */	stwu r1, -0x20(r1)
 +/* 80377C78 003738D8  7C 08 02 A6 */	mflr r0
 +/* 80377C7C 003738DC  80 E3 00 28 */	lwz r7, 0x28(r3)
 +/* 80377C80 003738E0  90 01 00 24 */	stw r0, 0x24(r1)
 +/* 80377C84 003738E4  93 E1 00 1C */	stw r31, 0x1c(r1)
 +/* 80377C88 003738E8  7C DF 33 78 */	mr r31, r6
 +/* 80377C8C 003738EC  93 C1 00 18 */	stw r30, 0x18(r1)
 +/* 80377C90 003738F0  7C BE 2B 78 */	mr r30, r5
 +/* 80377C94 003738F4  7C E5 3B 78 */	mr r5, r7
 +/* 80377C98 003738F8  93 A1 00 14 */	stw r29, 0x14(r1)
 +/* 80377C9C 003738FC  7C 9D 23 78 */	mr r29, r4
 +/* 80377CA0 00373900  93 81 00 10 */	stw r28, 0x10(r1)
 +/* 80377CA4 00373904  7C 7C 1B 78 */	mr r28, r3
 +/* 80377CA8 00373908  88 67 00 20 */	lbz r3, 0x20(r7)
 +/* 80377CAC 0037390C  80 87 00 24 */	lwz r4, 0x24(r7)
 +/* 80377CB0 00373910  48 00 B7 39 */	bl func_803833E8
 +/* 80377CB4 00373914  2C 03 00 00 */	cmpwi r3, 0
 +/* 80377CB8 00373918  40 82 00 0C */	bne lbl_80377CC4
 +/* 80377CBC 0037391C  38 80 00 00 */	li r4, 0
 +/* 80377CC0 00373920  48 00 00 34 */	b lbl_80377CF4
 +lbl_80377CC4:
 +/* 80377CC4 00373924  80 03 00 00 */	lwz r0, 0(r3)
 +/* 80377CC8 00373928  7C 1D 00 40 */	cmplw r29, r0
 +/* 80377CCC 0037392C  41 80 00 0C */	blt lbl_80377CD8
 +/* 80377CD0 00373930  38 80 00 00 */	li r4, 0
 +/* 80377CD4 00373934  48 00 00 20 */	b lbl_80377CF4
 +lbl_80377CD8:
 +/* 80377CD8 00373938  57 A0 18 38 */	slwi r0, r29, 3
 +/* 80377CDC 0037393C  80 BC 00 28 */	lwz r5, 0x28(r28)
 +/* 80377CE0 00373940  7C 83 02 14 */	add r4, r3, r0
 +/* 80377CE4 00373944  88 64 00 04 */	lbz r3, 4(r4)
 +/* 80377CE8 00373948  80 84 00 08 */	lwz r4, 8(r4)
 +/* 80377CEC 0037394C  48 00 B6 FD */	bl func_803833E8
 +/* 80377CF0 00373950  7C 64 1B 78 */	mr r4, r3
 +lbl_80377CF4:
 +/* 80377CF4 00373954  2C 04 00 00 */	cmpwi r4, 0
 +/* 80377CF8 00373958  40 82 00 0C */	bne lbl_80377D04
 +/* 80377CFC 0037395C  38 60 00 00 */	li r3, 0
 +/* 80377D00 00373960  48 00 00 8C */	b lbl_80377D8C
 +lbl_80377D04:
 +/* 80377D04 00373964  88 64 00 20 */	lbz r3, 0x20(r4)
 +/* 80377D08 00373968  80 84 00 24 */	lwz r4, 0x24(r4)
 +/* 80377D0C 0037396C  80 BC 00 28 */	lwz r5, 0x28(r28)
 +/* 80377D10 00373970  48 00 B6 D9 */	bl func_803833E8
 +/* 80377D14 00373974  2C 03 00 00 */	cmpwi r3, 0
 +/* 80377D18 00373978  40 82 00 0C */	bne lbl_80377D24
 +/* 80377D1C 0037397C  38 60 00 00 */	li r3, 0
 +/* 80377D20 00373980  48 00 00 6C */	b lbl_80377D8C
 +lbl_80377D24:
 +/* 80377D24 00373984  80 03 00 00 */	lwz r0, 0(r3)
 +/* 80377D28 00373988  7C 1E 00 40 */	cmplw r30, r0
 +/* 80377D2C 0037398C  41 80 00 0C */	blt lbl_80377D38
 +/* 80377D30 00373990  38 60 00 00 */	li r3, 0
 +/* 80377D34 00373994  48 00 00 58 */	b lbl_80377D8C
 +lbl_80377D38:
 +/* 80377D38 00373998  57 C0 18 38 */	slwi r0, r30, 3
 +/* 80377D3C 0037399C  80 BC 00 28 */	lwz r5, 0x28(r28)
 +/* 80377D40 003739A0  7C 83 02 14 */	add r4, r3, r0
 +/* 80377D44 003739A4  88 64 00 04 */	lbz r3, 4(r4)
 +/* 80377D48 003739A8  80 84 00 08 */	lwz r4, 8(r4)
 +/* 80377D4C 003739AC  48 00 B6 9D */	bl func_803833E8
 +/* 80377D50 003739B0  2C 03 00 00 */	cmpwi r3, 0
 +/* 80377D54 003739B4  40 82 00 0C */	bne lbl_80377D60
 +/* 80377D58 003739B8  38 60 00 00 */	li r3, 0
 +/* 80377D5C 003739BC  48 00 00 30 */	b lbl_80377D8C
 +lbl_80377D60:
 +/* 80377D60 003739C0  80 03 00 00 */	lwz r0, 0(r3)
 +/* 80377D64 003739C4  90 1F 00 00 */	stw r0, 0(r31)
 +/* 80377D68 003739C8  80 03 00 04 */	lwz r0, 4(r3)
 +/* 80377D6C 003739CC  90 1F 00 04 */	stw r0, 4(r31)
 +/* 80377D70 003739D0  80 03 00 08 */	lwz r0, 8(r3)
 +/* 80377D74 003739D4  90 1F 00 08 */	stw r0, 8(r31)
 +/* 80377D78 003739D8  80 03 00 0C */	lwz r0, 0xc(r3)
 +/* 80377D7C 003739DC  90 1F 00 0C */	stw r0, 0xc(r31)
 +/* 80377D80 003739E0  80 03 00 10 */	lwz r0, 0x10(r3)
 +/* 80377D84 003739E4  38 60 00 01 */	li r3, 1
 +/* 80377D88 003739E8  90 1F 00 10 */	stw r0, 0x10(r31)
 +lbl_80377D8C:
 +/* 80377D8C 003739EC  80 01 00 24 */	lwz r0, 0x24(r1)
 +/* 80377D90 003739F0  83 E1 00 1C */	lwz r31, 0x1c(r1)
 +/* 80377D94 003739F4  83 C1 00 18 */	lwz r30, 0x18(r1)
 +/* 80377D98 003739F8  83 A1 00 14 */	lwz r29, 0x14(r1)
 +/* 80377D9C 003739FC  83 81 00 10 */	lwz r28, 0x10(r1)
 +/* 80377DA0 00373A00  7C 08 03 A6 */	mtlr r0
 +/* 80377DA4 00373A04  38 21 00 20 */	addi r1, r1, 0x20
 +/* 80377DA8 00373A08  4E 80 00 20 */	blr
 +
 +.global ReadSoundArchivePlayerInfo__Q44nw4r3snd6detail22SoundArchiveFileReaderCFPQ44nw4r3snd12SoundArchive22SoundArchivePlayerInfo
 +ReadSoundArchivePlayerInfo__Q44nw4r3snd6detail22SoundArchiveFileReaderCFPQ44nw4r3snd12SoundArchive22SoundArchivePlayerInfo:
 +/* 80377DAC 00373A0C  94 21 FF F0 */	stwu r1, -0x10(r1)
 +/* 80377DB0 00373A10  7C 08 02 A6 */	mflr r0
 +/* 80377DB4 00373A14  80 A3 00 28 */	lwz r5, 0x28(r3)
 +/* 80377DB8 00373A18  90 01 00 14 */	stw r0, 0x14(r1)
 +/* 80377DBC 00373A1C  93 E1 00 0C */	stw r31, 0xc(r1)
 +/* 80377DC0 00373A20  7C 9F 23 78 */	mr r31, r4
 +/* 80377DC4 00373A24  88 65 00 28 */	lbz r3, 0x28(r5)
 +/* 80377DC8 00373A28  80 85 00 2C */	lwz r4, 0x2c(r5)
 +/* 80377DCC 00373A2C  48 00 B6 1D */	bl func_803833E8
 +/* 80377DD0 00373A30  2C 1F 00 00 */	cmpwi r31, 0
 +/* 80377DD4 00373A34  40 82 00 0C */	bne lbl_80377DE0
 +/* 80377DD8 00373A38  38 60 00 00 */	li r3, 0
 +/* 80377DDC 00373A3C  48 00 00 40 */	b lbl_80377E1C
 +lbl_80377DE0:
 +/* 80377DE0 00373A40  A0 03 00 00 */	lhz r0, 0(r3)
 +/* 80377DE4 00373A44  90 1F 00 00 */	stw r0, 0(r31)
 +/* 80377DE8 00373A48  A0 03 00 02 */	lhz r0, 2(r3)
 +/* 80377DEC 00373A4C  90 1F 00 04 */	stw r0, 4(r31)
 +/* 80377DF0 00373A50  A0 03 00 04 */	lhz r0, 4(r3)
 +/* 80377DF4 00373A54  90 1F 00 08 */	stw r0, 8(r31)
 +/* 80377DF8 00373A58  A0 03 00 06 */	lhz r0, 6(r3)
 +/* 80377DFC 00373A5C  90 1F 00 0C */	stw r0, 0xc(r31)
 +/* 80377E00 00373A60  A0 03 00 08 */	lhz r0, 8(r3)
 +/* 80377E04 00373A64  90 1F 00 10 */	stw r0, 0x10(r31)
 +/* 80377E08 00373A68  A0 03 00 0A */	lhz r0, 0xa(r3)
 +/* 80377E0C 00373A6C  90 1F 00 14 */	stw r0, 0x14(r31)
 +/* 80377E10 00373A70  A0 03 00 0C */	lhz r0, 0xc(r3)
 +/* 80377E14 00373A74  38 60 00 01 */	li r3, 1
 +/* 80377E18 00373A78  90 1F 00 18 */	stw r0, 0x18(r31)
 +lbl_80377E1C:
 +/* 80377E1C 00373A7C  80 01 00 14 */	lwz r0, 0x14(r1)
 +/* 80377E20 00373A80  83 E1 00 0C */	lwz r31, 0xc(r1)
 +/* 80377E24 00373A84  7C 08 03 A6 */	mtlr r0
 +/* 80377E28 00373A88  38 21 00 10 */	addi r1, r1, 0x10
 +/* 80377E2C 00373A8C  4E 80 00 20 */	blr
 +
 +.global GetSoundCount__Q44nw4r3snd6detail22SoundArchiveFileReaderCFv
 +GetSoundCount__Q44nw4r3snd6detail22SoundArchiveFileReaderCFv:
 +/* 80377E30 00373A90  94 21 FF F0 */	stwu r1, -0x10(r1)
 +/* 80377E34 00373A94  7C 08 02 A6 */	mflr r0
 +/* 80377E38 00373A98  80 A3 00 28 */	lwz r5, 0x28(r3)
 +/* 80377E3C 00373A9C  90 01 00 14 */	stw r0, 0x14(r1)
 +/* 80377E40 00373AA0  88 65 00 00 */	lbz r3, 0(r5)
 +/* 80377E44 00373AA4  80 85 00 04 */	lwz r4, 4(r5)
 +/* 80377E48 00373AA8  48 00 B5 A1 */	bl func_803833E8
 +/* 80377E4C 00373AAC  2C 03 00 00 */	cmpwi r3, 0
 +/* 80377E50 00373AB0  40 82 00 0C */	bne lbl_80377E5C
 +/* 80377E54 00373AB4  38 60 00 00 */	li r3, 0
 +/* 80377E58 00373AB8  48 00 00 08 */	b lbl_80377E60
 +lbl_80377E5C:
 +/* 80377E5C 00373ABC  80 63 00 00 */	lwz r3, 0(r3)
 +lbl_80377E60:
 +/* 80377E60 00373AC0  80 01 00 14 */	lwz r0, 0x14(r1)
 +/* 80377E64 00373AC4  7C 08 03 A6 */	mtlr r0
 +/* 80377E68 00373AC8  38 21 00 10 */	addi r1, r1, 0x10
 +/* 80377E6C 00373ACC  4E 80 00 20 */	blr
 +
 +.global GetPlayerCount__Q44nw4r3snd6detail22SoundArchiveFileReaderCFv
 +GetPlayerCount__Q44nw4r3snd6detail22SoundArchiveFileReaderCFv:
 +/* 80377E70 00373AD0  94 21 FF F0 */	stwu r1, -0x10(r1)
 +/* 80377E74 00373AD4  7C 08 02 A6 */	mflr r0
 +/* 80377E78 00373AD8  80 A3 00 28 */	lwz r5, 0x28(r3)
 +/* 80377E7C 00373ADC  90 01 00 14 */	stw r0, 0x14(r1)
 +/* 80377E80 00373AE0  88 65 00 10 */	lbz r3, 0x10(r5)
 +/* 80377E84 00373AE4  80 85 00 14 */	lwz r4, 0x14(r5)
 +/* 80377E88 00373AE8  48 00 B5 61 */	bl func_803833E8
 +/* 80377E8C 00373AEC  2C 03 00 00 */	cmpwi r3, 0
 +/* 80377E90 00373AF0  40 82 00 0C */	bne lbl_80377E9C
 +/* 80377E94 00373AF4  38 60 00 00 */	li r3, 0
 +/* 80377E98 00373AF8  48 00 00 08 */	b lbl_80377EA0
 +lbl_80377E9C:
 +/* 80377E9C 00373AFC  80 63 00 00 */	lwz r3, 0(r3)
 +lbl_80377EA0:
 +/* 80377EA0 00373B00  80 01 00 14 */	lwz r0, 0x14(r1)
 +/* 80377EA4 00373B04  7C 08 03 A6 */	mtlr r0
 +/* 80377EA8 00373B08  38 21 00 10 */	addi r1, r1, 0x10
 +/* 80377EAC 00373B0C  4E 80 00 20 */	blr
 +
 +.global GetGroupCount__Q44nw4r3snd6detail22SoundArchiveFileReaderCFv
 +GetGroupCount__Q44nw4r3snd6detail22SoundArchiveFileReaderCFv:
 +/* 80377EB0 00373B10  94 21 FF F0 */	stwu r1, -0x10(r1)
 +/* 80377EB4 00373B14  7C 08 02 A6 */	mflr r0
 +/* 80377EB8 00373B18  80 A3 00 28 */	lwz r5, 0x28(r3)
 +/* 80377EBC 00373B1C  90 01 00 14 */	stw r0, 0x14(r1)
 +/* 80377EC0 00373B20  88 65 00 20 */	lbz r3, 0x20(r5)
 +/* 80377EC4 00373B24  80 85 00 24 */	lwz r4, 0x24(r5)
 +/* 80377EC8 00373B28  48 00 B5 21 */	bl func_803833E8
 +/* 80377ECC 00373B2C  2C 03 00 00 */	cmpwi r3, 0
 +/* 80377ED0 00373B30  40 82 00 0C */	bne lbl_80377EDC
 +/* 80377ED4 00373B34  38 60 00 00 */	li r3, 0
 +/* 80377ED8 00373B38  48 00 00 0C */	b lbl_80377EE4
 +lbl_80377EDC:
 +/* 80377EDC 00373B3C  80 63 00 00 */	lwz r3, 0(r3)
 +/* 80377EE0 00373B40  38 63 FF FF */	addi r3, r3, -1
 +lbl_80377EE4:
 +/* 80377EE4 00373B44  80 01 00 14 */	lwz r0, 0x14(r1)
 +/* 80377EE8 00373B48  7C 08 03 A6 */	mtlr r0
 +/* 80377EEC 00373B4C  38 21 00 10 */	addi r1, r1, 0x10
 +/* 80377EF0 00373B50  4E 80 00 20 */	blr
 +
 +.global ReadFileInfo__Q44nw4r3snd6detail22SoundArchiveFileReaderCFUlPQ44nw4r3snd12SoundArchive8FileInfo
 +ReadFileInfo__Q44nw4r3snd6detail22SoundArchiveFileReaderCFUlPQ44nw4r3snd12SoundArchive8FileInfo:
 +/* 80377EF4 00373B54  94 21 FF E0 */	stwu r1, -0x20(r1)
 +/* 80377EF8 00373B58  7C 08 02 A6 */	mflr r0
 +/* 80377EFC 00373B5C  80 C3 00 28 */	lwz r6, 0x28(r3)
 +/* 80377F00 00373B60  90 01 00 24 */	stw r0, 0x24(r1)
 +/* 80377F04 00373B64  93 E1 00 1C */	stw r31, 0x1c(r1)
 +/* 80377F08 00373B68  93 C1 00 18 */	stw r30, 0x18(r1)
 +/* 80377F0C 00373B6C  7C 9E 23 78 */	mr r30, r4
 +/* 80377F10 00373B70  93 A1 00 14 */	stw r29, 0x14(r1)
 +/* 80377F14 00373B74  7C BD 2B 78 */	mr r29, r5
 +/* 80377F18 00373B78  7C C5 33 78 */	mr r5, r6
 +/* 80377F1C 00373B7C  93 81 00 10 */	stw r28, 0x10(r1)
 +/* 80377F20 00373B80  7C 7C 1B 78 */	mr r28, r3
 +/* 80377F24 00373B84  88 66 00 18 */	lbz r3, 0x18(r6)
 +/* 80377F28 00373B88  80 86 00 1C */	lwz r4, 0x1c(r6)
 +/* 80377F2C 00373B8C  48 00 B4 BD */	bl func_803833E8
 +/* 80377F30 00373B90  2C 03 00 00 */	cmpwi r3, 0
 +/* 80377F34 00373B94  40 82 00 0C */	bne lbl_80377F40
 +/* 80377F38 00373B98  38 60 00 00 */	li r3, 0
 +/* 80377F3C 00373B9C  48 00 00 98 */	b lbl_80377FD4
 +lbl_80377F40:
 +/* 80377F40 00373BA0  80 03 00 00 */	lwz r0, 0(r3)
 +/* 80377F44 00373BA4  7C 1E 00 40 */	cmplw r30, r0
 +/* 80377F48 00373BA8  41 80 00 0C */	blt lbl_80377F54
 +/* 80377F4C 00373BAC  38 60 00 00 */	li r3, 0
 +/* 80377F50 00373BB0  48 00 00 84 */	b lbl_80377FD4
 +lbl_80377F54:
 +/* 80377F54 00373BB4  57 C0 18 38 */	slwi r0, r30, 3
 +/* 80377F58 00373BB8  80 BC 00 28 */	lwz r5, 0x28(r28)
 +/* 80377F5C 00373BBC  7C 83 02 14 */	add r4, r3, r0
 +/* 80377F60 00373BC0  88 64 00 04 */	lbz r3, 4(r4)
 +/* 80377F64 00373BC4  80 84 00 08 */	lwz r4, 8(r4)
 +/* 80377F68 00373BC8  48 00 B4 81 */	bl func_803833E8
 +/* 80377F6C 00373BCC  2C 03 00 00 */	cmpwi r3, 0
 +/* 80377F70 00373BD0  7C 7E 1B 78 */	mr r30, r3
 +/* 80377F74 00373BD4  40 82 00 0C */	bne lbl_80377F80
 +/* 80377F78 00373BD8  38 60 00 00 */	li r3, 0
 +/* 80377F7C 00373BDC  48 00 00 58 */	b lbl_80377FD4
 +lbl_80377F80:
 +/* 80377F80 00373BE0  88 63 00 14 */	lbz r3, 0x14(r3)
 +/* 80377F84 00373BE4  80 9E 00 18 */	lwz r4, 0x18(r30)
 +/* 80377F88 00373BE8  80 BC 00 28 */	lwz r5, 0x28(r28)
 +/* 80377F8C 00373BEC  48 00 B4 5D */	bl func_803833E8
 +/* 80377F90 00373BF0  2C 03 00 00 */	cmpwi r3, 0
 +/* 80377F94 00373BF4  7C 7F 1B 78 */	mr r31, r3
 +/* 80377F98 00373BF8  40 82 00 0C */	bne lbl_80377FA4
 +/* 80377F9C 00373BFC  38 60 00 00 */	li r3, 0
 +/* 80377FA0 00373C00  48 00 00 34 */	b lbl_80377FD4
 +lbl_80377FA4:
 +/* 80377FA4 00373C04  80 1E 00 00 */	lwz r0, 0(r30)
 +/* 80377FA8 00373C08  80 BC 00 28 */	lwz r5, 0x28(r28)
 +/* 80377FAC 00373C0C  90 1D 00 00 */	stw r0, 0(r29)
 +/* 80377FB0 00373C10  80 1E 00 04 */	lwz r0, 4(r30)
 +/* 80377FB4 00373C14  90 1D 00 04 */	stw r0, 4(r29)
 +/* 80377FB8 00373C18  88 7E 00 0C */	lbz r3, 0xc(r30)
 +/* 80377FBC 00373C1C  80 9E 00 10 */	lwz r4, 0x10(r30)
 +/* 80377FC0 00373C20  48 00 B4 29 */	bl func_803833E8
 +/* 80377FC4 00373C24  90 7D 00 08 */	stw r3, 8(r29)
 +/* 80377FC8 00373C28  38 60 00 01 */	li r3, 1
 +/* 80377FCC 00373C2C  80 1F 00 00 */	lwz r0, 0(r31)
 +/* 80377FD0 00373C30  90 1D 00 0C */	stw r0, 0xc(r29)
 +lbl_80377FD4:
 +/* 80377FD4 00373C34  80 01 00 24 */	lwz r0, 0x24(r1)
 +/* 80377FD8 00373C38  83 E1 00 1C */	lwz r31, 0x1c(r1)
 +/* 80377FDC 00373C3C  83 C1 00 18 */	lwz r30, 0x18(r1)
 +/* 80377FE0 00373C40  83 A1 00 14 */	lwz r29, 0x14(r1)
 +/* 80377FE4 00373C44  83 81 00 10 */	lwz r28, 0x10(r1)
 +/* 80377FE8 00373C48  7C 08 03 A6 */	mtlr r0
 +/* 80377FEC 00373C4C  38 21 00 20 */	addi r1, r1, 0x20
 +/* 80377FF0 00373C50  4E 80 00 20 */	blr
 +
 +.global ReadFilePos__Q44nw4r3snd6detail22SoundArchiveFileReaderCFUlUlPQ44nw4r3snd12SoundArchive7FilePos
 +ReadFilePos__Q44nw4r3snd6detail22SoundArchiveFileReaderCFUlUlPQ44nw4r3snd12SoundArchive7FilePos:
 +/* 80377FF4 00373C54  94 21 FF E0 */	stwu r1, -0x20(r1)
 +/* 80377FF8 00373C58  7C 08 02 A6 */	mflr r0
 +/* 80377FFC 00373C5C  80 E3 00 28 */	lwz r7, 0x28(r3)
 +/* 80378000 00373C60  90 01 00 24 */	stw r0, 0x24(r1)
 +/* 80378004 00373C64  93 E1 00 1C */	stw r31, 0x1c(r1)
 +/* 80378008 00373C68  7C DF 33 78 */	mr r31, r6
 +/* 8037800C 00373C6C  93 C1 00 18 */	stw r30, 0x18(r1)
 +/* 80378010 00373C70  7C BE 2B 78 */	mr r30, r5
 +/* 80378014 00373C74  7C E5 3B 78 */	mr r5, r7
 +/* 80378018 00373C78  93 A1 00 14 */	stw r29, 0x14(r1)
 +/* 8037801C 00373C7C  7C 9D 23 78 */	mr r29, r4
 +/* 80378020 00373C80  93 81 00 10 */	stw r28, 0x10(r1)
 +/* 80378024 00373C84  7C 7C 1B 78 */	mr r28, r3
 +/* 80378028 00373C88  88 67 00 18 */	lbz r3, 0x18(r7)
 +/* 8037802C 00373C8C  80 87 00 1C */	lwz r4, 0x1c(r7)
 +/* 80378030 00373C90  48 00 B3 B9 */	bl func_803833E8
 +/* 80378034 00373C94  2C 03 00 00 */	cmpwi r3, 0
 +/* 80378038 00373C98  40 82 00 0C */	bne lbl_80378044
 +/* 8037803C 00373C9C  38 60 00 00 */	li r3, 0
 +/* 80378040 00373CA0  48 00 00 B4 */	b lbl_803780F4
 +lbl_80378044:
 +/* 80378044 00373CA4  80 03 00 00 */	lwz r0, 0(r3)
 +/* 80378048 00373CA8  7C 1D 00 40 */	cmplw r29, r0
 +/* 8037804C 00373CAC  41 80 00 0C */	blt lbl_80378058
 +/* 80378050 00373CB0  38 60 00 00 */	li r3, 0
 +/* 80378054 00373CB4  48 00 00 A0 */	b lbl_803780F4
 +lbl_80378058:
 +/* 80378058 00373CB8  57 A0 18 38 */	slwi r0, r29, 3
 +/* 8037805C 00373CBC  80 BC 00 28 */	lwz r5, 0x28(r28)
 +/* 80378060 00373CC0  7C 83 02 14 */	add r4, r3, r0
 +/* 80378064 00373CC4  88 64 00 04 */	lbz r3, 4(r4)
 +/* 80378068 00373CC8  80 84 00 08 */	lwz r4, 8(r4)
 +/* 8037806C 00373CCC  48 00 B3 7D */	bl func_803833E8
 +/* 80378070 00373CD0  2C 03 00 00 */	cmpwi r3, 0
 +/* 80378074 00373CD4  7C 64 1B 78 */	mr r4, r3
 +/* 80378078 00373CD8  40 82 00 0C */	bne lbl_80378084
 +/* 8037807C 00373CDC  38 60 00 00 */	li r3, 0
 +/* 80378080 00373CE0  48 00 00 74 */	b lbl_803780F4
 +lbl_80378084:
 +/* 80378084 00373CE4  88 63 00 14 */	lbz r3, 0x14(r3)
 +/* 80378088 00373CE8  80 84 00 18 */	lwz r4, 0x18(r4)
 +/* 8037808C 00373CEC  80 BC 00 28 */	lwz r5, 0x28(r28)
 +/* 80378090 00373CF0  48 00 B3 59 */	bl func_803833E8
 +/* 80378094 00373CF4  2C 03 00 00 */	cmpwi r3, 0
 +/* 80378098 00373CF8  40 82 00 0C */	bne lbl_803780A4
 +/* 8037809C 00373CFC  38 60 00 00 */	li r3, 0
 +/* 803780A0 00373D00  48 00 00 54 */	b lbl_803780F4
 +lbl_803780A4:
 +/* 803780A4 00373D04  80 03 00 00 */	lwz r0, 0(r3)
 +/* 803780A8 00373D08  7C 1E 00 40 */	cmplw r30, r0
 +/* 803780AC 00373D0C  41 80 00 0C */	blt lbl_803780B8
 +/* 803780B0 00373D10  38 60 00 00 */	li r3, 0
 +/* 803780B4 00373D14  48 00 00 40 */	b lbl_803780F4
 +lbl_803780B8:
 +/* 803780B8 00373D18  57 C0 18 38 */	slwi r0, r30, 3
 +/* 803780BC 00373D1C  80 BC 00 28 */	lwz r5, 0x28(r28)
 +/* 803780C0 00373D20  7C 83 02 14 */	add r4, r3, r0
 +/* 803780C4 00373D24  88 64 00 04 */	lbz r3, 4(r4)
 +/* 803780C8 00373D28  80 84 00 08 */	lwz r4, 8(r4)
 +/* 803780CC 00373D2C  48 00 B3 1D */	bl func_803833E8
 +/* 803780D0 00373D30  2C 03 00 00 */	cmpwi r3, 0
 +/* 803780D4 00373D34  40 82 00 0C */	bne lbl_803780E0
 +/* 803780D8 00373D38  38 60 00 00 */	li r3, 0
 +/* 803780DC 00373D3C  48 00 00 18 */	b lbl_803780F4
 +lbl_803780E0:
 +/* 803780E0 00373D40  80 03 00 00 */	lwz r0, 0(r3)
 +/* 803780E4 00373D44  90 1F 00 00 */	stw r0, 0(r31)
 +/* 803780E8 00373D48  80 03 00 04 */	lwz r0, 4(r3)
 +/* 803780EC 00373D4C  38 60 00 01 */	li r3, 1
 +/* 803780F0 00373D50  90 1F 00 04 */	stw r0, 4(r31)
 +lbl_803780F4:
 +/* 803780F4 00373D54  80 01 00 24 */	lwz r0, 0x24(r1)
 +/* 803780F8 00373D58  83 E1 00 1C */	lwz r31, 0x1c(r1)
 +/* 803780FC 00373D5C  83 C1 00 18 */	lwz r30, 0x18(r1)
 +/* 80378100 00373D60  83 A1 00 14 */	lwz r29, 0x14(r1)
 +/* 80378104 00373D64  83 81 00 10 */	lwz r28, 0x10(r1)
 +/* 80378108 00373D68  7C 08 03 A6 */	mtlr r0
 +/* 8037810C 00373D6C  38 21 00 20 */	addi r1, r1, 0x20
 +/* 80378110 00373D70  4E 80 00 20 */	blr
 +
 +.global ConvertLabelStringToId__Q44nw4r3snd6detail22SoundArchiveFileReaderCFPCQ54nw4r3snd6detail16SoundArchiveFile10StringTreePCc
 +ConvertLabelStringToId__Q44nw4r3snd6detail22SoundArchiveFileReaderCFPCQ54nw4r3snd6detail16SoundArchiveFile10StringTreePCc:
 +/* 80378114 00373D74  94 21 FF E0 */	stwu r1, -0x20(r1)
 +/* 80378118 00373D78  7C 08 02 A6 */	mflr r0
 +/* 8037811C 00373D7C  2C 04 00 00 */	cmpwi r4, 0
 +/* 80378120 00373D80  90 01 00 24 */	stw r0, 0x24(r1)
 +/* 80378124 00373D84  93 E1 00 1C */	stw r31, 0x1c(r1)
 +/* 80378128 00373D88  93 C1 00 18 */	stw r30, 0x18(r1)
 +/* 8037812C 00373D8C  7C BE 2B 78 */	mr r30, r5
 +/* 80378130 00373D90  93 A1 00 14 */	stw r29, 0x14(r1)
 +/* 80378134 00373D94  7C 9D 23 78 */	mr r29, r4
 +/* 80378138 00373D98  93 81 00 10 */	stw r28, 0x10(r1)
 +/* 8037813C 00373D9C  7C 7C 1B 78 */	mr r28, r3
 +/* 80378140 00373DA0  40 82 00 0C */	bne lbl_8037814C
 +/* 80378144 00373DA4  38 60 FF FF */	li r3, -1
 +/* 80378148 00373DA8  48 00 00 F4 */	b lbl_8037823C
 +lbl_8037814C:
 +/* 8037814C 00373DAC  80 64 00 00 */	lwz r3, 0(r4)
 +/* 80378150 00373DB0  80 04 00 04 */	lwz r0, 4(r4)
 +/* 80378154 00373DB4  7C 03 00 40 */	cmplw r3, r0
 +/* 80378158 00373DB8  41 80 00 0C */	blt lbl_80378164
 +/* 8037815C 00373DBC  38 60 FF FF */	li r3, -1
 +/* 80378160 00373DC0  48 00 00 DC */	b lbl_8037823C
 +lbl_80378164:
 +/* 80378164 00373DC4  1C 03 00 14 */	mulli r0, r3, 0x14
 +/* 80378168 00373DC8  7F C3 F3 78 */	mr r3, r30
 +/* 8037816C 00373DCC  7C 84 02 14 */	add r4, r4, r0
 +/* 80378170 00373DD0  3B E4 00 08 */	addi r31, r4, 8
 +/* 80378174 00373DD4  4B E4 E9 F1 */	bl strlen
 +/* 80378178 00373DD8  38 A0 00 01 */	li r5, 1
 +/* 8037817C 00373DDC  48 00 00 48 */	b lbl_803781C4
 +lbl_80378180:
 +/* 80378180 00373DE0  A0 1F 00 02 */	lhz r0, 2(r31)
 +/* 80378184 00373DE4  7C 04 1E 70 */	srawi r4, r0, 3
 +/* 80378188 00373DE8  54 06 07 7E */	clrlwi r6, r0, 0x1d
 +/* 8037818C 00373DEC  7C 04 18 00 */	cmpw r4, r3
 +/* 80378190 00373DF0  40 80 00 24 */	bge lbl_803781B4
 +/* 80378194 00373DF4  7C 1E 20 AE */	lbzx r0, r30, r4
 +/* 80378198 00373DF8  20 86 00 07 */	subfic r4, r6, 7
 +/* 8037819C 00373DFC  7C A4 20 30 */	slw r4, r5, r4
 +/* 803781A0 00373E00  7C 00 07 74 */	extsb r0, r0
 +/* 803781A4 00373E04  7C 80 00 39 */	and. r0, r4, r0
 +/* 803781A8 00373E08  41 82 00 0C */	beq lbl_803781B4
 +/* 803781AC 00373E0C  80 1F 00 08 */	lwz r0, 8(r31)
 +/* 803781B0 00373E10  48 00 00 08 */	b lbl_803781B8
 +lbl_803781B4:
 +/* 803781B4 00373E14  80 1F 00 04 */	lwz r0, 4(r31)
 +lbl_803781B8:
 +/* 803781B8 00373E18  1C 00 00 14 */	mulli r0, r0, 0x14
 +/* 803781BC 00373E1C  7C 9D 02 14 */	add r4, r29, r0
 +/* 803781C0 00373E20  3B E4 00 08 */	addi r31, r4, 8
 +lbl_803781C4:
 +/* 803781C4 00373E24  A0 1F 00 00 */	lhz r0, 0(r31)
 +/* 803781C8 00373E28  54 00 07 FF */	clrlwi. r0, r0, 0x1f
 +/* 803781CC 00373E2C  41 82 FF B4 */	beq lbl_80378180
 +/* 803781D0 00373E30  80 7F 00 0C */	lwz r3, 0xc(r31)
 +/* 803781D4 00373E34  3C 03 00 01 */	addis r0, r3, 1
 +/* 803781D8 00373E38  28 00 FF FF */	cmplwi r0, 0xffff
 +/* 803781DC 00373E3C  40 82 00 0C */	bne lbl_803781E8
 +/* 803781E0 00373E40  38 80 00 00 */	li r4, 0
 +/* 803781E4 00373E44  48 00 00 3C */	b lbl_80378220
 +lbl_803781E8:
 +/* 803781E8 00373E48  80 BC 00 30 */	lwz r5, 0x30(r28)
 +/* 803781EC 00373E4C  2C 05 00 00 */	cmpwi r5, 0
 +/* 803781F0 00373E50  40 82 00 0C */	bne lbl_803781FC
 +/* 803781F4 00373E54  38 80 00 00 */	li r4, 0
 +/* 803781F8 00373E58  48 00 00 28 */	b lbl_80378220
 +lbl_803781FC:
 +/* 803781FC 00373E5C  54 60 10 3A */	slwi r0, r3, 2
 +/* 80378200 00373E60  80 9C 00 2C */	lwz r4, 0x2c(r28)
 +/* 80378204 00373E64  7C 65 02 14 */	add r3, r5, r0
 +/* 80378208 00373E68  80 03 00 04 */	lwz r0, 4(r3)
 +/* 8037820C 00373E6C  2C 00 00 00 */	cmpwi r0, 0
 +/* 80378210 00373E70  40 82 00 0C */	bne lbl_8037821C
 +/* 80378214 00373E74  38 80 00 00 */	li r4, 0
 +/* 80378218 00373E78  48 00 00 08 */	b lbl_80378220
 +lbl_8037821C:
 +/* 8037821C 00373E7C  7C 80 22 14 */	add r4, r0, r4
 +lbl_80378220:
 +/* 80378220 00373E80  7F C3 F3 78 */	mr r3, r30
 +/* 80378224 00373E84  4B E5 62 29 */	bl func_801CE44C
 +/* 80378228 00373E88  2C 03 00 00 */	cmpwi r3, 0
 +/* 8037822C 00373E8C  40 82 00 0C */	bne lbl_80378238
 +/* 80378230 00373E90  80 7F 00 10 */	lwz r3, 0x10(r31)
 +/* 80378234 00373E94  48 00 00 08 */	b lbl_8037823C
 +lbl_80378238:
 +/* 80378238 00373E98  38 60 FF FF */	li r3, -1
 +lbl_8037823C:
 +/* 8037823C 00373E9C  80 01 00 24 */	lwz r0, 0x24(r1)
 +/* 80378240 00373EA0  83 E1 00 1C */	lwz r31, 0x1c(r1)
 +/* 80378244 00373EA4  83 C1 00 18 */	lwz r30, 0x18(r1)
 +/* 80378248 00373EA8  83 A1 00 14 */	lwz r29, 0x14(r1)
 +/* 8037824C 00373EAC  83 81 00 10 */	lwz r28, 0x10(r1)
 +/* 80378250 00373EB0  7C 08 03 A6 */	mtlr r0
 +/* 80378254 00373EB4  38 21 00 20 */	addi r1, r1, 0x20
 +/* 80378258 00373EB8  4E 80 00 20 */	blr
 +
 +.global impl_GetSoundInfoOffset__Q44nw4r3snd6detail22SoundArchiveFileReaderCFUl
 +impl_GetSoundInfoOffset__Q44nw4r3snd6detail22SoundArchiveFileReaderCFUl:
 +/* 8037825C 00373EBC  94 21 FF E0 */	stwu r1, -0x20(r1)
 +/* 80378260 00373EC0  7C 08 02 A6 */	mflr r0
 +/* 80378264 00373EC4  80 A3 00 28 */	lwz r5, 0x28(r3)
 +/* 80378268 00373EC8  90 01 00 24 */	stw r0, 0x24(r1)
 +/* 8037826C 00373ECC  93 E1 00 1C */	stw r31, 0x1c(r1)
 +/* 80378270 00373ED0  7C 9F 23 78 */	mr r31, r4
 +/* 80378274 00373ED4  93 C1 00 18 */	stw r30, 0x18(r1)
 +/* 80378278 00373ED8  7C 7E 1B 78 */	mr r30, r3
 +/* 8037827C 00373EDC  88 65 00 00 */	lbz r3, 0(r5)
 +/* 80378280 00373EE0  80 85 00 04 */	lwz r4, 4(r5)
 +/* 80378284 00373EE4  48 00 B1 65 */	bl func_803833E8
 +/* 80378288 00373EE8  2C 03 00 00 */	cmpwi r3, 0
 +/* 8037828C 00373EEC  40 82 00 10 */	bne lbl_8037829C
 +/* 80378290 00373EF0  80 6D B2 68 */	lwz r3, lbl_80640528-_SDA_BASE_(r13)
 +/* 80378294 00373EF4  80 8D B2 6C */	lwz r4, lbl_8064052C-_SDA_BASE_(r13)
 +/* 80378298 00373EF8  48 00 00 A0 */	b lbl_80378338
 +lbl_8037829C:
 +/* 8037829C 00373EFC  80 03 00 00 */	lwz r0, 0(r3)
 +/* 803782A0 00373F00  7C 1F 00 40 */	cmplw r31, r0
 +/* 803782A4 00373F04  41 80 00 10 */	blt lbl_803782B4
 +/* 803782A8 00373F08  80 6D B2 68 */	lwz r3, lbl_80640528-_SDA_BASE_(r13)
 +/* 803782AC 00373F0C  80 8D B2 6C */	lwz r4, lbl_8064052C-_SDA_BASE_(r13)
 +/* 803782B0 00373F10  48 00 00 88 */	b lbl_80378338
 +lbl_803782B4:
 +/* 803782B4 00373F14  A0 1E 00 06 */	lhz r0, 6(r30)
 +/* 803782B8 00373F18  28 00 01 01 */	cmplwi r0, 0x101
 +/* 803782BC 00373F1C  41 80 00 54 */	blt lbl_80378310
 +/* 803782C0 00373F20  57 E0 18 38 */	slwi r0, r31, 3
 +/* 803782C4 00373F24  80 BE 00 28 */	lwz r5, 0x28(r30)
 +/* 803782C8 00373F28  7C 83 02 14 */	add r4, r3, r0
 +/* 803782CC 00373F2C  88 64 00 04 */	lbz r3, 4(r4)
 +/* 803782D0 00373F30  80 84 00 08 */	lwz r4, 8(r4)
 +/* 803782D4 00373F34  48 00 B1 15 */	bl func_803833E8
 +/* 803782D8 00373F38  2C 03 00 00 */	cmpwi r3, 0
 +/* 803782DC 00373F3C  40 82 00 18 */	bne lbl_803782F4
 +/* 803782E0 00373F40  80 6D B2 68 */	lwz r3, lbl_80640528-_SDA_BASE_(r13)
 +/* 803782E4 00373F44  80 0D B2 6C */	lwz r0, lbl_8064052C-_SDA_BASE_(r13)
 +/* 803782E8 00373F48  90 61 00 10 */	stw r3, 0x10(r1)
 +/* 803782EC 00373F4C  90 01 00 14 */	stw r0, 0x14(r1)
 +/* 803782F0 00373F50  48 00 00 14 */	b lbl_80378304
 +lbl_803782F4:
 +/* 803782F4 00373F54  80 83 00 18 */	lwz r4, 0x18(r3)
 +/* 803782F8 00373F58  80 03 00 1C */	lwz r0, 0x1c(r3)
 +/* 803782FC 00373F5C  90 81 00 10 */	stw r4, 0x10(r1)
 +/* 80378300 00373F60  90 01 00 14 */	stw r0, 0x14(r1)
 +lbl_80378304:
 +/* 80378304 00373F64  80 61 00 10 */	lwz r3, 0x10(r1)
 +/* 80378308 00373F68  80 81 00 14 */	lwz r4, 0x14(r1)
 +/* 8037830C 00373F6C  48 00 00 2C */	b lbl_80378338
 +lbl_80378310:
 +/* 80378310 00373F70  57 E0 18 38 */	slwi r0, r31, 3
 +/* 80378314 00373F74  7C 63 02 14 */	add r3, r3, r0
 +/* 80378318 00373F78  88 83 00 04 */	lbz r4, 4(r3)
 +/* 8037831C 00373F7C  88 03 00 05 */	lbz r0, 5(r3)
 +/* 80378320 00373F80  80 63 00 08 */	lwz r3, 8(r3)
 +/* 80378324 00373F84  98 81 00 08 */	stb r4, 8(r1)
 +/* 80378328 00373F88  38 83 00 1C */	addi r4, r3, 0x1c
 +/* 8037832C 00373F8C  98 01 00 09 */	stb r0, 9(r1)
 +/* 80378330 00373F90  90 81 00 0C */	stw r4, 0xc(r1)
 +/* 80378334 00373F94  80 61 00 08 */	lwz r3, 8(r1)
 +lbl_80378338:
 +/* 80378338 00373F98  80 01 00 24 */	lwz r0, 0x24(r1)
 +/* 8037833C 00373F9C  83 E1 00 1C */	lwz r31, 0x1c(r1)
 +/* 80378340 00373FA0  83 C1 00 18 */	lwz r30, 0x18(r1)
 +/* 80378344 00373FA4  7C 08 03 A6 */	mtlr r0
 +/* 80378348 00373FA8  38 21 00 20 */	addi r1, r1, 0x20
 +/* 8037834C 00373FAC  4E 80 00 20 */	blr
 diff --git a/asm/nw4r/snd/snd_DvdSoundArchive.s b/asm/nw4r/snd/snd_DvdSoundArchive.s index cf0f273..03a4a45 100644 --- a/asm/nw4r/snd/snd_DvdSoundArchive.s +++ b/asm/nw4r/snd/snd_DvdSoundArchive.s @@ -9,12 +9,12 @@ __ct__Q34nw4r3snd15DvdSoundArchiveFv:  /* 8036F690 0036B2F0  90 01 00 14 */	stw r0, 0x14(r1)
  /* 8036F694 0036B2F4  93 E1 00 0C */	stw r31, 0xc(r1)
  /* 8036F698 0036B2F8  7C 7F 1B 78 */	mr r31, r3
 -/* 8036F69C 0036B2FC  48 00 78 F1 */	bl func_80376F8C
 +/* 8036F69C 0036B2FC  48 00 78 F1 */	bl __ct__Q34nw4r3snd12SoundArchiveFv
  /* 8036F6A0 0036B300  3C 80 80 45 */	lis r4, lbl_8044CA08@ha
  /* 8036F6A4 0036B304  38 7F 01 08 */	addi r3, r31, 0x108
  /* 8036F6A8 0036B308  38 84 CA 08 */	addi r4, r4, lbl_8044CA08@l
  /* 8036F6AC 0036B30C  90 9F 00 00 */	stw r4, 0(r31)
 -/* 8036F6B0 0036B310  48 00 7E CD */	bl GLXMemoryInfo___ct
 +/* 8036F6B0 0036B310  48 00 7E CD */	bl __ct__Q44nw4r3snd6detail22SoundArchiveFileReaderFv
  /* 8036F6B4 0036B314  38 00 00 00 */	li r0, 0
  /* 8036F6B8 0036B318  7F E3 FB 78 */	mr r3, r31
  /* 8036F6BC 0036B31C  98 1F 01 88 */	stb r0, 0x188(r31)
 @@ -43,10 +43,10 @@ __dt__Q34nw4r3snd15DvdSoundArchiveFv:  /* 8036F70C 0036B36C  38 00 00 00 */	li r0, 0
  /* 8036F710 0036B370  7F C3 F3 78 */	mr r3, r30
  /* 8036F714 0036B374  98 1E 01 88 */	stb r0, 0x188(r30)
 -/* 8036F718 0036B378  48 00 78 F5 */	bl func_8037700C
 +/* 8036F718 0036B378  48 00 78 F5 */	bl Shutdown__Q34nw4r3snd12SoundArchiveFv
  /* 8036F71C 0036B37C  7F C3 F3 78 */	mr r3, r30
  /* 8036F720 0036B380  38 80 00 00 */	li r4, 0
 -/* 8036F724 0036B384  48 00 78 8D */	bl func_80376FB0
 +/* 8036F724 0036B384  48 00 78 8D */	bl __dt__Q34nw4r3snd12SoundArchiveFv
  /* 8036F728 0036B388  2C 1F 00 00 */	cmpwi r31, 0
  /* 8036F72C 0036B38C  40 81 00 0C */	ble lbl_8036F738
  /* 8036F730 0036B390  7F C3 F3 78 */	mr r3, r30
 @@ -110,10 +110,10 @@ lbl_8036F7C8:  lbl_8036F7FC:
  /* 8036F7FC 0036B45C  7F E4 FB 78 */	mr r4, r31
  /* 8036F800 0036B460  38 7C 01 08 */	addi r3, r28, 0x108
 -/* 8036F804 0036B464  48 00 7D 9D */	bl func_803775A0
 +/* 8036F804 0036B464  48 00 7D 9D */	bl Init__Q44nw4r3snd6detail22SoundArchiveFileReaderFPCv
  /* 8036F808 0036B468  7F 83 E3 78 */	mr r3, r28
  /* 8036F80C 0036B46C  38 9C 01 08 */	addi r4, r28, 0x108
 -/* 8036F810 0036B470  48 00 77 F5 */	bl func_80377004
 +/* 8036F810 0036B470  48 00 77 F5 */	bl Setup__Q34nw4r3snd12SoundArchiveFPQ44nw4r3snd6detail22SoundArchiveFileReader
  /* 8036F814 0036B474  38 00 00 01 */	li r0, 1
  lbl_8036F818:
  /* 8036F818 0036B478  2C 00 00 00 */	cmpwi r0, 0
 @@ -144,7 +144,7 @@ lbl_8036F85C:  /* 8036F870 0036B4D0  38 00 00 00 */	li r0, 0
  /* 8036F874 0036B4D4  7C 04 F1 AE */	stbx r0, r4, r30
  /* 8036F878 0036B4D8  7F 83 E3 78 */	mr r3, r28
 -/* 8036F87C 0036B4DC  48 00 7C 85 */	bl func_80377500
 +/* 8036F87C 0036B4DC  48 00 7C 85 */	bl SetExternalFileRoot__Q34nw4r3snd12SoundArchiveFPCc
  /* 8036F880 0036B4E0  48 00 00 10 */	b lbl_8036F890
  lbl_8036F884:
  /* 8036F884 0036B4E4  3B DE FF FF */	addi r30, r30, -1
 @@ -174,7 +174,7 @@ Close__Q34nw4r3snd15DvdSoundArchiveFv:  /* 8036F8D0 0036B530  38 00 00 00 */	li r0, 0
  /* 8036F8D4 0036B534  7F E3 FB 78 */	mr r3, r31
  /* 8036F8D8 0036B538  98 1F 01 88 */	stb r0, 0x188(r31)
 -/* 8036F8DC 0036B53C  48 00 77 31 */	bl func_8037700C
 +/* 8036F8DC 0036B53C  48 00 77 31 */	bl Shutdown__Q34nw4r3snd12SoundArchiveFv
  /* 8036F8E0 0036B540  80 01 00 14 */	lwz r0, 0x14(r1)
  /* 8036F8E4 0036B544  83 E1 00 0C */	lwz r31, 0xc(r1)
  /* 8036F8E8 0036B548  7C 08 03 A6 */	mtlr r0
 @@ -328,7 +328,7 @@ lbl_8036FAD4:  /* 8036FAD4 0036B734  7F C4 F3 78 */	mr r4, r30
  /* 8036FAD8 0036B738  7F E5 FB 78 */	mr r5, r31
  /* 8036FADC 0036B73C  38 7D 01 08 */	addi r3, r29, 0x108
 -/* 8036FAE0 0036B740  48 00 7B 71 */	bl func_80377650
 +/* 8036FAE0 0036B740  48 00 7B 71 */	bl SetInfoChunk__Q44nw4r3snd6detail22SoundArchiveFileReaderFPCvUl
  /* 8036FAE4 0036B744  38 60 00 01 */	li r3, 1
  lbl_8036FAE8:
  /* 8036FAE8 0036B748  80 01 00 24 */	lwz r0, 0x24(r1)
 diff --git a/asm/nw4r/snd/snd_MemorySoundArchive.s b/asm/nw4r/snd/snd_MemorySoundArchive.s index 63c9634..e8f0a1a 100644 --- a/asm/nw4r/snd/snd_MemorySoundArchive.s +++ b/asm/nw4r/snd/snd_MemorySoundArchive.s @@ -6,4 +6,4 @@  Shutdown__Q34nw4r3snd18MemorySoundArchiveFv:
  /* 80371DEC 0036DA4C  38 00 00 00 */	li r0, 0
  /* 80371DF0 0036DA50  90 03 01 08 */	stw r0, 0x108(r3)
 -/* 80371DF4 0036DA54  48 00 52 18 */	b func_8037700C
 +/* 80371DF4 0036DA54  48 00 52 18 */	b Shutdown__Q34nw4r3snd12SoundArchiveFv
 diff --git a/asm/nw4r/snd/snd_NandSoundArchive.s b/asm/nw4r/snd/snd_NandSoundArchive.s index 1f0c187..d518709 100644 --- a/asm/nw4r/snd/snd_NandSoundArchive.s +++ b/asm/nw4r/snd/snd_NandSoundArchive.s @@ -18,7 +18,7 @@ Close__Q34nw4r3snd16NandSoundArchiveFv:  /* 80372F74 0036EBD4  98 1F 01 D8 */	stb r0, 0x1d8(r31)
  lbl_80372F78:
  /* 80372F78 0036EBD8  7F E3 FB 78 */	mr r3, r31
 -/* 80372F7C 0036EBDC  48 00 40 91 */	bl func_8037700C
 +/* 80372F7C 0036EBDC  48 00 40 91 */	bl Shutdown__Q34nw4r3snd12SoundArchiveFv
  /* 80372F80 0036EBE0  80 01 00 14 */	lwz r0, 0x14(r1)
  /* 80372F84 0036EBE4  83 E1 00 0C */	lwz r31, 0xc(r1)
  /* 80372F88 0036EBE8  7C 08 03 A6 */	mtlr r0
 diff --git a/asm/text_10_6.s b/asm/text_10_6.s index 0cb048f..676fe82 100644 --- a/asm/text_10_6.s +++ b/asm/text_10_6.s @@ -2,1500 +2,6 @@  .section .text, "ax"  # 0x80006980 - 0x803E1E60
 -.global func_80376F8C
 -func_80376F8C:
 -/* 80376F8C 00372BEC  3C A0 80 45 */	lis r5, lbl_8044CE48@ha
 -/* 80376F90 00372BF0  38 80 00 00 */	li r4, 0
 -/* 80376F94 00372BF4  38 A5 CE 48 */	addi r5, r5, lbl_8044CE48@l
 -/* 80376F98 00372BF8  38 00 00 2F */	li r0, 0x2f
 -/* 80376F9C 00372BFC  90 A3 00 00 */	stw r5, 0(r3)
 -/* 80376FA0 00372C00  90 83 00 04 */	stw r4, 4(r3)
 -/* 80376FA4 00372C04  98 03 00 08 */	stb r0, 8(r3)
 -/* 80376FA8 00372C08  98 83 00 09 */	stb r4, 9(r3)
 -/* 80376FAC 00372C0C  4E 80 00 20 */	blr
 -
 -.global func_80376FB0
 -func_80376FB0:
 -/* 80376FB0 00372C10  94 21 FF F0 */	stwu r1, -0x10(r1)
 -/* 80376FB4 00372C14  7C 08 02 A6 */	mflr r0
 -/* 80376FB8 00372C18  2C 03 00 00 */	cmpwi r3, 0
 -/* 80376FBC 00372C1C  90 01 00 14 */	stw r0, 0x14(r1)
 -/* 80376FC0 00372C20  93 E1 00 0C */	stw r31, 0xc(r1)
 -/* 80376FC4 00372C24  7C 7F 1B 78 */	mr r31, r3
 -/* 80376FC8 00372C28  41 82 00 10 */	beq lbl_80376FD8
 -/* 80376FCC 00372C2C  2C 04 00 00 */	cmpwi r4, 0
 -/* 80376FD0 00372C30  40 81 00 08 */	ble lbl_80376FD8
 -/* 80376FD4 00372C34  4B E6 3A E5 */	bl func_801DAAB8
 -lbl_80376FD8:
 -/* 80376FD8 00372C38  7F E3 FB 78 */	mr r3, r31
 -/* 80376FDC 00372C3C  83 E1 00 0C */	lwz r31, 0xc(r1)
 -/* 80376FE0 00372C40  80 01 00 14 */	lwz r0, 0x14(r1)
 -/* 80376FE4 00372C44  7C 08 03 A6 */	mtlr r0
 -/* 80376FE8 00372C48  38 21 00 10 */	addi r1, r1, 0x10
 -/* 80376FEC 00372C4C  4E 80 00 20 */	blr
 -
 -.global func_80376FF0
 -func_80376FF0:
 -/* 80376FF0 00372C50  80 63 00 04 */	lwz r3, 4(r3)
 -/* 80376FF4 00372C54  7C 03 00 D0 */	neg r0, r3
 -/* 80376FF8 00372C58  7C 00 1B 78 */	or r0, r0, r3
 -/* 80376FFC 00372C5C  54 03 0F FE */	srwi r3, r0, 0x1f
 -/* 80377000 00372C60  4E 80 00 20 */	blr
 -
 -.global func_80377004
 -func_80377004:
 -/* 80377004 00372C64  90 83 00 04 */	stw r4, 4(r3)
 -/* 80377008 00372C68  4E 80 00 20 */	blr
 -
 -.global func_8037700C
 -func_8037700C:
 -/* 8037700C 00372C6C  38 80 00 00 */	li r4, 0
 -/* 80377010 00372C70  38 00 00 2F */	li r0, 0x2f
 -/* 80377014 00372C74  90 83 00 04 */	stw r4, 4(r3)
 -/* 80377018 00372C78  98 03 00 08 */	stb r0, 8(r3)
 -/* 8037701C 00372C7C  98 83 00 09 */	stb r4, 9(r3)
 -/* 80377020 00372C80  4E 80 00 20 */	blr
 -
 -.global func_80377024
 -func_80377024:
 -/* 80377024 00372C84  80 63 00 04 */	lwz r3, 4(r3)
 -/* 80377028 00372C88  48 00 0E 08 */	b lbl_80377E30
 -
 -.global func_8037702C
 -func_8037702C:
 -/* 8037702C 00372C8C  80 63 00 04 */	lwz r3, 4(r3)
 -/* 80377030 00372C90  48 00 0E 40 */	b lbl_80377E70
 -
 -.global func_80377034
 -func_80377034:
 -/* 80377034 00372C94  80 63 00 04 */	lwz r3, 4(r3)
 -/* 80377038 00372C98  48 00 0E 78 */	b lbl_80377EB0
 -lbl_8037703C:
 -/* 8037703C 00372C9C  80 63 00 04 */	lwz r3, 4(r3)
 -/* 80377040 00372CA0  7C 85 23 78 */	mr r5, r4
 -/* 80377044 00372CA4  80 83 00 34 */	lwz r4, 0x34(r3)
 -/* 80377048 00372CA8  48 00 10 CC */	b lbl_80378114
 -
 -.global func_8037704C
 -func_8037704C:
 -/* 8037704C 00372CAC  80 63 00 04 */	lwz r3, 4(r3)
 -/* 80377050 00372CB0  48 00 06 0C */	b lbl_8037765C
 -
 -.global func_80377054
 -func_80377054:
 -/* 80377054 00372CB4  80 63 00 04 */	lwz r3, 4(r3)
 -/* 80377058 00372CB8  48 00 06 F4 */	b lbl_8037774C
 -
 -.global func_8037705C
 -func_8037705C:
 -/* 8037705C 00372CBC  80 63 00 04 */	lwz r3, 4(r3)
 -/* 80377060 00372CC0  48 00 08 0C */	b lbl_8037786C
 -
 -.global func_80377064
 -func_80377064:
 -/* 80377064 00372CC4  80 63 00 04 */	lwz r3, 4(r3)
 -/* 80377068 00372CC8  48 00 08 B0 */	b lbl_80377918
 -
 -.global func_8037706C
 -func_8037706C:
 -/* 8037706C 00372CCC  80 63 00 04 */	lwz r3, 4(r3)
 -/* 80377070 00372CD0  48 00 08 F4 */	b lbl_80377964
 -
 -.global func_80377074
 -func_80377074:
 -/* 80377074 00372CD4  80 63 00 04 */	lwz r3, 4(r3)
 -/* 80377078 00372CD8  48 00 0A 34 */	b lbl_80377AAC
 -
 -.global func_8037707C
 -func_8037707C:
 -/* 8037707C 00372CDC  80 63 00 04 */	lwz r3, 4(r3)
 -/* 80377080 00372CE0  48 00 0D 2C */	b lbl_80377DAC
 -
 -.global func_80377084
 -func_80377084:
 -/* 80377084 00372CE4  80 63 00 04 */	lwz r3, 4(r3)
 -/* 80377088 00372CE8  48 00 09 78 */	b lbl_80377A00
 -
 -.global func_8037708C
 -func_8037708C:
 -/* 8037708C 00372CEC  80 63 00 04 */	lwz r3, 4(r3)
 -/* 80377090 00372CF0  48 00 0A D4 */	b func_80377B64
 -
 -.global func_80377094
 -func_80377094:
 -/* 80377094 00372CF4  80 63 00 04 */	lwz r3, 4(r3)
 -/* 80377098 00372CF8  48 00 0B DC */	b func_80377C74
 -
 -.global func_8037709C
 -func_8037709C:
 -/* 8037709C 00372CFC  80 63 00 04 */	lwz r3, 4(r3)
 -/* 803770A0 00372D00  48 00 0E 54 */	b func_80377EF4
 -
 -.global func_803770A4
 -func_803770A4:
 -/* 803770A4 00372D04  80 63 00 04 */	lwz r3, 4(r3)
 -/* 803770A8 00372D08  48 00 0F 4C */	b func_80377FF4
 -
 -.global func_803770AC
 -func_803770AC:
 -/* 803770AC 00372D0C  94 21 FD 90 */	stwu r1, -0x270(r1)
 -/* 803770B0 00372D10  7C 08 02 A6 */	mflr r0
 -/* 803770B4 00372D14  90 01 02 74 */	stw r0, 0x274(r1)
 -/* 803770B8 00372D18  39 61 02 70 */	addi r11, r1, 0x270
 -/* 803770BC 00372D1C  4B E5 00 65 */	bl _savegpr_25
 -/* 803770C0 00372D20  7C 7D 1B 78 */	mr r29, r3
 -/* 803770C4 00372D24  80 63 00 04 */	lwz r3, 4(r3)
 -/* 803770C8 00372D28  7C BE 2B 78 */	mr r30, r5
 -/* 803770CC 00372D2C  7C 99 23 78 */	mr r25, r4
 -/* 803770D0 00372D30  7C DF 33 78 */	mr r31, r6
 -/* 803770D4 00372D34  38 A1 00 10 */	addi r5, r1, 0x10
 -/* 803770D8 00372D38  48 00 0E 1D */	bl func_80377EF4
 -/* 803770DC 00372D3C  2C 03 00 00 */	cmpwi r3, 0
 -/* 803770E0 00372D40  40 82 00 0C */	bne lbl_803770EC
 -/* 803770E4 00372D44  38 60 00 00 */	li r3, 0
 -/* 803770E8 00372D48  48 00 01 D0 */	b lbl_803772B8
 -lbl_803770EC:
 -/* 803770EC 00372D4C  83 61 00 18 */	lwz r27, 0x18(r1)
 -/* 803770F0 00372D50  2C 1B 00 00 */	cmpwi r27, 0
 -/* 803770F4 00372D54  41 82 00 90 */	beq lbl_80377184
 -/* 803770F8 00372D58  88 1B 00 00 */	lbz r0, 0(r27)
 -/* 803770FC 00372D5C  2C 00 00 2F */	cmpwi r0, 0x2f
 -/* 80377100 00372D60  40 82 00 08 */	bne lbl_80377108
 -/* 80377104 00372D64  48 00 00 54 */	b lbl_80377158
 -lbl_80377108:
 -/* 80377108 00372D68  7F 63 DB 78 */	mr r3, r27
 -/* 8037710C 00372D6C  4B E4 FA 59 */	bl strlen
 -/* 80377110 00372D70  7C 7C 1B 78 */	mr r28, r3
 -/* 80377114 00372D74  38 7D 00 08 */	addi r3, r29, 8
 -/* 80377118 00372D78  4B E4 FA 4D */	bl strlen
 -/* 8037711C 00372D7C  7C 1C 1A 14 */	add r0, r28, r3
 -/* 80377120 00372D80  7C 65 1B 78 */	mr r5, r3
 -/* 80377124 00372D84  28 00 01 00 */	cmplwi r0, 0x100
 -/* 80377128 00372D88  41 80 00 0C */	blt lbl_80377134
 -/* 8037712C 00372D8C  38 60 00 00 */	li r3, 0
 -/* 80377130 00372D90  48 00 01 88 */	b lbl_803772B8
 -lbl_80377134:
 -/* 80377134 00372D94  38 61 01 50 */	addi r3, r1, 0x150
 -/* 80377138 00372D98  38 9D 00 08 */	addi r4, r29, 8
 -/* 8037713C 00372D9C  38 A5 00 01 */	addi r5, r5, 1
 -/* 80377140 00372DA0  4B E5 72 51 */	bl func_801CE390
 -/* 80377144 00372DA4  7F 64 DB 78 */	mr r4, r27
 -/* 80377148 00372DA8  38 61 01 50 */	addi r3, r1, 0x150
 -/* 8037714C 00372DAC  38 BC 00 01 */	addi r5, r28, 1
 -/* 80377150 00372DB0  4B E5 72 B1 */	bl func_801CE400
 -/* 80377154 00372DB4  3B 61 01 50 */	addi r27, r1, 0x150
 -lbl_80377158:
 -/* 80377158 00372DB8  81 9D 00 00 */	lwz r12, 0(r29)
 -/* 8037715C 00372DBC  7F A3 EB 78 */	mr r3, r29
 -/* 80377160 00372DC0  7F C4 F3 78 */	mr r4, r30
 -/* 80377164 00372DC4  7F E5 FB 78 */	mr r5, r31
 -/* 80377168 00372DC8  81 8C 00 1C */	lwz r12, 0x1c(r12)
 -/* 8037716C 00372DCC  7F 66 DB 78 */	mr r6, r27
 -/* 80377170 00372DD0  38 E0 00 00 */	li r7, 0
 -/* 80377174 00372DD4  39 00 00 00 */	li r8, 0
 -/* 80377178 00372DD8  7D 89 03 A6 */	mtctr r12
 -/* 8037717C 00372DDC  4E 80 04 21 */	bctrl
 -/* 80377180 00372DE0  48 00 01 38 */	b lbl_803772B8
 -lbl_80377184:
 -/* 80377184 00372DE4  80 7D 00 04 */	lwz r3, 4(r29)
 -/* 80377188 00372DE8  7F 24 CB 78 */	mr r4, r25
 -/* 8037718C 00372DEC  38 C1 00 08 */	addi r6, r1, 8
 -/* 80377190 00372DF0  38 A0 00 00 */	li r5, 0
 -/* 80377194 00372DF4  48 00 0E 61 */	bl func_80377FF4
 -/* 80377198 00372DF8  2C 03 00 00 */	cmpwi r3, 0
 -/* 8037719C 00372DFC  40 82 00 0C */	bne lbl_803771A8
 -/* 803771A0 00372E00  38 60 00 00 */	li r3, 0
 -/* 803771A4 00372E04  48 00 01 14 */	b lbl_803772B8
 -lbl_803771A8:
 -/* 803771A8 00372E08  80 7D 00 04 */	lwz r3, 4(r29)
 -/* 803771AC 00372E0C  38 A1 00 38 */	addi r5, r1, 0x38
 -/* 803771B0 00372E10  80 81 00 08 */	lwz r4, 8(r1)
 -/* 803771B4 00372E14  48 00 09 B1 */	bl func_80377B64
 -/* 803771B8 00372E18  2C 03 00 00 */	cmpwi r3, 0
 -/* 803771BC 00372E1C  40 82 00 0C */	bne lbl_803771C8
 -/* 803771C0 00372E20  38 60 00 00 */	li r3, 0
 -/* 803771C4 00372E24  48 00 00 F4 */	b lbl_803772B8
 -lbl_803771C8:
 -/* 803771C8 00372E28  80 7D 00 04 */	lwz r3, 4(r29)
 -/* 803771CC 00372E2C  38 C1 00 20 */	addi r6, r1, 0x20
 -/* 803771D0 00372E30  80 81 00 08 */	lwz r4, 8(r1)
 -/* 803771D4 00372E34  80 A1 00 0C */	lwz r5, 0xc(r1)
 -/* 803771D8 00372E38  48 00 0A 9D */	bl func_80377C74
 -/* 803771DC 00372E3C  2C 03 00 00 */	cmpwi r3, 0
 -/* 803771E0 00372E40  40 82 00 0C */	bne lbl_803771EC
 -/* 803771E4 00372E44  38 60 00 00 */	li r3, 0
 -/* 803771E8 00372E48  48 00 00 D0 */	b lbl_803772B8
 -lbl_803771EC:
 -/* 803771EC 00372E4C  83 61 00 3C */	lwz r27, 0x3c(r1)
 -/* 803771F0 00372E50  80 61 00 40 */	lwz r3, 0x40(r1)
 -/* 803771F4 00372E54  80 01 00 24 */	lwz r0, 0x24(r1)
 -/* 803771F8 00372E58  2C 1B 00 00 */	cmpwi r27, 0
 -/* 803771FC 00372E5C  83 21 00 28 */	lwz r25, 0x28(r1)
 -/* 80377200 00372E60  7F 43 02 14 */	add r26, r3, r0
 -/* 80377204 00372E64  41 82 00 90 */	beq lbl_80377294
 -/* 80377208 00372E68  88 1B 00 00 */	lbz r0, 0(r27)
 -/* 8037720C 00372E6C  2C 00 00 2F */	cmpwi r0, 0x2f
 -/* 80377210 00372E70  40 82 00 08 */	bne lbl_80377218
 -/* 80377214 00372E74  48 00 00 54 */	b lbl_80377268
 -lbl_80377218:
 -/* 80377218 00372E78  7F 63 DB 78 */	mr r3, r27
 -/* 8037721C 00372E7C  4B E4 F9 49 */	bl strlen
 -/* 80377220 00372E80  7C 7C 1B 78 */	mr r28, r3
 -/* 80377224 00372E84  38 7D 00 08 */	addi r3, r29, 8
 -/* 80377228 00372E88  4B E4 F9 3D */	bl strlen
 -/* 8037722C 00372E8C  7C 1C 1A 14 */	add r0, r28, r3
 -/* 80377230 00372E90  7C 65 1B 78 */	mr r5, r3
 -/* 80377234 00372E94  28 00 01 00 */	cmplwi r0, 0x100
 -/* 80377238 00372E98  41 80 00 0C */	blt lbl_80377244
 -/* 8037723C 00372E9C  38 60 00 00 */	li r3, 0
 -/* 80377240 00372EA0  48 00 00 78 */	b lbl_803772B8
 -lbl_80377244:
 -/* 80377244 00372EA4  38 61 00 50 */	addi r3, r1, 0x50
 -/* 80377248 00372EA8  38 9D 00 08 */	addi r4, r29, 8
 -/* 8037724C 00372EAC  38 A5 00 01 */	addi r5, r5, 1
 -/* 80377250 00372EB0  4B E5 71 41 */	bl func_801CE390
 -/* 80377254 00372EB4  7F 64 DB 78 */	mr r4, r27
 -/* 80377258 00372EB8  38 61 00 50 */	addi r3, r1, 0x50
 -/* 8037725C 00372EBC  38 BC 00 01 */	addi r5, r28, 1
 -/* 80377260 00372EC0  4B E5 71 A1 */	bl func_801CE400
 -/* 80377264 00372EC4  3B 61 00 50 */	addi r27, r1, 0x50
 -lbl_80377268:
 -/* 80377268 00372EC8  81 9D 00 00 */	lwz r12, 0(r29)
 -/* 8037726C 00372ECC  7F A3 EB 78 */	mr r3, r29
 -/* 80377270 00372ED0  7F C4 F3 78 */	mr r4, r30
 -/* 80377274 00372ED4  7F E5 FB 78 */	mr r5, r31
 -/* 80377278 00372ED8  81 8C 00 1C */	lwz r12, 0x1c(r12)
 -/* 8037727C 00372EDC  7F 66 DB 78 */	mr r6, r27
 -/* 80377280 00372EE0  7F 47 D3 78 */	mr r7, r26
 -/* 80377284 00372EE4  7F 28 CB 78 */	mr r8, r25
 -/* 80377288 00372EE8  7D 89 03 A6 */	mtctr r12
 -/* 8037728C 00372EEC  4E 80 04 21 */	bctrl
 -/* 80377290 00372EF0  48 00 00 28 */	b lbl_803772B8
 -lbl_80377294:
 -/* 80377294 00372EF4  81 9D 00 00 */	lwz r12, 0(r29)
 -/* 80377298 00372EF8  7F A3 EB 78 */	mr r3, r29
 -/* 8037729C 00372EFC  7F C4 F3 78 */	mr r4, r30
 -/* 803772A0 00372F00  7F E5 FB 78 */	mr r5, r31
 -/* 803772A4 00372F04  81 8C 00 18 */	lwz r12, 0x18(r12)
 -/* 803772A8 00372F08  7F 46 D3 78 */	mr r6, r26
 -/* 803772AC 00372F0C  7F 27 CB 78 */	mr r7, r25
 -/* 803772B0 00372F10  7D 89 03 A6 */	mtctr r12
 -/* 803772B4 00372F14  4E 80 04 21 */	bctrl
 -lbl_803772B8:
 -/* 803772B8 00372F18  39 61 02 70 */	addi r11, r1, 0x270
 -/* 803772BC 00372F1C  4B E4 FE B1 */	bl func_801C716C
 -/* 803772C0 00372F20  80 01 02 74 */	lwz r0, 0x274(r1)
 -/* 803772C4 00372F24  7C 08 03 A6 */	mtlr r0
 -/* 803772C8 00372F28  38 21 02 70 */	addi r1, r1, 0x270
 -/* 803772CC 00372F2C  4E 80 00 20 */	blr
 -
 -.global func_803772D0
 -func_803772D0:
 -/* 803772D0 00372F30  94 21 FE C0 */	stwu r1, -0x140(r1)
 -/* 803772D4 00372F34  7C 08 02 A6 */	mflr r0
 -/* 803772D8 00372F38  90 01 01 44 */	stw r0, 0x144(r1)
 -/* 803772DC 00372F3C  39 61 01 40 */	addi r11, r1, 0x140
 -/* 803772E0 00372F40  4B E4 FE 41 */	bl _savegpr_25
 -/* 803772E4 00372F44  7C 79 1B 78 */	mr r25, r3
 -/* 803772E8 00372F48  80 63 00 04 */	lwz r3, 4(r3)
 -/* 803772EC 00372F4C  7C BA 2B 78 */	mr r26, r5
 -/* 803772F0 00372F50  7C DB 33 78 */	mr r27, r6
 -/* 803772F4 00372F54  38 A1 00 08 */	addi r5, r1, 8
 -/* 803772F8 00372F58  48 00 08 6D */	bl func_80377B64
 -/* 803772FC 00372F5C  2C 03 00 00 */	cmpwi r3, 0
 -/* 80377300 00372F60  40 82 00 0C */	bne lbl_8037730C
 -/* 80377304 00372F64  38 60 00 00 */	li r3, 0
 -/* 80377308 00372F68  48 00 00 C8 */	b lbl_803773D0
 -lbl_8037730C:
 -/* 8037730C 00372F6C  83 81 00 0C */	lwz r28, 0xc(r1)
 -/* 80377310 00372F70  2C 1C 00 00 */	cmpwi r28, 0
 -/* 80377314 00372F74  41 82 00 98 */	beq lbl_803773AC
 -/* 80377318 00372F78  88 1C 00 00 */	lbz r0, 0(r28)
 -/* 8037731C 00372F7C  83 A1 00 14 */	lwz r29, 0x14(r1)
 -/* 80377320 00372F80  2C 00 00 2F */	cmpwi r0, 0x2f
 -/* 80377324 00372F84  83 C1 00 10 */	lwz r30, 0x10(r1)
 -/* 80377328 00372F88  40 82 00 08 */	bne lbl_80377330
 -/* 8037732C 00372F8C  48 00 00 54 */	b lbl_80377380
 -lbl_80377330:
 -/* 80377330 00372F90  7F 83 E3 78 */	mr r3, r28
 -/* 80377334 00372F94  4B E4 F8 31 */	bl strlen
 -/* 80377338 00372F98  7C 7F 1B 78 */	mr r31, r3
 -/* 8037733C 00372F9C  38 79 00 08 */	addi r3, r25, 8
 -/* 80377340 00372FA0  4B E4 F8 25 */	bl strlen
 -/* 80377344 00372FA4  7C 1F 1A 14 */	add r0, r31, r3
 -/* 80377348 00372FA8  7C 65 1B 78 */	mr r5, r3
 -/* 8037734C 00372FAC  28 00 01 00 */	cmplwi r0, 0x100
 -/* 80377350 00372FB0  41 80 00 0C */	blt lbl_8037735C
 -/* 80377354 00372FB4  38 60 00 00 */	li r3, 0
 -/* 80377358 00372FB8  48 00 00 78 */	b lbl_803773D0
 -lbl_8037735C:
 -/* 8037735C 00372FBC  38 61 00 20 */	addi r3, r1, 0x20
 -/* 80377360 00372FC0  38 99 00 08 */	addi r4, r25, 8
 -/* 80377364 00372FC4  38 A5 00 01 */	addi r5, r5, 1
 -/* 80377368 00372FC8  4B E5 70 29 */	bl func_801CE390
 -/* 8037736C 00372FCC  7F 84 E3 78 */	mr r4, r28
 -/* 80377370 00372FD0  38 61 00 20 */	addi r3, r1, 0x20
 -/* 80377374 00372FD4  38 BF 00 01 */	addi r5, r31, 1
 -/* 80377378 00372FD8  4B E5 70 89 */	bl func_801CE400
 -/* 8037737C 00372FDC  3B 81 00 20 */	addi r28, r1, 0x20
 -lbl_80377380:
 -/* 80377380 00372FE0  81 99 00 00 */	lwz r12, 0(r25)
 -/* 80377384 00372FE4  7F 23 CB 78 */	mr r3, r25
 -/* 80377388 00372FE8  7F 44 D3 78 */	mr r4, r26
 -/* 8037738C 00372FEC  7F 65 DB 78 */	mr r5, r27
 -/* 80377390 00372FF0  81 8C 00 1C */	lwz r12, 0x1c(r12)
 -/* 80377394 00372FF4  7F 86 E3 78 */	mr r6, r28
 -/* 80377398 00372FF8  7F C7 F3 78 */	mr r7, r30
 -/* 8037739C 00372FFC  7F A8 EB 78 */	mr r8, r29
 -/* 803773A0 00373000  7D 89 03 A6 */	mtctr r12
 -/* 803773A4 00373004  4E 80 04 21 */	bctrl
 -/* 803773A8 00373008  48 00 00 28 */	b lbl_803773D0
 -lbl_803773AC:
 -/* 803773AC 0037300C  81 99 00 00 */	lwz r12, 0(r25)
 -/* 803773B0 00373010  7F 23 CB 78 */	mr r3, r25
 -/* 803773B4 00373014  7F 44 D3 78 */	mr r4, r26
 -/* 803773B8 00373018  7F 65 DB 78 */	mr r5, r27
 -/* 803773BC 0037301C  81 8C 00 18 */	lwz r12, 0x18(r12)
 -/* 803773C0 00373020  80 C1 00 10 */	lwz r6, 0x10(r1)
 -/* 803773C4 00373024  80 E1 00 14 */	lwz r7, 0x14(r1)
 -/* 803773C8 00373028  7D 89 03 A6 */	mtctr r12
 -/* 803773CC 0037302C  4E 80 04 21 */	bctrl
 -lbl_803773D0:
 -/* 803773D0 00373030  39 61 01 40 */	addi r11, r1, 0x140
 -/* 803773D4 00373034  4B E4 FD 99 */	bl func_801C716C
 -/* 803773D8 00373038  80 01 01 44 */	lwz r0, 0x144(r1)
 -/* 803773DC 0037303C  7C 08 03 A6 */	mtlr r0
 -/* 803773E0 00373040  38 21 01 40 */	addi r1, r1, 0x140
 -/* 803773E4 00373044  4E 80 00 20 */	blr
 -
 -.global func_803773E8
 -func_803773E8:
 -/* 803773E8 00373048  94 21 FE C0 */	stwu r1, -0x140(r1)
 -/* 803773EC 0037304C  7C 08 02 A6 */	mflr r0
 -/* 803773F0 00373050  90 01 01 44 */	stw r0, 0x144(r1)
 -/* 803773F4 00373054  39 61 01 40 */	addi r11, r1, 0x140
 -/* 803773F8 00373058  4B E4 FD 29 */	bl _savegpr_25
 -/* 803773FC 0037305C  7C 79 1B 78 */	mr r25, r3
 -/* 80377400 00373060  80 63 00 04 */	lwz r3, 4(r3)
 -/* 80377404 00373064  7C BA 2B 78 */	mr r26, r5
 -/* 80377408 00373068  7C DB 33 78 */	mr r27, r6
 -/* 8037740C 0037306C  38 A1 00 08 */	addi r5, r1, 8
 -/* 80377410 00373070  48 00 07 55 */	bl func_80377B64
 -/* 80377414 00373074  2C 03 00 00 */	cmpwi r3, 0
 -/* 80377418 00373078  40 82 00 0C */	bne lbl_80377424
 -/* 8037741C 0037307C  38 60 00 00 */	li r3, 0
 -/* 80377420 00373080  48 00 00 C8 */	b lbl_803774E8
 -lbl_80377424:
 -/* 80377424 00373084  83 81 00 0C */	lwz r28, 0xc(r1)
 -/* 80377428 00373088  2C 1C 00 00 */	cmpwi r28, 0
 -/* 8037742C 0037308C  41 82 00 98 */	beq lbl_803774C4
 -/* 80377430 00373090  88 1C 00 00 */	lbz r0, 0(r28)
 -/* 80377434 00373094  83 A1 00 1C */	lwz r29, 0x1c(r1)
 -/* 80377438 00373098  2C 00 00 2F */	cmpwi r0, 0x2f
 -/* 8037743C 0037309C  83 C1 00 18 */	lwz r30, 0x18(r1)
 -/* 80377440 003730A0  40 82 00 08 */	bne lbl_80377448
 -/* 80377444 003730A4  48 00 00 54 */	b lbl_80377498
 -lbl_80377448:
 -/* 80377448 003730A8  7F 83 E3 78 */	mr r3, r28
 -/* 8037744C 003730AC  4B E4 F7 19 */	bl strlen
 -/* 80377450 003730B0  7C 7F 1B 78 */	mr r31, r3
 -/* 80377454 003730B4  38 79 00 08 */	addi r3, r25, 8
 -/* 80377458 003730B8  4B E4 F7 0D */	bl strlen
 -/* 8037745C 003730BC  7C 1F 1A 14 */	add r0, r31, r3
 -/* 80377460 003730C0  7C 65 1B 78 */	mr r5, r3
 -/* 80377464 003730C4  28 00 01 00 */	cmplwi r0, 0x100
 -/* 80377468 003730C8  41 80 00 0C */	blt lbl_80377474
 -/* 8037746C 003730CC  38 60 00 00 */	li r3, 0
 -/* 80377470 003730D0  48 00 00 78 */	b lbl_803774E8
 -lbl_80377474:
 -/* 80377474 003730D4  38 61 00 20 */	addi r3, r1, 0x20
 -/* 80377478 003730D8  38 99 00 08 */	addi r4, r25, 8
 -/* 8037747C 003730DC  38 A5 00 01 */	addi r5, r5, 1
 -/* 80377480 003730E0  4B E5 6F 11 */	bl func_801CE390
 -/* 80377484 003730E4  7F 84 E3 78 */	mr r4, r28
 -/* 80377488 003730E8  38 61 00 20 */	addi r3, r1, 0x20
 -/* 8037748C 003730EC  38 BF 00 01 */	addi r5, r31, 1
 -/* 80377490 003730F0  4B E5 6F 71 */	bl func_801CE400
 -/* 80377494 003730F4  3B 81 00 20 */	addi r28, r1, 0x20
 -lbl_80377498:
 -/* 80377498 003730F8  81 99 00 00 */	lwz r12, 0(r25)
 -/* 8037749C 003730FC  7F 23 CB 78 */	mr r3, r25
 -/* 803774A0 00373100  7F 44 D3 78 */	mr r4, r26
 -/* 803774A4 00373104  7F 65 DB 78 */	mr r5, r27
 -/* 803774A8 00373108  81 8C 00 1C */	lwz r12, 0x1c(r12)
 -/* 803774AC 0037310C  7F 86 E3 78 */	mr r6, r28
 -/* 803774B0 00373110  7F C7 F3 78 */	mr r7, r30
 -/* 803774B4 00373114  7F A8 EB 78 */	mr r8, r29
 -/* 803774B8 00373118  7D 89 03 A6 */	mtctr r12
 -/* 803774BC 0037311C  4E 80 04 21 */	bctrl
 -/* 803774C0 00373120  48 00 00 28 */	b lbl_803774E8
 -lbl_803774C4:
 -/* 803774C4 00373124  81 99 00 00 */	lwz r12, 0(r25)
 -/* 803774C8 00373128  7F 23 CB 78 */	mr r3, r25
 -/* 803774CC 0037312C  7F 44 D3 78 */	mr r4, r26
 -/* 803774D0 00373130  7F 65 DB 78 */	mr r5, r27
 -/* 803774D4 00373134  81 8C 00 18 */	lwz r12, 0x18(r12)
 -/* 803774D8 00373138  80 C1 00 18 */	lwz r6, 0x18(r1)
 -/* 803774DC 0037313C  80 E1 00 1C */	lwz r7, 0x1c(r1)
 -/* 803774E0 00373140  7D 89 03 A6 */	mtctr r12
 -/* 803774E4 00373144  4E 80 04 21 */	bctrl
 -lbl_803774E8:
 -/* 803774E8 00373148  39 61 01 40 */	addi r11, r1, 0x140
 -/* 803774EC 0037314C  4B E4 FC 81 */	bl func_801C716C
 -/* 803774F0 00373150  80 01 01 44 */	lwz r0, 0x144(r1)
 -/* 803774F4 00373154  7C 08 03 A6 */	mtlr r0
 -/* 803774F8 00373158  38 21 01 40 */	addi r1, r1, 0x140
 -/* 803774FC 0037315C  4E 80 00 20 */	blr
 -
 -.global func_80377500
 -func_80377500:
 -/* 80377500 00373160  94 21 FF F0 */	stwu r1, -0x10(r1)
 -/* 80377504 00373164  7C 08 02 A6 */	mflr r0
 -/* 80377508 00373168  90 01 00 14 */	stw r0, 0x14(r1)
 -/* 8037750C 0037316C  93 E1 00 0C */	stw r31, 0xc(r1)
 -/* 80377510 00373170  7C 9F 23 78 */	mr r31, r4
 -/* 80377514 00373174  93 C1 00 08 */	stw r30, 8(r1)
 -/* 80377518 00373178  7C 7E 1B 78 */	mr r30, r3
 -/* 8037751C 0037317C  7F E3 FB 78 */	mr r3, r31
 -/* 80377520 00373180  4B E4 F6 45 */	bl strlen
 -/* 80377524 00373184  7C 9F 1A 14 */	add r4, r31, r3
 -/* 80377528 00373188  88 04 FF FF */	lbz r0, -1(r4)
 -/* 8037752C 0037318C  7C 64 1B 78 */	mr r4, r3
 -/* 80377530 00373190  2C 00 00 2F */	cmpwi r0, 0x2f
 -/* 80377534 00373194  41 82 00 14 */	beq lbl_80377548
 -/* 80377538 00373198  7C 9E 1A 14 */	add r4, r30, r3
 -/* 8037753C 0037319C  38 00 00 2F */	li r0, 0x2f
 -/* 80377540 003731A0  98 04 00 08 */	stb r0, 8(r4)
 -/* 80377544 003731A4  38 83 00 01 */	addi r4, r3, 1
 -lbl_80377548:
 -/* 80377548 003731A8  7C 9E 22 14 */	add r4, r30, r4
 -/* 8037754C 003731AC  38 00 00 00 */	li r0, 0
 -/* 80377550 003731B0  98 04 00 08 */	stb r0, 8(r4)
 -/* 80377554 003731B4  7C 65 1B 78 */	mr r5, r3
 -/* 80377558 003731B8  7F E4 FB 78 */	mr r4, r31
 -/* 8037755C 003731BC  38 7E 00 08 */	addi r3, r30, 8
 -/* 80377560 003731C0  4B E5 6E 31 */	bl func_801CE390
 -/* 80377564 003731C4  80 01 00 14 */	lwz r0, 0x14(r1)
 -/* 80377568 003731C8  83 E1 00 0C */	lwz r31, 0xc(r1)
 -/* 8037756C 003731CC  83 C1 00 08 */	lwz r30, 8(r1)
 -/* 80377570 003731D0  7C 08 03 A6 */	mtlr r0
 -/* 80377574 003731D4  38 21 00 10 */	addi r1, r1, 0x10
 -/* 80377578 003731D8  4E 80 00 20 */	blr
 -
 -.global GLXMemoryInfo___ct
 -GLXMemoryInfo___ct:
 -/* 8037757C 003731DC  38 00 00 00 */	li r0, 0
 -/* 80377580 003731E0  90 03 00 28 */	stw r0, 0x28(r3)
 -/* 80377584 003731E4  90 03 00 2C */	stw r0, 0x2c(r3)
 -/* 80377588 003731E8  90 03 00 30 */	stw r0, 0x30(r3)
 -/* 8037758C 003731EC  90 03 00 34 */	stw r0, 0x34(r3)
 -/* 80377590 003731F0  90 03 00 38 */	stw r0, 0x38(r3)
 -/* 80377594 003731F4  90 03 00 3C */	stw r0, 0x3c(r3)
 -/* 80377598 003731F8  90 03 00 40 */	stw r0, 0x40(r3)
 -/* 8037759C 003731FC  4E 80 00 20 */	blr
 -
 -.global func_803775A0
 -func_803775A0:
 -/* 803775A0 00373200  80 A4 00 00 */	lwz r5, 0(r4)
 -/* 803775A4 00373204  94 21 FF F0 */	stwu r1, -0x10(r1)
 -/* 803775A8 00373208  3C 05 AD AD */	addis r0, r5, 0xadad
 -/* 803775AC 0037320C  28 00 41 52 */	cmplwi r0, 0x4152
 -/* 803775B0 00373210  93 E1 00 0C */	stw r31, 0xc(r1)
 -/* 803775B4 00373214  41 82 00 0C */	beq lbl_803775C0
 -/* 803775B8 00373218  38 00 00 00 */	li r0, 0
 -/* 803775BC 0037321C  48 00 00 30 */	b lbl_803775EC
 -lbl_803775C0:
 -/* 803775C0 00373220  A0 C4 00 06 */	lhz r6, 6(r4)
 -/* 803775C4 00373224  28 06 01 00 */	cmplwi r6, 0x100
 -/* 803775C8 00373228  40 80 00 0C */	bge lbl_803775D4
 -/* 803775CC 0037322C  38 00 00 00 */	li r0, 0
 -/* 803775D0 00373230  48 00 00 1C */	b lbl_803775EC
 -lbl_803775D4:
 -/* 803775D4 00373234  20 06 01 03 */	subfic r0, r6, 0x103
 -/* 803775D8 00373238  38 A0 01 03 */	li r5, 0x103
 -/* 803775DC 0037323C  7C A5 33 38 */	orc r5, r5, r6
 -/* 803775E0 00373240  54 00 F8 7E */	srwi r0, r0, 1
 -/* 803775E4 00373244  7C 00 28 50 */	subf r0, r0, r5
 -/* 803775E8 00373248  54 00 0F FE */	srwi r0, r0, 0x1f
 -lbl_803775EC:
 -/* 803775EC 0037324C  2C 00 00 00 */	cmpwi r0, 0
 -/* 803775F0 00373250  41 82 00 54 */	beq lbl_80377644
 -/* 803775F4 00373254  83 E4 00 00 */	lwz r31, 0(r4)
 -/* 803775F8 00373258  81 84 00 04 */	lwz r12, 4(r4)
 -/* 803775FC 0037325C  81 64 00 08 */	lwz r11, 8(r4)
 -/* 80377600 00373260  81 44 00 0C */	lwz r10, 0xc(r4)
 -/* 80377604 00373264  81 24 00 10 */	lwz r9, 0x10(r4)
 -/* 80377608 00373268  81 04 00 14 */	lwz r8, 0x14(r4)
 -/* 8037760C 0037326C  80 E4 00 18 */	lwz r7, 0x18(r4)
 -/* 80377610 00373270  80 C4 00 1C */	lwz r6, 0x1c(r4)
 -/* 80377614 00373274  80 A4 00 20 */	lwz r5, 0x20(r4)
 -/* 80377618 00373278  80 04 00 24 */	lwz r0, 0x24(r4)
 -/* 8037761C 0037327C  93 E3 00 00 */	stw r31, 0(r3)
 -/* 80377620 00373280  91 83 00 04 */	stw r12, 4(r3)
 -/* 80377624 00373284  91 63 00 08 */	stw r11, 8(r3)
 -/* 80377628 00373288  91 43 00 0C */	stw r10, 0xc(r3)
 -/* 8037762C 0037328C  91 23 00 10 */	stw r9, 0x10(r3)
 -/* 80377630 00373290  91 03 00 14 */	stw r8, 0x14(r3)
 -/* 80377634 00373294  90 E3 00 18 */	stw r7, 0x18(r3)
 -/* 80377638 00373298  90 C3 00 1C */	stw r6, 0x1c(r3)
 -/* 8037763C 0037329C  90 A3 00 20 */	stw r5, 0x20(r3)
 -/* 80377640 003732A0  90 03 00 24 */	stw r0, 0x24(r3)
 -lbl_80377644:
 -/* 80377644 003732A4  83 E1 00 0C */	lwz r31, 0xc(r1)
 -/* 80377648 003732A8  38 21 00 10 */	addi r1, r1, 0x10
 -/* 8037764C 003732AC  4E 80 00 20 */	blr
 -
 -.global func_80377650
 -func_80377650:
 -/* 80377650 003732B0  38 04 00 08 */	addi r0, r4, 8
 -/* 80377654 003732B4  90 03 00 28 */	stw r0, 0x28(r3)
 -/* 80377658 003732B8  4E 80 00 20 */	blr
 -lbl_8037765C:
 -/* 8037765C 003732BC  94 21 FF F0 */	stwu r1, -0x10(r1)
 -/* 80377660 003732C0  7C 08 02 A6 */	mflr r0
 -/* 80377664 003732C4  80 A3 00 28 */	lwz r5, 0x28(r3)
 -/* 80377668 003732C8  90 01 00 14 */	stw r0, 0x14(r1)
 -/* 8037766C 003732CC  93 E1 00 0C */	stw r31, 0xc(r1)
 -/* 80377670 003732D0  7C 9F 23 78 */	mr r31, r4
 -/* 80377674 003732D4  93 C1 00 08 */	stw r30, 8(r1)
 -/* 80377678 003732D8  7C 7E 1B 78 */	mr r30, r3
 -/* 8037767C 003732DC  88 65 00 00 */	lbz r3, 0(r5)
 -/* 80377680 003732E0  80 85 00 04 */	lwz r4, 4(r5)
 -/* 80377684 003732E4  48 00 BD 65 */	bl func_803833E8
 -/* 80377688 003732E8  2C 03 00 00 */	cmpwi r3, 0
 -/* 8037768C 003732EC  40 82 00 0C */	bne lbl_80377698
 -/* 80377690 003732F0  38 60 00 00 */	li r3, 0
 -/* 80377694 003732F4  48 00 00 A0 */	b lbl_80377734
 -lbl_80377698:
 -/* 80377698 003732F8  80 03 00 00 */	lwz r0, 0(r3)
 -/* 8037769C 003732FC  7C 1F 00 40 */	cmplw r31, r0
 -/* 803776A0 00373300  41 80 00 0C */	blt lbl_803776AC
 -/* 803776A4 00373304  38 60 00 00 */	li r3, 0
 -/* 803776A8 00373308  48 00 00 8C */	b lbl_80377734
 -lbl_803776AC:
 -/* 803776AC 0037330C  A0 1E 00 06 */	lhz r0, 6(r30)
 -/* 803776B0 00373310  28 00 01 01 */	cmplwi r0, 0x101
 -/* 803776B4 00373314  41 80 00 34 */	blt lbl_803776E8
 -/* 803776B8 00373318  57 E0 18 38 */	slwi r0, r31, 3
 -/* 803776BC 0037331C  80 BE 00 28 */	lwz r5, 0x28(r30)
 -/* 803776C0 00373320  7C 83 02 14 */	add r4, r3, r0
 -/* 803776C4 00373324  88 64 00 04 */	lbz r3, 4(r4)
 -/* 803776C8 00373328  80 84 00 08 */	lwz r4, 8(r4)
 -/* 803776CC 0037332C  48 00 BD 1D */	bl func_803833E8
 -/* 803776D0 00373330  2C 03 00 00 */	cmpwi r3, 0
 -/* 803776D4 00373334  40 82 00 0C */	bne lbl_803776E0
 -/* 803776D8 00373338  38 60 00 00 */	li r3, 0
 -/* 803776DC 0037333C  48 00 00 58 */	b lbl_80377734
 -lbl_803776E0:
 -/* 803776E0 00373340  88 03 00 16 */	lbz r0, 0x16(r3)
 -/* 803776E4 00373344  48 00 00 10 */	b lbl_803776F4
 -lbl_803776E8:
 -/* 803776E8 00373348  57 E0 18 38 */	slwi r0, r31, 3
 -/* 803776EC 0037334C  7C 63 02 14 */	add r3, r3, r0
 -/* 803776F0 00373350  88 03 00 05 */	lbz r0, 5(r3)
 -lbl_803776F4:
 -/* 803776F4 00373354  2C 00 00 02 */	cmpwi r0, 2
 -/* 803776F8 00373358  41 82 00 28 */	beq lbl_80377720
 -/* 803776FC 0037335C  40 80 00 10 */	bge lbl_8037770C
 -/* 80377700 00373360  2C 00 00 01 */	cmpwi r0, 1
 -/* 80377704 00373364  40 80 00 14 */	bge lbl_80377718
 -/* 80377708 00373368  48 00 00 28 */	b lbl_80377730
 -lbl_8037770C:
 -/* 8037770C 0037336C  2C 00 00 04 */	cmpwi r0, 4
 -/* 80377710 00373370  40 80 00 20 */	bge lbl_80377730
 -/* 80377714 00373374  48 00 00 14 */	b lbl_80377728
 -lbl_80377718:
 -/* 80377718 00373378  38 60 00 01 */	li r3, 1
 -/* 8037771C 0037337C  48 00 00 18 */	b lbl_80377734
 -lbl_80377720:
 -/* 80377720 00373380  38 60 00 02 */	li r3, 2
 -/* 80377724 00373384  48 00 00 10 */	b lbl_80377734
 -lbl_80377728:
 -/* 80377728 00373388  38 60 00 03 */	li r3, 3
 -/* 8037772C 0037338C  48 00 00 08 */	b lbl_80377734
 -lbl_80377730:
 -/* 80377730 00373390  38 60 00 00 */	li r3, 0
 -lbl_80377734:
 -/* 80377734 00373394  80 01 00 14 */	lwz r0, 0x14(r1)
 -/* 80377738 00373398  83 E1 00 0C */	lwz r31, 0xc(r1)
 -/* 8037773C 0037339C  83 C1 00 08 */	lwz r30, 8(r1)
 -/* 80377740 003733A0  7C 08 03 A6 */	mtlr r0
 -/* 80377744 003733A4  38 21 00 10 */	addi r1, r1, 0x10
 -/* 80377748 003733A8  4E 80 00 20 */	blr
 -lbl_8037774C:
 -/* 8037774C 003733AC  94 21 FF E0 */	stwu r1, -0x20(r1)
 -/* 80377750 003733B0  7C 08 02 A6 */	mflr r0
 -/* 80377754 003733B4  80 C3 00 28 */	lwz r6, 0x28(r3)
 -/* 80377758 003733B8  90 01 00 24 */	stw r0, 0x24(r1)
 -/* 8037775C 003733BC  93 E1 00 1C */	stw r31, 0x1c(r1)
 -/* 80377760 003733C0  7C BF 2B 78 */	mr r31, r5
 -/* 80377764 003733C4  7C C5 33 78 */	mr r5, r6
 -/* 80377768 003733C8  93 C1 00 18 */	stw r30, 0x18(r1)
 -/* 8037776C 003733CC  7C 9E 23 78 */	mr r30, r4
 -/* 80377770 003733D0  93 A1 00 14 */	stw r29, 0x14(r1)
 -/* 80377774 003733D4  7C 7D 1B 78 */	mr r29, r3
 -/* 80377778 003733D8  88 66 00 00 */	lbz r3, 0(r6)
 -/* 8037777C 003733DC  80 86 00 04 */	lwz r4, 4(r6)
 -/* 80377780 003733E0  48 00 BC 69 */	bl func_803833E8
 -/* 80377784 003733E4  2C 03 00 00 */	cmpwi r3, 0
 -/* 80377788 003733E8  40 82 00 0C */	bne lbl_80377794
 -/* 8037778C 003733EC  38 60 00 00 */	li r3, 0
 -/* 80377790 003733F0  48 00 00 54 */	b lbl_803777E4
 -lbl_80377794:
 -/* 80377794 003733F4  80 03 00 00 */	lwz r0, 0(r3)
 -/* 80377798 003733F8  7C 1E 00 40 */	cmplw r30, r0
 -/* 8037779C 003733FC  41 80 00 0C */	blt lbl_803777A8
 -/* 803777A0 00373400  38 60 00 00 */	li r3, 0
 -/* 803777A4 00373404  48 00 00 40 */	b lbl_803777E4
 -lbl_803777A8:
 -/* 803777A8 00373408  A0 1D 00 06 */	lhz r0, 6(r29)
 -/* 803777AC 0037340C  28 00 01 01 */	cmplwi r0, 0x101
 -/* 803777B0 00373410  41 80 00 20 */	blt lbl_803777D0
 -/* 803777B4 00373414  57 C0 18 38 */	slwi r0, r30, 3
 -/* 803777B8 00373418  80 BD 00 28 */	lwz r5, 0x28(r29)
 -/* 803777BC 0037341C  7C 83 02 14 */	add r4, r3, r0
 -/* 803777C0 00373420  88 64 00 04 */	lbz r3, 4(r4)
 -/* 803777C4 00373424  80 84 00 08 */	lwz r4, 8(r4)
 -/* 803777C8 00373428  48 00 BC 21 */	bl func_803833E8
 -/* 803777CC 0037342C  48 00 00 18 */	b lbl_803777E4
 -lbl_803777D0:
 -/* 803777D0 00373430  57 C4 18 38 */	slwi r4, r30, 3
 -/* 803777D4 00373434  80 1D 00 28 */	lwz r0, 0x28(r29)
 -/* 803777D8 00373438  7C 63 22 14 */	add r3, r3, r4
 -/* 803777DC 0037343C  80 63 00 08 */	lwz r3, 8(r3)
 -/* 803777E0 00373440  7C 63 02 14 */	add r3, r3, r0
 -lbl_803777E4:
 -/* 803777E4 00373444  2C 03 00 00 */	cmpwi r3, 0
 -/* 803777E8 00373448  40 82 00 0C */	bne lbl_803777F4
 -/* 803777EC 0037344C  38 60 00 00 */	li r3, 0
 -/* 803777F0 00373450  48 00 00 60 */	b lbl_80377850
 -lbl_803777F4:
 -/* 803777F4 00373454  80 83 00 04 */	lwz r4, 4(r3)
 -/* 803777F8 00373458  A0 1D 00 06 */	lhz r0, 6(r29)
 -/* 803777FC 0037345C  90 9F 00 00 */	stw r4, 0(r31)
 -/* 80377800 00373460  28 00 01 02 */	cmplwi r0, 0x102
 -/* 80377804 00373464  80 03 00 08 */	lwz r0, 8(r3)
 -/* 80377808 00373468  90 1F 00 04 */	stw r0, 4(r31)
 -/* 8037780C 0037346C  88 03 00 15 */	lbz r0, 0x15(r3)
 -/* 80377810 00373470  90 1F 00 08 */	stw r0, 8(r31)
 -/* 80377814 00373474  88 03 00 14 */	lbz r0, 0x14(r3)
 -/* 80377818 00373478  90 1F 00 0C */	stw r0, 0xc(r31)
 -/* 8037781C 0037347C  88 03 00 17 */	lbz r0, 0x17(r3)
 -/* 80377820 00373480  90 1F 00 10 */	stw r0, 0x10(r31)
 -/* 80377824 00373484  41 80 00 18 */	blt lbl_8037783C
 -/* 80377828 00373488  88 03 00 28 */	lbz r0, 0x28(r3)
 -/* 8037782C 0037348C  90 1F 00 14 */	stw r0, 0x14(r31)
 -/* 80377830 00373490  88 03 00 29 */	lbz r0, 0x29(r3)
 -/* 80377834 00373494  90 1F 00 18 */	stw r0, 0x18(r31)
 -/* 80377838 00373498  48 00 00 14 */	b lbl_8037784C
 -lbl_8037783C:
 -/* 8037783C 0037349C  38 60 00 01 */	li r3, 1
 -/* 80377840 003734A0  38 00 00 00 */	li r0, 0
 -/* 80377844 003734A4  90 7F 00 14 */	stw r3, 0x14(r31)
 -/* 80377848 003734A8  90 1F 00 18 */	stw r0, 0x18(r31)
 -lbl_8037784C:
 -/* 8037784C 003734AC  38 60 00 01 */	li r3, 1
 -lbl_80377850:
 -/* 80377850 003734B0  80 01 00 24 */	lwz r0, 0x24(r1)
 -/* 80377854 003734B4  83 E1 00 1C */	lwz r31, 0x1c(r1)
 -/* 80377858 003734B8  83 C1 00 18 */	lwz r30, 0x18(r1)
 -/* 8037785C 003734BC  83 A1 00 14 */	lwz r29, 0x14(r1)
 -/* 80377860 003734C0  7C 08 03 A6 */	mtlr r0
 -/* 80377864 003734C4  38 21 00 20 */	addi r1, r1, 0x20
 -/* 80377868 003734C8  4E 80 00 20 */	blr
 -lbl_8037786C:
 -/* 8037786C 003734CC  94 21 FF E0 */	stwu r1, -0x20(r1)
 -/* 80377870 003734D0  7C 08 02 A6 */	mflr r0
 -/* 80377874 003734D4  90 01 00 24 */	stw r0, 0x24(r1)
 -/* 80377878 003734D8  93 E1 00 1C */	stw r31, 0x1c(r1)
 -/* 8037787C 003734DC  7C BF 2B 78 */	mr r31, r5
 -/* 80377880 003734E0  93 C1 00 18 */	stw r30, 0x18(r1)
 -/* 80377884 003734E4  7C 7E 1B 78 */	mr r30, r3
 -/* 80377888 003734E8  48 00 09 D5 */	bl func_8037825C
 -/* 8037788C 003734EC  90 61 00 08 */	stw r3, 8(r1)
 -/* 80377890 003734F0  80 BE 00 28 */	lwz r5, 0x28(r30)
 -/* 80377894 003734F4  90 81 00 0C */	stw r4, 0xc(r1)
 -/* 80377898 003734F8  88 61 00 08 */	lbz r3, 8(r1)
 -/* 8037789C 003734FC  48 00 BB 4D */	bl func_803833E8
 -/* 803778A0 00373500  2C 03 00 00 */	cmpwi r3, 0
 -/* 803778A4 00373504  40 82 00 0C */	bne lbl_803778B0
 -/* 803778A8 00373508  38 60 00 00 */	li r3, 0
 -/* 803778AC 0037350C  48 00 00 54 */	b lbl_80377900
 -lbl_803778B0:
 -/* 803778B0 00373510  80 83 00 00 */	lwz r4, 0(r3)
 -/* 803778B4 00373514  A0 1E 00 06 */	lhz r0, 6(r30)
 -/* 803778B8 00373518  90 9F 00 00 */	stw r4, 0(r31)
 -/* 803778BC 0037351C  28 00 01 03 */	cmplwi r0, 0x103
 -/* 803778C0 00373520  80 03 00 04 */	lwz r0, 4(r3)
 -/* 803778C4 00373524  90 1F 00 04 */	stw r0, 4(r31)
 -/* 803778C8 00373528  88 03 00 0C */	lbz r0, 0xc(r3)
 -/* 803778CC 0037352C  90 1F 00 0C */	stw r0, 0xc(r31)
 -/* 803778D0 00373530  80 03 00 08 */	lwz r0, 8(r3)
 -/* 803778D4 00373534  90 1F 00 08 */	stw r0, 8(r31)
 -/* 803778D8 00373538  41 80 00 1C */	blt lbl_803778F4
 -/* 803778DC 0037353C  88 63 00 0D */	lbz r3, 0xd(r3)
 -/* 803778E0 00373540  7C 03 00 D0 */	neg r0, r3
 -/* 803778E4 00373544  7C 00 1B 78 */	or r0, r0, r3
 -/* 803778E8 00373548  54 00 0F FE */	srwi r0, r0, 0x1f
 -/* 803778EC 0037354C  98 1F 00 10 */	stb r0, 0x10(r31)
 -/* 803778F0 00373550  48 00 00 0C */	b lbl_803778FC
 -lbl_803778F4:
 -/* 803778F4 00373554  38 00 00 00 */	li r0, 0
 -/* 803778F8 00373558  98 1F 00 10 */	stb r0, 0x10(r31)
 -lbl_803778FC:
 -/* 803778FC 0037355C  38 60 00 01 */	li r3, 1
 -lbl_80377900:
 -/* 80377900 00373560  80 01 00 24 */	lwz r0, 0x24(r1)
 -/* 80377904 00373564  83 E1 00 1C */	lwz r31, 0x1c(r1)
 -/* 80377908 00373568  83 C1 00 18 */	lwz r30, 0x18(r1)
 -/* 8037790C 0037356C  7C 08 03 A6 */	mtlr r0
 -/* 80377910 00373570  38 21 00 20 */	addi r1, r1, 0x20
 -/* 80377914 00373574  4E 80 00 20 */	blr
 -lbl_80377918:
 -/* 80377918 00373578  94 21 FF E0 */	stwu r1, -0x20(r1)
 -/* 8037791C 0037357C  7C 08 02 A6 */	mflr r0
 -/* 80377920 00373580  90 01 00 24 */	stw r0, 0x24(r1)
 -/* 80377924 00373584  93 E1 00 1C */	stw r31, 0x1c(r1)
 -/* 80377928 00373588  7C 7F 1B 78 */	mr r31, r3
 -/* 8037792C 0037358C  48 00 09 31 */	bl func_8037825C
 -/* 80377930 00373590  90 61 00 08 */	stw r3, 8(r1)
 -/* 80377934 00373594  80 BF 00 28 */	lwz r5, 0x28(r31)
 -/* 80377938 00373598  90 81 00 0C */	stw r4, 0xc(r1)
 -/* 8037793C 0037359C  88 61 00 08 */	lbz r3, 8(r1)
 -/* 80377940 003735A0  48 00 BA A9 */	bl func_803833E8
 -/* 80377944 003735A4  7C 03 00 D0 */	neg r0, r3
 -/* 80377948 003735A8  83 E1 00 1C */	lwz r31, 0x1c(r1)
 -/* 8037794C 003735AC  7C 00 1B 78 */	or r0, r0, r3
 -/* 80377950 003735B0  54 03 0F FE */	srwi r3, r0, 0x1f
 -/* 80377954 003735B4  80 01 00 24 */	lwz r0, 0x24(r1)
 -/* 80377958 003735B8  7C 08 03 A6 */	mtlr r0
 -/* 8037795C 003735BC  38 21 00 20 */	addi r1, r1, 0x20
 -/* 80377960 003735C0  4E 80 00 20 */	blr
 -lbl_80377964:
 -/* 80377964 003735C4  94 21 FF E0 */	stwu r1, -0x20(r1)
 -/* 80377968 003735C8  7C 08 02 A6 */	mflr r0
 -/* 8037796C 003735CC  90 01 00 24 */	stw r0, 0x24(r1)
 -/* 80377970 003735D0  93 E1 00 1C */	stw r31, 0x1c(r1)
 -/* 80377974 003735D4  7C BF 2B 78 */	mr r31, r5
 -/* 80377978 003735D8  93 C1 00 18 */	stw r30, 0x18(r1)
 -/* 8037797C 003735DC  7C 7E 1B 78 */	mr r30, r3
 -/* 80377980 003735E0  48 00 08 DD */	bl func_8037825C
 -/* 80377984 003735E4  90 61 00 08 */	stw r3, 8(r1)
 -/* 80377988 003735E8  80 BE 00 28 */	lwz r5, 0x28(r30)
 -/* 8037798C 003735EC  90 81 00 0C */	stw r4, 0xc(r1)
 -/* 80377990 003735F0  88 61 00 08 */	lbz r3, 8(r1)
 -/* 80377994 003735F4  48 00 BA 55 */	bl func_803833E8
 -/* 80377998 003735F8  2C 03 00 00 */	cmpwi r3, 0
 -/* 8037799C 003735FC  40 82 00 0C */	bne lbl_803779A8
 -/* 803779A0 00373600  38 60 00 00 */	li r3, 0
 -/* 803779A4 00373604  48 00 00 44 */	b lbl_803779E8
 -lbl_803779A8:
 -/* 803779A8 00373608  80 83 00 00 */	lwz r4, 0(r3)
 -/* 803779AC 0037360C  A0 1E 00 06 */	lhz r0, 6(r30)
 -/* 803779B0 00373610  90 9F 00 00 */	stw r4, 0(r31)
 -/* 803779B4 00373614  28 00 01 03 */	cmplwi r0, 0x103
 -/* 803779B8 00373618  88 03 00 08 */	lbz r0, 8(r3)
 -/* 803779BC 0037361C  90 1F 00 04 */	stw r0, 4(r31)
 -/* 803779C0 00373620  41 80 00 1C */	blt lbl_803779DC
 -/* 803779C4 00373624  88 63 00 09 */	lbz r3, 9(r3)
 -/* 803779C8 00373628  7C 03 00 D0 */	neg r0, r3
 -/* 803779CC 0037362C  7C 00 1B 78 */	or r0, r0, r3
 -/* 803779D0 00373630  54 00 0F FE */	srwi r0, r0, 0x1f
 -/* 803779D4 00373634  98 1F 00 08 */	stb r0, 8(r31)
 -/* 803779D8 00373638  48 00 00 0C */	b lbl_803779E4
 -lbl_803779DC:
 -/* 803779DC 0037363C  38 00 00 00 */	li r0, 0
 -/* 803779E0 00373640  98 1F 00 08 */	stb r0, 8(r31)
 -lbl_803779E4:
 -/* 803779E4 00373644  38 60 00 01 */	li r3, 1
 -lbl_803779E8:
 -/* 803779E8 00373648  80 01 00 24 */	lwz r0, 0x24(r1)
 -/* 803779EC 0037364C  83 E1 00 1C */	lwz r31, 0x1c(r1)
 -/* 803779F0 00373650  83 C1 00 18 */	lwz r30, 0x18(r1)
 -/* 803779F4 00373654  7C 08 03 A6 */	mtlr r0
 -/* 803779F8 00373658  38 21 00 20 */	addi r1, r1, 0x20
 -/* 803779FC 0037365C  4E 80 00 20 */	blr
 -lbl_80377A00:
 -/* 80377A00 00373660  94 21 FF E0 */	stwu r1, -0x20(r1)
 -/* 80377A04 00373664  7C 08 02 A6 */	mflr r0
 -/* 80377A08 00373668  80 C3 00 28 */	lwz r6, 0x28(r3)
 -/* 80377A0C 0037366C  90 01 00 24 */	stw r0, 0x24(r1)
 -/* 80377A10 00373670  93 E1 00 1C */	stw r31, 0x1c(r1)
 -/* 80377A14 00373674  7C BF 2B 78 */	mr r31, r5
 -/* 80377A18 00373678  7C C5 33 78 */	mr r5, r6
 -/* 80377A1C 0037367C  93 C1 00 18 */	stw r30, 0x18(r1)
 -/* 80377A20 00373680  7C 9E 23 78 */	mr r30, r4
 -/* 80377A24 00373684  93 A1 00 14 */	stw r29, 0x14(r1)
 -/* 80377A28 00373688  7C 7D 1B 78 */	mr r29, r3
 -/* 80377A2C 0037368C  88 66 00 08 */	lbz r3, 8(r6)
 -/* 80377A30 00373690  80 86 00 0C */	lwz r4, 0xc(r6)
 -/* 80377A34 00373694  48 00 B9 B5 */	bl func_803833E8
 -/* 80377A38 00373698  2C 03 00 00 */	cmpwi r3, 0
 -/* 80377A3C 0037369C  40 82 00 0C */	bne lbl_80377A48
 -/* 80377A40 003736A0  38 60 00 00 */	li r3, 0
 -/* 80377A44 003736A4  48 00 00 30 */	b lbl_80377A74
 -lbl_80377A48:
 -/* 80377A48 003736A8  80 03 00 00 */	lwz r0, 0(r3)
 -/* 80377A4C 003736AC  7C 1E 00 40 */	cmplw r30, r0
 -/* 80377A50 003736B0  41 80 00 0C */	blt lbl_80377A5C
 -/* 80377A54 003736B4  38 60 00 00 */	li r3, 0
 -/* 80377A58 003736B8  48 00 00 1C */	b lbl_80377A74
 -lbl_80377A5C:
 -/* 80377A5C 003736BC  57 C0 18 38 */	slwi r0, r30, 3
 -/* 80377A60 003736C0  80 BD 00 28 */	lwz r5, 0x28(r29)
 -/* 80377A64 003736C4  7C 83 02 14 */	add r4, r3, r0
 -/* 80377A68 003736C8  88 64 00 04 */	lbz r3, 4(r4)
 -/* 80377A6C 003736CC  80 84 00 08 */	lwz r4, 8(r4)
 -/* 80377A70 003736D0  48 00 B9 79 */	bl func_803833E8
 -lbl_80377A74:
 -/* 80377A74 003736D4  2C 03 00 00 */	cmpwi r3, 0
 -/* 80377A78 003736D8  40 82 00 0C */	bne lbl_80377A84
 -/* 80377A7C 003736DC  38 60 00 00 */	li r3, 0
 -/* 80377A80 003736E0  48 00 00 10 */	b lbl_80377A90
 -lbl_80377A84:
 -/* 80377A84 003736E4  80 03 00 04 */	lwz r0, 4(r3)
 -/* 80377A88 003736E8  38 60 00 01 */	li r3, 1
 -/* 80377A8C 003736EC  90 1F 00 00 */	stw r0, 0(r31)
 -lbl_80377A90:
 -/* 80377A90 003736F0  80 01 00 24 */	lwz r0, 0x24(r1)
 -/* 80377A94 003736F4  83 E1 00 1C */	lwz r31, 0x1c(r1)
 -/* 80377A98 003736F8  83 C1 00 18 */	lwz r30, 0x18(r1)
 -/* 80377A9C 003736FC  83 A1 00 14 */	lwz r29, 0x14(r1)
 -/* 80377AA0 00373700  7C 08 03 A6 */	mtlr r0
 -/* 80377AA4 00373704  38 21 00 20 */	addi r1, r1, 0x20
 -/* 80377AA8 00373708  4E 80 00 20 */	blr
 -lbl_80377AAC:
 -/* 80377AAC 0037370C  94 21 FF E0 */	stwu r1, -0x20(r1)
 -/* 80377AB0 00373710  7C 08 02 A6 */	mflr r0
 -/* 80377AB4 00373714  80 C3 00 28 */	lwz r6, 0x28(r3)
 -/* 80377AB8 00373718  90 01 00 24 */	stw r0, 0x24(r1)
 -/* 80377ABC 0037371C  93 E1 00 1C */	stw r31, 0x1c(r1)
 -/* 80377AC0 00373720  7C BF 2B 78 */	mr r31, r5
 -/* 80377AC4 00373724  7C C5 33 78 */	mr r5, r6
 -/* 80377AC8 00373728  93 C1 00 18 */	stw r30, 0x18(r1)
 -/* 80377ACC 0037372C  7C 9E 23 78 */	mr r30, r4
 -/* 80377AD0 00373730  93 A1 00 14 */	stw r29, 0x14(r1)
 -/* 80377AD4 00373734  7C 7D 1B 78 */	mr r29, r3
 -/* 80377AD8 00373738  88 66 00 10 */	lbz r3, 0x10(r6)
 -/* 80377ADC 0037373C  80 86 00 14 */	lwz r4, 0x14(r6)
 -/* 80377AE0 00373740  48 00 B9 09 */	bl func_803833E8
 -/* 80377AE4 00373744  2C 03 00 00 */	cmpwi r3, 0
 -/* 80377AE8 00373748  40 82 00 0C */	bne lbl_80377AF4
 -/* 80377AEC 0037374C  38 80 00 00 */	li r4, 0
 -/* 80377AF0 00373750  48 00 00 34 */	b lbl_80377B24
 -lbl_80377AF4:
 -/* 80377AF4 00373754  80 03 00 00 */	lwz r0, 0(r3)
 -/* 80377AF8 00373758  7C 1E 00 40 */	cmplw r30, r0
 -/* 80377AFC 0037375C  41 80 00 0C */	blt lbl_80377B08
 -/* 80377B00 00373760  38 80 00 00 */	li r4, 0
 -/* 80377B04 00373764  48 00 00 20 */	b lbl_80377B24
 -lbl_80377B08:
 -/* 80377B08 00373768  57 C0 18 38 */	slwi r0, r30, 3
 -/* 80377B0C 0037376C  80 BD 00 28 */	lwz r5, 0x28(r29)
 -/* 80377B10 00373770  7C 83 02 14 */	add r4, r3, r0
 -/* 80377B14 00373774  88 64 00 04 */	lbz r3, 4(r4)
 -/* 80377B18 00373778  80 84 00 08 */	lwz r4, 8(r4)
 -/* 80377B1C 0037377C  48 00 B8 CD */	bl func_803833E8
 -/* 80377B20 00373780  7C 64 1B 78 */	mr r4, r3
 -lbl_80377B24:
 -/* 80377B24 00373784  2C 04 00 00 */	cmpwi r4, 0
 -/* 80377B28 00373788  40 82 00 0C */	bne lbl_80377B34
 -/* 80377B2C 0037378C  38 60 00 00 */	li r3, 0
 -/* 80377B30 00373790  48 00 00 18 */	b lbl_80377B48
 -lbl_80377B34:
 -/* 80377B34 00373794  88 04 00 04 */	lbz r0, 4(r4)
 -/* 80377B38 00373798  38 60 00 01 */	li r3, 1
 -/* 80377B3C 0037379C  90 1F 00 00 */	stw r0, 0(r31)
 -/* 80377B40 003737A0  80 04 00 08 */	lwz r0, 8(r4)
 -/* 80377B44 003737A4  90 1F 00 04 */	stw r0, 4(r31)
 -lbl_80377B48:
 -/* 80377B48 003737A8  80 01 00 24 */	lwz r0, 0x24(r1)
 -/* 80377B4C 003737AC  83 E1 00 1C */	lwz r31, 0x1c(r1)
 -/* 80377B50 003737B0  83 C1 00 18 */	lwz r30, 0x18(r1)
 -/* 80377B54 003737B4  83 A1 00 14 */	lwz r29, 0x14(r1)
 -/* 80377B58 003737B8  7C 08 03 A6 */	mtlr r0
 -/* 80377B5C 003737BC  38 21 00 20 */	addi r1, r1, 0x20
 -/* 80377B60 003737C0  4E 80 00 20 */	blr
 -
 -.global func_80377B64
 -func_80377B64:
 -/* 80377B64 003737C4  94 21 FF E0 */	stwu r1, -0x20(r1)
 -/* 80377B68 003737C8  7C 08 02 A6 */	mflr r0
 -/* 80377B6C 003737CC  80 C3 00 28 */	lwz r6, 0x28(r3)
 -/* 80377B70 003737D0  90 01 00 24 */	stw r0, 0x24(r1)
 -/* 80377B74 003737D4  93 E1 00 1C */	stw r31, 0x1c(r1)
 -/* 80377B78 003737D8  93 C1 00 18 */	stw r30, 0x18(r1)
 -/* 80377B7C 003737DC  7C 9E 23 78 */	mr r30, r4
 -/* 80377B80 003737E0  93 A1 00 14 */	stw r29, 0x14(r1)
 -/* 80377B84 003737E4  7C BD 2B 78 */	mr r29, r5
 -/* 80377B88 003737E8  7C C5 33 78 */	mr r5, r6
 -/* 80377B8C 003737EC  93 81 00 10 */	stw r28, 0x10(r1)
 -/* 80377B90 003737F0  7C 7C 1B 78 */	mr r28, r3
 -/* 80377B94 003737F4  88 66 00 20 */	lbz r3, 0x20(r6)
 -/* 80377B98 003737F8  80 86 00 24 */	lwz r4, 0x24(r6)
 -/* 80377B9C 003737FC  48 00 B8 4D */	bl func_803833E8
 -/* 80377BA0 00373800  2C 03 00 00 */	cmpwi r3, 0
 -/* 80377BA4 00373804  40 82 00 0C */	bne lbl_80377BB0
 -/* 80377BA8 00373808  3B C0 00 00 */	li r30, 0
 -/* 80377BAC 0037380C  48 00 00 34 */	b lbl_80377BE0
 -lbl_80377BB0:
 -/* 80377BB0 00373810  80 03 00 00 */	lwz r0, 0(r3)
 -/* 80377BB4 00373814  7C 1E 00 40 */	cmplw r30, r0
 -/* 80377BB8 00373818  41 80 00 0C */	blt lbl_80377BC4
 -/* 80377BBC 0037381C  3B C0 00 00 */	li r30, 0
 -/* 80377BC0 00373820  48 00 00 20 */	b lbl_80377BE0
 -lbl_80377BC4:
 -/* 80377BC4 00373824  57 C0 18 38 */	slwi r0, r30, 3
 -/* 80377BC8 00373828  80 BC 00 28 */	lwz r5, 0x28(r28)
 -/* 80377BCC 0037382C  7C 83 02 14 */	add r4, r3, r0
 -/* 80377BD0 00373830  88 64 00 04 */	lbz r3, 4(r4)
 -/* 80377BD4 00373834  80 84 00 08 */	lwz r4, 8(r4)
 -/* 80377BD8 00373838  48 00 B8 11 */	bl func_803833E8
 -/* 80377BDC 0037383C  7C 7E 1B 78 */	mr r30, r3
 -lbl_80377BE0:
 -/* 80377BE0 00373840  2C 1E 00 00 */	cmpwi r30, 0
 -/* 80377BE4 00373844  40 82 00 0C */	bne lbl_80377BF0
 -/* 80377BE8 00373848  38 60 00 00 */	li r3, 0
 -/* 80377BEC 0037384C  48 00 00 68 */	b lbl_80377C54
 -lbl_80377BF0:
 -/* 80377BF0 00373850  88 7E 00 20 */	lbz r3, 0x20(r30)
 -/* 80377BF4 00373854  80 9E 00 24 */	lwz r4, 0x24(r30)
 -/* 80377BF8 00373858  80 BC 00 28 */	lwz r5, 0x28(r28)
 -/* 80377BFC 0037385C  48 00 B7 ED */	bl func_803833E8
 -/* 80377C00 00373860  2C 03 00 00 */	cmpwi r3, 0
 -/* 80377C04 00373864  7C 7F 1B 78 */	mr r31, r3
 -/* 80377C08 00373868  40 82 00 0C */	bne lbl_80377C14
 -/* 80377C0C 0037386C  38 60 00 00 */	li r3, 0
 -/* 80377C10 00373870  48 00 00 44 */	b lbl_80377C54
 -lbl_80377C14:
 -/* 80377C14 00373874  88 7E 00 08 */	lbz r3, 8(r30)
 -/* 80377C18 00373878  80 9E 00 0C */	lwz r4, 0xc(r30)
 -/* 80377C1C 0037387C  80 BC 00 28 */	lwz r5, 0x28(r28)
 -/* 80377C20 00373880  48 00 B7 C9 */	bl func_803833E8
 -/* 80377C24 00373884  90 7D 00 04 */	stw r3, 4(r29)
 -/* 80377C28 00373888  38 60 00 01 */	li r3, 1
 -/* 80377C2C 0037388C  80 1E 00 10 */	lwz r0, 0x10(r30)
 -/* 80377C30 00373890  90 1D 00 08 */	stw r0, 8(r29)
 -/* 80377C34 00373894  80 1E 00 14 */	lwz r0, 0x14(r30)
 -/* 80377C38 00373898  90 1D 00 0C */	stw r0, 0xc(r29)
 -/* 80377C3C 0037389C  80 1E 00 18 */	lwz r0, 0x18(r30)
 -/* 80377C40 003738A0  90 1D 00 10 */	stw r0, 0x10(r29)
 -/* 80377C44 003738A4  80 1E 00 1C */	lwz r0, 0x1c(r30)
 -/* 80377C48 003738A8  90 1D 00 14 */	stw r0, 0x14(r29)
 -/* 80377C4C 003738AC  80 1F 00 00 */	lwz r0, 0(r31)
 -/* 80377C50 003738B0  90 1D 00 00 */	stw r0, 0(r29)
 -lbl_80377C54:
 -/* 80377C54 003738B4  80 01 00 24 */	lwz r0, 0x24(r1)
 -/* 80377C58 003738B8  83 E1 00 1C */	lwz r31, 0x1c(r1)
 -/* 80377C5C 003738BC  83 C1 00 18 */	lwz r30, 0x18(r1)
 -/* 80377C60 003738C0  83 A1 00 14 */	lwz r29, 0x14(r1)
 -/* 80377C64 003738C4  83 81 00 10 */	lwz r28, 0x10(r1)
 -/* 80377C68 003738C8  7C 08 03 A6 */	mtlr r0
 -/* 80377C6C 003738CC  38 21 00 20 */	addi r1, r1, 0x20
 -/* 80377C70 003738D0  4E 80 00 20 */	blr
 -
 -.global func_80377C74
 -func_80377C74:
 -/* 80377C74 003738D4  94 21 FF E0 */	stwu r1, -0x20(r1)
 -/* 80377C78 003738D8  7C 08 02 A6 */	mflr r0
 -/* 80377C7C 003738DC  80 E3 00 28 */	lwz r7, 0x28(r3)
 -/* 80377C80 003738E0  90 01 00 24 */	stw r0, 0x24(r1)
 -/* 80377C84 003738E4  93 E1 00 1C */	stw r31, 0x1c(r1)
 -/* 80377C88 003738E8  7C DF 33 78 */	mr r31, r6
 -/* 80377C8C 003738EC  93 C1 00 18 */	stw r30, 0x18(r1)
 -/* 80377C90 003738F0  7C BE 2B 78 */	mr r30, r5
 -/* 80377C94 003738F4  7C E5 3B 78 */	mr r5, r7
 -/* 80377C98 003738F8  93 A1 00 14 */	stw r29, 0x14(r1)
 -/* 80377C9C 003738FC  7C 9D 23 78 */	mr r29, r4
 -/* 80377CA0 00373900  93 81 00 10 */	stw r28, 0x10(r1)
 -/* 80377CA4 00373904  7C 7C 1B 78 */	mr r28, r3
 -/* 80377CA8 00373908  88 67 00 20 */	lbz r3, 0x20(r7)
 -/* 80377CAC 0037390C  80 87 00 24 */	lwz r4, 0x24(r7)
 -/* 80377CB0 00373910  48 00 B7 39 */	bl func_803833E8
 -/* 80377CB4 00373914  2C 03 00 00 */	cmpwi r3, 0
 -/* 80377CB8 00373918  40 82 00 0C */	bne lbl_80377CC4
 -/* 80377CBC 0037391C  38 80 00 00 */	li r4, 0
 -/* 80377CC0 00373920  48 00 00 34 */	b lbl_80377CF4
 -lbl_80377CC4:
 -/* 80377CC4 00373924  80 03 00 00 */	lwz r0, 0(r3)
 -/* 80377CC8 00373928  7C 1D 00 40 */	cmplw r29, r0
 -/* 80377CCC 0037392C  41 80 00 0C */	blt lbl_80377CD8
 -/* 80377CD0 00373930  38 80 00 00 */	li r4, 0
 -/* 80377CD4 00373934  48 00 00 20 */	b lbl_80377CF4
 -lbl_80377CD8:
 -/* 80377CD8 00373938  57 A0 18 38 */	slwi r0, r29, 3
 -/* 80377CDC 0037393C  80 BC 00 28 */	lwz r5, 0x28(r28)
 -/* 80377CE0 00373940  7C 83 02 14 */	add r4, r3, r0
 -/* 80377CE4 00373944  88 64 00 04 */	lbz r3, 4(r4)
 -/* 80377CE8 00373948  80 84 00 08 */	lwz r4, 8(r4)
 -/* 80377CEC 0037394C  48 00 B6 FD */	bl func_803833E8
 -/* 80377CF0 00373950  7C 64 1B 78 */	mr r4, r3
 -lbl_80377CF4:
 -/* 80377CF4 00373954  2C 04 00 00 */	cmpwi r4, 0
 -/* 80377CF8 00373958  40 82 00 0C */	bne lbl_80377D04
 -/* 80377CFC 0037395C  38 60 00 00 */	li r3, 0
 -/* 80377D00 00373960  48 00 00 8C */	b lbl_80377D8C
 -lbl_80377D04:
 -/* 80377D04 00373964  88 64 00 20 */	lbz r3, 0x20(r4)
 -/* 80377D08 00373968  80 84 00 24 */	lwz r4, 0x24(r4)
 -/* 80377D0C 0037396C  80 BC 00 28 */	lwz r5, 0x28(r28)
 -/* 80377D10 00373970  48 00 B6 D9 */	bl func_803833E8
 -/* 80377D14 00373974  2C 03 00 00 */	cmpwi r3, 0
 -/* 80377D18 00373978  40 82 00 0C */	bne lbl_80377D24
 -/* 80377D1C 0037397C  38 60 00 00 */	li r3, 0
 -/* 80377D20 00373980  48 00 00 6C */	b lbl_80377D8C
 -lbl_80377D24:
 -/* 80377D24 00373984  80 03 00 00 */	lwz r0, 0(r3)
 -/* 80377D28 00373988  7C 1E 00 40 */	cmplw r30, r0
 -/* 80377D2C 0037398C  41 80 00 0C */	blt lbl_80377D38
 -/* 80377D30 00373990  38 60 00 00 */	li r3, 0
 -/* 80377D34 00373994  48 00 00 58 */	b lbl_80377D8C
 -lbl_80377D38:
 -/* 80377D38 00373998  57 C0 18 38 */	slwi r0, r30, 3
 -/* 80377D3C 0037399C  80 BC 00 28 */	lwz r5, 0x28(r28)
 -/* 80377D40 003739A0  7C 83 02 14 */	add r4, r3, r0
 -/* 80377D44 003739A4  88 64 00 04 */	lbz r3, 4(r4)
 -/* 80377D48 003739A8  80 84 00 08 */	lwz r4, 8(r4)
 -/* 80377D4C 003739AC  48 00 B6 9D */	bl func_803833E8
 -/* 80377D50 003739B0  2C 03 00 00 */	cmpwi r3, 0
 -/* 80377D54 003739B4  40 82 00 0C */	bne lbl_80377D60
 -/* 80377D58 003739B8  38 60 00 00 */	li r3, 0
 -/* 80377D5C 003739BC  48 00 00 30 */	b lbl_80377D8C
 -lbl_80377D60:
 -/* 80377D60 003739C0  80 03 00 00 */	lwz r0, 0(r3)
 -/* 80377D64 003739C4  90 1F 00 00 */	stw r0, 0(r31)
 -/* 80377D68 003739C8  80 03 00 04 */	lwz r0, 4(r3)
 -/* 80377D6C 003739CC  90 1F 00 04 */	stw r0, 4(r31)
 -/* 80377D70 003739D0  80 03 00 08 */	lwz r0, 8(r3)
 -/* 80377D74 003739D4  90 1F 00 08 */	stw r0, 8(r31)
 -/* 80377D78 003739D8  80 03 00 0C */	lwz r0, 0xc(r3)
 -/* 80377D7C 003739DC  90 1F 00 0C */	stw r0, 0xc(r31)
 -/* 80377D80 003739E0  80 03 00 10 */	lwz r0, 0x10(r3)
 -/* 80377D84 003739E4  38 60 00 01 */	li r3, 1
 -/* 80377D88 003739E8  90 1F 00 10 */	stw r0, 0x10(r31)
 -lbl_80377D8C:
 -/* 80377D8C 003739EC  80 01 00 24 */	lwz r0, 0x24(r1)
 -/* 80377D90 003739F0  83 E1 00 1C */	lwz r31, 0x1c(r1)
 -/* 80377D94 003739F4  83 C1 00 18 */	lwz r30, 0x18(r1)
 -/* 80377D98 003739F8  83 A1 00 14 */	lwz r29, 0x14(r1)
 -/* 80377D9C 003739FC  83 81 00 10 */	lwz r28, 0x10(r1)
 -/* 80377DA0 00373A00  7C 08 03 A6 */	mtlr r0
 -/* 80377DA4 00373A04  38 21 00 20 */	addi r1, r1, 0x20
 -/* 80377DA8 00373A08  4E 80 00 20 */	blr
 -lbl_80377DAC:
 -/* 80377DAC 00373A0C  94 21 FF F0 */	stwu r1, -0x10(r1)
 -/* 80377DB0 00373A10  7C 08 02 A6 */	mflr r0
 -/* 80377DB4 00373A14  80 A3 00 28 */	lwz r5, 0x28(r3)
 -/* 80377DB8 00373A18  90 01 00 14 */	stw r0, 0x14(r1)
 -/* 80377DBC 00373A1C  93 E1 00 0C */	stw r31, 0xc(r1)
 -/* 80377DC0 00373A20  7C 9F 23 78 */	mr r31, r4
 -/* 80377DC4 00373A24  88 65 00 28 */	lbz r3, 0x28(r5)
 -/* 80377DC8 00373A28  80 85 00 2C */	lwz r4, 0x2c(r5)
 -/* 80377DCC 00373A2C  48 00 B6 1D */	bl func_803833E8
 -/* 80377DD0 00373A30  2C 1F 00 00 */	cmpwi r31, 0
 -/* 80377DD4 00373A34  40 82 00 0C */	bne lbl_80377DE0
 -/* 80377DD8 00373A38  38 60 00 00 */	li r3, 0
 -/* 80377DDC 00373A3C  48 00 00 40 */	b lbl_80377E1C
 -lbl_80377DE0:
 -/* 80377DE0 00373A40  A0 03 00 00 */	lhz r0, 0(r3)
 -/* 80377DE4 00373A44  90 1F 00 00 */	stw r0, 0(r31)
 -/* 80377DE8 00373A48  A0 03 00 02 */	lhz r0, 2(r3)
 -/* 80377DEC 00373A4C  90 1F 00 04 */	stw r0, 4(r31)
 -/* 80377DF0 00373A50  A0 03 00 04 */	lhz r0, 4(r3)
 -/* 80377DF4 00373A54  90 1F 00 08 */	stw r0, 8(r31)
 -/* 80377DF8 00373A58  A0 03 00 06 */	lhz r0, 6(r3)
 -/* 80377DFC 00373A5C  90 1F 00 0C */	stw r0, 0xc(r31)
 -/* 80377E00 00373A60  A0 03 00 08 */	lhz r0, 8(r3)
 -/* 80377E04 00373A64  90 1F 00 10 */	stw r0, 0x10(r31)
 -/* 80377E08 00373A68  A0 03 00 0A */	lhz r0, 0xa(r3)
 -/* 80377E0C 00373A6C  90 1F 00 14 */	stw r0, 0x14(r31)
 -/* 80377E10 00373A70  A0 03 00 0C */	lhz r0, 0xc(r3)
 -/* 80377E14 00373A74  38 60 00 01 */	li r3, 1
 -/* 80377E18 00373A78  90 1F 00 18 */	stw r0, 0x18(r31)
 -lbl_80377E1C:
 -/* 80377E1C 00373A7C  80 01 00 14 */	lwz r0, 0x14(r1)
 -/* 80377E20 00373A80  83 E1 00 0C */	lwz r31, 0xc(r1)
 -/* 80377E24 00373A84  7C 08 03 A6 */	mtlr r0
 -/* 80377E28 00373A88  38 21 00 10 */	addi r1, r1, 0x10
 -/* 80377E2C 00373A8C  4E 80 00 20 */	blr
 -lbl_80377E30:
 -/* 80377E30 00373A90  94 21 FF F0 */	stwu r1, -0x10(r1)
 -/* 80377E34 00373A94  7C 08 02 A6 */	mflr r0
 -/* 80377E38 00373A98  80 A3 00 28 */	lwz r5, 0x28(r3)
 -/* 80377E3C 00373A9C  90 01 00 14 */	stw r0, 0x14(r1)
 -/* 80377E40 00373AA0  88 65 00 00 */	lbz r3, 0(r5)
 -/* 80377E44 00373AA4  80 85 00 04 */	lwz r4, 4(r5)
 -/* 80377E48 00373AA8  48 00 B5 A1 */	bl func_803833E8
 -/* 80377E4C 00373AAC  2C 03 00 00 */	cmpwi r3, 0
 -/* 80377E50 00373AB0  40 82 00 0C */	bne lbl_80377E5C
 -/* 80377E54 00373AB4  38 60 00 00 */	li r3, 0
 -/* 80377E58 00373AB8  48 00 00 08 */	b lbl_80377E60
 -lbl_80377E5C:
 -/* 80377E5C 00373ABC  80 63 00 00 */	lwz r3, 0(r3)
 -lbl_80377E60:
 -/* 80377E60 00373AC0  80 01 00 14 */	lwz r0, 0x14(r1)
 -/* 80377E64 00373AC4  7C 08 03 A6 */	mtlr r0
 -/* 80377E68 00373AC8  38 21 00 10 */	addi r1, r1, 0x10
 -/* 80377E6C 00373ACC  4E 80 00 20 */	blr
 -lbl_80377E70:
 -/* 80377E70 00373AD0  94 21 FF F0 */	stwu r1, -0x10(r1)
 -/* 80377E74 00373AD4  7C 08 02 A6 */	mflr r0
 -/* 80377E78 00373AD8  80 A3 00 28 */	lwz r5, 0x28(r3)
 -/* 80377E7C 00373ADC  90 01 00 14 */	stw r0, 0x14(r1)
 -/* 80377E80 00373AE0  88 65 00 10 */	lbz r3, 0x10(r5)
 -/* 80377E84 00373AE4  80 85 00 14 */	lwz r4, 0x14(r5)
 -/* 80377E88 00373AE8  48 00 B5 61 */	bl func_803833E8
 -/* 80377E8C 00373AEC  2C 03 00 00 */	cmpwi r3, 0
 -/* 80377E90 00373AF0  40 82 00 0C */	bne lbl_80377E9C
 -/* 80377E94 00373AF4  38 60 00 00 */	li r3, 0
 -/* 80377E98 00373AF8  48 00 00 08 */	b lbl_80377EA0
 -lbl_80377E9C:
 -/* 80377E9C 00373AFC  80 63 00 00 */	lwz r3, 0(r3)
 -lbl_80377EA0:
 -/* 80377EA0 00373B00  80 01 00 14 */	lwz r0, 0x14(r1)
 -/* 80377EA4 00373B04  7C 08 03 A6 */	mtlr r0
 -/* 80377EA8 00373B08  38 21 00 10 */	addi r1, r1, 0x10
 -/* 80377EAC 00373B0C  4E 80 00 20 */	blr
 -lbl_80377EB0:
 -/* 80377EB0 00373B10  94 21 FF F0 */	stwu r1, -0x10(r1)
 -/* 80377EB4 00373B14  7C 08 02 A6 */	mflr r0
 -/* 80377EB8 00373B18  80 A3 00 28 */	lwz r5, 0x28(r3)
 -/* 80377EBC 00373B1C  90 01 00 14 */	stw r0, 0x14(r1)
 -/* 80377EC0 00373B20  88 65 00 20 */	lbz r3, 0x20(r5)
 -/* 80377EC4 00373B24  80 85 00 24 */	lwz r4, 0x24(r5)
 -/* 80377EC8 00373B28  48 00 B5 21 */	bl func_803833E8
 -/* 80377ECC 00373B2C  2C 03 00 00 */	cmpwi r3, 0
 -/* 80377ED0 00373B30  40 82 00 0C */	bne lbl_80377EDC
 -/* 80377ED4 00373B34  38 60 00 00 */	li r3, 0
 -/* 80377ED8 00373B38  48 00 00 0C */	b lbl_80377EE4
 -lbl_80377EDC:
 -/* 80377EDC 00373B3C  80 63 00 00 */	lwz r3, 0(r3)
 -/* 80377EE0 00373B40  38 63 FF FF */	addi r3, r3, -1
 -lbl_80377EE4:
 -/* 80377EE4 00373B44  80 01 00 14 */	lwz r0, 0x14(r1)
 -/* 80377EE8 00373B48  7C 08 03 A6 */	mtlr r0
 -/* 80377EEC 00373B4C  38 21 00 10 */	addi r1, r1, 0x10
 -/* 80377EF0 00373B50  4E 80 00 20 */	blr
 -
 -.global func_80377EF4
 -func_80377EF4:
 -/* 80377EF4 00373B54  94 21 FF E0 */	stwu r1, -0x20(r1)
 -/* 80377EF8 00373B58  7C 08 02 A6 */	mflr r0
 -/* 80377EFC 00373B5C  80 C3 00 28 */	lwz r6, 0x28(r3)
 -/* 80377F00 00373B60  90 01 00 24 */	stw r0, 0x24(r1)
 -/* 80377F04 00373B64  93 E1 00 1C */	stw r31, 0x1c(r1)
 -/* 80377F08 00373B68  93 C1 00 18 */	stw r30, 0x18(r1)
 -/* 80377F0C 00373B6C  7C 9E 23 78 */	mr r30, r4
 -/* 80377F10 00373B70  93 A1 00 14 */	stw r29, 0x14(r1)
 -/* 80377F14 00373B74  7C BD 2B 78 */	mr r29, r5
 -/* 80377F18 00373B78  7C C5 33 78 */	mr r5, r6
 -/* 80377F1C 00373B7C  93 81 00 10 */	stw r28, 0x10(r1)
 -/* 80377F20 00373B80  7C 7C 1B 78 */	mr r28, r3
 -/* 80377F24 00373B84  88 66 00 18 */	lbz r3, 0x18(r6)
 -/* 80377F28 00373B88  80 86 00 1C */	lwz r4, 0x1c(r6)
 -/* 80377F2C 00373B8C  48 00 B4 BD */	bl func_803833E8
 -/* 80377F30 00373B90  2C 03 00 00 */	cmpwi r3, 0
 -/* 80377F34 00373B94  40 82 00 0C */	bne lbl_80377F40
 -/* 80377F38 00373B98  38 60 00 00 */	li r3, 0
 -/* 80377F3C 00373B9C  48 00 00 98 */	b lbl_80377FD4
 -lbl_80377F40:
 -/* 80377F40 00373BA0  80 03 00 00 */	lwz r0, 0(r3)
 -/* 80377F44 00373BA4  7C 1E 00 40 */	cmplw r30, r0
 -/* 80377F48 00373BA8  41 80 00 0C */	blt lbl_80377F54
 -/* 80377F4C 00373BAC  38 60 00 00 */	li r3, 0
 -/* 80377F50 00373BB0  48 00 00 84 */	b lbl_80377FD4
 -lbl_80377F54:
 -/* 80377F54 00373BB4  57 C0 18 38 */	slwi r0, r30, 3
 -/* 80377F58 00373BB8  80 BC 00 28 */	lwz r5, 0x28(r28)
 -/* 80377F5C 00373BBC  7C 83 02 14 */	add r4, r3, r0
 -/* 80377F60 00373BC0  88 64 00 04 */	lbz r3, 4(r4)
 -/* 80377F64 00373BC4  80 84 00 08 */	lwz r4, 8(r4)
 -/* 80377F68 00373BC8  48 00 B4 81 */	bl func_803833E8
 -/* 80377F6C 00373BCC  2C 03 00 00 */	cmpwi r3, 0
 -/* 80377F70 00373BD0  7C 7E 1B 78 */	mr r30, r3
 -/* 80377F74 00373BD4  40 82 00 0C */	bne lbl_80377F80
 -/* 80377F78 00373BD8  38 60 00 00 */	li r3, 0
 -/* 80377F7C 00373BDC  48 00 00 58 */	b lbl_80377FD4
 -lbl_80377F80:
 -/* 80377F80 00373BE0  88 63 00 14 */	lbz r3, 0x14(r3)
 -/* 80377F84 00373BE4  80 9E 00 18 */	lwz r4, 0x18(r30)
 -/* 80377F88 00373BE8  80 BC 00 28 */	lwz r5, 0x28(r28)
 -/* 80377F8C 00373BEC  48 00 B4 5D */	bl func_803833E8
 -/* 80377F90 00373BF0  2C 03 00 00 */	cmpwi r3, 0
 -/* 80377F94 00373BF4  7C 7F 1B 78 */	mr r31, r3
 -/* 80377F98 00373BF8  40 82 00 0C */	bne lbl_80377FA4
 -/* 80377F9C 00373BFC  38 60 00 00 */	li r3, 0
 -/* 80377FA0 00373C00  48 00 00 34 */	b lbl_80377FD4
 -lbl_80377FA4:
 -/* 80377FA4 00373C04  80 1E 00 00 */	lwz r0, 0(r30)
 -/* 80377FA8 00373C08  80 BC 00 28 */	lwz r5, 0x28(r28)
 -/* 80377FAC 00373C0C  90 1D 00 00 */	stw r0, 0(r29)
 -/* 80377FB0 00373C10  80 1E 00 04 */	lwz r0, 4(r30)
 -/* 80377FB4 00373C14  90 1D 00 04 */	stw r0, 4(r29)
 -/* 80377FB8 00373C18  88 7E 00 0C */	lbz r3, 0xc(r30)
 -/* 80377FBC 00373C1C  80 9E 00 10 */	lwz r4, 0x10(r30)
 -/* 80377FC0 00373C20  48 00 B4 29 */	bl func_803833E8
 -/* 80377FC4 00373C24  90 7D 00 08 */	stw r3, 8(r29)
 -/* 80377FC8 00373C28  38 60 00 01 */	li r3, 1
 -/* 80377FCC 00373C2C  80 1F 00 00 */	lwz r0, 0(r31)
 -/* 80377FD0 00373C30  90 1D 00 0C */	stw r0, 0xc(r29)
 -lbl_80377FD4:
 -/* 80377FD4 00373C34  80 01 00 24 */	lwz r0, 0x24(r1)
 -/* 80377FD8 00373C38  83 E1 00 1C */	lwz r31, 0x1c(r1)
 -/* 80377FDC 00373C3C  83 C1 00 18 */	lwz r30, 0x18(r1)
 -/* 80377FE0 00373C40  83 A1 00 14 */	lwz r29, 0x14(r1)
 -/* 80377FE4 00373C44  83 81 00 10 */	lwz r28, 0x10(r1)
 -/* 80377FE8 00373C48  7C 08 03 A6 */	mtlr r0
 -/* 80377FEC 00373C4C  38 21 00 20 */	addi r1, r1, 0x20
 -/* 80377FF0 00373C50  4E 80 00 20 */	blr
 -
 -.global func_80377FF4
 -func_80377FF4:
 -/* 80377FF4 00373C54  94 21 FF E0 */	stwu r1, -0x20(r1)
 -/* 80377FF8 00373C58  7C 08 02 A6 */	mflr r0
 -/* 80377FFC 00373C5C  80 E3 00 28 */	lwz r7, 0x28(r3)
 -/* 80378000 00373C60  90 01 00 24 */	stw r0, 0x24(r1)
 -/* 80378004 00373C64  93 E1 00 1C */	stw r31, 0x1c(r1)
 -/* 80378008 00373C68  7C DF 33 78 */	mr r31, r6
 -/* 8037800C 00373C6C  93 C1 00 18 */	stw r30, 0x18(r1)
 -/* 80378010 00373C70  7C BE 2B 78 */	mr r30, r5
 -/* 80378014 00373C74  7C E5 3B 78 */	mr r5, r7
 -/* 80378018 00373C78  93 A1 00 14 */	stw r29, 0x14(r1)
 -/* 8037801C 00373C7C  7C 9D 23 78 */	mr r29, r4
 -/* 80378020 00373C80  93 81 00 10 */	stw r28, 0x10(r1)
 -/* 80378024 00373C84  7C 7C 1B 78 */	mr r28, r3
 -/* 80378028 00373C88  88 67 00 18 */	lbz r3, 0x18(r7)
 -/* 8037802C 00373C8C  80 87 00 1C */	lwz r4, 0x1c(r7)
 -/* 80378030 00373C90  48 00 B3 B9 */	bl func_803833E8
 -/* 80378034 00373C94  2C 03 00 00 */	cmpwi r3, 0
 -/* 80378038 00373C98  40 82 00 0C */	bne lbl_80378044
 -/* 8037803C 00373C9C  38 60 00 00 */	li r3, 0
 -/* 80378040 00373CA0  48 00 00 B4 */	b lbl_803780F4
 -lbl_80378044:
 -/* 80378044 00373CA4  80 03 00 00 */	lwz r0, 0(r3)
 -/* 80378048 00373CA8  7C 1D 00 40 */	cmplw r29, r0
 -/* 8037804C 00373CAC  41 80 00 0C */	blt lbl_80378058
 -/* 80378050 00373CB0  38 60 00 00 */	li r3, 0
 -/* 80378054 00373CB4  48 00 00 A0 */	b lbl_803780F4
 -lbl_80378058:
 -/* 80378058 00373CB8  57 A0 18 38 */	slwi r0, r29, 3
 -/* 8037805C 00373CBC  80 BC 00 28 */	lwz r5, 0x28(r28)
 -/* 80378060 00373CC0  7C 83 02 14 */	add r4, r3, r0
 -/* 80378064 00373CC4  88 64 00 04 */	lbz r3, 4(r4)
 -/* 80378068 00373CC8  80 84 00 08 */	lwz r4, 8(r4)
 -/* 8037806C 00373CCC  48 00 B3 7D */	bl func_803833E8
 -/* 80378070 00373CD0  2C 03 00 00 */	cmpwi r3, 0
 -/* 80378074 00373CD4  7C 64 1B 78 */	mr r4, r3
 -/* 80378078 00373CD8  40 82 00 0C */	bne lbl_80378084
 -/* 8037807C 00373CDC  38 60 00 00 */	li r3, 0
 -/* 80378080 00373CE0  48 00 00 74 */	b lbl_803780F4
 -lbl_80378084:
 -/* 80378084 00373CE4  88 63 00 14 */	lbz r3, 0x14(r3)
 -/* 80378088 00373CE8  80 84 00 18 */	lwz r4, 0x18(r4)
 -/* 8037808C 00373CEC  80 BC 00 28 */	lwz r5, 0x28(r28)
 -/* 80378090 00373CF0  48 00 B3 59 */	bl func_803833E8
 -/* 80378094 00373CF4  2C 03 00 00 */	cmpwi r3, 0
 -/* 80378098 00373CF8  40 82 00 0C */	bne lbl_803780A4
 -/* 8037809C 00373CFC  38 60 00 00 */	li r3, 0
 -/* 803780A0 00373D00  48 00 00 54 */	b lbl_803780F4
 -lbl_803780A4:
 -/* 803780A4 00373D04  80 03 00 00 */	lwz r0, 0(r3)
 -/* 803780A8 00373D08  7C 1E 00 40 */	cmplw r30, r0
 -/* 803780AC 00373D0C  41 80 00 0C */	blt lbl_803780B8
 -/* 803780B0 00373D10  38 60 00 00 */	li r3, 0
 -/* 803780B4 00373D14  48 00 00 40 */	b lbl_803780F4
 -lbl_803780B8:
 -/* 803780B8 00373D18  57 C0 18 38 */	slwi r0, r30, 3
 -/* 803780BC 00373D1C  80 BC 00 28 */	lwz r5, 0x28(r28)
 -/* 803780C0 00373D20  7C 83 02 14 */	add r4, r3, r0
 -/* 803780C4 00373D24  88 64 00 04 */	lbz r3, 4(r4)
 -/* 803780C8 00373D28  80 84 00 08 */	lwz r4, 8(r4)
 -/* 803780CC 00373D2C  48 00 B3 1D */	bl func_803833E8
 -/* 803780D0 00373D30  2C 03 00 00 */	cmpwi r3, 0
 -/* 803780D4 00373D34  40 82 00 0C */	bne lbl_803780E0
 -/* 803780D8 00373D38  38 60 00 00 */	li r3, 0
 -/* 803780DC 00373D3C  48 00 00 18 */	b lbl_803780F4
 -lbl_803780E0:
 -/* 803780E0 00373D40  80 03 00 00 */	lwz r0, 0(r3)
 -/* 803780E4 00373D44  90 1F 00 00 */	stw r0, 0(r31)
 -/* 803780E8 00373D48  80 03 00 04 */	lwz r0, 4(r3)
 -/* 803780EC 00373D4C  38 60 00 01 */	li r3, 1
 -/* 803780F0 00373D50  90 1F 00 04 */	stw r0, 4(r31)
 -lbl_803780F4:
 -/* 803780F4 00373D54  80 01 00 24 */	lwz r0, 0x24(r1)
 -/* 803780F8 00373D58  83 E1 00 1C */	lwz r31, 0x1c(r1)
 -/* 803780FC 00373D5C  83 C1 00 18 */	lwz r30, 0x18(r1)
 -/* 80378100 00373D60  83 A1 00 14 */	lwz r29, 0x14(r1)
 -/* 80378104 00373D64  83 81 00 10 */	lwz r28, 0x10(r1)
 -/* 80378108 00373D68  7C 08 03 A6 */	mtlr r0
 -/* 8037810C 00373D6C  38 21 00 20 */	addi r1, r1, 0x20
 -/* 80378110 00373D70  4E 80 00 20 */	blr
 -lbl_80378114:
 -/* 80378114 00373D74  94 21 FF E0 */	stwu r1, -0x20(r1)
 -/* 80378118 00373D78  7C 08 02 A6 */	mflr r0
 -/* 8037811C 00373D7C  2C 04 00 00 */	cmpwi r4, 0
 -/* 80378120 00373D80  90 01 00 24 */	stw r0, 0x24(r1)
 -/* 80378124 00373D84  93 E1 00 1C */	stw r31, 0x1c(r1)
 -/* 80378128 00373D88  93 C1 00 18 */	stw r30, 0x18(r1)
 -/* 8037812C 00373D8C  7C BE 2B 78 */	mr r30, r5
 -/* 80378130 00373D90  93 A1 00 14 */	stw r29, 0x14(r1)
 -/* 80378134 00373D94  7C 9D 23 78 */	mr r29, r4
 -/* 80378138 00373D98  93 81 00 10 */	stw r28, 0x10(r1)
 -/* 8037813C 00373D9C  7C 7C 1B 78 */	mr r28, r3
 -/* 80378140 00373DA0  40 82 00 0C */	bne lbl_8037814C
 -/* 80378144 00373DA4  38 60 FF FF */	li r3, -1
 -/* 80378148 00373DA8  48 00 00 F4 */	b lbl_8037823C
 -lbl_8037814C:
 -/* 8037814C 00373DAC  80 64 00 00 */	lwz r3, 0(r4)
 -/* 80378150 00373DB0  80 04 00 04 */	lwz r0, 4(r4)
 -/* 80378154 00373DB4  7C 03 00 40 */	cmplw r3, r0
 -/* 80378158 00373DB8  41 80 00 0C */	blt lbl_80378164
 -/* 8037815C 00373DBC  38 60 FF FF */	li r3, -1
 -/* 80378160 00373DC0  48 00 00 DC */	b lbl_8037823C
 -lbl_80378164:
 -/* 80378164 00373DC4  1C 03 00 14 */	mulli r0, r3, 0x14
 -/* 80378168 00373DC8  7F C3 F3 78 */	mr r3, r30
 -/* 8037816C 00373DCC  7C 84 02 14 */	add r4, r4, r0
 -/* 80378170 00373DD0  3B E4 00 08 */	addi r31, r4, 8
 -/* 80378174 00373DD4  4B E4 E9 F1 */	bl strlen
 -/* 80378178 00373DD8  38 A0 00 01 */	li r5, 1
 -/* 8037817C 00373DDC  48 00 00 48 */	b lbl_803781C4
 -lbl_80378180:
 -/* 80378180 00373DE0  A0 1F 00 02 */	lhz r0, 2(r31)
 -/* 80378184 00373DE4  7C 04 1E 70 */	srawi r4, r0, 3
 -/* 80378188 00373DE8  54 06 07 7E */	clrlwi r6, r0, 0x1d
 -/* 8037818C 00373DEC  7C 04 18 00 */	cmpw r4, r3
 -/* 80378190 00373DF0  40 80 00 24 */	bge lbl_803781B4
 -/* 80378194 00373DF4  7C 1E 20 AE */	lbzx r0, r30, r4
 -/* 80378198 00373DF8  20 86 00 07 */	subfic r4, r6, 7
 -/* 8037819C 00373DFC  7C A4 20 30 */	slw r4, r5, r4
 -/* 803781A0 00373E00  7C 00 07 74 */	extsb r0, r0
 -/* 803781A4 00373E04  7C 80 00 39 */	and. r0, r4, r0
 -/* 803781A8 00373E08  41 82 00 0C */	beq lbl_803781B4
 -/* 803781AC 00373E0C  80 1F 00 08 */	lwz r0, 8(r31)
 -/* 803781B0 00373E10  48 00 00 08 */	b lbl_803781B8
 -lbl_803781B4:
 -/* 803781B4 00373E14  80 1F 00 04 */	lwz r0, 4(r31)
 -lbl_803781B8:
 -/* 803781B8 00373E18  1C 00 00 14 */	mulli r0, r0, 0x14
 -/* 803781BC 00373E1C  7C 9D 02 14 */	add r4, r29, r0
 -/* 803781C0 00373E20  3B E4 00 08 */	addi r31, r4, 8
 -lbl_803781C4:
 -/* 803781C4 00373E24  A0 1F 00 00 */	lhz r0, 0(r31)
 -/* 803781C8 00373E28  54 00 07 FF */	clrlwi. r0, r0, 0x1f
 -/* 803781CC 00373E2C  41 82 FF B4 */	beq lbl_80378180
 -/* 803781D0 00373E30  80 7F 00 0C */	lwz r3, 0xc(r31)
 -/* 803781D4 00373E34  3C 03 00 01 */	addis r0, r3, 1
 -/* 803781D8 00373E38  28 00 FF FF */	cmplwi r0, 0xffff
 -/* 803781DC 00373E3C  40 82 00 0C */	bne lbl_803781E8
 -/* 803781E0 00373E40  38 80 00 00 */	li r4, 0
 -/* 803781E4 00373E44  48 00 00 3C */	b lbl_80378220
 -lbl_803781E8:
 -/* 803781E8 00373E48  80 BC 00 30 */	lwz r5, 0x30(r28)
 -/* 803781EC 00373E4C  2C 05 00 00 */	cmpwi r5, 0
 -/* 803781F0 00373E50  40 82 00 0C */	bne lbl_803781FC
 -/* 803781F4 00373E54  38 80 00 00 */	li r4, 0
 -/* 803781F8 00373E58  48 00 00 28 */	b lbl_80378220
 -lbl_803781FC:
 -/* 803781FC 00373E5C  54 60 10 3A */	slwi r0, r3, 2
 -/* 80378200 00373E60  80 9C 00 2C */	lwz r4, 0x2c(r28)
 -/* 80378204 00373E64  7C 65 02 14 */	add r3, r5, r0
 -/* 80378208 00373E68  80 03 00 04 */	lwz r0, 4(r3)
 -/* 8037820C 00373E6C  2C 00 00 00 */	cmpwi r0, 0
 -/* 80378210 00373E70  40 82 00 0C */	bne lbl_8037821C
 -/* 80378214 00373E74  38 80 00 00 */	li r4, 0
 -/* 80378218 00373E78  48 00 00 08 */	b lbl_80378220
 -lbl_8037821C:
 -/* 8037821C 00373E7C  7C 80 22 14 */	add r4, r0, r4
 -lbl_80378220:
 -/* 80378220 00373E80  7F C3 F3 78 */	mr r3, r30
 -/* 80378224 00373E84  4B E5 62 29 */	bl func_801CE44C
 -/* 80378228 00373E88  2C 03 00 00 */	cmpwi r3, 0
 -/* 8037822C 00373E8C  40 82 00 0C */	bne lbl_80378238
 -/* 80378230 00373E90  80 7F 00 10 */	lwz r3, 0x10(r31)
 -/* 80378234 00373E94  48 00 00 08 */	b lbl_8037823C
 -lbl_80378238:
 -/* 80378238 00373E98  38 60 FF FF */	li r3, -1
 -lbl_8037823C:
 -/* 8037823C 00373E9C  80 01 00 24 */	lwz r0, 0x24(r1)
 -/* 80378240 00373EA0  83 E1 00 1C */	lwz r31, 0x1c(r1)
 -/* 80378244 00373EA4  83 C1 00 18 */	lwz r30, 0x18(r1)
 -/* 80378248 00373EA8  83 A1 00 14 */	lwz r29, 0x14(r1)
 -/* 8037824C 00373EAC  83 81 00 10 */	lwz r28, 0x10(r1)
 -/* 80378250 00373EB0  7C 08 03 A6 */	mtlr r0
 -/* 80378254 00373EB4  38 21 00 20 */	addi r1, r1, 0x20
 -/* 80378258 00373EB8  4E 80 00 20 */	blr
 -
 -.global func_8037825C
 -func_8037825C:
 -/* 8037825C 00373EBC  94 21 FF E0 */	stwu r1, -0x20(r1)
 -/* 80378260 00373EC0  7C 08 02 A6 */	mflr r0
 -/* 80378264 00373EC4  80 A3 00 28 */	lwz r5, 0x28(r3)
 -/* 80378268 00373EC8  90 01 00 24 */	stw r0, 0x24(r1)
 -/* 8037826C 00373ECC  93 E1 00 1C */	stw r31, 0x1c(r1)
 -/* 80378270 00373ED0  7C 9F 23 78 */	mr r31, r4
 -/* 80378274 00373ED4  93 C1 00 18 */	stw r30, 0x18(r1)
 -/* 80378278 00373ED8  7C 7E 1B 78 */	mr r30, r3
 -/* 8037827C 00373EDC  88 65 00 00 */	lbz r3, 0(r5)
 -/* 80378280 00373EE0  80 85 00 04 */	lwz r4, 4(r5)
 -/* 80378284 00373EE4  48 00 B1 65 */	bl func_803833E8
 -/* 80378288 00373EE8  2C 03 00 00 */	cmpwi r3, 0
 -/* 8037828C 00373EEC  40 82 00 10 */	bne lbl_8037829C
 -/* 80378290 00373EF0  80 6D B2 68 */	lwz r3, lbl_80640528-_SDA_BASE_(r13)
 -/* 80378294 00373EF4  80 8D B2 6C */	lwz r4, lbl_8064052C-_SDA_BASE_(r13)
 -/* 80378298 00373EF8  48 00 00 A0 */	b lbl_80378338
 -lbl_8037829C:
 -/* 8037829C 00373EFC  80 03 00 00 */	lwz r0, 0(r3)
 -/* 803782A0 00373F00  7C 1F 00 40 */	cmplw r31, r0
 -/* 803782A4 00373F04  41 80 00 10 */	blt lbl_803782B4
 -/* 803782A8 00373F08  80 6D B2 68 */	lwz r3, lbl_80640528-_SDA_BASE_(r13)
 -/* 803782AC 00373F0C  80 8D B2 6C */	lwz r4, lbl_8064052C-_SDA_BASE_(r13)
 -/* 803782B0 00373F10  48 00 00 88 */	b lbl_80378338
 -lbl_803782B4:
 -/* 803782B4 00373F14  A0 1E 00 06 */	lhz r0, 6(r30)
 -/* 803782B8 00373F18  28 00 01 01 */	cmplwi r0, 0x101
 -/* 803782BC 00373F1C  41 80 00 54 */	blt lbl_80378310
 -/* 803782C0 00373F20  57 E0 18 38 */	slwi r0, r31, 3
 -/* 803782C4 00373F24  80 BE 00 28 */	lwz r5, 0x28(r30)
 -/* 803782C8 00373F28  7C 83 02 14 */	add r4, r3, r0
 -/* 803782CC 00373F2C  88 64 00 04 */	lbz r3, 4(r4)
 -/* 803782D0 00373F30  80 84 00 08 */	lwz r4, 8(r4)
 -/* 803782D4 00373F34  48 00 B1 15 */	bl func_803833E8
 -/* 803782D8 00373F38  2C 03 00 00 */	cmpwi r3, 0
 -/* 803782DC 00373F3C  40 82 00 18 */	bne lbl_803782F4
 -/* 803782E0 00373F40  80 6D B2 68 */	lwz r3, lbl_80640528-_SDA_BASE_(r13)
 -/* 803782E4 00373F44  80 0D B2 6C */	lwz r0, lbl_8064052C-_SDA_BASE_(r13)
 -/* 803782E8 00373F48  90 61 00 10 */	stw r3, 0x10(r1)
 -/* 803782EC 00373F4C  90 01 00 14 */	stw r0, 0x14(r1)
 -/* 803782F0 00373F50  48 00 00 14 */	b lbl_80378304
 -lbl_803782F4:
 -/* 803782F4 00373F54  80 83 00 18 */	lwz r4, 0x18(r3)
 -/* 803782F8 00373F58  80 03 00 1C */	lwz r0, 0x1c(r3)
 -/* 803782FC 00373F5C  90 81 00 10 */	stw r4, 0x10(r1)
 -/* 80378300 00373F60  90 01 00 14 */	stw r0, 0x14(r1)
 -lbl_80378304:
 -/* 80378304 00373F64  80 61 00 10 */	lwz r3, 0x10(r1)
 -/* 80378308 00373F68  80 81 00 14 */	lwz r4, 0x14(r1)
 -/* 8037830C 00373F6C  48 00 00 2C */	b lbl_80378338
 -lbl_80378310:
 -/* 80378310 00373F70  57 E0 18 38 */	slwi r0, r31, 3
 -/* 80378314 00373F74  7C 63 02 14 */	add r3, r3, r0
 -/* 80378318 00373F78  88 83 00 04 */	lbz r4, 4(r3)
 -/* 8037831C 00373F7C  88 03 00 05 */	lbz r0, 5(r3)
 -/* 80378320 00373F80  80 63 00 08 */	lwz r3, 8(r3)
 -/* 80378324 00373F84  98 81 00 08 */	stb r4, 8(r1)
 -/* 80378328 00373F88  38 83 00 1C */	addi r4, r3, 0x1c
 -/* 8037832C 00373F8C  98 01 00 09 */	stb r0, 9(r1)
 -/* 80378330 00373F90  90 81 00 0C */	stw r4, 0xc(r1)
 -/* 80378334 00373F94  80 61 00 08 */	lwz r3, 8(r1)
 -lbl_80378338:
 -/* 80378338 00373F98  80 01 00 24 */	lwz r0, 0x24(r1)
 -/* 8037833C 00373F9C  83 E1 00 1C */	lwz r31, 0x1c(r1)
 -/* 80378340 00373FA0  83 C1 00 18 */	lwz r30, 0x18(r1)
 -/* 80378344 00373FA4  7C 08 03 A6 */	mtlr r0
 -/* 80378348 00373FA8  38 21 00 20 */	addi r1, r1, 0x20
 -/* 8037834C 00373FAC  4E 80 00 20 */	blr
 -
  .global func_80378350
  func_80378350:
  /* 80378350 00373FB0  94 21 FF F0 */	stwu r1, -0x10(r1)
 @@ -1551,7 +57,7 @@ func_803783CC:  /* 803783FC 0037405C  7F 44 D3 78 */	mr r4, r26
  /* 80378400 00374060  38 BF 00 1C */	addi r5, r31, 0x1c
  /* 80378404 00374064  38 C0 02 00 */	li r6, 0x200
 -/* 80378408 00374068  4B FF EE C9 */	bl func_803772D0
 +/* 80378408 00374068  4B FF EE C9 */	bl detail_OpenGroupStream__Q34nw4r3snd12SoundArchiveCFUlPvi
  /* 8037840C 0037406C  2C 03 00 00 */	cmpwi r3, 0
  /* 80378410 00374070  7C 7D 1B 78 */	mr r29, r3
  /* 80378414 00374074  40 82 00 28 */	bne lbl_8037843C
 @@ -1728,7 +234,7 @@ lbl_80378668:  /* 80378678 003742D8  7F 44 D3 78 */	mr r4, r26
  /* 8037867C 003742DC  38 BF 00 1C */	addi r5, r31, 0x1c
  /* 80378680 003742E0  38 C0 02 00 */	li r6, 0x200
 -/* 80378684 003742E4  4B FF ED 65 */	bl func_803773E8
 +/* 80378684 003742E4  4B FF ED 65 */	bl detail_OpenGroupWaveDataStream__Q34nw4r3snd12SoundArchiveCFUlPvi
  /* 80378688 003742E8  2C 03 00 00 */	cmpwi r3, 0
  /* 8037868C 003742EC  7C 7C 1B 78 */	mr r28, r3
  /* 80378690 003742F0  40 82 00 44 */	bne lbl_803786D4
 @@ -3249,7 +1755,7 @@ lbl_80379B54:  /* 80379B94 003757F4  48 00 00 0C */	b lbl_80379BA0
  lbl_80379B98:
  /* 80379B98 003757F8  7C 03 03 78 */	mr r3, r0
 -/* 80379B9C 003757FC  4B FF D4 55 */	bl func_80376FF0
 +/* 80379B9C 003757FC  4B FF D4 55 */	bl IsAvailable__Q34nw4r3snd12SoundArchiveCFv
  lbl_80379BA0:
  /* 80379BA0 00375800  2C 03 00 00 */	cmpwi r3, 0
  /* 80379BA4 00375804  40 82 00 0C */	bne lbl_80379BB0
 @@ -3493,7 +1999,7 @@ lbl_80379EF8:  /* 80379EFC 00375B5C  38 B6 02 28 */	addi r5, r22, 0x228
  /* 80379F00 00375B60  80 97 00 00 */	lwz r4, 0(r23)
  /* 80379F04 00375B64  38 C0 02 00 */	li r6, 0x200
 -/* 80379F08 00375B68  4B FF D1 A5 */	bl func_803770AC
 +/* 80379F08 00375B68  4B FF D1 A5 */	bl detail_OpenFileStream__Q34nw4r3snd12SoundArchiveCFUlPvi
  /* 80379F0C 00375B6C  2C 03 00 00 */	cmpwi r3, 0
  /* 80379F10 00375B70  7C 7C 1B 78 */	mr r28, r3
  /* 80379F14 00375B74  40 82 00 0C */	bne lbl_80379F20
 @@ -3720,7 +2226,7 @@ lbl_8037A210:  /* 8037A214 00375E74  38 BB 09 54 */	addi r5, r27, 0x954
  /* 8037A218 00375E78  80 63 00 10 */	lwz r3, 0x10(r3)
  /* 8037A21C 00375E7C  38 C0 02 00 */	li r6, 0x200
 -/* 8037A220 00375E80  4B FF CE 8D */	bl func_803770AC
 +/* 8037A220 00375E80  4B FF CE 8D */	bl detail_OpenFileStream__Q34nw4r3snd12SoundArchiveCFUlPvi
  /* 8037A224 00375E84  2C 03 00 00 */	cmpwi r3, 0
  /* 8037A228 00375E88  7C 68 1B 78 */	mr r8, r3
  /* 8037A22C 00375E8C  40 82 00 0C */	bne lbl_8037A238
 @@ -3906,7 +2412,7 @@ func_8037A478:  /* 8037A4B4 00376114  48 00 00 0C */	b lbl_8037A4C0
  lbl_8037A4B8:
  /* 8037A4B8 00376118  7C 03 03 78 */	mr r3, r0
 -/* 8037A4BC 0037611C  4B FF CB 35 */	bl func_80376FF0
 +/* 8037A4BC 0037611C  4B FF CB 35 */	bl IsAvailable__Q34nw4r3snd12SoundArchiveCFv
  lbl_8037A4C0:
  /* 8037A4C0 00376120  2C 03 00 00 */	cmpwi r3, 0
  /* 8037A4C4 00376124  40 82 00 0C */	bne lbl_8037A4D0
 @@ -4055,7 +2561,7 @@ lbl_8037A674:  /* 8037A6BC 0037631C  38 60 00 00 */	li r3, 0
  /* 8037A6C0 00376320  48 00 00 08 */	b lbl_8037A6C8
  lbl_8037A6C4:
 -/* 8037A6C4 00376324  4B FF C9 2D */	bl func_80376FF0
 +/* 8037A6C4 00376324  4B FF C9 2D */	bl IsAvailable__Q34nw4r3snd12SoundArchiveCFv
  lbl_8037A6C8:
  /* 8037A6C8 00376328  2C 03 00 00 */	cmpwi r3, 0
  /* 8037A6CC 0037632C  40 82 00 0C */	bne lbl_8037A6D8
 @@ -4141,7 +2647,7 @@ lbl_8037A794:  /* 8037A7F4 00376454  38 60 00 00 */	li r3, 0
  /* 8037A7F8 00376458  48 00 00 08 */	b lbl_8037A800
  lbl_8037A7FC:
 -/* 8037A7FC 0037645C  4B FF C7 F5 */	bl func_80376FF0
 +/* 8037A7FC 0037645C  4B FF C7 F5 */	bl IsAvailable__Q34nw4r3snd12SoundArchiveCFv
  lbl_8037A800:
  /* 8037A800 00376460  2C 03 00 00 */	cmpwi r3, 0
  /* 8037A804 00376464  40 82 00 0C */	bne lbl_8037A810
 @@ -4193,7 +2699,7 @@ lbl_8037A894:  /* 8037A8A8 00376508  4E 80 00 20 */	blr
  lbl_8037A8AC:
  /* 8037A8AC 0037650C  80 63 00 10 */	lwz r3, 0x10(r3)
 -/* 8037A8B0 00376510  4B FF C7 8C */	b lbl_8037703C
 +/* 8037A8B0 00376510  4B FF C7 8C */	b ConvertLabelStringToSoundId__Q34nw4r3snd12SoundArchiveCFPCc
  /* 8037A8B4 00376514  94 21 FF F0 */	stwu r1, -0x10(r1)
  /* 8037A8B8 00376518  7C 08 02 A6 */	mflr r0
  /* 8037A8BC 0037651C  2C 03 00 00 */	cmpwi r3, 0
 diff --git a/obj_files.mk b/obj_files.mk index 1a1f29a..dfcd7f5 100644 --- a/obj_files.mk +++ b/obj_files.mk @@ -139,6 +139,8 @@ TEXT_O_FILES := 						                          \  	$(BUILD_DIR)/asm/nw4r/snd/detail/snd_SeqTrack.o                   \  	$(BUILD_DIR)/asm/nw4r/snd/snd_Sound3DListener.o                   \  	$(BUILD_DIR)/asm/nw4r/snd/snd_Sound3DManager.o                    \ +	$(BUILD_DIR)/asm/nw4r/snd/detail/snd_SoundArchive.o               \ +	$(BUILD_DIR)/asm/nw4r/snd/detail/snd_SoundArchiveFile.o           \  	$(BUILD_DIR)/asm/text_10_6.o                                      \  	$(BUILD_DIR)/asm/text_11.o | 
