summaryrefslogtreecommitdiff
path: root/asm/nw4r/snd/detail/snd_Util.s
blob: 2135e588d39e60ca1894e21677139fcd074204b7 (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
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
.include "macros.inc"

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

.global CalcPitchRatio__Q44nw4r3snd6detail4UtilFi
CalcPitchRatio__Q44nw4r3snd6detail4UtilFi:
/* 80382FA8 0037EC08  20 A3 0B FF */	subfic r5, r3, 0xbff
/* 80382FAC 0037EC0C  38 00 0C 00 */	li r0, 0xc00
/* 80382FB0 0037EC10  7C A5 03 96 */	divwu r5, r5, r0
/* 80382FB4 0037EC14  2C 03 00 00 */	cmpwi r3, 0
/* 80382FB8 0037EC18  C0 22 A7 A8 */	lfs f1, lbl_80642DA8-_SDA2_BASE_(r2)
/* 80382FBC 0037EC1C  38 C0 00 00 */	li r6, 0
/* 80382FC0 0037EC20  40 80 00 34 */	bge lbl_80382FF4
/* 80382FC4 0037EC24  54 A4 E8 FF */	rlwinm. r4, r5, 0x1d, 3, 0x1f
/* 80382FC8 0037EC28  1C 05 0C 00 */	mulli r0, r5, 0xc00
/* 80382FCC 0037EC2C  7C 89 03 A6 */	mtctr r4
/* 80382FD0 0037EC30  41 82 00 14 */	beq lbl_80382FE4
lbl_80382FD4:
/* 80382FD4 0037EC34  38 C6 FF F8 */	addi r6, r6, -8
/* 80382FD8 0037EC38  42 00 FF FC */	bdnz lbl_80382FD4
/* 80382FDC 0037EC3C  70 A5 00 07 */	andi. r5, r5, 7
/* 80382FE0 0037EC40  41 82 00 10 */	beq lbl_80382FF0
lbl_80382FE4:
/* 80382FE4 0037EC44  7C A9 03 A6 */	mtctr r5
lbl_80382FE8:
/* 80382FE8 0037EC48  38 C6 FF FF */	addi r6, r6, -1
/* 80382FEC 0037EC4C  42 00 FF FC */	bdnz lbl_80382FE8
lbl_80382FF0:
/* 80382FF0 0037EC50  7C 63 02 14 */	add r3, r3, r0
lbl_80382FF4:
/* 80382FF4 0037EC54  38 00 0C 00 */	li r0, 0xc00
/* 80382FF8 0037EC58  2C 03 0C 00 */	cmpwi r3, 0xc00
/* 80382FFC 0037EC5C  7C A3 03 96 */	divwu r5, r3, r0
/* 80383000 0037EC60  41 80 00 34 */	blt lbl_80383034
/* 80383004 0037EC64  54 A4 E8 FF */	rlwinm. r4, r5, 0x1d, 3, 0x1f
/* 80383008 0037EC68  1C 05 F4 00 */	mulli r0, r5, -3072
/* 8038300C 0037EC6C  7C 89 03 A6 */	mtctr r4
/* 80383010 0037EC70  41 82 00 14 */	beq lbl_80383024
lbl_80383014:
/* 80383014 0037EC74  38 C6 00 08 */	addi r6, r6, 8
/* 80383018 0037EC78  42 00 FF FC */	bdnz lbl_80383014
/* 8038301C 0037EC7C  70 A5 00 07 */	andi. r5, r5, 7
/* 80383020 0037EC80  41 82 00 10 */	beq lbl_80383030
lbl_80383024:
/* 80383024 0037EC84  7C A9 03 A6 */	mtctr r5
lbl_80383028:
/* 80383028 0037EC88  38 C6 00 01 */	addi r6, r6, 1
/* 8038302C 0037EC8C  42 00 FF FC */	bdnz lbl_80383028
lbl_80383030:
/* 80383030 0037EC90  7C 63 02 14 */	add r3, r3, r0
lbl_80383034:
/* 80383034 0037EC94  2C 06 00 00 */	cmpwi r6, 0
/* 80383038 0037EC98  C0 02 A7 AC */	lfs f0, lbl_80642DAC-_SDA2_BASE_(r2)
/* 8038303C 0037EC9C  7C C5 33 78 */	mr r5, r6
/* 80383040 0037ECA0  40 81 00 50 */	ble lbl_80383090
/* 80383044 0037ECA4  54 C4 E8 FF */	rlwinm. r4, r6, 0x1d, 3, 0x1f
/* 80383048 0037ECA8  7C 06 00 D0 */	neg r0, r6
/* 8038304C 0037ECAC  7C 89 03 A6 */	mtctr r4
/* 80383050 0037ECB0  41 82 00 30 */	beq lbl_80383080
lbl_80383054:
/* 80383054 0037ECB4  EC 21 00 32 */	fmuls f1, f1, f0
/* 80383058 0037ECB8  EC 21 00 32 */	fmuls f1, f1, f0
/* 8038305C 0037ECBC  EC 21 00 32 */	fmuls f1, f1, f0
/* 80383060 0037ECC0  EC 21 00 32 */	fmuls f1, f1, f0
/* 80383064 0037ECC4  EC 21 00 32 */	fmuls f1, f1, f0
/* 80383068 0037ECC8  EC 21 00 32 */	fmuls f1, f1, f0
/* 8038306C 0037ECCC  EC 21 00 32 */	fmuls f1, f1, f0
/* 80383070 0037ECD0  EC 21 00 32 */	fmuls f1, f1, f0
/* 80383074 0037ECD4  42 00 FF E0 */	bdnz lbl_80383054
/* 80383078 0037ECD8  70 C5 00 07 */	andi. r5, r6, 7
/* 8038307C 0037ECDC  41 82 00 10 */	beq lbl_8038308C
lbl_80383080:
/* 80383080 0037ECE0  7C A9 03 A6 */	mtctr r5
lbl_80383084:
/* 80383084 0037ECE4  EC 21 00 32 */	fmuls f1, f1, f0
/* 80383088 0037ECE8  42 00 FF FC */	bdnz lbl_80383084
lbl_8038308C:
/* 8038308C 0037ECEC  7C C6 02 14 */	add r6, r6, r0
lbl_80383090:
/* 80383090 0037ECF0  2C 06 00 00 */	cmpwi r6, 0
/* 80383094 0037ECF4  C0 02 A7 B0 */	lfs f0, lbl_80642DB0-_SDA2_BASE_(r2)
/* 80383098 0037ECF8  7C 86 00 D0 */	neg r4, r6
/* 8038309C 0037ECFC  40 80 00 48 */	bge lbl_803830E4
/* 803830A0 0037ED00  54 80 E8 FF */	rlwinm. r0, r4, 0x1d, 3, 0x1f
/* 803830A4 0037ED04  7C 09 03 A6 */	mtctr r0
/* 803830A8 0037ED08  41 82 00 30 */	beq lbl_803830D8
lbl_803830AC:
/* 803830AC 0037ED0C  EC 21 00 32 */	fmuls f1, f1, f0
/* 803830B0 0037ED10  EC 21 00 32 */	fmuls f1, f1, f0
/* 803830B4 0037ED14  EC 21 00 32 */	fmuls f1, f1, f0
/* 803830B8 0037ED18  EC 21 00 32 */	fmuls f1, f1, f0
/* 803830BC 0037ED1C  EC 21 00 32 */	fmuls f1, f1, f0
/* 803830C0 0037ED20  EC 21 00 32 */	fmuls f1, f1, f0
/* 803830C4 0037ED24  EC 21 00 32 */	fmuls f1, f1, f0
/* 803830C8 0037ED28  EC 21 00 32 */	fmuls f1, f1, f0
/* 803830CC 0037ED2C  42 00 FF E0 */	bdnz lbl_803830AC
/* 803830D0 0037ED30  70 84 00 07 */	andi. r4, r4, 7
/* 803830D4 0037ED34  41 82 00 10 */	beq lbl_803830E4
lbl_803830D8:
/* 803830D8 0037ED38  7C 89 03 A6 */	mtctr r4
lbl_803830DC:
/* 803830DC 0037ED3C  EC 21 00 32 */	fmuls f1, f1, f0
/* 803830E0 0037ED40  42 00 FF FC */	bdnz lbl_803830DC
lbl_803830E4:
/* 803830E4 0037ED44  7C 64 46 70 */	srawi r4, r3, 8
/* 803830E8 0037ED48  54 60 C0 0E */	slwi r0, r3, 0x18
/* 803830EC 0037ED4C  54 63 0F FE */	srwi r3, r3, 0x1f
/* 803830F0 0037ED50  7C 03 00 50 */	subf r0, r3, r0
/* 803830F4 0037ED54  7C A4 01 95 */	addze. r5, r4
/* 803830F8 0037ED58  54 00 40 3E */	rotlwi r0, r0, 8
/* 803830FC 0037ED5C  7C 60 1A 14 */	add r3, r0, r3
/* 80383100 0037ED60  41 82 00 18 */	beq lbl_80383118
/* 80383104 0037ED64  3C 80 80 40 */	lis r4, lbl_80402948@ha
/* 80383108 0037ED68  54 A0 10 3A */	slwi r0, r5, 2
/* 8038310C 0037ED6C  38 84 29 48 */	addi r4, r4, lbl_80402948@l
/* 80383110 0037ED70  7C 04 04 2E */	lfsx f0, r4, r0
/* 80383114 0037ED74  EC 21 00 32 */	fmuls f1, f1, f0
lbl_80383118:
/* 80383118 0037ED78  2C 03 00 00 */	cmpwi r3, 0
/* 8038311C 0037ED7C  4D 82 00 20 */	beqlr 
/* 80383120 0037ED80  3C 80 80 40 */	lis r4, lbl_80402978@ha
/* 80383124 0037ED84  54 60 10 3A */	slwi r0, r3, 2
/* 80383128 0037ED88  38 84 29 78 */	addi r4, r4, lbl_80402978@l
/* 8038312C 0037ED8C  7C 04 04 2E */	lfsx f0, r4, r0
/* 80383130 0037ED90  EC 21 00 32 */	fmuls f1, f1, f0
/* 80383134 0037ED94  4E 80 00 20 */	blr 

.global CalcVolumeRatio__Q44nw4r3snd6detail4UtilFf
CalcVolumeRatio__Q44nw4r3snd6detail4UtilFf:
/* 80383138 0037ED98  C0 42 A7 B4 */	lfs f2, lbl_80642DB4-_SDA2_BASE_(r2)
/* 8038313C 0037ED9C  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 80383140 0037EDA0  FC 01 10 40 */	fcmpo cr0, f1, f2
/* 80383144 0037EDA4  40 81 00 08 */	ble lbl_8038314C
/* 80383148 0037EDA8  48 00 00 18 */	b lbl_80383160
lbl_8038314C:
/* 8038314C 0037EDAC  C0 42 A7 B8 */	lfs f2, lbl_80642DB8-_SDA2_BASE_(r2)
/* 80383150 0037EDB0  FC 01 10 40 */	fcmpo cr0, f1, f2
/* 80383154 0037EDB4  40 80 00 08 */	bge lbl_8038315C
/* 80383158 0037EDB8  48 00 00 08 */	b lbl_80383160
lbl_8038315C:
/* 8038315C 0037EDBC  FC 40 08 90 */	fmr f2, f1
lbl_80383160:
/* 80383160 0037EDC0  C0 02 A7 BC */	lfs f0, lbl_80642DBC-_SDA2_BASE_(r2)
/* 80383164 0037EDC4  3C 60 80 40 */	lis r3, lbl_80402D78@ha
/* 80383168 0037EDC8  38 63 2D 78 */	addi r3, r3, lbl_80402D78@l
/* 8038316C 0037EDCC  EC 00 00 B2 */	fmuls f0, f0, f2
/* 80383170 0037EDD0  FC 00 00 1E */	fctiwz f0, f0
/* 80383174 0037EDD4  D8 01 00 08 */	stfd f0, 8(r1)
/* 80383178 0037EDD8  80 81 00 0C */	lwz r4, 0xc(r1)
/* 8038317C 0037EDDC  38 04 03 88 */	addi r0, r4, 0x388
/* 80383180 0037EDE0  54 00 10 3A */	slwi r0, r0, 2
/* 80383184 0037EDE4  7C 23 04 2E */	lfsx f1, r3, r0
/* 80383188 0037EDE8  38 21 00 10 */	addi r1, r1, 0x10
/* 8038318C 0037EDEC  4E 80 00 20 */	blr 

.global CalcPanRatio__Q44nw4r3snd6detail4UtilFfRCQ54nw4r3snd6detail4Util7PanInfo
CalcPanRatio__Q44nw4r3snd6detail4UtilFfRCQ54nw4r3snd6detail4Util7PanInfo:
/* 80383190 0037EDF0  C0 42 A7 A8 */	lfs f2, lbl_80642DA8-_SDA2_BASE_(r2)
/* 80383194 0037EDF4  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 80383198 0037EDF8  FC 01 10 40 */	fcmpo cr0, f1, f2
/* 8038319C 0037EDFC  40 81 00 08 */	ble lbl_803831A4
/* 803831A0 0037EE00  48 00 00 18 */	b lbl_803831B8
lbl_803831A4:
/* 803831A4 0037EE04  C0 42 A7 C0 */	lfs f2, lbl_80642DC0-_SDA2_BASE_(r2)
/* 803831A8 0037EE08  FC 01 10 40 */	fcmpo cr0, f1, f2
/* 803831AC 0037EE0C  40 80 00 08 */	bge lbl_803831B4
/* 803831B0 0037EE10  48 00 00 08 */	b lbl_803831B8
lbl_803831B4:
/* 803831B4 0037EE14  FC 40 08 90 */	fmr f2, f1
lbl_803831B8:
/* 803831B8 0037EE18  C0 02 A7 A8 */	lfs f0, lbl_80642DA8-_SDA2_BASE_(r2)
/* 803831BC 0037EE1C  3C 80 80 45 */	lis r4, lbl_8044D040@ha
/* 803831C0 0037EE20  80 03 00 00 */	lwz r0, 0(r3)
/* 803831C4 0037EE24  38 84 D0 40 */	addi r4, r4, lbl_8044D040@l
/* 803831C8 0037EE28  EC 20 10 2A */	fadds f1, f0, f2
/* 803831CC 0037EE2C  C0 42 A7 B0 */	lfs f2, lbl_80642DB0-_SDA2_BASE_(r2)
/* 803831D0 0037EE30  54 05 10 3A */	slwi r5, r0, 2
/* 803831D4 0037EE34  88 03 00 04 */	lbz r0, 4(r3)
/* 803831D8 0037EE38  C0 02 A7 C4 */	lfs f0, lbl_80642DC4-_SDA2_BASE_(r2)
/* 803831DC 0037EE3C  EC 21 00 B2 */	fmuls f1, f1, f2
/* 803831E0 0037EE40  2C 00 00 00 */	cmpwi r0, 0
/* 803831E4 0037EE44  7C 84 28 2E */	lwzx r4, r4, r5
/* 803831E8 0037EE48  EC 00 00 72 */	fmuls f0, f0, f1
/* 803831EC 0037EE4C  EC 02 00 2A */	fadds f0, f2, f0
/* 803831F0 0037EE50  FC 00 00 1E */	fctiwz f0, f0
/* 803831F4 0037EE54  D8 01 00 08 */	stfd f0, 8(r1)
/* 803831F8 0037EE58  80 01 00 0C */	lwz r0, 0xc(r1)
/* 803831FC 0037EE5C  54 00 10 3A */	slwi r0, r0, 2
/* 80383200 0037EE60  7C 44 04 2E */	lfsx f2, r4, r0
/* 80383204 0037EE64  41 82 00 0C */	beq lbl_80383210
/* 80383208 0037EE68  C0 04 02 00 */	lfs f0, 0x200(r4)
/* 8038320C 0037EE6C  EC 42 00 24 */	fdivs f2, f2, f0
lbl_80383210:
/* 80383210 0037EE70  88 03 00 05 */	lbz r0, 5(r3)
/* 80383214 0037EE74  2C 00 00 00 */	cmpwi r0, 0
/* 80383218 0037EE78  41 82 00 2C */	beq lbl_80383244
/* 8038321C 0037EE7C  C0 22 A7 A8 */	lfs f1, lbl_80642DA8-_SDA2_BASE_(r2)
/* 80383220 0037EE80  FC 02 08 40 */	fcmpo cr0, f2, f1
/* 80383224 0037EE84  40 81 00 08 */	ble lbl_8038322C
/* 80383228 0037EE88  48 00 00 40 */	b lbl_80383268
lbl_8038322C:
/* 8038322C 0037EE8C  C0 22 A7 C8 */	lfs f1, lbl_80642DC8-_SDA2_BASE_(r2)
/* 80383230 0037EE90  FC 02 08 40 */	fcmpo cr0, f2, f1
/* 80383234 0037EE94  40 80 00 08 */	bge lbl_8038323C
/* 80383238 0037EE98  48 00 00 30 */	b lbl_80383268
lbl_8038323C:
/* 8038323C 0037EE9C  FC 20 10 90 */	fmr f1, f2
/* 80383240 0037EEA0  48 00 00 28 */	b lbl_80383268
lbl_80383244:
/* 80383244 0037EEA4  C0 22 A7 AC */	lfs f1, lbl_80642DAC-_SDA2_BASE_(r2)
/* 80383248 0037EEA8  FC 02 08 40 */	fcmpo cr0, f2, f1
/* 8038324C 0037EEAC  40 81 00 08 */	ble lbl_80383254
/* 80383250 0037EEB0  48 00 00 18 */	b lbl_80383268
lbl_80383254:
/* 80383254 0037EEB4  C0 22 A7 C8 */	lfs f1, lbl_80642DC8-_SDA2_BASE_(r2)
/* 80383258 0037EEB8  FC 02 08 40 */	fcmpo cr0, f2, f1
/* 8038325C 0037EEBC  40 80 00 08 */	bge lbl_80383264
/* 80383260 0037EEC0  48 00 00 08 */	b lbl_80383268
lbl_80383264:
/* 80383264 0037EEC4  FC 20 10 90 */	fmr f1, f2
lbl_80383268:
/* 80383268 0037EEC8  38 21 00 10 */	addi r1, r1, 0x10
/* 8038326C 0037EECC  4E 80 00 20 */	blr 

.global CalcSurroundPanRatio__Q44nw4r3snd6detail4UtilFfRCQ54nw4r3snd6detail4Util7PanInfo
CalcSurroundPanRatio__Q44nw4r3snd6detail4UtilFfRCQ54nw4r3snd6detail4Util7PanInfo:
/* 80383270 0037EED0  C0 02 A7 AC */	lfs f0, lbl_80642DAC-_SDA2_BASE_(r2)
/* 80383274 0037EED4  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 80383278 0037EED8  FC 01 00 40 */	fcmpo cr0, f1, f0
/* 8038327C 0037EEDC  40 81 00 08 */	ble lbl_80383284
/* 80383280 0037EEE0  48 00 00 18 */	b lbl_80383298
lbl_80383284:
/* 80383284 0037EEE4  C0 02 A7 C8 */	lfs f0, lbl_80642DC8-_SDA2_BASE_(r2)
/* 80383288 0037EEE8  FC 01 00 40 */	fcmpo cr0, f1, f0
/* 8038328C 0037EEEC  40 80 00 08 */	bge lbl_80383294
/* 80383290 0037EEF0  48 00 00 08 */	b lbl_80383298
lbl_80383294:
/* 80383294 0037EEF4  FC 00 08 90 */	fmr f0, f1
lbl_80383298:
/* 80383298 0037EEF8  C0 42 A7 B0 */	lfs f2, lbl_80642DB0-_SDA2_BASE_(r2)
/* 8038329C 0037EEFC  3C 80 80 45 */	lis r4, lbl_8044D040@ha
/* 803832A0 0037EF00  80 03 00 00 */	lwz r0, 0(r3)
/* 803832A4 0037EF04  38 84 D0 40 */	addi r4, r4, lbl_8044D040@l
/* 803832A8 0037EF08  EC 20 00 B2 */	fmuls f1, f0, f2
/* 803832AC 0037EF0C  C0 02 A7 C4 */	lfs f0, lbl_80642DC4-_SDA2_BASE_(r2)
/* 803832B0 0037EF10  54 00 10 3A */	slwi r0, r0, 2
/* 803832B4 0037EF14  C0 62 A7 AC */	lfs f3, lbl_80642DAC-_SDA2_BASE_(r2)
/* 803832B8 0037EF18  7C 64 00 2E */	lwzx r3, r4, r0
/* 803832BC 0037EF1C  EC 00 00 72 */	fmuls f0, f0, f1
/* 803832C0 0037EF20  EC 02 00 2A */	fadds f0, f2, f0
/* 803832C4 0037EF24  FC 00 00 1E */	fctiwz f0, f0
/* 803832C8 0037EF28  D8 01 00 08 */	stfd f0, 8(r1)
/* 803832CC 0037EF2C  80 01 00 0C */	lwz r0, 0xc(r1)
/* 803832D0 0037EF30  54 00 10 3A */	slwi r0, r0, 2
/* 803832D4 0037EF34  7C 03 04 2E */	lfsx f0, r3, r0
/* 803832D8 0037EF38  FC 00 18 40 */	fcmpo cr0, f0, f3
/* 803832DC 0037EF3C  40 81 00 08 */	ble lbl_803832E4
/* 803832E0 0037EF40  48 00 00 18 */	b lbl_803832F8
lbl_803832E4:
/* 803832E4 0037EF44  C0 62 A7 C8 */	lfs f3, lbl_80642DC8-_SDA2_BASE_(r2)
/* 803832E8 0037EF48  FC 00 18 40 */	fcmpo cr0, f0, f3
/* 803832EC 0037EF4C  40 80 00 08 */	bge lbl_803832F4
/* 803832F0 0037EF50  48 00 00 08 */	b lbl_803832F8
lbl_803832F4:
/* 803832F4 0037EF54  FC 60 00 90 */	fmr f3, f0
lbl_803832F8:
/* 803832F8 0037EF58  FC 20 18 90 */	fmr f1, f3
/* 803832FC 0037EF5C  38 21 00 10 */	addi r1, r1, 0x10
/* 80383300 0037EF60  4E 80 00 20 */	blr 

.global CalcLpfFreq__Q44nw4r3snd6detail4UtilFf
CalcLpfFreq__Q44nw4r3snd6detail4UtilFf:
/* 80383304 0037EF64  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 80383308 0037EF68  7C 08 02 A6 */	mflr r0
/* 8038330C 0037EF6C  C0 42 A7 A8 */	lfs f2, lbl_80642DA8-_SDA2_BASE_(r2)
/* 80383310 0037EF70  90 01 00 14 */	stw r0, 0x14(r1)
/* 80383314 0037EF74  FC 01 10 40 */	fcmpo cr0, f1, f2
/* 80383318 0037EF78  40 81 00 08 */	ble lbl_80383320
/* 8038331C 0037EF7C  48 00 00 18 */	b lbl_80383334
lbl_80383320:
/* 80383320 0037EF80  C0 42 A7 C8 */	lfs f2, lbl_80642DC8-_SDA2_BASE_(r2)
/* 80383324 0037EF84  FC 01 10 40 */	fcmpo cr0, f1, f2
/* 80383328 0037EF88  40 80 00 08 */	bge lbl_80383330
/* 8038332C 0037EF8C  48 00 00 08 */	b lbl_80383334
lbl_80383330:
/* 80383330 0037EF90  FC 40 08 90 */	fmr f2, f1
lbl_80383334:
/* 80383334 0037EF94  C8 22 A7 E8 */	lfd f1, lbl_80642DE8-_SDA2_BASE_(r2)
/* 80383338 0037EF98  C8 02 A7 E0 */	lfd f0, lbl_80642DE0-_SDA2_BASE_(r2)
/* 8038333C 0037EF9C  FC 42 08 28 */	fsub f2, f2, f1
/* 80383340 0037EFA0  C8 22 A7 D8 */	lfd f1, lbl_80642DD8-_SDA2_BASE_(r2)
/* 80383344 0037EFA4  FC 40 00 B2 */	fmul f2, f0, f2
/* 80383348 0037EFA8  4B E5 12 9D */	bl pow
/* 8038334C 0037EFAC  C8 02 A7 D0 */	lfd f0, lbl_80642DD0-_SDA2_BASE_(r2)
/* 80383350 0037EFB0  80 01 00 14 */	lwz r0, 0x14(r1)
/* 80383354 0037EFB4  FC 00 00 72 */	fmul f0, f0, f1
/* 80383358 0037EFB8  FC 00 00 1E */	fctiwz f0, f0
/* 8038335C 0037EFBC  D8 01 00 08 */	stfd f0, 8(r1)
/* 80383360 0037EFC0  80 61 00 0C */	lwz r3, 0xc(r1)
/* 80383364 0037EFC4  7C 08 03 A6 */	mtlr r0
/* 80383368 0037EFC8  38 21 00 10 */	addi r1, r1, 0x10
/* 8038336C 0037EFCC  4E 80 00 20 */	blr 

.global GetRemoteFilterCoefs__Q44nw4r3snd6detail4UtilFiPUsPUsPUsPUsPUs
GetRemoteFilterCoefs__Q44nw4r3snd6detail4UtilFiPUsPUsPUsPUsPUs:
/* 80383370 0037EFD0  2C 03 00 7F */	cmpwi r3, 0x7f
/* 80383374 0037EFD4  40 81 00 0C */	ble lbl_80383380
/* 80383378 0037EFD8  38 00 00 7F */	li r0, 0x7f
/* 8038337C 0037EFDC  48 00 00 0C */	b lbl_80383388
lbl_80383380:
/* 80383380 0037EFE0  7C 60 FE 70 */	srawi r0, r3, 0x1f
/* 80383384 0037EFE4  7C 60 00 78 */	andc r0, r3, r0
lbl_80383388:
/* 80383388 0037EFE8  1D 20 00 0A */	mulli r9, r0, 0xa
/* 8038338C 0037EFEC  3C 60 80 40 */	lis r3, lbl_80404898@ha
/* 80383390 0037EFF0  38 63 48 98 */	addi r3, r3, lbl_80404898@l
/* 80383394 0037EFF4  7C 03 4A 2E */	lhzx r0, r3, r9
/* 80383398 0037EFF8  7D 23 4A 14 */	add r9, r3, r9
/* 8038339C 0037EFFC  A0 69 00 02 */	lhz r3, 2(r9)
/* 803833A0 0037F000  B0 04 00 00 */	sth r0, 0(r4)
/* 803833A4 0037F004  A0 09 00 04 */	lhz r0, 4(r9)
/* 803833A8 0037F008  B0 65 00 00 */	sth r3, 0(r5)
/* 803833AC 0037F00C  A0 69 00 06 */	lhz r3, 6(r9)
/* 803833B0 0037F010  B0 06 00 00 */	sth r0, 0(r6)
/* 803833B4 0037F014  A0 09 00 08 */	lhz r0, 8(r9)
/* 803833B8 0037F018  B0 67 00 00 */	sth r3, 0(r7)
/* 803833BC 0037F01C  B0 08 00 00 */	sth r0, 0(r8)
/* 803833C0 0037F020  4E 80 00 20 */	blr 

.global CalcRandom__Q44nw4r3snd6detail4UtilFv
CalcRandom__Q44nw4r3snd6detail4UtilFv:
/* 803833C4 0037F024  3C 60 00 19 */	lis r3, 0x0019660D@ha
/* 803833C8 0037F028  80 8D 95 38 */	lwz r4, lbl_8063E7F8-_SDA_BASE_(r13)
/* 803833CC 0037F02C  38 03 66 0D */	addi r0, r3, 0x0019660D@l
/* 803833D0 0037F030  7C 64 01 D6 */	mullw r3, r4, r0
/* 803833D4 0037F034  3C 63 3C 6F */	addis r3, r3, 0x3c6f
/* 803833D8 0037F038  38 03 F3 5F */	addi r0, r3, -3233
/* 803833DC 0037F03C  90 0D 95 38 */	stw r0, lbl_8063E7F8-_SDA_BASE_(r13)
/* 803833E0 0037F040  54 03 84 3E */	srwi r3, r0, 0x10
/* 803833E4 0037F044  4E 80 00 20 */	blr 

.global GetDataRefAddressImpl__Q44nw4r3snd6detail4UtilFQ54nw4r3snd6detail4Util7RefTypeUlPCv
GetDataRefAddressImpl__Q44nw4r3snd6detail4UtilFQ54nw4r3snd6detail4Util7RefTypeUlPCv:
/* 803833E8 0037F048  2C 03 00 01 */	cmpwi r3, 1
/* 803833EC 0037F04C  40 82 00 0C */	bne lbl_803833F8
/* 803833F0 0037F050  7C 64 2A 14 */	add r3, r4, r5
/* 803833F4 0037F054  4E 80 00 20 */	blr 
lbl_803833F8:
/* 803833F8 0037F058  2C 03 00 00 */	cmpwi r3, 0
/* 803833FC 0037F05C  38 60 00 00 */	li r3, 0
/* 80383400 0037F060  4C 82 00 20 */	bnelr 
/* 80383404 0037F064  7C 83 23 78 */	mr r3, r4
/* 80383408 0037F068  4E 80 00 20 */	blr