summaryrefslogtreecommitdiff
path: root/asm/code_800324A8.s
blob: c1472ecd2c116fb2271f290a8531c7c73db0b812 (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
.include "macros.inc"

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

.global lbl_800324A8
lbl_800324A8:
/* 800324A8 0002E108  94 21 FF B0 */	stwu r1, -0x50(r1)
/* 800324AC 0002E10C  7C 08 02 A6 */	mflr r0
/* 800324B0 0002E110  90 01 00 54 */	stw r0, 0x54(r1)
/* 800324B4 0002E114  DB E1 00 40 */	stfd f31, 0x40(r1)
/* 800324B8 0002E118  F3 E1 00 48 */	psq_st f31, 72(r1), 0, qr0
/* 800324BC 0002E11C  39 61 00 40 */	addi r11, r1, 0x40
/* 800324C0 0002E120  48 19 4C 69 */	bl _savegpr_27
/* 800324C4 0002E124  7C 9B 23 78 */	mr r27, r4
/* 800324C8 0002E128  7C BE 2B 78 */	mr r30, r5
/* 800324CC 0002E12C  48 01 CF 51 */	bl func_8004F41C
/* 800324D0 0002E130  2C 03 00 00 */	cmpwi r3, 0
/* 800324D4 0002E134  40 82 00 0C */	bne lbl_800324E0
/* 800324D8 0002E138  38 60 00 01 */	li r3, 1
/* 800324DC 0002E13C  48 00 06 AC */	b lbl_80032B88
lbl_800324E0:
/* 800324E0 0002E140  48 01 CF E5 */	bl func_8004F4C4
/* 800324E4 0002E144  2C 03 00 00 */	cmpwi r3, 0
/* 800324E8 0002E148  7C 7F 1B 78 */	mr r31, r3
/* 800324EC 0002E14C  40 82 00 0C */	bne lbl_800324F8
/* 800324F0 0002E150  38 60 00 01 */	li r3, 1
/* 800324F4 0002E154  48 00 06 94 */	b lbl_80032B88
lbl_800324F8:
/* 800324F8 0002E158  38 1B FF EF */	addi r0, r27, -17
/* 800324FC 0002E15C  28 00 00 12 */	cmplwi r0, 0x12
/* 80032500 0002E160  41 81 06 84 */	bgt lbl_80032B84
/* 80032504 0002E164  3C 80 80 41 */	lis r4, lbl_8040A198@ha
/* 80032508 0002E168  54 00 10 3A */	slwi r0, r0, 2
/* 8003250C 0002E16C  38 84 A1 98 */	addi r4, r4, lbl_8040A198@l
/* 80032510 0002E170  7C 84 00 2E */	lwzx r4, r4, r0
/* 80032514 0002E174  7C 89 03 A6 */	mtctr r4
/* 80032518 0002E178  4E 80 04 20 */	bctr
/* 8003251C 0002E17C  A8 1E 00 08 */	lha r0, 8(r30)
/* 80032520 0002E180  2C 00 00 01 */	cmpwi r0, 1
/* 80032524 0002E184  40 82 00 0C */	bne lbl_80032530
/* 80032528 0002E188  80 9E 00 0C */	lwz r4, 0xc(r30)
/* 8003252C 0002E18C  48 00 00 2C */	b lbl_80032558
lbl_80032530:
/* 80032530 0002E190  2C 00 00 02 */	cmpwi r0, 2
/* 80032534 0002E194  40 82 00 18 */	bne lbl_8003254C
/* 80032538 0002E198  C0 1E 00 0C */	lfs f0, 0xc(r30)
/* 8003253C 0002E19C  FC 00 00 1E */	fctiwz f0, f0
/* 80032540 0002E1A0  D8 01 00 18 */	stfd f0, 0x18(r1)
/* 80032544 0002E1A4  80 61 00 1C */	lwz r3, 0x1c(r1)
/* 80032548 0002E1A8  48 00 00 0C */	b lbl_80032554
lbl_8003254C:
/* 8003254C 0002E1AC  38 7E 00 08 */	addi r3, r30, 8
/* 80032550 0002E1B0  48 1F B7 E5 */	bl func_8022DD34
lbl_80032554:
/* 80032554 0002E1B4  7C 64 1B 78 */	mr r4, r3
lbl_80032558:
/* 80032558 0002E1B8  7F E3 FB 78 */	mr r3, r31
/* 8003255C 0002E1BC  48 01 D0 D1 */	bl func_8004F62C
/* 80032560 0002E1C0  48 00 06 24 */	b lbl_80032B84
/* 80032564 0002E1C4  A8 1E 00 08 */	lha r0, 8(r30)
/* 80032568 0002E1C8  2C 00 00 21 */	cmpwi r0, 0x21
/* 8003256C 0002E1CC  40 82 06 18 */	bne lbl_80032B84
/* 80032570 0002E1D0  80 9E 00 0C */	lwz r4, 0xc(r30)
/* 80032574 0002E1D4  2C 04 00 00 */	cmpwi r4, 0
/* 80032578 0002E1D8  41 82 06 0C */	beq lbl_80032B84
/* 8003257C 0002E1DC  48 01 D5 01 */	bl func_8004FA7C
/* 80032580 0002E1E0  48 00 06 04 */	b lbl_80032B84
/* 80032584 0002E1E4  A8 1E 00 08 */	lha r0, 8(r30)
/* 80032588 0002E1E8  2C 00 00 21 */	cmpwi r0, 0x21
/* 8003258C 0002E1EC  40 82 05 F8 */	bne lbl_80032B84
/* 80032590 0002E1F0  80 9E 00 0C */	lwz r4, 0xc(r30)
/* 80032594 0002E1F4  2C 04 00 00 */	cmpwi r4, 0
/* 80032598 0002E1F8  41 82 05 EC */	beq lbl_80032B84
/* 8003259C 0002E1FC  48 01 D6 15 */	bl func_8004FBB0
/* 800325A0 0002E200  48 00 05 E4 */	b lbl_80032B84
/* 800325A4 0002E204  48 01 D5 6D */	bl func_8004FB10
/* 800325A8 0002E208  48 00 05 DC */	b lbl_80032B84
/* 800325AC 0002E20C  A8 1E 00 08 */	lha r0, 8(r30)
/* 800325B0 0002E210  2C 00 00 01 */	cmpwi r0, 1
/* 800325B4 0002E214  40 82 00 0C */	bne lbl_800325C0
/* 800325B8 0002E218  80 9E 00 0C */	lwz r4, 0xc(r30)
/* 800325BC 0002E21C  48 00 00 2C */	b lbl_800325E8
lbl_800325C0:
/* 800325C0 0002E220  2C 00 00 02 */	cmpwi r0, 2
/* 800325C4 0002E224  40 82 00 18 */	bne lbl_800325DC
/* 800325C8 0002E228  C0 1E 00 0C */	lfs f0, 0xc(r30)
/* 800325CC 0002E22C  FC 00 00 1E */	fctiwz f0, f0
/* 800325D0 0002E230  D8 01 00 18 */	stfd f0, 0x18(r1)
/* 800325D4 0002E234  80 61 00 1C */	lwz r3, 0x1c(r1)
/* 800325D8 0002E238  48 00 00 0C */	b lbl_800325E4
lbl_800325DC:
/* 800325DC 0002E23C  38 7E 00 08 */	addi r3, r30, 8
/* 800325E0 0002E240  48 1F B7 55 */	bl func_8022DD34
lbl_800325E4:
/* 800325E4 0002E244  7C 64 1B 78 */	mr r4, r3
lbl_800325E8:
/* 800325E8 0002E248  7C 04 00 D0 */	neg r0, r4
/* 800325EC 0002E24C  7F E3 FB 78 */	mr r3, r31
/* 800325F0 0002E250  7C 00 23 78 */	or r0, r0, r4
/* 800325F4 0002E254  54 04 0F FE */	srwi r4, r0, 0x1f
/* 800325F8 0002E258  48 01 D4 41 */	bl func_8004FA38
/* 800325FC 0002E25C  48 00 05 88 */	b lbl_80032B84
/* 80032600 0002E260  A8 1E 00 08 */	lha r0, 8(r30)
/* 80032604 0002E264  2C 00 00 04 */	cmpwi r0, 4
/* 80032608 0002E268  40 82 00 0C */	bne lbl_80032614
/* 8003260C 0002E26C  80 7E 00 0C */	lwz r3, 0xc(r30)
/* 80032610 0002E270  48 00 00 0C */	b lbl_8003261C
lbl_80032614:
/* 80032614 0002E274  38 7E 00 08 */	addi r3, r30, 8
/* 80032618 0002E278  4B FF 5C C9 */	bl func_800282E0
lbl_8003261C:
/* 8003261C 0002E27C  7C 64 1B 78 */	mr r4, r3
/* 80032620 0002E280  7F E3 FB 78 */	mr r3, r31
/* 80032624 0002E284  48 01 D6 BD */	bl func_8004FCE0
/* 80032628 0002E288  48 00 05 5C */	b lbl_80032B84
/* 8003262C 0002E28C  A8 1E 00 08 */	lha r0, 8(r30)
/* 80032630 0002E290  2C 00 00 04 */	cmpwi r0, 4
/* 80032634 0002E294  40 82 00 0C */	bne lbl_80032640
/* 80032638 0002E298  80 7E 00 0C */	lwz r3, 0xc(r30)
/* 8003263C 0002E29C  48 00 00 0C */	b lbl_80032648
lbl_80032640:
/* 80032640 0002E2A0  38 7E 00 08 */	addi r3, r30, 8
/* 80032644 0002E2A4  4B FF 5C 9D */	bl func_800282E0
lbl_80032648:
/* 80032648 0002E2A8  A8 1E 00 10 */	lha r0, 0x10(r30)
/* 8003264C 0002E2AC  7C 7D 1B 78 */	mr r29, r3
/* 80032650 0002E2B0  2C 00 00 01 */	cmpwi r0, 1
/* 80032654 0002E2B4  40 82 00 28 */	bne lbl_8003267C
/* 80032658 0002E2B8  80 7E 00 14 */	lwz r3, 0x14(r30)
/* 8003265C 0002E2BC  3C 00 43 30 */	lis r0, 0x4330
/* 80032660 0002E2C0  90 01 00 18 */	stw r0, 0x18(r1)
/* 80032664 0002E2C4  6C 60 80 00 */	xoris r0, r3, 0x8000
/* 80032668 0002E2C8  C8 22 81 C0 */	lfd f1, lbl_806407C0-_SDA2_BASE_(r2)
/* 8003266C 0002E2CC  90 01 00 1C */	stw r0, 0x1c(r1)
/* 80032670 0002E2D0  C8 01 00 18 */	lfd f0, 0x18(r1)
/* 80032674 0002E2D4  EF E0 08 28 */	fsubs f31, f0, f1
/* 80032678 0002E2D8  48 00 00 20 */	b lbl_80032698
lbl_8003267C:
/* 8003267C 0002E2DC  2C 00 00 02 */	cmpwi r0, 2
/* 80032680 0002E2E0  40 82 00 0C */	bne lbl_8003268C
/* 80032684 0002E2E4  C0 3E 00 14 */	lfs f1, 0x14(r30)
/* 80032688 0002E2E8  48 00 00 0C */	b lbl_80032694
lbl_8003268C:
/* 8003268C 0002E2EC  38 7E 00 10 */	addi r3, r30, 0x10
/* 80032690 0002E2F0  48 1F B6 E9 */	bl func_8022DD78
lbl_80032694:
/* 80032694 0002E2F4  FF E0 08 90 */	fmr f31, f1
lbl_80032698:
/* 80032698 0002E2F8  A8 1E 00 18 */	lha r0, 0x18(r30)
/* 8003269C 0002E2FC  2C 00 00 01 */	cmpwi r0, 1
/* 800326A0 0002E300  40 82 00 0C */	bne lbl_800326AC
/* 800326A4 0002E304  80 BE 00 1C */	lwz r5, 0x1c(r30)
/* 800326A8 0002E308  48 00 00 2C */	b lbl_800326D4
lbl_800326AC:
/* 800326AC 0002E30C  2C 00 00 02 */	cmpwi r0, 2
/* 800326B0 0002E310  40 82 00 18 */	bne lbl_800326C8
/* 800326B4 0002E314  C0 1E 00 1C */	lfs f0, 0x1c(r30)
/* 800326B8 0002E318  FC 00 00 1E */	fctiwz f0, f0
/* 800326BC 0002E31C  D8 01 00 18 */	stfd f0, 0x18(r1)
/* 800326C0 0002E320  80 61 00 1C */	lwz r3, 0x1c(r1)
/* 800326C4 0002E324  48 00 00 0C */	b lbl_800326D0
lbl_800326C8:
/* 800326C8 0002E328  38 7E 00 18 */	addi r3, r30, 0x18
/* 800326CC 0002E32C  48 1F B6 69 */	bl func_8022DD34
lbl_800326D0:
/* 800326D0 0002E330  7C 65 1B 78 */	mr r5, r3
lbl_800326D4:
/* 800326D4 0002E334  FC 20 F8 90 */	fmr f1, f31
/* 800326D8 0002E338  7F E3 FB 78 */	mr r3, r31
/* 800326DC 0002E33C  7F A4 EB 78 */	mr r4, r29
/* 800326E0 0002E340  48 01 D6 7D */	bl func_8004FD5C
/* 800326E4 0002E344  48 00 04 A0 */	b lbl_80032B84
/* 800326E8 0002E348  A8 1E 00 08 */	lha r0, 8(r30)
/* 800326EC 0002E34C  2C 00 00 04 */	cmpwi r0, 4
/* 800326F0 0002E350  40 82 00 0C */	bne lbl_800326FC
/* 800326F4 0002E354  80 7E 00 0C */	lwz r3, 0xc(r30)
/* 800326F8 0002E358  48 00 00 0C */	b lbl_80032704
lbl_800326FC:
/* 800326FC 0002E35C  38 7E 00 08 */	addi r3, r30, 8
/* 80032700 0002E360  4B FF 5B E1 */	bl func_800282E0
lbl_80032704:
/* 80032704 0002E364  7C 64 1B 78 */	mr r4, r3
/* 80032708 0002E368  7F E3 FB 78 */	mr r3, r31
/* 8003270C 0002E36C  48 01 D6 ED */	bl func_8004FDF8
/* 80032710 0002E370  48 00 04 74 */	b lbl_80032B84
/* 80032714 0002E374  A8 1E 00 08 */	lha r0, 8(r30)
/* 80032718 0002E378  2C 00 00 04 */	cmpwi r0, 4
/* 8003271C 0002E37C  40 82 00 0C */	bne lbl_80032728
/* 80032720 0002E380  80 7E 00 0C */	lwz r3, 0xc(r30)
/* 80032724 0002E384  48 00 00 0C */	b lbl_80032730
lbl_80032728:
/* 80032728 0002E388  38 7E 00 08 */	addi r3, r30, 8
/* 8003272C 0002E38C  4B FF 5B B5 */	bl func_800282E0
lbl_80032730:
/* 80032730 0002E390  A8 1E 00 10 */	lha r0, 0x10(r30)
/* 80032734 0002E394  7C 7D 1B 78 */	mr r29, r3
/* 80032738 0002E398  2C 00 00 01 */	cmpwi r0, 1
/* 8003273C 0002E39C  40 82 00 28 */	bne lbl_80032764
/* 80032740 0002E3A0  80 7E 00 14 */	lwz r3, 0x14(r30)
/* 80032744 0002E3A4  3C 00 43 30 */	lis r0, 0x4330
/* 80032748 0002E3A8  90 01 00 18 */	stw r0, 0x18(r1)
/* 8003274C 0002E3AC  6C 60 80 00 */	xoris r0, r3, 0x8000
/* 80032750 0002E3B0  C8 22 81 C0 */	lfd f1, lbl_806407C0-_SDA2_BASE_(r2)
/* 80032754 0002E3B4  90 01 00 1C */	stw r0, 0x1c(r1)
/* 80032758 0002E3B8  C8 01 00 18 */	lfd f0, 0x18(r1)
/* 8003275C 0002E3BC  EF E0 08 28 */	fsubs f31, f0, f1
/* 80032760 0002E3C0  48 00 00 20 */	b lbl_80032780
lbl_80032764:
/* 80032764 0002E3C4  2C 00 00 02 */	cmpwi r0, 2
/* 80032768 0002E3C8  40 82 00 0C */	bne lbl_80032774
/* 8003276C 0002E3CC  C0 3E 00 14 */	lfs f1, 0x14(r30)
/* 80032770 0002E3D0  48 00 00 0C */	b lbl_8003277C
lbl_80032774:
/* 80032774 0002E3D4  38 7E 00 10 */	addi r3, r30, 0x10
/* 80032778 0002E3D8  48 1F B6 01 */	bl func_8022DD78
lbl_8003277C:
/* 8003277C 0002E3DC  FF E0 08 90 */	fmr f31, f1
lbl_80032780:
/* 80032780 0002E3E0  A8 1E 00 18 */	lha r0, 0x18(r30)
/* 80032784 0002E3E4  2C 00 00 01 */	cmpwi r0, 1
/* 80032788 0002E3E8  40 82 00 0C */	bne lbl_80032794
/* 8003278C 0002E3EC  80 BE 00 1C */	lwz r5, 0x1c(r30)
/* 80032790 0002E3F0  48 00 00 2C */	b lbl_800327BC
lbl_80032794:
/* 80032794 0002E3F4  2C 00 00 02 */	cmpwi r0, 2
/* 80032798 0002E3F8  40 82 00 18 */	bne lbl_800327B0
/* 8003279C 0002E3FC  C0 1E 00 1C */	lfs f0, 0x1c(r30)
/* 800327A0 0002E400  FC 00 00 1E */	fctiwz f0, f0
/* 800327A4 0002E404  D8 01 00 18 */	stfd f0, 0x18(r1)
/* 800327A8 0002E408  80 61 00 1C */	lwz r3, 0x1c(r1)
/* 800327AC 0002E40C  48 00 00 0C */	b lbl_800327B8
lbl_800327B0:
/* 800327B0 0002E410  38 7E 00 18 */	addi r3, r30, 0x18
/* 800327B4 0002E414  48 1F B5 81 */	bl func_8022DD34
lbl_800327B8:
/* 800327B8 0002E418  7C 65 1B 78 */	mr r5, r3
lbl_800327BC:
/* 800327BC 0002E41C  FC 20 F8 90 */	fmr f1, f31
/* 800327C0 0002E420  7F E3 FB 78 */	mr r3, r31
/* 800327C4 0002E424  7F A4 EB 78 */	mr r4, r29
/* 800327C8 0002E428  48 01 D6 91 */	bl func_8004FE58
/* 800327CC 0002E42C  48 00 03 B8 */	b lbl_80032B84
/* 800327D0 0002E430  A8 1E 00 08 */	lha r0, 8(r30)
/* 800327D4 0002E434  2C 00 00 21 */	cmpwi r0, 0x21
/* 800327D8 0002E438  40 82 03 AC */	bne lbl_80032B84
/* 800327DC 0002E43C  83 7E 00 0C */	lwz r27, 0xc(r30)
/* 800327E0 0002E440  2C 1B 00 00 */	cmpwi r27, 0
/* 800327E4 0002E444  41 82 03 A0 */	beq lbl_80032B84
/* 800327E8 0002E448  A8 1E 00 10 */	lha r0, 0x10(r30)
/* 800327EC 0002E44C  2C 00 00 01 */	cmpwi r0, 1
/* 800327F0 0002E450  40 82 00 0C */	bne lbl_800327FC
/* 800327F4 0002E454  83 BE 00 14 */	lwz r29, 0x14(r30)
/* 800327F8 0002E458  48 00 00 2C */	b lbl_80032824
lbl_800327FC:
/* 800327FC 0002E45C  2C 00 00 02 */	cmpwi r0, 2
/* 80032800 0002E460  40 82 00 18 */	bne lbl_80032818
/* 80032804 0002E464  C0 1E 00 14 */	lfs f0, 0x14(r30)
/* 80032808 0002E468  FC 00 00 1E */	fctiwz f0, f0
/* 8003280C 0002E46C  D8 01 00 18 */	stfd f0, 0x18(r1)
/* 80032810 0002E470  80 61 00 1C */	lwz r3, 0x1c(r1)
/* 80032814 0002E474  48 00 00 0C */	b lbl_80032820
lbl_80032818:
/* 80032818 0002E478  38 7E 00 10 */	addi r3, r30, 0x10
/* 8003281C 0002E47C  48 1F B5 19 */	bl func_8022DD34
lbl_80032820:
/* 80032820 0002E480  7C 7D 1B 78 */	mr r29, r3
lbl_80032824:
/* 80032824 0002E484  A8 1E 00 18 */	lha r0, 0x18(r30)
/* 80032828 0002E488  2C 00 00 01 */	cmpwi r0, 1
/* 8003282C 0002E48C  40 82 00 0C */	bne lbl_80032838
/* 80032830 0002E490  83 DE 00 1C */	lwz r30, 0x1c(r30)
/* 80032834 0002E494  48 00 00 2C */	b lbl_80032860
lbl_80032838:
/* 80032838 0002E498  2C 00 00 02 */	cmpwi r0, 2
/* 8003283C 0002E49C  40 82 00 18 */	bne lbl_80032854
/* 80032840 0002E4A0  C0 1E 00 1C */	lfs f0, 0x1c(r30)
/* 80032844 0002E4A4  FC 00 00 1E */	fctiwz f0, f0
/* 80032848 0002E4A8  D8 01 00 18 */	stfd f0, 0x18(r1)
/* 8003284C 0002E4AC  80 61 00 1C */	lwz r3, 0x1c(r1)
/* 80032850 0002E4B0  48 00 00 0C */	b lbl_8003285C
lbl_80032854:
/* 80032854 0002E4B4  38 7E 00 18 */	addi r3, r30, 0x18
/* 80032858 0002E4B8  48 1F B4 DD */	bl func_8022DD34
lbl_8003285C:
/* 8003285C 0002E4BC  7C 7E 1B 78 */	mr r30, r3
lbl_80032860:
/* 80032860 0002E4C0  7F 63 DB 78 */	mr r3, r27
/* 80032864 0002E4C4  7F A4 EB 78 */	mr r4, r29
/* 80032868 0002E4C8  48 00 70 85 */	bl func_800398EC
/* 8003286C 0002E4CC  7C 64 1B 78 */	mr r4, r3
/* 80032870 0002E4D0  7F E3 FB 78 */	mr r3, r31
/* 80032874 0002E4D4  7F C5 F3 78 */	mr r5, r30
/* 80032878 0002E4D8  48 01 D3 9D */	bl func_8004FC14
/* 8003287C 0002E4DC  48 00 03 08 */	b lbl_80032B84
/* 80032880 0002E4E0  A8 1E 00 08 */	lha r0, 8(r30)
/* 80032884 0002E4E4  2C 00 00 01 */	cmpwi r0, 1
/* 80032888 0002E4E8  40 82 00 0C */	bne lbl_80032894
/* 8003288C 0002E4EC  83 BE 00 0C */	lwz r29, 0xc(r30)
/* 80032890 0002E4F0  48 00 00 2C */	b lbl_800328BC
lbl_80032894:
/* 80032894 0002E4F4  2C 00 00 02 */	cmpwi r0, 2
/* 80032898 0002E4F8  40 82 00 18 */	bne lbl_800328B0
/* 8003289C 0002E4FC  C0 1E 00 0C */	lfs f0, 0xc(r30)
/* 800328A0 0002E500  FC 00 00 1E */	fctiwz f0, f0
/* 800328A4 0002E504  D8 01 00 18 */	stfd f0, 0x18(r1)
/* 800328A8 0002E508  80 61 00 1C */	lwz r3, 0x1c(r1)
/* 800328AC 0002E50C  48 00 00 0C */	b lbl_800328B8
lbl_800328B0:
/* 800328B0 0002E510  38 7E 00 08 */	addi r3, r30, 8
/* 800328B4 0002E514  48 1F B4 81 */	bl func_8022DD34
lbl_800328B8:
/* 800328B8 0002E518  7C 7D 1B 78 */	mr r29, r3
lbl_800328BC:
/* 800328BC 0002E51C  A8 1E 00 10 */	lha r0, 0x10(r30)
/* 800328C0 0002E520  2C 00 00 01 */	cmpwi r0, 1
/* 800328C4 0002E524  40 82 00 0C */	bne lbl_800328D0
/* 800328C8 0002E528  83 9E 00 14 */	lwz r28, 0x14(r30)
/* 800328CC 0002E52C  48 00 00 2C */	b lbl_800328F8
lbl_800328D0:
/* 800328D0 0002E530  2C 00 00 02 */	cmpwi r0, 2
/* 800328D4 0002E534  40 82 00 18 */	bne lbl_800328EC
/* 800328D8 0002E538  C0 1E 00 14 */	lfs f0, 0x14(r30)
/* 800328DC 0002E53C  FC 00 00 1E */	fctiwz f0, f0
/* 800328E0 0002E540  D8 01 00 18 */	stfd f0, 0x18(r1)
/* 800328E4 0002E544  80 61 00 1C */	lwz r3, 0x1c(r1)
/* 800328E8 0002E548  48 00 00 0C */	b lbl_800328F4
lbl_800328EC:
/* 800328EC 0002E54C  38 7E 00 10 */	addi r3, r30, 0x10
/* 800328F0 0002E550  48 1F B4 45 */	bl func_8022DD34
lbl_800328F4:
/* 800328F4 0002E554  7C 7C 1B 78 */	mr r28, r3
lbl_800328F8:
/* 800328F8 0002E558  A8 1E 00 18 */	lha r0, 0x18(r30)
/* 800328FC 0002E55C  2C 00 00 01 */	cmpwi r0, 1
/* 80032900 0002E560  40 82 00 0C */	bne lbl_8003290C
/* 80032904 0002E564  83 7E 00 1C */	lwz r27, 0x1c(r30)
/* 80032908 0002E568  48 00 00 2C */	b lbl_80032934
lbl_8003290C:
/* 8003290C 0002E56C  2C 00 00 02 */	cmpwi r0, 2
/* 80032910 0002E570  40 82 00 18 */	bne lbl_80032928
/* 80032914 0002E574  C0 1E 00 1C */	lfs f0, 0x1c(r30)
/* 80032918 0002E578  FC 00 00 1E */	fctiwz f0, f0
/* 8003291C 0002E57C  D8 01 00 18 */	stfd f0, 0x18(r1)
/* 80032920 0002E580  80 61 00 1C */	lwz r3, 0x1c(r1)
/* 80032924 0002E584  48 00 00 0C */	b lbl_80032930
lbl_80032928:
/* 80032928 0002E588  38 7E 00 18 */	addi r3, r30, 0x18
/* 8003292C 0002E58C  48 1F B4 09 */	bl func_8022DD34
lbl_80032930:
/* 80032930 0002E590  7C 7B 1B 78 */	mr r27, r3
lbl_80032934:
/* 80032934 0002E594  A8 1E 00 20 */	lha r0, 0x20(r30)
/* 80032938 0002E598  2C 00 00 01 */	cmpwi r0, 1
/* 8003293C 0002E59C  40 82 00 0C */	bne lbl_80032948
/* 80032940 0002E5A0  80 1E 00 24 */	lwz r0, 0x24(r30)
/* 80032944 0002E5A4  48 00 00 2C */	b lbl_80032970
lbl_80032948:
/* 80032948 0002E5A8  2C 00 00 02 */	cmpwi r0, 2
/* 8003294C 0002E5AC  40 82 00 18 */	bne lbl_80032964
/* 80032950 0002E5B0  C0 1E 00 24 */	lfs f0, 0x24(r30)
/* 80032954 0002E5B4  FC 00 00 1E */	fctiwz f0, f0
/* 80032958 0002E5B8  D8 01 00 18 */	stfd f0, 0x18(r1)
/* 8003295C 0002E5BC  80 61 00 1C */	lwz r3, 0x1c(r1)
/* 80032960 0002E5C0  48 00 00 0C */	b lbl_8003296C
lbl_80032964:
/* 80032964 0002E5C4  38 7E 00 20 */	addi r3, r30, 0x20
/* 80032968 0002E5C8  48 1F B3 CD */	bl func_8022DD34
lbl_8003296C:
/* 8003296C 0002E5CC  7C 60 1B 78 */	mr r0, r3
lbl_80032970:
/* 80032970 0002E5D0  9B A1 00 08 */	stb r29, 8(r1)
/* 80032974 0002E5D4  7F E3 FB 78 */	mr r3, r31
/* 80032978 0002E5D8  38 81 00 08 */	addi r4, r1, 8
/* 8003297C 0002E5DC  9B 81 00 09 */	stb r28, 9(r1)
/* 80032980 0002E5E0  9B 61 00 0A */	stb r27, 0xa(r1)
/* 80032984 0002E5E4  98 01 00 0B */	stb r0, 0xb(r1)
/* 80032988 0002E5E8  48 01 D5 6D */	bl func_8004FEF4
/* 8003298C 0002E5EC  48 00 01 F8 */	b lbl_80032B84
/* 80032990 0002E5F0  A8 1E 00 08 */	lha r0, 8(r30)
/* 80032994 0002E5F4  2C 00 00 01 */	cmpwi r0, 1
/* 80032998 0002E5F8  40 82 00 0C */	bne lbl_800329A4
/* 8003299C 0002E5FC  83 7E 00 0C */	lwz r27, 0xc(r30)
/* 800329A0 0002E600  48 00 00 2C */	b lbl_800329CC
lbl_800329A4:
/* 800329A4 0002E604  2C 00 00 02 */	cmpwi r0, 2
/* 800329A8 0002E608  40 82 00 18 */	bne lbl_800329C0
/* 800329AC 0002E60C  C0 1E 00 0C */	lfs f0, 0xc(r30)
/* 800329B0 0002E610  FC 00 00 1E */	fctiwz f0, f0
/* 800329B4 0002E614  D8 01 00 18 */	stfd f0, 0x18(r1)
/* 800329B8 0002E618  80 61 00 1C */	lwz r3, 0x1c(r1)
/* 800329BC 0002E61C  48 00 00 0C */	b lbl_800329C8
lbl_800329C0:
/* 800329C0 0002E620  38 7E 00 08 */	addi r3, r30, 8
/* 800329C4 0002E624  48 1F B3 71 */	bl func_8022DD34
lbl_800329C8:
/* 800329C8 0002E628  7C 7B 1B 78 */	mr r27, r3
lbl_800329CC:
/* 800329CC 0002E62C  A8 1E 00 10 */	lha r0, 0x10(r30)
/* 800329D0 0002E630  2C 00 00 01 */	cmpwi r0, 1
/* 800329D4 0002E634  40 82 00 0C */	bne lbl_800329E0
/* 800329D8 0002E638  83 9E 00 14 */	lwz r28, 0x14(r30)
/* 800329DC 0002E63C  48 00 00 2C */	b lbl_80032A08
lbl_800329E0:
/* 800329E0 0002E640  2C 00 00 02 */	cmpwi r0, 2
/* 800329E4 0002E644  40 82 00 18 */	bne lbl_800329FC
/* 800329E8 0002E648  C0 1E 00 14 */	lfs f0, 0x14(r30)
/* 800329EC 0002E64C  FC 00 00 1E */	fctiwz f0, f0
/* 800329F0 0002E650  D8 01 00 18 */	stfd f0, 0x18(r1)
/* 800329F4 0002E654  80 61 00 1C */	lwz r3, 0x1c(r1)
/* 800329F8 0002E658  48 00 00 0C */	b lbl_80032A04
lbl_800329FC:
/* 800329FC 0002E65C  38 7E 00 10 */	addi r3, r30, 0x10
/* 80032A00 0002E660  48 1F B3 35 */	bl func_8022DD34
lbl_80032A04:
/* 80032A04 0002E664  7C 7C 1B 78 */	mr r28, r3
lbl_80032A08:
/* 80032A08 0002E668  A8 1E 00 18 */	lha r0, 0x18(r30)
/* 80032A0C 0002E66C  2C 00 00 01 */	cmpwi r0, 1
/* 80032A10 0002E670  40 82 00 0C */	bne lbl_80032A1C
/* 80032A14 0002E674  83 BE 00 1C */	lwz r29, 0x1c(r30)
/* 80032A18 0002E678  48 00 00 2C */	b lbl_80032A44
lbl_80032A1C:
/* 80032A1C 0002E67C  2C 00 00 02 */	cmpwi r0, 2
/* 80032A20 0002E680  40 82 00 18 */	bne lbl_80032A38
/* 80032A24 0002E684  C0 1E 00 1C */	lfs f0, 0x1c(r30)
/* 80032A28 0002E688  FC 00 00 1E */	fctiwz f0, f0
/* 80032A2C 0002E68C  D8 01 00 18 */	stfd f0, 0x18(r1)
/* 80032A30 0002E690  80 61 00 1C */	lwz r3, 0x1c(r1)
/* 80032A34 0002E694  48 00 00 0C */	b lbl_80032A40
lbl_80032A38:
/* 80032A38 0002E698  38 7E 00 18 */	addi r3, r30, 0x18
/* 80032A3C 0002E69C  48 1F B2 F9 */	bl func_8022DD34
lbl_80032A40:
/* 80032A40 0002E6A0  7C 7D 1B 78 */	mr r29, r3
lbl_80032A44:
/* 80032A44 0002E6A4  A8 1E 00 20 */	lha r0, 0x20(r30)
/* 80032A48 0002E6A8  2C 00 00 01 */	cmpwi r0, 1
/* 80032A4C 0002E6AC  40 82 00 0C */	bne lbl_80032A58
/* 80032A50 0002E6B0  80 7E 00 24 */	lwz r3, 0x24(r30)
/* 80032A54 0002E6B4  48 00 00 28 */	b lbl_80032A7C
lbl_80032A58:
/* 80032A58 0002E6B8  2C 00 00 02 */	cmpwi r0, 2
/* 80032A5C 0002E6BC  40 82 00 18 */	bne lbl_80032A74
/* 80032A60 0002E6C0  C0 1E 00 24 */	lfs f0, 0x24(r30)
/* 80032A64 0002E6C4  FC 00 00 1E */	fctiwz f0, f0
/* 80032A68 0002E6C8  D8 01 00 18 */	stfd f0, 0x18(r1)
/* 80032A6C 0002E6CC  80 61 00 1C */	lwz r3, 0x1c(r1)
/* 80032A70 0002E6D0  48 00 00 0C */	b lbl_80032A7C
lbl_80032A74:
/* 80032A74 0002E6D4  38 7E 00 20 */	addi r3, r30, 0x20
/* 80032A78 0002E6D8  48 1F B2 BD */	bl func_8022DD34
lbl_80032A7C:
/* 80032A7C 0002E6DC  9B 61 00 08 */	stb r27, 8(r1)
/* 80032A80 0002E6E0  9B 81 00 09 */	stb r28, 9(r1)
/* 80032A84 0002E6E4  9B A1 00 0A */	stb r29, 0xa(r1)
/* 80032A88 0002E6E8  98 61 00 0B */	stb r3, 0xb(r1)
/* 80032A8C 0002E6EC  A8 1E 00 28 */	lha r0, 0x28(r30)
/* 80032A90 0002E6F0  2C 00 00 01 */	cmpwi r0, 1
/* 80032A94 0002E6F4  40 82 00 28 */	bne lbl_80032ABC
/* 80032A98 0002E6F8  80 7E 00 2C */	lwz r3, 0x2c(r30)
/* 80032A9C 0002E6FC  3C 00 43 30 */	lis r0, 0x4330
/* 80032AA0 0002E700  90 01 00 18 */	stw r0, 0x18(r1)
/* 80032AA4 0002E704  6C 60 80 00 */	xoris r0, r3, 0x8000
/* 80032AA8 0002E708  C8 22 81 C0 */	lfd f1, lbl_806407C0-_SDA2_BASE_(r2)
/* 80032AAC 0002E70C  90 01 00 1C */	stw r0, 0x1c(r1)
/* 80032AB0 0002E710  C8 01 00 18 */	lfd f0, 0x18(r1)
/* 80032AB4 0002E714  EF E0 08 28 */	fsubs f31, f0, f1
/* 80032AB8 0002E718  48 00 00 20 */	b lbl_80032AD8
lbl_80032ABC:
/* 80032ABC 0002E71C  2C 00 00 02 */	cmpwi r0, 2
/* 80032AC0 0002E720  40 82 00 0C */	bne lbl_80032ACC
/* 80032AC4 0002E724  C0 3E 00 2C */	lfs f1, 0x2c(r30)
/* 80032AC8 0002E728  48 00 00 0C */	b lbl_80032AD4
lbl_80032ACC:
/* 80032ACC 0002E72C  38 7E 00 28 */	addi r3, r30, 0x28
/* 80032AD0 0002E730  48 1F B2 A9 */	bl func_8022DD78
lbl_80032AD4:
/* 80032AD4 0002E734  FF E0 08 90 */	fmr f31, f1
lbl_80032AD8:
/* 80032AD8 0002E738  A8 1E 00 30 */	lha r0, 0x30(r30)
/* 80032ADC 0002E73C  2C 00 00 01 */	cmpwi r0, 1
/* 80032AE0 0002E740  40 82 00 0C */	bne lbl_80032AEC
/* 80032AE4 0002E744  80 BE 00 34 */	lwz r5, 0x34(r30)
/* 80032AE8 0002E748  48 00 00 2C */	b lbl_80032B14
lbl_80032AEC:
/* 80032AEC 0002E74C  2C 00 00 02 */	cmpwi r0, 2
/* 80032AF0 0002E750  40 82 00 18 */	bne lbl_80032B08
/* 80032AF4 0002E754  C0 1E 00 34 */	lfs f0, 0x34(r30)
/* 80032AF8 0002E758  FC 00 00 1E */	fctiwz f0, f0
/* 80032AFC 0002E75C  D8 01 00 18 */	stfd f0, 0x18(r1)
/* 80032B00 0002E760  80 61 00 1C */	lwz r3, 0x1c(r1)
/* 80032B04 0002E764  48 00 00 0C */	b lbl_80032B10
lbl_80032B08:
/* 80032B08 0002E768  38 7E 00 30 */	addi r3, r30, 0x30
/* 80032B0C 0002E76C  48 1F B2 29 */	bl func_8022DD34
lbl_80032B10:
/* 80032B10 0002E770  7C 65 1B 78 */	mr r5, r3
lbl_80032B14:
/* 80032B14 0002E774  FC 20 F8 90 */	fmr f1, f31
/* 80032B18 0002E778  7F E3 FB 78 */	mr r3, r31
/* 80032B1C 0002E77C  38 81 00 08 */	addi r4, r1, 8
/* 80032B20 0002E780  48 01 D4 6D */	bl func_8004FF8C
/* 80032B24 0002E784  48 00 00 60 */	b lbl_80032B84
/* 80032B28 0002E788  A8 1E 00 08 */	lha r0, 8(r30)
/* 80032B2C 0002E78C  2C 00 00 04 */	cmpwi r0, 4
/* 80032B30 0002E790  40 82 00 0C */	bne lbl_80032B3C
/* 80032B34 0002E794  80 BE 00 0C */	lwz r5, 0xc(r30)
/* 80032B38 0002E798  48 00 00 10 */	b lbl_80032B48
lbl_80032B3C:
/* 80032B3C 0002E79C  38 7E 00 08 */	addi r3, r30, 8
/* 80032B40 0002E7A0  4B FF 57 A1 */	bl func_800282E0
/* 80032B44 0002E7A4  7C 65 1B 78 */	mr r5, r3
lbl_80032B48:
/* 80032B48 0002E7A8  C0 25 00 00 */	lfs f1, 0(r5)
/* 80032B4C 0002E7AC  7F E3 FB 78 */	mr r3, r31
/* 80032B50 0002E7B0  C0 02 81 B8 */	lfs f0, lbl_806407B8-_SDA2_BASE_(r2)
/* 80032B54 0002E7B4  38 81 00 0C */	addi r4, r1, 0xc
/* 80032B58 0002E7B8  D0 21 00 0C */	stfs f1, 0xc(r1)
/* 80032B5C 0002E7BC  EC 40 00 72 */	fmuls f2, f0, f1
/* 80032B60 0002E7C0  C0 25 00 04 */	lfs f1, 4(r5)
/* 80032B64 0002E7C4  D0 21 00 10 */	stfs f1, 0x10(r1)
/* 80032B68 0002E7C8  EC 20 00 72 */	fmuls f1, f0, f1
/* 80032B6C 0002E7CC  C0 65 00 08 */	lfs f3, 8(r5)
/* 80032B70 0002E7D0  EC 00 00 F2 */	fmuls f0, f0, f3
/* 80032B74 0002E7D4  D0 41 00 0C */	stfs f2, 0xc(r1)
/* 80032B78 0002E7D8  D0 21 00 10 */	stfs f1, 0x10(r1)
/* 80032B7C 0002E7DC  D0 01 00 14 */	stfs f0, 0x14(r1)
/* 80032B80 0002E7E0  48 01 D4 A1 */	bl func_80050020
lbl_80032B84:
/* 80032B84 0002E7E4  38 60 00 01 */	li r3, 1
lbl_80032B88:
/* 80032B88 0002E7E8  E3 E1 00 48 */	psq_l f31, 72(r1), 0, qr0
/* 80032B8C 0002E7EC  39 61 00 40 */	addi r11, r1, 0x40
/* 80032B90 0002E7F0  CB E1 00 40 */	lfd f31, 0x40(r1)
/* 80032B94 0002E7F4  48 19 45 E1 */	bl _restgpr_27
/* 80032B98 0002E7F8  80 01 00 54 */	lwz r0, 0x54(r1)
/* 80032B9C 0002E7FC  7C 08 03 A6 */	mtlr r0
/* 80032BA0 0002E800  38 21 00 50 */	addi r1, r1, 0x50
/* 80032BA4 0002E804  4E 80 00 20 */	blr

.global func_80032BA8
func_80032BA8:
/* 80032BA8 0002E808  38 A0 00 01 */	li r5, 1
/* 80032BAC 0002E80C  38 6D 97 78 */	addi r3, r13, lbl_8063EA38-_SDA_BASE_
/* 80032BB0 0002E810  38 80 00 04 */	li r4, 4
/* 80032BB4 0002E814  38 00 00 00 */	li r0, 0
/* 80032BB8 0002E818  98 AD 97 78 */	stb r5, lbl_8063EA38-_SDA_BASE_(r13)
/* 80032BBC 0002E81C  B0 83 00 02 */	sth r4, 2(r3)
/* 80032BC0 0002E820  98 03 00 04 */	stb r0, 4(r3)
/* 80032BC4 0002E824  4E 80 00 20 */	blr