summaryrefslogtreecommitdiff
path: root/asm/SDK/AXFX/AXFXChorusExp.s
blob: 524aee185e8e08bd56c4d78c798109409af5e992 (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
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
.include "macros.inc"

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

.global AXFXChorusExpGetMemSize
AXFXChorusExpGetMemSize:
/* 802959F8 00291658  3C 60 00 01 */	lis r3, 0x00009600@ha
/* 802959FC 0029165C  38 63 96 00 */	addi r3, r3, 0x00009600@l
/* 80295A00 00291660  4E 80 00 20 */	blr

.global AXFXChorusExpInit
AXFXChorusExpInit:
/* 80295A04 00291664  94 21 FF E0 */	stwu r1, -0x20(r1)
/* 80295A08 00291668  7C 08 02 A6 */	mflr r0
/* 80295A0C 0029166C  90 01 00 24 */	stw r0, 0x24(r1)
/* 80295A10 00291670  39 61 00 20 */	addi r11, r1, 0x20
/* 80295A14 00291674  4B F3 17 15 */	bl _savegpr_27
/* 80295A18 00291678  7C 7E 1B 78 */	mr r30, r3
/* 80295A1C 0029167C  4B FD 8D 41 */	bl OSDisableInterrupts
/* 80295A20 00291680  80 9E 00 7C */	lwz r4, 0x7c(r30)
/* 80295A24 00291684  38 00 0C 80 */	li r0, 0xc80
/* 80295A28 00291688  90 1E 00 1C */	stw r0, 0x1c(r30)
/* 80295A2C 0029168C  7C 7F 1B 78 */	mr r31, r3
/* 80295A30 00291690  60 80 00 01 */	ori r0, r4, 1
/* 80295A34 00291694  7F DB F3 78 */	mr r27, r30
/* 80295A38 00291698  90 1E 00 7C */	stw r0, 0x7c(r30)
/* 80295A3C 0029169C  3B A0 00 00 */	li r29, 0
lbl_80295A40:
/* 80295A40 002916A0  80 1E 00 1C */	lwz r0, 0x1c(r30)
/* 80295A44 002916A4  81 8D 88 F8 */	lwz r12, lbl_8063DBB8-_SDA_BASE_(r13)
/* 80295A48 002916A8  54 03 10 3A */	slwi r3, r0, 2
/* 80295A4C 002916AC  7D 89 03 A6 */	mtctr r12
/* 80295A50 002916B0  4E 80 04 21 */	bctrl
/* 80295A54 002916B4  2C 03 00 00 */	cmpwi r3, 0
/* 80295A58 002916B8  90 7B 00 00 */	stw r3, 0(r27)
/* 80295A5C 002916BC  40 82 00 0C */	bne lbl_80295A68
/* 80295A60 002916C0  38 00 00 00 */	li r0, 0
/* 80295A64 002916C4  48 00 00 18 */	b lbl_80295A7C
lbl_80295A68:
/* 80295A68 002916C8  3B BD 00 01 */	addi r29, r29, 1
/* 80295A6C 002916CC  3B 7B 00 04 */	addi r27, r27, 4
/* 80295A70 002916D0  28 1D 00 03 */	cmplwi r29, 3
/* 80295A74 002916D4  41 80 FF CC */	blt lbl_80295A40
/* 80295A78 002916D8  38 00 00 01 */	li r0, 1
lbl_80295A7C:
/* 80295A7C 002916DC  2C 00 00 00 */	cmpwi r0, 0
/* 80295A80 002916E0  40 82 00 64 */	bne lbl_80295AE4
/* 80295A84 002916E4  4B FD 8C D9 */	bl OSDisableInterrupts
/* 80295A88 002916E8  80 1E 00 7C */	lwz r0, 0x7c(r30)
/* 80295A8C 002916EC  7C 7B 1B 78 */	mr r27, r3
/* 80295A90 002916F0  3B 80 00 00 */	li r28, 0
/* 80295A94 002916F4  3B A0 00 00 */	li r29, 0
/* 80295A98 002916F8  60 00 00 01 */	ori r0, r0, 1
/* 80295A9C 002916FC  90 1E 00 7C */	stw r0, 0x7c(r30)
lbl_80295AA0:
/* 80295AA0 00291700  80 7E 00 00 */	lwz r3, 0(r30)
/* 80295AA4 00291704  2C 03 00 00 */	cmpwi r3, 0
/* 80295AA8 00291708  41 82 00 10 */	beq lbl_80295AB8
/* 80295AAC 0029170C  81 8D 88 FC */	lwz r12, lbl_8063DBBC-_SDA_BASE_(r13)
/* 80295AB0 00291710  7D 89 03 A6 */	mtctr r12
/* 80295AB4 00291714  4E 80 04 21 */	bctrl
lbl_80295AB8:
/* 80295AB8 00291718  3B 9C 00 01 */	addi r28, r28, 1
/* 80295ABC 0029171C  93 BE 00 00 */	stw r29, 0(r30)
/* 80295AC0 00291720  28 1C 00 03 */	cmplwi r28, 3
/* 80295AC4 00291724  3B DE 00 04 */	addi r30, r30, 4
/* 80295AC8 00291728  41 80 FF D8 */	blt lbl_80295AA0
/* 80295ACC 0029172C  7F 63 DB 78 */	mr r3, r27
/* 80295AD0 00291730  4B FD 8C B5 */	bl OSRestoreInterrupts
/* 80295AD4 00291734  7F E3 FB 78 */	mr r3, r31
/* 80295AD8 00291738  4B FD 8C AD */	bl OSRestoreInterrupts
/* 80295ADC 0029173C  38 60 00 00 */	li r3, 0
/* 80295AE0 00291740  48 00 01 68 */	b lbl_80295C48
lbl_80295AE4:
/* 80295AE4 00291744  7F DC F3 78 */	mr r28, r30
/* 80295AE8 00291748  3B 60 00 00 */	li r27, 0
lbl_80295AEC:
/* 80295AEC 0029174C  80 7C 00 00 */	lwz r3, 0(r28)
/* 80295AF0 00291750  2C 03 00 00 */	cmpwi r3, 0
/* 80295AF4 00291754  40 82 00 0C */	bne lbl_80295B00
/* 80295AF8 00291758  38 80 00 00 */	li r4, 0
/* 80295AFC 0029175C  48 00 00 5C */	b lbl_80295B58
lbl_80295B00:
/* 80295B00 00291760  80 1E 00 1C */	lwz r0, 0x1c(r30)
/* 80295B04 00291764  38 80 00 00 */	li r4, 0
/* 80295B08 00291768  54 05 10 3A */	slwi r5, r0, 2
/* 80295B0C 0029176C  4B D6 E5 F9 */	bl memset
/* 80295B10 00291770  3B 7B 00 01 */	addi r27, r27, 1
/* 80295B14 00291774  3B 9C 00 04 */	addi r28, r28, 4
/* 80295B18 00291778  28 1B 00 03 */	cmplwi r27, 3
/* 80295B1C 0029177C  41 80 FF D0 */	blt lbl_80295AEC
/* 80295B20 00291780  C0 22 A3 38 */	lfs f1, lbl_80642938-_SDA2_BASE_(r2)
/* 80295B24 00291784  38 00 00 00 */	li r0, 0
/* 80295B28 00291788  C0 1E 00 80 */	lfs f0, 0x80(r30)
/* 80295B2C 0029178C  90 1E 00 0C */	stw r0, 0xc(r30)
/* 80295B30 00291790  EC 21 00 32 */	fmuls f1, f1, f0
/* 80295B34 00291794  4B F3 14 CD */	bl __cvt_fp2unsigned
/* 80295B38 00291798  80 1E 00 1C */	lwz r0, 0x1c(r30)
/* 80295B3C 0029179C  38 80 00 01 */	li r4, 1
/* 80295B40 002917A0  7C 63 00 50 */	subf r3, r3, r0
/* 80295B44 002917A4  54 00 80 1E */	slwi r0, r0, 0x10
/* 80295B48 002917A8  54 63 80 1E */	slwi r3, r3, 0x10
/* 80295B4C 002917AC  90 1E 00 18 */	stw r0, 0x18(r30)
/* 80295B50 002917B0  90 7E 00 10 */	stw r3, 0x10(r30)
/* 80295B54 002917B4  90 7E 00 14 */	stw r3, 0x14(r30)
lbl_80295B58:
/* 80295B58 002917B8  2C 04 00 00 */	cmpwi r4, 0
/* 80295B5C 002917BC  40 82 00 64 */	bne lbl_80295BC0
/* 80295B60 002917C0  4B FD 8B FD */	bl OSDisableInterrupts
/* 80295B64 002917C4  80 1E 00 7C */	lwz r0, 0x7c(r30)
/* 80295B68 002917C8  7C 7C 1B 78 */	mr r28, r3
/* 80295B6C 002917CC  3B 60 00 00 */	li r27, 0
/* 80295B70 002917D0  3B A0 00 00 */	li r29, 0
/* 80295B74 002917D4  60 00 00 01 */	ori r0, r0, 1
/* 80295B78 002917D8  90 1E 00 7C */	stw r0, 0x7c(r30)
lbl_80295B7C:
/* 80295B7C 002917DC  80 7E 00 00 */	lwz r3, 0(r30)
/* 80295B80 002917E0  2C 03 00 00 */	cmpwi r3, 0
/* 80295B84 002917E4  41 82 00 10 */	beq lbl_80295B94
/* 80295B88 002917E8  81 8D 88 FC */	lwz r12, lbl_8063DBBC-_SDA_BASE_(r13)
/* 80295B8C 002917EC  7D 89 03 A6 */	mtctr r12
/* 80295B90 002917F0  4E 80 04 21 */	bctrl
lbl_80295B94:
/* 80295B94 002917F4  3B 7B 00 01 */	addi r27, r27, 1
/* 80295B98 002917F8  93 BE 00 00 */	stw r29, 0(r30)
/* 80295B9C 002917FC  28 1B 00 03 */	cmplwi r27, 3
/* 80295BA0 00291800  3B DE 00 04 */	addi r30, r30, 4
/* 80295BA4 00291804  41 80 FF D8 */	blt lbl_80295B7C
/* 80295BA8 00291808  7F 83 E3 78 */	mr r3, r28
/* 80295BAC 0029180C  4B FD 8B D9 */	bl OSRestoreInterrupts
/* 80295BB0 00291810  7F E3 FB 78 */	mr r3, r31
/* 80295BB4 00291814  4B FD 8B D1 */	bl OSRestoreInterrupts
/* 80295BB8 00291818  38 60 00 00 */	li r3, 0
/* 80295BBC 0029181C  48 00 00 8C */	b lbl_80295C48
lbl_80295BC0:
/* 80295BC0 00291820  7F C3 F3 78 */	mr r3, r30
/* 80295BC4 00291824  48 00 05 B5 */	bl __InitParams
/* 80295BC8 00291828  2C 03 00 00 */	cmpwi r3, 0
/* 80295BCC 0029182C  40 82 00 64 */	bne lbl_80295C30
/* 80295BD0 00291830  4B FD 8B 8D */	bl OSDisableInterrupts
/* 80295BD4 00291834  80 1E 00 7C */	lwz r0, 0x7c(r30)
/* 80295BD8 00291838  7C 7C 1B 78 */	mr r28, r3
/* 80295BDC 0029183C  3B 60 00 00 */	li r27, 0
/* 80295BE0 00291840  3B A0 00 00 */	li r29, 0
/* 80295BE4 00291844  60 00 00 01 */	ori r0, r0, 1
/* 80295BE8 00291848  90 1E 00 7C */	stw r0, 0x7c(r30)
lbl_80295BEC:
/* 80295BEC 0029184C  80 7E 00 00 */	lwz r3, 0(r30)
/* 80295BF0 00291850  2C 03 00 00 */	cmpwi r3, 0
/* 80295BF4 00291854  41 82 00 10 */	beq lbl_80295C04
/* 80295BF8 00291858  81 8D 88 FC */	lwz r12, lbl_8063DBBC-_SDA_BASE_(r13)
/* 80295BFC 0029185C  7D 89 03 A6 */	mtctr r12
/* 80295C00 00291860  4E 80 04 21 */	bctrl
lbl_80295C04:
/* 80295C04 00291864  3B 7B 00 01 */	addi r27, r27, 1
/* 80295C08 00291868  93 BE 00 00 */	stw r29, 0(r30)
/* 80295C0C 0029186C  28 1B 00 03 */	cmplwi r27, 3
/* 80295C10 00291870  3B DE 00 04 */	addi r30, r30, 4
/* 80295C14 00291874  41 80 FF D8 */	blt lbl_80295BEC
/* 80295C18 00291878  7F 83 E3 78 */	mr r3, r28
/* 80295C1C 0029187C  4B FD 8B 69 */	bl OSRestoreInterrupts
/* 80295C20 00291880  7F E3 FB 78 */	mr r3, r31
/* 80295C24 00291884  4B FD 8B 61 */	bl OSRestoreInterrupts
/* 80295C28 00291888  38 60 00 00 */	li r3, 0
/* 80295C2C 0029188C  48 00 00 1C */	b lbl_80295C48
lbl_80295C30:
/* 80295C30 00291890  80 1E 00 7C */	lwz r0, 0x7c(r30)
/* 80295C34 00291894  7F E3 FB 78 */	mr r3, r31
/* 80295C38 00291898  54 00 00 3C */	rlwinm r0, r0, 0, 0, 0x1e
/* 80295C3C 0029189C  90 1E 00 7C */	stw r0, 0x7c(r30)
/* 80295C40 002918A0  4B FD 8B 45 */	bl OSRestoreInterrupts
/* 80295C44 002918A4  38 60 00 01 */	li r3, 1
lbl_80295C48:
/* 80295C48 002918A8  39 61 00 20 */	addi r11, r1, 0x20
/* 80295C4C 002918AC  4B F3 15 29 */	bl _restgpr_27
/* 80295C50 002918B0  80 01 00 24 */	lwz r0, 0x24(r1)
/* 80295C54 002918B4  7C 08 03 A6 */	mtlr r0
/* 80295C58 002918B8  38 21 00 20 */	addi r1, r1, 0x20
/* 80295C5C 002918BC  4E 80 00 20 */	blr

.global AXFXChorusExpSettings
AXFXChorusExpSettings:
/* 80295C60 002918C0  94 21 FF E0 */	stwu r1, -0x20(r1)
/* 80295C64 002918C4  7C 08 02 A6 */	mflr r0
/* 80295C68 002918C8  90 01 00 24 */	stw r0, 0x24(r1)
/* 80295C6C 002918CC  39 61 00 20 */	addi r11, r1, 0x20
/* 80295C70 002918D0  4B F3 14 B5 */	bl _savegpr_26
/* 80295C74 002918D4  7C 7F 1B 78 */	mr r31, r3
/* 80295C78 002918D8  4B FD 8A E5 */	bl OSDisableInterrupts
/* 80295C7C 002918DC  80 1F 00 7C */	lwz r0, 0x7c(r31)
/* 80295C80 002918E0  7C 7A 1B 78 */	mr r26, r3
/* 80295C84 002918E4  60 00 00 01 */	ori r0, r0, 1
/* 80295C88 002918E8  90 1F 00 7C */	stw r0, 0x7c(r31)
/* 80295C8C 002918EC  4B FD 8A D1 */	bl OSDisableInterrupts
/* 80295C90 002918F0  80 1F 00 7C */	lwz r0, 0x7c(r31)
/* 80295C94 002918F4  7C 7C 1B 78 */	mr r28, r3
/* 80295C98 002918F8  7F FB FB 78 */	mr r27, r31
/* 80295C9C 002918FC  3B A0 00 00 */	li r29, 0
/* 80295CA0 00291900  60 00 00 01 */	ori r0, r0, 1
/* 80295CA4 00291904  3B C0 00 00 */	li r30, 0
/* 80295CA8 00291908  90 1F 00 7C */	stw r0, 0x7c(r31)
lbl_80295CAC:
/* 80295CAC 0029190C  80 7B 00 00 */	lwz r3, 0(r27)
/* 80295CB0 00291910  2C 03 00 00 */	cmpwi r3, 0
/* 80295CB4 00291914  41 82 00 10 */	beq lbl_80295CC4
/* 80295CB8 00291918  81 8D 88 FC */	lwz r12, lbl_8063DBBC-_SDA_BASE_(r13)
/* 80295CBC 0029191C  7D 89 03 A6 */	mtctr r12
/* 80295CC0 00291920  4E 80 04 21 */	bctrl
lbl_80295CC4:
/* 80295CC4 00291924  3B BD 00 01 */	addi r29, r29, 1
/* 80295CC8 00291928  93 DB 00 00 */	stw r30, 0(r27)
/* 80295CCC 0029192C  28 1D 00 03 */	cmplwi r29, 3
/* 80295CD0 00291930  3B 7B 00 04 */	addi r27, r27, 4
/* 80295CD4 00291934  41 80 FF D8 */	blt lbl_80295CAC
/* 80295CD8 00291938  7F 83 E3 78 */	mr r3, r28
/* 80295CDC 0029193C  4B FD 8A A9 */	bl OSRestoreInterrupts
/* 80295CE0 00291940  7F E3 FB 78 */	mr r3, r31
/* 80295CE4 00291944  4B FF FD 21 */	bl AXFXChorusExpInit
/* 80295CE8 00291948  2C 03 00 00 */	cmpwi r3, 0
/* 80295CEC 0029194C  7C 7B 1B 78 */	mr r27, r3
/* 80295CF0 00291950  40 82 00 64 */	bne lbl_80295D54
/* 80295CF4 00291954  4B FD 8A 69 */	bl OSDisableInterrupts
/* 80295CF8 00291958  80 1F 00 7C */	lwz r0, 0x7c(r31)
/* 80295CFC 0029195C  7C 7D 1B 78 */	mr r29, r3
/* 80295D00 00291960  3B 80 00 00 */	li r28, 0
/* 80295D04 00291964  3B C0 00 00 */	li r30, 0
/* 80295D08 00291968  60 00 00 01 */	ori r0, r0, 1
/* 80295D0C 0029196C  90 1F 00 7C */	stw r0, 0x7c(r31)
lbl_80295D10:
/* 80295D10 00291970  80 7F 00 00 */	lwz r3, 0(r31)
/* 80295D14 00291974  2C 03 00 00 */	cmpwi r3, 0
/* 80295D18 00291978  41 82 00 10 */	beq lbl_80295D28
/* 80295D1C 0029197C  81 8D 88 FC */	lwz r12, lbl_8063DBBC-_SDA_BASE_(r13)
/* 80295D20 00291980  7D 89 03 A6 */	mtctr r12
/* 80295D24 00291984  4E 80 04 21 */	bctrl
lbl_80295D28:
/* 80295D28 00291988  3B 9C 00 01 */	addi r28, r28, 1
/* 80295D2C 0029198C  93 DF 00 00 */	stw r30, 0(r31)
/* 80295D30 00291990  28 1C 00 03 */	cmplwi r28, 3
/* 80295D34 00291994  3B FF 00 04 */	addi r31, r31, 4
/* 80295D38 00291998  41 80 FF D8 */	blt lbl_80295D10
/* 80295D3C 0029199C  7F A3 EB 78 */	mr r3, r29
/* 80295D40 002919A0  4B FD 8A 45 */	bl OSRestoreInterrupts
/* 80295D44 002919A4  7F 43 D3 78 */	mr r3, r26
/* 80295D48 002919A8  4B FD 8A 3D */	bl OSRestoreInterrupts
/* 80295D4C 002919AC  38 60 00 00 */	li r3, 0
/* 80295D50 002919B0  48 00 00 20 */	b lbl_80295D70
lbl_80295D54:
/* 80295D54 002919B4  80 1F 00 7C */	lwz r0, 0x7c(r31)
/* 80295D58 002919B8  7F 43 D3 78 */	mr r3, r26
/* 80295D5C 002919BC  60 00 00 02 */	ori r0, r0, 2
/* 80295D60 002919C0  54 00 00 3C */	rlwinm r0, r0, 0, 0, 0x1e
/* 80295D64 002919C4  90 1F 00 7C */	stw r0, 0x7c(r31)
/* 80295D68 002919C8  4B FD 8A 1D */	bl OSRestoreInterrupts
/* 80295D6C 002919CC  7F 63 DB 78 */	mr r3, r27
lbl_80295D70:
/* 80295D70 002919D0  39 61 00 20 */	addi r11, r1, 0x20
/* 80295D74 002919D4  4B F3 13 FD */	bl _restgpr_26
/* 80295D78 002919D8  80 01 00 24 */	lwz r0, 0x24(r1)
/* 80295D7C 002919DC  7C 08 03 A6 */	mtlr r0
/* 80295D80 002919E0  38 21 00 20 */	addi r1, r1, 0x20
/* 80295D84 002919E4  4E 80 00 20 */	blr

.global AXFXChorusExpShutdown
AXFXChorusExpShutdown:
/* 80295D88 002919E8  94 21 FF E0 */	stwu r1, -0x20(r1)
/* 80295D8C 002919EC  7C 08 02 A6 */	mflr r0
/* 80295D90 002919F0  90 01 00 24 */	stw r0, 0x24(r1)
/* 80295D94 002919F4  93 E1 00 1C */	stw r31, 0x1c(r1)
/* 80295D98 002919F8  93 C1 00 18 */	stw r30, 0x18(r1)
/* 80295D9C 002919FC  93 A1 00 14 */	stw r29, 0x14(r1)
/* 80295DA0 00291A00  93 81 00 10 */	stw r28, 0x10(r1)
/* 80295DA4 00291A04  7C 7C 1B 78 */	mr r28, r3
/* 80295DA8 00291A08  4B FD 89 B5 */	bl OSDisableInterrupts
/* 80295DAC 00291A0C  80 1C 00 7C */	lwz r0, 0x7c(r28)
/* 80295DB0 00291A10  7C 7D 1B 78 */	mr r29, r3
/* 80295DB4 00291A14  3B C0 00 00 */	li r30, 0
/* 80295DB8 00291A18  3B E0 00 00 */	li r31, 0
/* 80295DBC 00291A1C  60 00 00 01 */	ori r0, r0, 1
/* 80295DC0 00291A20  90 1C 00 7C */	stw r0, 0x7c(r28)
lbl_80295DC4:
/* 80295DC4 00291A24  80 7C 00 00 */	lwz r3, 0(r28)
/* 80295DC8 00291A28  2C 03 00 00 */	cmpwi r3, 0
/* 80295DCC 00291A2C  41 82 00 10 */	beq lbl_80295DDC
/* 80295DD0 00291A30  81 8D 88 FC */	lwz r12, lbl_8063DBBC-_SDA_BASE_(r13)
/* 80295DD4 00291A34  7D 89 03 A6 */	mtctr r12
/* 80295DD8 00291A38  4E 80 04 21 */	bctrl
lbl_80295DDC:
/* 80295DDC 00291A3C  3B DE 00 01 */	addi r30, r30, 1
/* 80295DE0 00291A40  93 FC 00 00 */	stw r31, 0(r28)
/* 80295DE4 00291A44  28 1E 00 03 */	cmplwi r30, 3
/* 80295DE8 00291A48  3B 9C 00 04 */	addi r28, r28, 4
/* 80295DEC 00291A4C  41 80 FF D8 */	blt lbl_80295DC4
/* 80295DF0 00291A50  7F A3 EB 78 */	mr r3, r29
/* 80295DF4 00291A54  4B FD 89 91 */	bl OSRestoreInterrupts
/* 80295DF8 00291A58  80 01 00 24 */	lwz r0, 0x24(r1)
/* 80295DFC 00291A5C  83 E1 00 1C */	lwz r31, 0x1c(r1)
/* 80295E00 00291A60  83 C1 00 18 */	lwz r30, 0x18(r1)
/* 80295E04 00291A64  83 A1 00 14 */	lwz r29, 0x14(r1)
/* 80295E08 00291A68  83 81 00 10 */	lwz r28, 0x10(r1)
/* 80295E0C 00291A6C  7C 08 03 A6 */	mtlr r0
/* 80295E10 00291A70  38 21 00 20 */	addi r1, r1, 0x20
/* 80295E14 00291A74  4E 80 00 20 */	blr

.global AXFXChorusExpCallback
AXFXChorusExpCallback:
/* 80295E18 00291A78  94 21 FE 00 */	stwu r1, -0x200(r1)
/* 80295E1C 00291A7C  7C 08 02 A6 */	mflr r0
/* 80295E20 00291A80  90 01 02 04 */	stw r0, 0x204(r1)
/* 80295E24 00291A84  DB E1 01 F0 */	stfd f31, 0x1f0(r1)
/* 80295E28 00291A88  F3 E1 01 F8 */	psq_st f31, 504(r1), 0, qr0
/* 80295E2C 00291A8C  39 61 01 F0 */	addi r11, r1, 0x1f0
/* 80295E30 00291A90  4B F3 12 F1 */	bl _savegpr_25
/* 80295E34 00291A94  80 04 00 7C */	lwz r0, 0x7c(r4)
/* 80295E38 00291A98  7C 9B 23 78 */	mr r27, r4
/* 80295E3C 00291A9C  2C 00 00 00 */	cmpwi r0, 0
/* 80295E40 00291AA0  41 82 00 10 */	beq lbl_80295E50
/* 80295E44 00291AA4  54 00 07 FA */	rlwinm r0, r0, 0, 0x1f, 0x1d
/* 80295E48 00291AA8  90 04 00 7C */	stw r0, 0x7c(r4)
/* 80295E4C 00291AAC  48 00 03 0C */	b lbl_80296158
lbl_80295E50:
/* 80295E50 00291AB0  80 E4 00 90 */	lwz r7, 0x90(r4)
/* 80295E54 00291AB4  80 C3 00 00 */	lwz r6, 0(r3)
/* 80295E58 00291AB8  80 A3 00 04 */	lwz r5, 4(r3)
/* 80295E5C 00291ABC  2C 07 00 00 */	cmpwi r7, 0
/* 80295E60 00291AC0  80 03 00 08 */	lwz r0, 8(r3)
/* 80295E64 00291AC4  90 C1 00 20 */	stw r6, 0x20(r1)
/* 80295E68 00291AC8  90 A1 00 24 */	stw r5, 0x24(r1)
/* 80295E6C 00291ACC  90 01 00 28 */	stw r0, 0x28(r1)
/* 80295E70 00291AD0  41 82 00 1C */	beq lbl_80295E8C
/* 80295E74 00291AD4  80 A7 00 00 */	lwz r5, 0(r7)
/* 80295E78 00291AD8  80 67 00 04 */	lwz r3, 4(r7)
/* 80295E7C 00291ADC  80 07 00 08 */	lwz r0, 8(r7)
/* 80295E80 00291AE0  90 A1 00 14 */	stw r5, 0x14(r1)
/* 80295E84 00291AE4  90 61 00 18 */	stw r3, 0x18(r1)
/* 80295E88 00291AE8  90 01 00 1C */	stw r0, 0x1c(r1)
lbl_80295E8C:
/* 80295E8C 00291AEC  80 C4 00 94 */	lwz r6, 0x94(r4)
/* 80295E90 00291AF0  2C 06 00 00 */	cmpwi r6, 0
/* 80295E94 00291AF4  41 82 00 1C */	beq lbl_80295EB0
/* 80295E98 00291AF8  80 A6 00 00 */	lwz r5, 0(r6)
/* 80295E9C 00291AFC  80 66 00 04 */	lwz r3, 4(r6)
/* 80295EA0 00291B00  80 06 00 08 */	lwz r0, 8(r6)
/* 80295EA4 00291B04  90 A1 00 08 */	stw r5, 8(r1)
/* 80295EA8 00291B08  90 61 00 0C */	stw r3, 0xc(r1)
/* 80295EAC 00291B0C  90 01 00 10 */	stw r0, 0x10(r1)
lbl_80295EB0:
/* 80295EB0 00291B10  38 61 00 30 */	addi r3, r1, 0x30
/* 80295EB4 00291B14  38 84 00 20 */	addi r4, r4, 0x20
/* 80295EB8 00291B18  48 00 04 B9 */	bl __CalcLFO
/* 80295EBC 00291B1C  CB E2 A3 40 */	lfd f31, lbl_80642940-_SDA2_BASE_(r2)
/* 80295EC0 00291B20  3B C1 00 30 */	addi r30, r1, 0x30
/* 80295EC4 00291B24  3B A0 00 00 */	li r29, 0
/* 80295EC8 00291B28  3F E0 43 30 */	lis r31, 0x4330
/* 80295ECC 00291B2C  3B 20 00 00 */	li r25, 0
/* 80295ED0 00291B30  3B 40 00 03 */	li r26, 3
lbl_80295ED4:
/* 80295ED4 00291B34  80 7B 00 10 */	lwz r3, 0x10(r27)
/* 80295ED8 00291B38  80 1E 00 00 */	lwz r0, 0(r30)
/* 80295EDC 00291B3C  80 9B 00 18 */	lwz r4, 0x18(r27)
/* 80295EE0 00291B40  7C C3 02 14 */	add r6, r3, r0
/* 80295EE4 00291B44  7C 06 20 00 */	cmpw r6, r4
/* 80295EE8 00291B48  41 80 00 0C */	blt lbl_80295EF4
/* 80295EEC 00291B4C  7C C4 30 50 */	subf r6, r4, r6
/* 80295EF0 00291B50  48 00 00 10 */	b lbl_80295F00
lbl_80295EF4:
/* 80295EF4 00291B54  2C 06 00 00 */	cmpwi r6, 0
/* 80295EF8 00291B58  40 80 00 08 */	bge lbl_80295F00
/* 80295EFC 00291B5C  7C C6 22 14 */	add r6, r6, r4
lbl_80295F00:
/* 80295F00 00291B60  80 1B 00 14 */	lwz r0, 0x14(r27)
/* 80295F04 00291B64  7C 60 30 51 */	subf. r3, r0, r6
/* 80295F08 00291B68  40 80 00 08 */	bge lbl_80295F10
/* 80295F0C 00291B6C  7C 63 22 14 */	add r3, r3, r4
lbl_80295F10:
/* 80295F10 00291B70  54 67 84 3F */	rlwinm. r7, r3, 0x10, 0x10, 0x1f
/* 80295F14 00291B74  54 68 04 3E */	clrlwi r8, r3, 0x10
/* 80295F18 00291B78  54 09 84 3E */	srwi r9, r0, 0x10
/* 80295F1C 00291B7C  83 9B 00 78 */	lwz r28, 0x78(r27)
/* 80295F20 00291B80  7C E9 03 A6 */	mtctr r7
/* 80295F24 00291B84  41 82 00 58 */	beq lbl_80295F7C
lbl_80295F28:
/* 80295F28 00291B88  80 7B 00 00 */	lwz r3, 0(r27)
/* 80295F2C 00291B8C  55 24 10 3A */	slwi r4, r9, 2
/* 80295F30 00291B90  57 80 10 3A */	slwi r0, r28, 2
/* 80295F34 00291B94  3B 9C 00 01 */	addi r28, r28, 1
/* 80295F38 00291B98  7C 03 24 2E */	lfsx f0, r3, r4
/* 80295F3C 00291B9C  7C BB 02 14 */	add r5, r27, r0
/* 80295F40 00291BA0  39 29 00 01 */	addi r9, r9, 1
/* 80295F44 00291BA4  57 9C 07 BE */	clrlwi r28, r28, 0x1e
/* 80295F48 00291BA8  D0 05 00 48 */	stfs f0, 0x48(r5)
/* 80295F4C 00291BAC  38 E7 FF FF */	addi r7, r7, -1
/* 80295F50 00291BB0  80 7B 00 04 */	lwz r3, 4(r27)
/* 80295F54 00291BB4  7C 03 24 2E */	lfsx f0, r3, r4
/* 80295F58 00291BB8  D0 05 00 58 */	stfs f0, 0x58(r5)
/* 80295F5C 00291BBC  80 7B 00 08 */	lwz r3, 8(r27)
/* 80295F60 00291BC0  7C 03 24 2E */	lfsx f0, r3, r4
/* 80295F64 00291BC4  D0 05 00 68 */	stfs f0, 0x68(r5)
/* 80295F68 00291BC8  80 1B 00 1C */	lwz r0, 0x1c(r27)
/* 80295F6C 00291BCC  7C 09 00 40 */	cmplw r9, r0
/* 80295F70 00291BD0  41 80 00 08 */	blt lbl_80295F78
/* 80295F74 00291BD4  39 20 00 00 */	li r9, 0
lbl_80295F78:
/* 80295F78 00291BD8  42 00 FF B0 */	bdnz lbl_80295F28
lbl_80295F7C:
/* 80295F7C 00291BDC  54 C0 00 1E */	rlwinm r0, r6, 0, 0, 0xf
/* 80295F80 00291BE0  55 03 BE 7E */	rlwinm r3, r8, 0x17, 0x19, 0x1f
/* 80295F84 00291BE4  90 1B 00 14 */	stw r0, 0x14(r27)
/* 80295F88 00291BE8  48 00 04 F9 */	bl __AXFXGetSrcCoef
/* 80295F8C 00291BEC  7F 64 DB 78 */	mr r4, r27
/* 80295F90 00291BF0  7F 67 DB 78 */	mr r7, r27
/* 80295F94 00291BF4  38 A1 00 14 */	addi r5, r1, 0x14
/* 80295F98 00291BF8  38 C1 00 20 */	addi r6, r1, 0x20
/* 80295F9C 00291BFC  39 01 00 08 */	addi r8, r1, 8
/* 80295FA0 00291C00  7F 49 03 A6 */	mtctr r26
lbl_80295FA4:
/* 80295FA4 00291C04  57 80 10 3A */	slwi r0, r28, 2
/* 80295FA8 00291C08  3B 9C 00 01 */	addi r28, r28, 1
/* 80295FAC 00291C0C  7D 44 02 14 */	add r10, r4, r0
/* 80295FB0 00291C10  80 1B 00 90 */	lwz r0, 0x90(r27)
/* 80295FB4 00291C14  57 9C 07 BE */	clrlwi r28, r28, 0x1e
/* 80295FB8 00291C18  C0 23 00 00 */	lfs f1, 0(r3)
/* 80295FBC 00291C1C  57 89 10 3A */	slwi r9, r28, 2
/* 80295FC0 00291C20  C0 0A 00 48 */	lfs f0, 0x48(r10)
/* 80295FC4 00291C24  3B 9C 00 01 */	addi r28, r28, 1
/* 80295FC8 00291C28  C0 A2 A3 3C */	lfs f5, lbl_8064293C-_SDA2_BASE_(r2)
/* 80295FCC 00291C2C  EC 41 00 32 */	fmuls f2, f1, f0
/* 80295FD0 00291C30  7D 64 4A 14 */	add r11, r4, r9
/* 80295FD4 00291C34  57 9C 07 BE */	clrlwi r28, r28, 0x1e
/* 80295FD8 00291C38  C0 23 00 04 */	lfs f1, 4(r3)
/* 80295FDC 00291C3C  57 89 10 3A */	slwi r9, r28, 2
/* 80295FE0 00291C40  C0 0B 00 48 */	lfs f0, 0x48(r11)
/* 80295FE4 00291C44  3B 9C 00 01 */	addi r28, r28, 1
/* 80295FE8 00291C48  EC 81 00 32 */	fmuls f4, f1, f0
/* 80295FEC 00291C4C  EC A5 10 2A */	fadds f5, f5, f2
/* 80295FF0 00291C50  7D 44 4A 14 */	add r10, r4, r9
/* 80295FF4 00291C54  57 9C 07 BE */	clrlwi r28, r28, 0x1e
/* 80295FF8 00291C58  C0 63 00 08 */	lfs f3, 8(r3)
/* 80295FFC 00291C5C  57 89 10 3A */	slwi r9, r28, 2
/* 80296000 00291C60  C0 4A 00 48 */	lfs f2, 0x48(r10)
/* 80296004 00291C64  7D 24 4A 14 */	add r9, r4, r9
/* 80296008 00291C68  EC A5 20 2A */	fadds f5, f5, f4
/* 8029600C 00291C6C  EC 43 00 B2 */	fmuls f2, f3, f2
/* 80296010 00291C70  C0 23 00 0C */	lfs f1, 0xc(r3)
/* 80296014 00291C74  C0 09 00 48 */	lfs f0, 0x48(r9)
/* 80296018 00291C78  2C 00 00 00 */	cmpwi r0, 0
/* 8029601C 00291C7C  3B 9C 00 01 */	addi r28, r28, 1
/* 80296020 00291C80  EC 01 00 32 */	fmuls f0, f1, f0
/* 80296024 00291C84  EC A5 10 2A */	fadds f5, f5, f2
/* 80296028 00291C88  57 9C 07 BE */	clrlwi r28, r28, 0x1e
/* 8029602C 00291C8C  EC A5 00 2A */	fadds f5, f5, f0
/* 80296030 00291C90  41 82 00 38 */	beq lbl_80296068
/* 80296034 00291C94  81 25 00 00 */	lwz r9, 0(r5)
/* 80296038 00291C98  81 46 00 00 */	lwz r10, 0(r6)
/* 8029603C 00291C9C  80 09 00 00 */	lwz r0, 0(r9)
/* 80296040 00291CA0  39 29 00 04 */	addi r9, r9, 4
/* 80296044 00291CA4  81 4A 00 00 */	lwz r10, 0(r10)
/* 80296048 00291CA8  93 E1 01 B0 */	stw r31, 0x1b0(r1)
/* 8029604C 00291CAC  7C 0A 02 14 */	add r0, r10, r0
/* 80296050 00291CB0  6C 00 80 00 */	xoris r0, r0, 0x8000
/* 80296054 00291CB4  91 25 00 00 */	stw r9, 0(r5)
/* 80296058 00291CB8  90 01 01 B4 */	stw r0, 0x1b4(r1)
/* 8029605C 00291CBC  C8 01 01 B0 */	lfd f0, 0x1b0(r1)
/* 80296060 00291CC0  EC 20 F8 28 */	fsubs f1, f0, f31
/* 80296064 00291CC4  48 00 00 20 */	b lbl_80296084
lbl_80296068:
/* 80296068 00291CC8  81 26 00 00 */	lwz r9, 0(r6)
/* 8029606C 00291CCC  93 E1 01 B8 */	stw r31, 0x1b8(r1)
/* 80296070 00291CD0  80 09 00 00 */	lwz r0, 0(r9)
/* 80296074 00291CD4  6C 00 80 00 */	xoris r0, r0, 0x8000
/* 80296078 00291CD8  90 01 01 BC */	stw r0, 0x1bc(r1)
/* 8029607C 00291CDC  C8 01 01 B8 */	lfd f0, 0x1b8(r1)
/* 80296080 00291CE0  EC 20 F8 28 */	fsubs f1, f0, f31
lbl_80296084:
/* 80296084 00291CE4  C0 1B 00 8C */	lfs f0, 0x8c(r27)
/* 80296088 00291CE8  80 1B 00 0C */	lwz r0, 0xc(r27)
/* 8029608C 00291CEC  EC 05 00 32 */	fmuls f0, f5, f0
/* 80296090 00291CF0  81 67 00 00 */	lwz r11, 0(r7)
/* 80296094 00291CF4  54 0A 10 3A */	slwi r10, r0, 2
/* 80296098 00291CF8  81 26 00 00 */	lwz r9, 0(r6)
/* 8029609C 00291CFC  EC 01 00 2A */	fadds f0, f1, f0
/* 802960A0 00291D00  38 09 00 04 */	addi r0, r9, 4
/* 802960A4 00291D04  90 06 00 00 */	stw r0, 0(r6)
/* 802960A8 00291D08  7C 0B 55 2E */	stfsx f0, r11, r10
/* 802960AC 00291D0C  C0 1B 00 98 */	lfs f0, 0x98(r27)
/* 802960B0 00291D10  EC 05 00 32 */	fmuls f0, f5, f0
/* 802960B4 00291D14  FC 00 00 1E */	fctiwz f0, f0
/* 802960B8 00291D18  D8 01 01 C0 */	stfd f0, 0x1c0(r1)
/* 802960BC 00291D1C  80 01 01 C4 */	lwz r0, 0x1c4(r1)
/* 802960C0 00291D20  90 09 00 00 */	stw r0, 0(r9)
/* 802960C4 00291D24  80 1B 00 94 */	lwz r0, 0x94(r27)
/* 802960C8 00291D28  2C 00 00 00 */	cmpwi r0, 0
/* 802960CC 00291D2C  41 82 00 28 */	beq lbl_802960F4
/* 802960D0 00291D30  C0 1B 00 9C */	lfs f0, 0x9c(r27)
/* 802960D4 00291D34  81 28 00 00 */	lwz r9, 0(r8)
/* 802960D8 00291D38  EC 05 00 32 */	fmuls f0, f5, f0
/* 802960DC 00291D3C  38 09 00 04 */	addi r0, r9, 4
/* 802960E0 00291D40  90 08 00 00 */	stw r0, 0(r8)
/* 802960E4 00291D44  FC 00 00 1E */	fctiwz f0, f0
/* 802960E8 00291D48  D8 01 01 C0 */	stfd f0, 0x1c0(r1)
/* 802960EC 00291D4C  80 01 01 C4 */	lwz r0, 0x1c4(r1)
/* 802960F0 00291D50  90 09 00 00 */	stw r0, 0(r9)
lbl_802960F4:
/* 802960F4 00291D54  38 84 00 10 */	addi r4, r4, 0x10
/* 802960F8 00291D58  38 A5 00 04 */	addi r5, r5, 4
/* 802960FC 00291D5C  38 C6 00 04 */	addi r6, r6, 4
/* 80296100 00291D60  38 E7 00 04 */	addi r7, r7, 4
/* 80296104 00291D64  39 08 00 04 */	addi r8, r8, 4
/* 80296108 00291D68  42 00 FE 9C */	bdnz lbl_80295FA4
/* 8029610C 00291D6C  80 7B 00 0C */	lwz r3, 0xc(r27)
/* 80296110 00291D70  80 1B 00 1C */	lwz r0, 0x1c(r27)
/* 80296114 00291D74  38 63 00 01 */	addi r3, r3, 1
/* 80296118 00291D78  93 9B 00 78 */	stw r28, 0x78(r27)
/* 8029611C 00291D7C  7C 03 00 40 */	cmplw r3, r0
/* 80296120 00291D80  90 7B 00 0C */	stw r3, 0xc(r27)
/* 80296124 00291D84  41 80 00 08 */	blt lbl_8029612C
/* 80296128 00291D88  93 3B 00 0C */	stw r25, 0xc(r27)
lbl_8029612C:
/* 8029612C 00291D8C  80 7B 00 10 */	lwz r3, 0x10(r27)
/* 80296130 00291D90  80 1B 00 18 */	lwz r0, 0x18(r27)
/* 80296134 00291D94  3C 63 00 01 */	addis r3, r3, 1
/* 80296138 00291D98  7C 03 00 40 */	cmplw r3, r0
/* 8029613C 00291D9C  90 7B 00 10 */	stw r3, 0x10(r27)
/* 80296140 00291DA0  41 80 00 08 */	blt lbl_80296148
/* 80296144 00291DA4  93 3B 00 10 */	stw r25, 0x10(r27)
lbl_80296148:
/* 80296148 00291DA8  3B BD 00 01 */	addi r29, r29, 1
/* 8029614C 00291DAC  3B DE 00 04 */	addi r30, r30, 4
/* 80296150 00291DB0  28 1D 00 60 */	cmplwi r29, 0x60
/* 80296154 00291DB4  41 80 FD 80 */	blt lbl_80295ED4
lbl_80296158:
/* 80296158 00291DB8  E3 E1 01 F8 */	psq_l f31, 504(r1), 0, qr0
/* 8029615C 00291DBC  39 61 01 F0 */	addi r11, r1, 0x1f0
/* 80296160 00291DC0  CB E1 01 F0 */	lfd f31, 0x1f0(r1)
/* 80296164 00291DC4  4B F3 10 09 */	bl _restgpr_25
/* 80296168 00291DC8  80 01 02 04 */	lwz r0, 0x204(r1)
/* 8029616C 00291DCC  7C 08 03 A6 */	mtlr r0
/* 80296170 00291DD0  38 21 02 00 */	addi r1, r1, 0x200
/* 80296174 00291DD4  4E 80 00 20 */	blr

__InitParams:
/* 80296178 00291DD8  94 21 FF D0 */	stwu r1, -0x30(r1)
/* 8029617C 00291DDC  7C 08 02 A6 */	mflr r0
/* 80296180 00291DE0  C0 82 A3 48 */	lfs f4, lbl_80642948-_SDA2_BASE_(r2)
/* 80296184 00291DE4  90 01 00 34 */	stw r0, 0x34(r1)
/* 80296188 00291DE8  93 E1 00 2C */	stw r31, 0x2c(r1)
/* 8029618C 00291DEC  7C 7F 1B 78 */	mr r31, r3
/* 80296190 00291DF0  C0 23 00 80 */	lfs f1, 0x80(r3)
/* 80296194 00291DF4  FC 01 20 40 */	fcmpo cr0, f1, f4
/* 80296198 00291DF8  41 80 00 10 */	blt lbl_802961A8
/* 8029619C 00291DFC  C0 02 A3 4C */	lfs f0, lbl_8064294C-_SDA2_BASE_(r2)
/* 802961A0 00291E00  FC 01 00 40 */	fcmpo cr0, f1, f0
/* 802961A4 00291E04  40 81 00 0C */	ble lbl_802961B0
lbl_802961A8:
/* 802961A8 00291E08  38 60 00 00 */	li r3, 0
/* 802961AC 00291E0C  48 00 01 B0 */	b lbl_8029635C
lbl_802961B0:
/* 802961B0 00291E10  C0 03 00 84 */	lfs f0, 0x84(r3)
/* 802961B4 00291E14  C0 62 A3 3C */	lfs f3, lbl_8064293C-_SDA2_BASE_(r2)
/* 802961B8 00291E18  FC 00 18 40 */	fcmpo cr0, f0, f3
/* 802961BC 00291E1C  41 80 00 10 */	blt lbl_802961CC
/* 802961C0 00291E20  C0 42 A3 50 */	lfs f2, lbl_80642950-_SDA2_BASE_(r2)
/* 802961C4 00291E24  FC 00 10 40 */	fcmpo cr0, f0, f2
/* 802961C8 00291E28  40 81 00 0C */	ble lbl_802961D4
lbl_802961CC:
/* 802961CC 00291E2C  38 60 00 00 */	li r3, 0
/* 802961D0 00291E30  48 00 01 8C */	b lbl_8029635C
lbl_802961D4:
/* 802961D4 00291E34  C0 23 00 88 */	lfs f1, 0x88(r3)
/* 802961D8 00291E38  FC 01 20 40 */	fcmpo cr0, f1, f4
/* 802961DC 00291E3C  41 80 00 10 */	blt lbl_802961EC
/* 802961E0 00291E40  C0 02 A3 54 */	lfs f0, lbl_80642954-_SDA2_BASE_(r2)
/* 802961E4 00291E44  FC 01 00 40 */	fcmpo cr0, f1, f0
/* 802961E8 00291E48  40 81 00 0C */	ble lbl_802961F4
lbl_802961EC:
/* 802961EC 00291E4C  38 60 00 00 */	li r3, 0
/* 802961F0 00291E50  48 00 01 6C */	b lbl_8029635C
lbl_802961F4:
/* 802961F4 00291E54  C0 03 00 8C */	lfs f0, 0x8c(r3)
/* 802961F8 00291E58  FC 00 18 40 */	fcmpo cr0, f0, f3
/* 802961FC 00291E5C  41 80 00 10 */	blt lbl_8029620C
/* 80296200 00291E60  FC 00 10 40 */	fcmpo cr0, f0, f2
/* 80296204 00291E64  4C 41 13 82 */	cror 2, 1, 2
/* 80296208 00291E68  40 82 00 0C */	bne lbl_80296214
lbl_8029620C:
/* 8029620C 00291E6C  38 60 00 00 */	li r3, 0
/* 80296210 00291E70  48 00 01 4C */	b lbl_8029635C
lbl_80296214:
/* 80296214 00291E74  C0 03 00 98 */	lfs f0, 0x98(r3)
/* 80296218 00291E78  FC 00 18 40 */	fcmpo cr0, f0, f3
/* 8029621C 00291E7C  41 80 00 0C */	blt lbl_80296228
/* 80296220 00291E80  FC 00 10 40 */	fcmpo cr0, f0, f2
/* 80296224 00291E84  40 81 00 0C */	ble lbl_80296230
lbl_80296228:
/* 80296228 00291E88  38 60 00 00 */	li r3, 0
/* 8029622C 00291E8C  48 00 01 30 */	b lbl_8029635C
lbl_80296230:
/* 80296230 00291E90  C0 03 00 9C */	lfs f0, 0x9c(r3)
/* 80296234 00291E94  FC 00 18 40 */	fcmpo cr0, f0, f3
/* 80296238 00291E98  41 80 00 0C */	blt lbl_80296244
/* 8029623C 00291E9C  FC 00 10 40 */	fcmpo cr0, f0, f2
/* 80296240 00291EA0  40 81 00 0C */	ble lbl_8029624C
lbl_80296244:
/* 80296244 00291EA4  38 60 00 00 */	li r3, 0
/* 80296248 00291EA8  48 00 01 14 */	b lbl_8029635C
lbl_8029624C:
/* 8029624C 00291EAC  48 00 02 29 */	bl __AXFXGetLfoSinTable
/* 80296250 00291EB0  C0 42 A3 38 */	lfs f2, lbl_80642938-_SDA2_BASE_(r2)
/* 80296254 00291EB4  C0 3F 00 80 */	lfs f1, 0x80(r31)
/* 80296258 00291EB8  C0 1F 00 84 */	lfs f0, 0x84(r31)
/* 8029625C 00291EBC  EC 22 00 72 */	fmuls f1, f2, f1
/* 80296260 00291EC0  90 7F 00 20 */	stw r3, 0x20(r31)
/* 80296264 00291EC4  EC C1 00 32 */	fmuls f6, f1, f0
/* 80296268 00291EC8  FC 06 08 40 */	fcmpo cr0, f6, f1
/* 8029626C 00291ECC  4C 41 13 82 */	cror 2, 1, 2
/* 80296270 00291ED0  40 82 00 1C */	bne lbl_8029628C
/* 80296274 00291ED4  C0 22 A3 50 */	lfs f1, lbl_80642950-_SDA2_BASE_(r2)
/* 80296278 00291ED8  C0 02 A3 3C */	lfs f0, lbl_8064293C-_SDA2_BASE_(r2)
/* 8029627C 00291EDC  EC C6 08 28 */	fsubs f6, f6, f1
/* 80296280 00291EE0  FC 06 00 40 */	fcmpo cr0, f6, f0
/* 80296284 00291EE4  40 80 00 08 */	bge lbl_8029628C
/* 80296288 00291EE8  FC C0 00 90 */	fmr f6, f0
lbl_8029628C:
/* 8029628C 00291EEC  C0 7F 00 88 */	lfs f3, 0x88(r31)
/* 80296290 00291EF0  38 80 00 00 */	li r4, 0
/* 80296294 00291EF4  C0 42 A3 60 */	lfs f2, lbl_80642960-_SDA2_BASE_(r2)
/* 80296298 00291EF8  38 00 FF FF */	li r0, -1
/* 8029629C 00291EFC  C0 82 A3 5C */	lfs f4, lbl_8064295C-_SDA2_BASE_(r2)
/* 802962A0 00291F00  38 60 00 01 */	li r3, 1
/* 802962A4 00291F04  EC 22 18 24 */	fdivs f1, f2, f3
/* 802962A8 00291F08  C0 02 A3 64 */	lfs f0, lbl_80642964-_SDA2_BASE_(r2)
/* 802962AC 00291F0C  C0 A2 A3 58 */	lfs f5, lbl_80642958-_SDA2_BASE_(r2)
/* 802962B0 00291F10  90 1F 00 38 */	stw r0, 0x38(r31)
/* 802962B4 00291F14  90 9F 00 30 */	stw r4, 0x30(r31)
/* 802962B8 00291F18  90 9F 00 34 */	stw r4, 0x34(r31)
/* 802962BC 00291F1C  EC E1 00 32 */	fmuls f7, f1, f0
/* 802962C0 00291F20  C0 02 A3 3C */	lfs f0, lbl_8064293C-_SDA2_BASE_(r2)
/* 802962C4 00291F24  EC 24 00 F2 */	fmuls f1, f4, f3
/* 802962C8 00291F28  90 9F 00 3C */	stw r4, 0x3c(r31)
/* 802962CC 00291F2C  EC 85 01 B2 */	fmuls f4, f5, f6
/* 802962D0 00291F30  EC C6 38 24 */	fdivs f6, f6, f7
/* 802962D4 00291F34  90 9F 00 40 */	stw r4, 0x40(r31)
/* 802962D8 00291F38  EC 21 10 24 */	fdivs f1, f1, f2
/* 802962DC 00291F3C  EC 65 00 72 */	fmuls f3, f5, f1
/* 802962E0 00291F40  EC 45 01 F2 */	fmuls f2, f5, f7
/* 802962E4 00291F44  EC 25 01 B2 */	fmuls f1, f5, f6
/* 802962E8 00291F48  FC 80 20 1E */	fctiwz f4, f4
/* 802962EC 00291F4C  FC 60 18 1E */	fctiwz f3, f3
/* 802962F0 00291F50  FC 40 10 1E */	fctiwz f2, f2
/* 802962F4 00291F54  FC 20 08 1E */	fctiwz f1, f1
/* 802962F8 00291F58  D8 81 00 08 */	stfd f4, 8(r1)
/* 802962FC 00291F5C  D8 61 00 10 */	stfd f3, 0x10(r1)
/* 80296300 00291F60  80 E1 00 0C */	lwz r7, 0xc(r1)
/* 80296304 00291F64  D8 41 00 18 */	stfd f2, 0x18(r1)
/* 80296308 00291F68  80 C1 00 14 */	lwz r6, 0x14(r1)
/* 8029630C 00291F6C  D8 21 00 20 */	stfd f1, 0x20(r1)
/* 80296310 00291F70  80 A1 00 1C */	lwz r5, 0x1c(r1)
/* 80296314 00291F74  80 01 00 24 */	lwz r0, 0x24(r1)
/* 80296318 00291F78  90 FF 00 2C */	stw r7, 0x2c(r31)
/* 8029631C 00291F7C  90 DF 00 24 */	stw r6, 0x24(r31)
/* 80296320 00291F80  90 BF 00 28 */	stw r5, 0x28(r31)
/* 80296324 00291F84  90 1F 00 44 */	stw r0, 0x44(r31)
/* 80296328 00291F88  D0 1F 00 48 */	stfs f0, 0x48(r31)
/* 8029632C 00291F8C  D0 1F 00 4C */	stfs f0, 0x4c(r31)
/* 80296330 00291F90  D0 1F 00 50 */	stfs f0, 0x50(r31)
/* 80296334 00291F94  D0 1F 00 54 */	stfs f0, 0x54(r31)
/* 80296338 00291F98  D0 1F 00 58 */	stfs f0, 0x58(r31)
/* 8029633C 00291F9C  D0 1F 00 5C */	stfs f0, 0x5c(r31)
/* 80296340 00291FA0  D0 1F 00 60 */	stfs f0, 0x60(r31)
/* 80296344 00291FA4  D0 1F 00 64 */	stfs f0, 0x64(r31)
/* 80296348 00291FA8  D0 1F 00 68 */	stfs f0, 0x68(r31)
/* 8029634C 00291FAC  D0 1F 00 6C */	stfs f0, 0x6c(r31)
/* 80296350 00291FB0  D0 1F 00 70 */	stfs f0, 0x70(r31)
/* 80296354 00291FB4  D0 1F 00 74 */	stfs f0, 0x74(r31)
/* 80296358 00291FB8  90 9F 00 78 */	stw r4, 0x78(r31)
lbl_8029635C:
/* 8029635C 00291FBC  80 01 00 34 */	lwz r0, 0x34(r1)
/* 80296360 00291FC0  83 E1 00 2C */	lwz r31, 0x2c(r1)
/* 80296364 00291FC4  7C 08 03 A6 */	mtlr r0
/* 80296368 00291FC8  38 21 00 30 */	addi r1, r1, 0x30
/* 8029636C 00291FCC  4E 80 00 20 */	blr

__CalcLFO:
/* 80296370 00291FD0  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 80296374 00291FD4  38 00 00 60 */	li r0, 0x60
/* 80296378 00291FD8  93 E1 00 0C */	stw r31, 0xc(r1)
/* 8029637C 00291FDC  7C 09 03 A6 */	mtctr r0
lbl_80296380:
/* 80296380 00291FE0  80 A4 00 10 */	lwz r5, 0x10(r4)
/* 80296384 00291FE4  80 04 00 18 */	lwz r0, 0x18(r4)
/* 80296388 00291FE8  54 A5 00 1E */	rlwinm r5, r5, 0, 0, 0xf
/* 8029638C 00291FEC  7C 05 00 40 */	cmplw r5, r0
/* 80296390 00291FF0  41 82 00 78 */	beq lbl_80296408
/* 80296394 00291FF4  90 A4 00 18 */	stw r5, 0x18(r4)
/* 80296398 00291FF8  54 A5 84 3E */	srwi r5, r5, 0x10
/* 8029639C 00291FFC  38 05 00 01 */	addi r0, r5, 1
/* 802963A0 00292000  80 C4 00 00 */	lwz r6, 0(r4)
/* 802963A4 00292004  54 A5 10 3A */	slwi r5, r5, 2
/* 802963A8 00292008  81 24 00 24 */	lwz r9, 0x24(r4)
/* 802963AC 0029200C  54 00 15 FA */	rlwinm r0, r0, 2, 0x17, 0x1d
/* 802963B0 00292010  7D 66 28 2E */	lwzx r11, r6, r5
/* 802963B4 00292014  7C 06 00 2E */	lwzx r0, r6, r0
/* 802963B8 00292018  80 A4 00 0C */	lwz r5, 0xc(r4)
/* 802963BC 0029201C  7D 4B 00 50 */	subf r10, r11, r0
/* 802963C0 00292020  7C 0B 29 D6 */	mullw r0, r11, r5
/* 802963C4 00292024  7D 5F FE 70 */	srawi r31, r10, 0x1f
/* 802963C8 00292028  7D 27 FE 70 */	srawi r7, r9, 0x1f
/* 802963CC 0029202C  7C CA 49 D6 */	mullw r6, r10, r9
/* 802963D0 00292030  54 0C 40 3E */	rotlwi r12, r0, 8
/* 802963D4 00292034  7C 0B 28 96 */	mulhw r0, r11, r5
/* 802963D8 00292038  54 C6 40 3E */	rotlwi r6, r6, 8
/* 802963DC 0029203C  7D 0A 48 16 */	mulhwu r8, r10, r9
/* 802963E0 00292040  50 0C 40 2E */	rlwimi r12, r0, 8, 0, 0x17
/* 802963E4 00292044  7D 3F 49 D6 */	mullw r9, r31, r9
/* 802963E8 00292048  7C AA 39 D6 */	mullw r5, r10, r7
/* 802963EC 0029204C  7D 08 4A 14 */	add r8, r8, r9
/* 802963F0 00292050  7D 08 2A 14 */	add r8, r8, r5
/* 802963F4 00292054  51 06 40 2E */	rlwimi r6, r8, 8, 0, 0x17
/* 802963F8 00292058  7D 05 C6 70 */	srawi r5, r8, 0x18
/* 802963FC 0029205C  90 C4 00 20 */	stw r6, 0x20(r4)
/* 80296400 00292060  7C 05 C6 70 */	srawi r5, r0, 0x18
/* 80296404 00292064  48 00 00 14 */	b lbl_80296418
lbl_80296408:
/* 80296408 00292068  80 A4 00 1C */	lwz r5, 0x1c(r4)
/* 8029640C 0029206C  80 04 00 20 */	lwz r0, 0x20(r4)
/* 80296410 00292070  7D 85 02 14 */	add r12, r5, r0
/* 80296414 00292074  7D 85 FE 70 */	srawi r5, r12, 0x1f
lbl_80296418:
/* 80296418 00292078  80 04 00 14 */	lwz r0, 0x14(r4)
/* 8029641C 0029207C  91 84 00 1C */	stw r12, 0x1c(r4)
/* 80296420 00292080  28 00 00 01 */	cmplwi r0, 1
/* 80296424 00292084  41 80 00 0C */	blt lbl_80296430
/* 80296428 00292088  21 8C 00 00 */	subfic r12, r12, 0
/* 8029642C 0029208C  7C A5 01 90 */	subfze r5, r5
lbl_80296430:
/* 80296430 00292090  80 A4 00 10 */	lwz r5, 0x10(r4)
/* 80296434 00292094  80 04 00 04 */	lwz r0, 4(r4)
/* 80296438 00292098  7C A5 02 14 */	add r5, r5, r0
/* 8029643C 0029209C  54 A0 00 11 */	rlwinm. r0, r5, 0, 0, 8
/* 80296440 002920A0  90 A4 00 10 */	stw r5, 0x10(r4)
/* 80296444 002920A4  41 82 00 18 */	beq lbl_8029645C
/* 80296448 002920A8  80 04 00 14 */	lwz r0, 0x14(r4)
/* 8029644C 002920AC  54 A5 02 7E */	clrlwi r5, r5, 9
/* 80296450 002920B0  90 A4 00 10 */	stw r5, 0x10(r4)
/* 80296454 002920B4  68 00 00 01 */	xori r0, r0, 1
/* 80296458 002920B8  90 04 00 14 */	stw r0, 0x14(r4)
lbl_8029645C:
/* 8029645C 002920BC  91 83 00 00 */	stw r12, 0(r3)
/* 80296460 002920C0  38 63 00 04 */	addi r3, r3, 4
/* 80296464 002920C4  42 00 FF 1C */	bdnz lbl_80296380
/* 80296468 002920C8  83 E1 00 0C */	lwz r31, 0xc(r1)
/* 8029646C 002920CC  38 21 00 10 */	addi r1, r1, 0x10
/* 80296470 002920D0  4E 80 00 20 */	blr