.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 __dl__FPv 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 strncpy /* 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 strncat /* 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 strncpy /* 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 strncat /* 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 _restgpr_25 /* 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 strncpy /* 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 strncat /* 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 _restgpr_25 /* 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 strncpy /* 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 strncat /* 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 _restgpr_25 /* 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 strncpy /* 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