summaryrefslogtreecommitdiff
path: root/asm/nw4r/snd/detail/snd_BankFile.s
blob: 3d456e04fbfd0d90b8ae542d0032f70513b9e5da (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
.include "macros.inc"

.section .text, "ax"  # 0x80006980 - 0x803E1E60

.global __ct__Q44nw4r3snd6detail14BankFileReaderFPCv
__ct__Q44nw4r3snd6detail14BankFileReaderFPCv:
/* 8036CA7C 003686DC  80 A4 00 00 */	lwz r5, 0(r4)
/* 8036CA80 003686E0  38 C0 00 00 */	li r6, 0
/* 8036CA84 003686E4  90 C3 00 00 */	stw r6, 0(r3)
/* 8036CA88 003686E8  3C 05 AD BE */	addis r0, r5, 0xadbe
/* 8036CA8C 003686EC  28 00 4E 4B */	cmplwi r0, 0x4e4b
/* 8036CA90 003686F0  90 C3 00 04 */	stw r6, 4(r3)
/* 8036CA94 003686F4  90 C3 00 08 */	stw r6, 8(r3)
/* 8036CA98 003686F8  41 82 00 0C */	beq lbl_8036CAA4
/* 8036CA9C 003686FC  38 00 00 00 */	li r0, 0
/* 8036CAA0 00368700  48 00 00 30 */	b lbl_8036CAD0
lbl_8036CAA4:
/* 8036CAA4 00368704  A0 C4 00 06 */	lhz r6, 6(r4)
/* 8036CAA8 00368708  28 06 01 00 */	cmplwi r6, 0x100
/* 8036CAAC 0036870C  40 80 00 0C */	bge lbl_8036CAB8
/* 8036CAB0 00368710  38 00 00 00 */	li r0, 0
/* 8036CAB4 00368714  48 00 00 1C */	b lbl_8036CAD0
lbl_8036CAB8:
/* 8036CAB8 00368718  20 06 01 01 */	subfic r0, r6, 0x101
/* 8036CABC 0036871C  38 A0 01 01 */	li r5, 0x101
/* 8036CAC0 00368720  7C A5 33 38 */	orc r5, r5, r6
/* 8036CAC4 00368724  54 00 F8 7E */	srwi r0, r0, 1
/* 8036CAC8 00368728  7C 00 28 50 */	subf r0, r0, r5
/* 8036CACC 0036872C  54 00 0F FE */	srwi r0, r0, 0x1f
lbl_8036CAD0:
/* 8036CAD0 00368730  2C 00 00 00 */	cmpwi r0, 0
/* 8036CAD4 00368734  4D 82 00 20 */	beqlr
/* 8036CAD8 00368738  80 A4 00 10 */	lwz r5, 0x10(r4)
/* 8036CADC 0036873C  80 04 00 18 */	lwz r0, 0x18(r4)
/* 8036CAE0 00368740  7C A5 22 14 */	add r5, r5, r4
/* 8036CAE4 00368744  90 83 00 00 */	stw r4, 0(r3)
/* 8036CAE8 00368748  7C 00 22 14 */	add r0, r0, r4
/* 8036CAEC 0036874C  90 A3 00 04 */	stw r5, 4(r3)
/* 8036CAF0 00368750  90 03 00 08 */	stw r0, 8(r3)
/* 8036CAF4 00368754  4E 80 00 20 */	blr

.global ReadInstInfo__Q44nw4r3snd6detail14BankFileReaderCFPQ44nw4r3snd6detail8InstInfoiii
ReadInstInfo__Q44nw4r3snd6detail14BankFileReaderCFPQ44nw4r3snd6detail8InstInfoiii:
/* 8036CAF8 00368758  94 21 FF E0 */	stwu r1, -0x20(r1)
/* 8036CAFC 0036875C  7C 08 02 A6 */	mflr r0
/* 8036CB00 00368760  90 01 00 24 */	stw r0, 0x24(r1)
/* 8036CB04 00368764  80 03 00 00 */	lwz r0, 0(r3)
/* 8036CB08 00368768  93 E1 00 1C */	stw r31, 0x1c(r1)
/* 8036CB0C 0036876C  7C 9F 23 78 */	mr r31, r4
/* 8036CB10 00368770  2C 00 00 00 */	cmpwi r0, 0
/* 8036CB14 00368774  93 C1 00 18 */	stw r30, 0x18(r1)
/* 8036CB18 00368778  7C FE 3B 78 */	mr r30, r7
/* 8036CB1C 0036877C  93 A1 00 14 */	stw r29, 0x14(r1)
/* 8036CB20 00368780  7C 7D 1B 78 */	mr r29, r3
/* 8036CB24 00368784  40 82 00 0C */	bne lbl_8036CB30
/* 8036CB28 00368788  38 60 00 00 */	li r3, 0
/* 8036CB2C 0036878C  48 00 01 5C */	b lbl_8036CC88
lbl_8036CB30:
/* 8036CB30 00368790  2C 05 00 00 */	cmpwi r5, 0
/* 8036CB34 00368794  41 80 00 14 */	blt lbl_8036CB48
/* 8036CB38 00368798  80 83 00 04 */	lwz r4, 4(r3)
/* 8036CB3C 0036879C  80 04 00 08 */	lwz r0, 8(r4)
/* 8036CB40 003687A0  7C 05 00 00 */	cmpw r5, r0
/* 8036CB44 003687A4  41 80 00 0C */	blt lbl_8036CB50
lbl_8036CB48:
/* 8036CB48 003687A8  38 60 00 00 */	li r3, 0
/* 8036CB4C 003687AC  48 00 01 3C */	b lbl_8036CC88
lbl_8036CB50:
/* 8036CB50 003687B0  54 A0 18 38 */	slwi r0, r5, 3
/* 8036CB54 003687B4  7C 84 02 14 */	add r4, r4, r0
/* 8036CB58 003687B8  38 84 00 0C */	addi r4, r4, 0xc
/* 8036CB5C 003687BC  88 04 00 01 */	lbz r0, 1(r4)
/* 8036CB60 003687C0  28 00 00 04 */	cmplwi r0, 4
/* 8036CB64 003687C4  40 82 00 0C */	bne lbl_8036CB70
/* 8036CB68 003687C8  38 60 00 00 */	li r3, 0
/* 8036CB6C 003687CC  48 00 01 1C */	b lbl_8036CC88
lbl_8036CB70:
/* 8036CB70 003687D0  28 00 00 01 */	cmplwi r0, 1
/* 8036CB74 003687D4  41 82 00 20 */	beq lbl_8036CB94
/* 8036CB78 003687D8  7C C5 33 78 */	mr r5, r6
/* 8036CB7C 003687DC  48 00 01 29 */	bl GetReferenceToSubRegion__Q44nw4r3snd6detail14BankFileReaderCFPCQ54nw4r3snd6detail4Util128DataRef$0v$4Q54nw4r3snd6detail8BankFile9InstParam$4Q54nw4r3snd6detail8BankFile10RangeTable$4Q54nw4r3snd6detail8BankFile10IndexTable$1i
/* 8036CB80 003687E0  2C 03 00 00 */	cmpwi r3, 0
/* 8036CB84 003687E4  7C 64 1B 78 */	mr r4, r3
/* 8036CB88 003687E8  40 82 00 0C */	bne lbl_8036CB94
/* 8036CB8C 003687EC  38 60 00 00 */	li r3, 0
/* 8036CB90 003687F0  48 00 00 F8 */	b lbl_8036CC88
lbl_8036CB94:
/* 8036CB94 003687F4  88 04 00 01 */	lbz r0, 1(r4)
/* 8036CB98 003687F8  28 00 00 04 */	cmplwi r0, 4
/* 8036CB9C 003687FC  40 82 00 0C */	bne lbl_8036CBA8
/* 8036CBA0 00368800  38 60 00 00 */	li r3, 0
/* 8036CBA4 00368804  48 00 00 E4 */	b lbl_8036CC88
lbl_8036CBA8:
/* 8036CBA8 00368808  28 00 00 01 */	cmplwi r0, 1
/* 8036CBAC 0036880C  41 82 00 24 */	beq lbl_8036CBD0
/* 8036CBB0 00368810  7F A3 EB 78 */	mr r3, r29
/* 8036CBB4 00368814  7F C5 F3 78 */	mr r5, r30
/* 8036CBB8 00368818  48 00 00 ED */	bl GetReferenceToSubRegion__Q44nw4r3snd6detail14BankFileReaderCFPCQ54nw4r3snd6detail4Util128DataRef$0v$4Q54nw4r3snd6detail8BankFile9InstParam$4Q54nw4r3snd6detail8BankFile10RangeTable$4Q54nw4r3snd6detail8BankFile10IndexTable$1i
/* 8036CBBC 0036881C  2C 03 00 00 */	cmpwi r3, 0
/* 8036CBC0 00368820  7C 64 1B 78 */	mr r4, r3
/* 8036CBC4 00368824  40 82 00 0C */	bne lbl_8036CBD0
/* 8036CBC8 00368828  38 60 00 00 */	li r3, 0
/* 8036CBCC 0036882C  48 00 00 BC */	b lbl_8036CC88
lbl_8036CBD0:
/* 8036CBD0 00368830  88 04 00 01 */	lbz r0, 1(r4)
/* 8036CBD4 00368834  28 00 00 01 */	cmplwi r0, 1
/* 8036CBD8 00368838  41 82 00 0C */	beq lbl_8036CBE4
/* 8036CBDC 0036883C  38 60 00 00 */	li r3, 0
/* 8036CBE0 00368840  48 00 00 A8 */	b lbl_8036CC88
lbl_8036CBE4:
/* 8036CBE4 00368844  80 BD 00 04 */	lwz r5, 4(r29)
/* 8036CBE8 00368848  88 64 00 00 */	lbz r3, 0(r4)
/* 8036CBEC 0036884C  80 84 00 04 */	lwz r4, 4(r4)
/* 8036CBF0 00368850  38 A5 00 08 */	addi r5, r5, 8
/* 8036CBF4 00368854  48 01 67 F5 */	bl GetDataRefAddressImpl__Q44nw4r3snd6detail4UtilFQ54nw4r3snd6detail4Util7RefTypeUlPCv
/* 8036CBF8 00368858  2C 03 00 00 */	cmpwi r3, 0
/* 8036CBFC 0036885C  40 82 00 0C */	bne lbl_8036CC08
/* 8036CC00 00368860  38 60 00 00 */	li r3, 0
/* 8036CC04 00368864  48 00 00 84 */	b lbl_8036CC88
lbl_8036CC08:
/* 8036CC08 00368868  80 03 00 00 */	lwz r0, 0(r3)
/* 8036CC0C 0036886C  2C 00 00 00 */	cmpwi r0, 0
/* 8036CC10 00368870  40 80 00 0C */	bge lbl_8036CC1C
/* 8036CC14 00368874  38 60 00 00 */	li r3, 0
/* 8036CC18 00368878  48 00 00 70 */	b lbl_8036CC88
lbl_8036CC1C:
/* 8036CC1C 0036887C  90 1F 00 00 */	stw r0, 0(r31)
/* 8036CC20 00368880  80 9D 00 00 */	lwz r4, 0(r29)
/* 8036CC24 00368884  88 03 00 04 */	lbz r0, 4(r3)
/* 8036CC28 00368888  98 1F 00 04 */	stb r0, 4(r31)
/* 8036CC2C 0036888C  88 03 00 05 */	lbz r0, 5(r3)
/* 8036CC30 00368890  98 1F 00 05 */	stb r0, 5(r31)
/* 8036CC34 00368894  88 03 00 06 */	lbz r0, 6(r3)
/* 8036CC38 00368898  98 1F 00 06 */	stb r0, 6(r31)
/* 8036CC3C 0036889C  88 03 00 07 */	lbz r0, 7(r3)
/* 8036CC40 003688A0  98 1F 00 07 */	stb r0, 7(r31)
/* 8036CC44 003688A4  88 03 00 0C */	lbz r0, 0xc(r3)
/* 8036CC48 003688A8  98 1F 00 08 */	stb r0, 8(r31)
/* 8036CC4C 003688AC  88 03 00 0E */	lbz r0, 0xe(r3)
/* 8036CC50 003688B0  98 1F 00 09 */	stb r0, 9(r31)
/* 8036CC54 003688B4  A0 04 00 06 */	lhz r0, 6(r4)
/* 8036CC58 003688B8  28 00 01 01 */	cmplwi r0, 0x101
/* 8036CC5C 003688BC  41 80 00 18 */	blt lbl_8036CC74
/* 8036CC60 003688C0  88 03 00 0D */	lbz r0, 0xd(r3)
/* 8036CC64 003688C4  98 1F 00 0A */	stb r0, 0xa(r31)
/* 8036CC68 003688C8  C0 03 00 10 */	lfs f0, 0x10(r3)
/* 8036CC6C 003688CC  D0 1F 00 0C */	stfs f0, 0xc(r31)
/* 8036CC70 003688D0  48 00 00 14 */	b lbl_8036CC84
lbl_8036CC74:
/* 8036CC74 003688D4  C0 02 A5 A0 */	lfs f0, lbl_80642BA0-_SDA2_BASE_(r2)
/* 8036CC78 003688D8  38 00 00 7F */	li r0, 0x7f
/* 8036CC7C 003688DC  98 1F 00 0A */	stb r0, 0xa(r31)
/* 8036CC80 003688E0  D0 1F 00 0C */	stfs f0, 0xc(r31)
lbl_8036CC84:
/* 8036CC84 003688E4  38 60 00 01 */	li r3, 1
lbl_8036CC88:
/* 8036CC88 003688E8  80 01 00 24 */	lwz r0, 0x24(r1)
/* 8036CC8C 003688EC  83 E1 00 1C */	lwz r31, 0x1c(r1)
/* 8036CC90 003688F0  83 C1 00 18 */	lwz r30, 0x18(r1)
/* 8036CC94 003688F4  83 A1 00 14 */	lwz r29, 0x14(r1)
/* 8036CC98 003688F8  7C 08 03 A6 */	mtlr r0
/* 8036CC9C 003688FC  38 21 00 20 */	addi r1, r1, 0x20
/* 8036CCA0 00368900  4E 80 00 20 */	blr

.global GetReferenceToSubRegion__Q44nw4r3snd6detail14BankFileReaderCFPCQ54nw4r3snd6detail4Util128DataRef$0v$4Q54nw4r3snd6detail8BankFile9InstParam$4Q54nw4r3snd6detail8BankFile10RangeTable$4Q54nw4r3snd6detail8BankFile10IndexTable$1i
GetReferenceToSubRegion__Q44nw4r3snd6detail14BankFileReaderCFPCQ54nw4r3snd6detail4Util128DataRef$0v$4Q54nw4r3snd6detail8BankFile9InstParam$4Q54nw4r3snd6detail8BankFile10RangeTable$4Q54nw4r3snd6detail8BankFile10IndexTable$1i:
/* 8036CCA4 00368904  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 8036CCA8 00368908  7C 08 02 A6 */	mflr r0
/* 8036CCAC 0036890C  90 01 00 14 */	stw r0, 0x14(r1)
/* 8036CCB0 00368910  88 04 00 01 */	lbz r0, 1(r4)
/* 8036CCB4 00368914  93 E1 00 0C */	stw r31, 0xc(r1)
/* 8036CCB8 00368918  7C BF 2B 78 */	mr r31, r5
/* 8036CCBC 0036891C  2C 00 00 02 */	cmpwi r0, 2
/* 8036CCC0 00368920  38 A0 00 00 */	li r5, 0
/* 8036CCC4 00368924  41 82 00 2C */	beq lbl_8036CCF0
/* 8036CCC8 00368928  40 80 00 14 */	bge lbl_8036CCDC
/* 8036CCCC 0036892C  2C 00 00 00 */	cmpwi r0, 0
/* 8036CCD0 00368930  41 82 00 E4 */	beq lbl_8036CDB4
/* 8036CCD4 00368934  40 80 00 14 */	bge lbl_8036CCE8
/* 8036CCD8 00368938  48 00 00 DC */	b lbl_8036CDB4
lbl_8036CCDC:
/* 8036CCDC 0036893C  2C 00 00 04 */	cmpwi r0, 4
/* 8036CCE0 00368940  40 80 00 D4 */	bge lbl_8036CDB4
/* 8036CCE4 00368944  48 00 00 7C */	b lbl_8036CD60
lbl_8036CCE8:
/* 8036CCE8 00368948  7C 85 23 78 */	mr r5, r4
/* 8036CCEC 0036894C  48 00 00 C8 */	b lbl_8036CDB4
lbl_8036CCF0:
/* 8036CCF0 00368950  80 A3 00 04 */	lwz r5, 4(r3)
/* 8036CCF4 00368954  88 64 00 00 */	lbz r3, 0(r4)
/* 8036CCF8 00368958  80 84 00 04 */	lwz r4, 4(r4)
/* 8036CCFC 0036895C  38 A5 00 08 */	addi r5, r5, 8
/* 8036CD00 00368960  48 01 66 E9 */	bl GetDataRefAddressImpl__Q44nw4r3snd6detail4UtilFQ54nw4r3snd6detail4Util7RefTypeUlPCv
/* 8036CD04 00368964  2C 03 00 00 */	cmpwi r3, 0
/* 8036CD08 00368968  40 82 00 0C */	bne lbl_8036CD14
/* 8036CD0C 0036896C  38 60 00 00 */	li r3, 0
/* 8036CD10 00368970  48 00 00 A8 */	b lbl_8036CDB8
lbl_8036CD14:
/* 8036CD14 00368974  38 A0 00 00 */	li r5, 0
/* 8036CD18 00368978  48 00 00 1C */	b lbl_8036CD34
lbl_8036CD1C:
/* 8036CD1C 0036897C  88 03 00 00 */	lbz r0, 0(r3)
/* 8036CD20 00368980  38 A5 00 01 */	addi r5, r5, 1
/* 8036CD24 00368984  7C 05 00 00 */	cmpw r5, r0
/* 8036CD28 00368988  41 80 00 0C */	blt lbl_8036CD34
/* 8036CD2C 0036898C  38 60 00 00 */	li r3, 0
/* 8036CD30 00368990  48 00 00 88 */	b lbl_8036CDB8
lbl_8036CD34:
/* 8036CD34 00368994  7C 83 2A 14 */	add r4, r3, r5
/* 8036CD38 00368998  88 04 00 01 */	lbz r0, 1(r4)
/* 8036CD3C 0036899C  7C 1F 00 00 */	cmpw r31, r0
/* 8036CD40 003689A0  41 81 FF DC */	bgt lbl_8036CD1C
/* 8036CD44 003689A4  88 83 00 00 */	lbz r4, 0(r3)
/* 8036CD48 003689A8  54 A0 18 38 */	slwi r0, r5, 3
/* 8036CD4C 003689AC  7C 03 02 14 */	add r0, r3, r0
/* 8036CD50 003689B0  38 64 00 04 */	addi r3, r4, 4
/* 8036CD54 003689B4  54 63 00 3A */	rlwinm r3, r3, 0, 0, 0x1d
/* 8036CD58 003689B8  7C A3 02 14 */	add r5, r3, r0
/* 8036CD5C 003689BC  48 00 00 58 */	b lbl_8036CDB4
lbl_8036CD60:
/* 8036CD60 003689C0  80 A3 00 04 */	lwz r5, 4(r3)
/* 8036CD64 003689C4  88 64 00 00 */	lbz r3, 0(r4)
/* 8036CD68 003689C8  80 84 00 04 */	lwz r4, 4(r4)
/* 8036CD6C 003689CC  38 A5 00 08 */	addi r5, r5, 8
/* 8036CD70 003689D0  48 01 66 79 */	bl GetDataRefAddressImpl__Q44nw4r3snd6detail4UtilFQ54nw4r3snd6detail4Util7RefTypeUlPCv
/* 8036CD74 003689D4  2C 03 00 00 */	cmpwi r3, 0
/* 8036CD78 003689D8  40 82 00 0C */	bne lbl_8036CD84
/* 8036CD7C 003689DC  38 60 00 00 */	li r3, 0
/* 8036CD80 003689E0  48 00 00 38 */	b lbl_8036CDB8
lbl_8036CD84:
/* 8036CD84 003689E4  88 83 00 00 */	lbz r4, 0(r3)
/* 8036CD88 003689E8  7C 1F 20 00 */	cmpw r31, r4
/* 8036CD8C 003689EC  41 80 00 10 */	blt lbl_8036CD9C
/* 8036CD90 003689F0  88 03 00 01 */	lbz r0, 1(r3)
/* 8036CD94 003689F4  7C 1F 00 00 */	cmpw r31, r0
/* 8036CD98 003689F8  40 81 00 0C */	ble lbl_8036CDA4
lbl_8036CD9C:
/* 8036CD9C 003689FC  38 60 00 00 */	li r3, 0
/* 8036CDA0 00368A00  48 00 00 18 */	b lbl_8036CDB8
lbl_8036CDA4:
/* 8036CDA4 00368A04  7C 04 F8 50 */	subf r0, r4, r31
/* 8036CDA8 00368A08  54 00 18 38 */	slwi r0, r0, 3
/* 8036CDAC 00368A0C  7C 63 02 14 */	add r3, r3, r0
/* 8036CDB0 00368A10  38 A3 00 04 */	addi r5, r3, 4
lbl_8036CDB4:
/* 8036CDB4 00368A14  7C A3 2B 78 */	mr r3, r5
lbl_8036CDB8:
/* 8036CDB8 00368A18  80 01 00 14 */	lwz r0, 0x14(r1)
/* 8036CDBC 00368A1C  83 E1 00 0C */	lwz r31, 0xc(r1)
/* 8036CDC0 00368A20  7C 08 03 A6 */	mtlr r0
/* 8036CDC4 00368A24  38 21 00 10 */	addi r1, r1, 0x10
/* 8036CDC8 00368A28  4E 80 00 20 */	blr

.global ReadWaveParam__Q44nw4r3snd6detail14BankFileReaderCFPQ44nw4r3snd6detail8WaveDataiPCv
ReadWaveParam__Q44nw4r3snd6detail14BankFileReaderCFPQ44nw4r3snd6detail8WaveDataiPCv:
/* 8036CDCC 00368A2C  94 21 FF E0 */	stwu r1, -0x20(r1)
/* 8036CDD0 00368A30  7C 08 02 A6 */	mflr r0
/* 8036CDD4 00368A34  90 01 00 24 */	stw r0, 0x24(r1)
/* 8036CDD8 00368A38  80 03 00 00 */	lwz r0, 0(r3)
/* 8036CDDC 00368A3C  93 E1 00 1C */	stw r31, 0x1c(r1)
/* 8036CDE0 00368A40  7C DF 33 78 */	mr r31, r6
/* 8036CDE4 00368A44  2C 00 00 00 */	cmpwi r0, 0
/* 8036CDE8 00368A48  93 C1 00 18 */	stw r30, 0x18(r1)
/* 8036CDEC 00368A4C  7C 9E 23 78 */	mr r30, r4
/* 8036CDF0 00368A50  40 82 00 0C */	bne lbl_8036CDFC
/* 8036CDF4 00368A54  38 60 00 00 */	li r3, 0
/* 8036CDF8 00368A58  48 00 00 74 */	b lbl_8036CE6C
lbl_8036CDFC:
/* 8036CDFC 00368A5C  80 83 00 08 */	lwz r4, 8(r3)
/* 8036CE00 00368A60  2C 04 00 00 */	cmpwi r4, 0
/* 8036CE04 00368A64  40 82 00 0C */	bne lbl_8036CE10
/* 8036CE08 00368A68  38 60 00 00 */	li r3, 0
/* 8036CE0C 00368A6C  48 00 00 60 */	b lbl_8036CE6C
lbl_8036CE10:
/* 8036CE10 00368A70  80 04 00 08 */	lwz r0, 8(r4)
/* 8036CE14 00368A74  38 64 00 08 */	addi r3, r4, 8
/* 8036CE18 00368A78  7C 05 00 40 */	cmplw r5, r0
/* 8036CE1C 00368A7C  41 80 00 0C */	blt lbl_8036CE28
/* 8036CE20 00368A80  38 60 00 00 */	li r3, 0
/* 8036CE24 00368A84  48 00 00 48 */	b lbl_8036CE6C
lbl_8036CE28:
/* 8036CE28 00368A88  54 A0 18 38 */	slwi r0, r5, 3
/* 8036CE2C 00368A8C  7C 65 1B 78 */	mr r5, r3
/* 8036CE30 00368A90  7C 84 02 14 */	add r4, r4, r0
/* 8036CE34 00368A94  88 64 00 0C */	lbz r3, 0xc(r4)
/* 8036CE38 00368A98  80 84 00 10 */	lwz r4, 0x10(r4)
/* 8036CE3C 00368A9C  48 01 65 AD */	bl GetDataRefAddressImpl__Q44nw4r3snd6detail4UtilFQ54nw4r3snd6detail4Util7RefTypeUlPCv
/* 8036CE40 00368AA0  2C 03 00 00 */	cmpwi r3, 0
/* 8036CE44 00368AA4  40 82 00 0C */	bne lbl_8036CE50
/* 8036CE48 00368AA8  38 60 00 00 */	li r3, 0
/* 8036CE4C 00368AAC  48 00 00 20 */	b lbl_8036CE6C
lbl_8036CE50:
/* 8036CE50 00368AB0  7C 64 1B 78 */	mr r4, r3
/* 8036CE54 00368AB4  38 61 00 08 */	addi r3, r1, 8
/* 8036CE58 00368AB8  48 01 65 B5 */	bl __ct__Q44nw4r3snd6detail14WaveFileReaderFPCQ54nw4r3snd6detail8WaveFile8WaveInfo
/* 8036CE5C 00368ABC  7F C4 F3 78 */	mr r4, r30
/* 8036CE60 00368AC0  7F E5 FB 78 */	mr r5, r31
/* 8036CE64 00368AC4  38 61 00 08 */	addi r3, r1, 8
/* 8036CE68 00368AC8  48 01 65 AD */	bl ReadWaveParam__Q44nw4r3snd6detail14WaveFileReaderCFPQ44nw4r3snd6detail8WaveDataPCv
lbl_8036CE6C:
/* 8036CE6C 00368ACC  80 01 00 24 */	lwz r0, 0x24(r1)
/* 8036CE70 00368AD0  83 E1 00 1C */	lwz r31, 0x1c(r1)
/* 8036CE74 00368AD4  83 C1 00 18 */	lwz r30, 0x18(r1)
/* 8036CE78 00368AD8  7C 08 03 A6 */	mtlr r0
/* 8036CE7C 00368ADC  38 21 00 20 */	addi r1, r1, 0x20
/* 8036CE80 00368AE0  4E 80 00 20 */	blr