summaryrefslogtreecommitdiff
path: root/asm/code_80031544.s
diff options
context:
space:
mode:
Diffstat (limited to 'asm/code_80031544.s')
-rw-r--r--asm/code_80031544.s928
1 files changed, 928 insertions, 0 deletions
diff --git a/asm/code_80031544.s b/asm/code_80031544.s
new file mode 100644
index 0000000..bd695eb
--- /dev/null
+++ b/asm/code_80031544.s
@@ -0,0 +1,928 @@
+.include "macros.inc"
+
+.section .text, "ax" # 0x80006980 - 0x803E1E60
+
+.global lbl_80031544
+lbl_80031544:
+/* 80031544 0002D1A4 94 21 FF 40 */ stwu r1, -0xc0(r1)
+/* 80031548 0002D1A8 7C 08 02 A6 */ mflr r0
+/* 8003154C 0002D1AC 90 01 00 C4 */ stw r0, 0xc4(r1)
+/* 80031550 0002D1B0 DB E1 00 B0 */ stfd f31, 0xb0(r1)
+/* 80031554 0002D1B4 F3 E1 00 B8 */ psq_st f31, 184(r1), 0, qr0
+/* 80031558 0002D1B8 39 61 00 B0 */ addi r11, r1, 0xb0
+/* 8003155C 0002D1BC 48 19 5B C9 */ bl _savegpr_26
+/* 80031560 0002D1C0 7C 7A 1B 78 */ mr r26, r3
+/* 80031564 0002D1C4 7C 9B 23 78 */ mr r27, r4
+/* 80031568 0002D1C8 7C BD 2B 78 */ mr r29, r5
+/* 8003156C 0002D1CC 7C DE 33 78 */ mr r30, r6
+/* 80031570 0002D1D0 3B E0 00 00 */ li r31, 0
+/* 80031574 0002D1D4 48 01 C2 99 */ bl func_8004D80C
+/* 80031578 0002D1D8 38 00 00 00 */ li r0, 0
+/* 8003157C 0002D1DC 2C 03 00 00 */ cmpwi r3, 0
+/* 80031580 0002D1E0 90 01 00 40 */ stw r0, 0x40(r1)
+/* 80031584 0002D1E4 7C 7C 1B 78 */ mr r28, r3
+/* 80031588 0002D1E8 90 01 00 44 */ stw r0, 0x44(r1)
+/* 8003158C 0002D1EC 90 01 00 48 */ stw r0, 0x48(r1)
+/* 80031590 0002D1F0 40 82 00 0C */ bne lbl_8003159C
+/* 80031594 0002D1F4 38 60 00 01 */ li r3, 1
+/* 80031598 0002D1F8 48 00 0C 0C */ b lbl_800321A4
+lbl_8003159C:
+/* 8003159C 0002D1FC 2C 1B 00 01 */ cmpwi r27, 1
+/* 800315A0 0002D200 41 82 00 20 */ beq lbl_800315C0
+/* 800315A4 0002D204 80 9D 00 04 */ lwz r4, 4(r29)
+/* 800315A8 0002D208 48 01 C8 81 */ bl func_8004DE28
+/* 800315AC 0002D20C 2C 03 00 00 */ cmpwi r3, 0
+/* 800315B0 0002D210 7C 7F 1B 78 */ mr r31, r3
+/* 800315B4 0002D214 40 82 00 0C */ bne lbl_800315C0
+/* 800315B8 0002D218 38 60 00 01 */ li r3, 1
+/* 800315BC 0002D21C 48 00 0B E8 */ b lbl_800321A4
+lbl_800315C0:
+/* 800315C0 0002D220 28 1B 00 28 */ cmplwi r27, 0x28
+/* 800315C4 0002D224 41 81 0B DC */ bgt lbl_800321A0
+/* 800315C8 0002D228 3C 60 80 41 */ lis r3, lbl_8040A0F0@ha
+/* 800315CC 0002D22C 57 60 10 3A */ slwi r0, r27, 2
+/* 800315D0 0002D230 38 63 A0 F0 */ addi r3, r3, lbl_8040A0F0@l
+/* 800315D4 0002D234 7C 63 00 2E */ lwzx r3, r3, r0
+/* 800315D8 0002D238 7C 69 03 A6 */ mtctr r3
+/* 800315DC 0002D23C 4E 80 04 20 */ bctr
+/* 800315E0 0002D240 38 60 00 2D */ li r3, 0x2d
+/* 800315E4 0002D244 38 00 00 01 */ li r0, 1
+/* 800315E8 0002D248 B0 7E 00 00 */ sth r3, 0(r30)
+/* 800315EC 0002D24C 7F 83 E3 78 */ mr r3, r28
+/* 800315F0 0002D250 B0 1E 00 02 */ sth r0, 2(r30)
+/* 800315F4 0002D254 48 01 C6 5D */ bl func_8004DC50
+/* 800315F8 0002D258 80 03 00 50 */ lwz r0, 0x50(r3)
+/* 800315FC 0002D25C 90 1E 00 04 */ stw r0, 4(r30)
+/* 80031600 0002D260 48 00 0B A0 */ b lbl_800321A0
+/* 80031604 0002D264 2C 1F 00 00 */ cmpwi r31, 0
+/* 80031608 0002D268 41 82 0B 98 */ beq lbl_800321A0
+/* 8003160C 0002D26C 7F 83 E3 78 */ mr r3, r28
+/* 80031610 0002D270 7F E4 FB 78 */ mr r4, r31
+/* 80031614 0002D274 48 01 C6 99 */ bl func_8004DCAC
+/* 80031618 0002D278 38 00 00 00 */ li r0, 0
+/* 8003161C 0002D27C B0 1D 00 02 */ sth r0, 2(r29)
+/* 80031620 0002D280 90 1D 00 04 */ stw r0, 4(r29)
+/* 80031624 0002D284 48 00 0B 7C */ b lbl_800321A0
+/* 80031628 0002D288 38 60 01 00 */ li r3, 0x100
+/* 8003162C 0002D28C 48 1A 97 39 */ bl func_801DAD64
+/* 80031630 0002D290 A8 1D 00 08 */ lha r0, 8(r29)
+/* 80031634 0002D294 7C 7C 1B 78 */ mr r28, r3
+/* 80031638 0002D298 2C 00 00 03 */ cmpwi r0, 3
+/* 8003163C 0002D29C 40 82 00 0C */ bne lbl_80031648
+/* 80031640 0002D2A0 80 7D 00 0C */ lwz r3, 0xc(r29)
+/* 80031644 0002D2A4 48 00 00 10 */ b lbl_80031654
+lbl_80031648:
+/* 80031648 0002D2A8 7F 84 E3 78 */ mr r4, r28
+/* 8003164C 0002D2AC 38 7D 00 08 */ addi r3, r29, 8
+/* 80031650 0002D2B0 4B FF 6D 61 */ bl func_800283B0
+lbl_80031654:
+/* 80031654 0002D2B4 7C 64 1B 78 */ mr r4, r3
+/* 80031658 0002D2B8 7F E3 FB 78 */ mr r3, r31
+/* 8003165C 0002D2BC 48 01 C9 E9 */ bl func_8004E044
+/* 80031660 0002D2C0 2C 03 00 00 */ cmpwi r3, 0
+/* 80031664 0002D2C4 41 82 00 14 */ beq lbl_80031678
+/* 80031668 0002D2C8 38 00 00 01 */ li r0, 1
+/* 8003166C 0002D2CC B0 1E 00 00 */ sth r0, 0(r30)
+/* 80031670 0002D2D0 90 1E 00 04 */ stw r0, 4(r30)
+/* 80031674 0002D2D4 48 00 00 14 */ b lbl_80031688
+lbl_80031678:
+/* 80031678 0002D2D8 38 60 00 01 */ li r3, 1
+/* 8003167C 0002D2DC 38 00 00 00 */ li r0, 0
+/* 80031680 0002D2E0 B0 7E 00 00 */ sth r3, 0(r30)
+/* 80031684 0002D2E4 90 1E 00 04 */ stw r0, 4(r30)
+lbl_80031688:
+/* 80031688 0002D2E8 7F 83 E3 78 */ mr r3, r28
+/* 8003168C 0002D2EC 48 1A 98 19 */ bl func_801DAEA4
+/* 80031690 0002D2F0 48 00 0B 10 */ b lbl_800321A0
+/* 80031694 0002D2F4 A8 9D 00 08 */ lha r4, 8(r29)
+/* 80031698 0002D2F8 38 60 00 0A */ li r3, 0xa
+/* 8003169C 0002D2FC 80 1F 00 50 */ lwz r0, 0x50(r31)
+/* 800316A0 0002D300 2C 04 00 01 */ cmpwi r4, 1
+/* 800316A4 0002D304 90 61 00 40 */ stw r3, 0x40(r1)
+/* 800316A8 0002D308 90 01 00 44 */ stw r0, 0x44(r1)
+/* 800316AC 0002D30C 40 82 00 0C */ bne lbl_800316B8
+/* 800316B0 0002D310 80 7D 00 0C */ lwz r3, 0xc(r29)
+/* 800316B4 0002D314 48 00 00 28 */ b lbl_800316DC
+lbl_800316B8:
+/* 800316B8 0002D318 2C 04 00 02 */ cmpwi r4, 2
+/* 800316BC 0002D31C 40 82 00 18 */ bne lbl_800316D4
+/* 800316C0 0002D320 C0 1D 00 0C */ lfs f0, 0xc(r29)
+/* 800316C4 0002D324 FC 00 00 1E */ fctiwz f0, f0
+/* 800316C8 0002D328 D8 01 00 90 */ stfd f0, 0x90(r1)
+/* 800316CC 0002D32C 80 61 00 94 */ lwz r3, 0x94(r1)
+/* 800316D0 0002D330 48 00 00 0C */ b lbl_800316DC
+lbl_800316D4:
+/* 800316D4 0002D334 38 7D 00 08 */ addi r3, r29, 8
+/* 800316D8 0002D338 48 1F C6 5D */ bl func_8022DD34
+lbl_800316DC:
+/* 800316DC 0002D33C A8 1D 00 10 */ lha r0, 0x10(r29)
+/* 800316E0 0002D340 90 61 00 48 */ stw r3, 0x48(r1)
+/* 800316E4 0002D344 2C 00 00 01 */ cmpwi r0, 1
+/* 800316E8 0002D348 40 82 00 0C */ bne lbl_800316F4
+/* 800316EC 0002D34C 80 7D 00 14 */ lwz r3, 0x14(r29)
+/* 800316F0 0002D350 48 00 00 28 */ b lbl_80031718
+lbl_800316F4:
+/* 800316F4 0002D354 2C 00 00 02 */ cmpwi r0, 2
+/* 800316F8 0002D358 40 82 00 18 */ bne lbl_80031710
+/* 800316FC 0002D35C C0 1D 00 14 */ lfs f0, 0x14(r29)
+/* 80031700 0002D360 FC 00 00 1E */ fctiwz f0, f0
+/* 80031704 0002D364 D8 01 00 90 */ stfd f0, 0x90(r1)
+/* 80031708 0002D368 80 61 00 94 */ lwz r3, 0x94(r1)
+/* 8003170C 0002D36C 48 00 00 0C */ b lbl_80031718
+lbl_80031710:
+/* 80031710 0002D370 38 7D 00 10 */ addi r3, r29, 0x10
+/* 80031714 0002D374 48 1F C6 21 */ bl func_8022DD34
+lbl_80031718:
+/* 80031718 0002D378 81 0D 97 00 */ lwz r8, lbl_8063E9C0-_SDA_BASE_(r13)
+/* 8003171C 0002D37C 90 61 00 4C */ stw r3, 0x4c(r1)
+/* 80031720 0002D380 80 E8 00 08 */ lwz r7, 8(r8)
+/* 80031724 0002D384 80 88 00 00 */ lwz r4, 0(r8)
+/* 80031728 0002D388 38 C7 00 01 */ addi r6, r7, 1
+/* 8003172C 0002D38C 80 08 00 04 */ lwz r0, 4(r8)
+/* 80031730 0002D390 6C 85 80 00 */ xoris r5, r4, 0x8000
+/* 80031734 0002D394 7C 84 30 50 */ subf r4, r4, r6
+/* 80031738 0002D398 7C 84 28 14 */ addc r4, r4, r5
+/* 8003173C 0002D39C 7C 84 21 10 */ subfe r4, r4, r4
+/* 80031740 0002D3A0 7C C6 20 78 */ andc r6, r6, r4
+/* 80031744 0002D3A4 7C 06 00 00 */ cmpw r6, r0
+/* 80031748 0002D3A8 41 82 00 50 */ beq lbl_80031798
+/* 8003174C 0002D3AC 80 A8 00 0C */ lwz r5, 0xc(r8)
+/* 80031750 0002D3B0 54 E0 28 34 */ slwi r0, r7, 5
+/* 80031754 0002D3B4 80 81 00 40 */ lwz r4, 0x40(r1)
+/* 80031758 0002D3B8 7C A5 02 14 */ add r5, r5, r0
+/* 8003175C 0002D3BC 80 01 00 44 */ lwz r0, 0x44(r1)
+/* 80031760 0002D3C0 90 85 00 00 */ stw r4, 0(r5)
+/* 80031764 0002D3C4 80 81 00 48 */ lwz r4, 0x48(r1)
+/* 80031768 0002D3C8 90 05 00 04 */ stw r0, 4(r5)
+/* 8003176C 0002D3CC 80 01 00 50 */ lwz r0, 0x50(r1)
+/* 80031770 0002D3D0 90 85 00 08 */ stw r4, 8(r5)
+/* 80031774 0002D3D4 80 81 00 54 */ lwz r4, 0x54(r1)
+/* 80031778 0002D3D8 90 65 00 0C */ stw r3, 0xc(r5)
+/* 8003177C 0002D3DC 80 61 00 58 */ lwz r3, 0x58(r1)
+/* 80031780 0002D3E0 90 05 00 10 */ stw r0, 0x10(r5)
+/* 80031784 0002D3E4 80 01 00 5C */ lwz r0, 0x5c(r1)
+/* 80031788 0002D3E8 90 85 00 14 */ stw r4, 0x14(r5)
+/* 8003178C 0002D3EC 90 65 00 18 */ stw r3, 0x18(r5)
+/* 80031790 0002D3F0 90 05 00 1C */ stw r0, 0x1c(r5)
+/* 80031794 0002D3F4 90 C8 00 08 */ stw r6, 8(r8)
+lbl_80031798:
+/* 80031798 0002D3F8 80 7F 00 34 */ lwz r3, 0x34(r31)
+/* 8003179C 0002D3FC 38 00 00 01 */ li r0, 1
+/* 800317A0 0002D400 60 63 00 20 */ ori r3, r3, 0x20
+/* 800317A4 0002D404 90 7F 00 34 */ stw r3, 0x34(r31)
+/* 800317A8 0002D408 B0 1E 00 00 */ sth r0, 0(r30)
+/* 800317AC 0002D40C 90 1E 00 04 */ stw r0, 4(r30)
+/* 800317B0 0002D410 48 00 09 F0 */ b lbl_800321A0
+/* 800317B4 0002D414 80 1F 00 34 */ lwz r0, 0x34(r31)
+/* 800317B8 0002D418 54 00 06 B5 */ rlwinm. r0, r0, 0, 0x1a, 0x1a
+/* 800317BC 0002D41C 41 82 00 14 */ beq lbl_800317D0
+/* 800317C0 0002D420 38 00 00 01 */ li r0, 1
+/* 800317C4 0002D424 B0 1E 00 00 */ sth r0, 0(r30)
+/* 800317C8 0002D428 90 1E 00 04 */ stw r0, 4(r30)
+/* 800317CC 0002D42C 48 00 09 D4 */ b lbl_800321A0
+lbl_800317D0:
+/* 800317D0 0002D430 38 60 00 01 */ li r3, 1
+/* 800317D4 0002D434 38 00 00 00 */ li r0, 0
+/* 800317D8 0002D438 B0 7E 00 00 */ sth r3, 0(r30)
+/* 800317DC 0002D43C 90 1E 00 04 */ stw r0, 4(r30)
+/* 800317E0 0002D440 48 00 09 C0 */ b lbl_800321A0
+/* 800317E4 0002D444 38 60 00 01 */ li r3, 1
+/* 800317E8 0002D448 38 00 00 00 */ li r0, 0
+/* 800317EC 0002D44C B0 7E 00 00 */ sth r3, 0(r30)
+/* 800317F0 0002D450 90 1E 00 04 */ stw r0, 4(r30)
+/* 800317F4 0002D454 A8 1D 00 08 */ lha r0, 8(r29)
+/* 800317F8 0002D458 2C 80 00 01 */ cmpwi cr1, r0, 1
+/* 800317FC 0002D45C 40 86 09 A4 */ bne cr1, lbl_800321A0
+/* 80031800 0002D460 83 8D 96 F0 */ lwz r28, lbl_8063E9B0-_SDA_BASE_(r13)
+/* 80031804 0002D464 2C 1C 00 00 */ cmpwi r28, 0
+/* 80031808 0002D468 41 82 09 98 */ beq lbl_800321A0
+/* 8003180C 0002D46C 40 86 00 0C */ bne cr1, lbl_80031818
+/* 80031810 0002D470 83 BD 00 0C */ lwz r29, 0xc(r29)
+/* 80031814 0002D474 48 00 00 2C */ b lbl_80031840
+lbl_80031818:
+/* 80031818 0002D478 2C 00 00 02 */ cmpwi r0, 2
+/* 8003181C 0002D47C 40 82 00 18 */ bne lbl_80031834
+/* 80031820 0002D480 C0 1D 00 0C */ lfs f0, 0xc(r29)
+/* 80031824 0002D484 FC 00 00 1E */ fctiwz f0, f0
+/* 80031828 0002D488 D8 01 00 90 */ stfd f0, 0x90(r1)
+/* 8003182C 0002D48C 80 61 00 94 */ lwz r3, 0x94(r1)
+/* 80031830 0002D490 48 00 00 0C */ b lbl_8003183C
+lbl_80031834:
+/* 80031834 0002D494 38 7D 00 08 */ addi r3, r29, 8
+/* 80031838 0002D498 48 1F C4 FD */ bl func_8022DD34
+lbl_8003183C:
+/* 8003183C 0002D49C 7C 7D 1B 78 */ mr r29, r3
+lbl_80031840:
+/* 80031840 0002D4A0 7F 83 E3 78 */ mr r3, r28
+/* 80031844 0002D4A4 4B FF 3B 25 */ bl func_80025368
+/* 80031848 0002D4A8 7C 64 1B 78 */ mr r4, r3
+/* 8003184C 0002D4AC 7F E3 FB 78 */ mr r3, r31
+/* 80031850 0002D4B0 7F A5 EB 78 */ mr r5, r29
+/* 80031854 0002D4B4 38 C0 00 00 */ li r6, 0
+/* 80031858 0002D4B8 48 01 C9 DD */ bl func_8004E234
+/* 8003185C 0002D4BC 2C 03 00 00 */ cmpwi r3, 0
+/* 80031860 0002D4C0 41 82 09 40 */ beq lbl_800321A0
+/* 80031864 0002D4C4 38 00 00 01 */ li r0, 1
+/* 80031868 0002D4C8 B0 1E 00 00 */ sth r0, 0(r30)
+/* 8003186C 0002D4CC 90 1E 00 04 */ stw r0, 4(r30)
+/* 80031870 0002D4D0 48 00 09 30 */ b lbl_800321A0
+/* 80031874 0002D4D4 38 60 00 01 */ li r3, 1
+/* 80031878 0002D4D8 38 00 00 00 */ li r0, 0
+/* 8003187C 0002D4DC B0 7E 00 00 */ sth r3, 0(r30)
+/* 80031880 0002D4E0 90 1E 00 04 */ stw r0, 4(r30)
+/* 80031884 0002D4E4 A8 7D 00 08 */ lha r3, 8(r29)
+/* 80031888 0002D4E8 2C 83 00 01 */ cmpwi cr1, r3, 1
+/* 8003188C 0002D4EC 40 86 09 14 */ bne cr1, lbl_800321A0
+/* 80031890 0002D4F0 80 0D 96 F0 */ lwz r0, lbl_8063E9B0-_SDA_BASE_(r13)
+/* 80031894 0002D4F4 2C 00 00 00 */ cmpwi r0, 0
+/* 80031898 0002D4F8 41 82 09 08 */ beq lbl_800321A0
+/* 8003189C 0002D4FC 40 86 00 0C */ bne cr1, lbl_800318A8
+/* 800318A0 0002D500 83 9D 00 0C */ lwz r28, 0xc(r29)
+/* 800318A4 0002D504 48 00 00 2C */ b lbl_800318D0
+lbl_800318A8:
+/* 800318A8 0002D508 2C 03 00 02 */ cmpwi r3, 2
+/* 800318AC 0002D50C 40 82 00 18 */ bne lbl_800318C4
+/* 800318B0 0002D510 C0 1D 00 0C */ lfs f0, 0xc(r29)
+/* 800318B4 0002D514 FC 00 00 1E */ fctiwz f0, f0
+/* 800318B8 0002D518 D8 01 00 90 */ stfd f0, 0x90(r1)
+/* 800318BC 0002D51C 80 61 00 94 */ lwz r3, 0x94(r1)
+/* 800318C0 0002D520 48 00 00 0C */ b lbl_800318CC
+lbl_800318C4:
+/* 800318C4 0002D524 38 7D 00 08 */ addi r3, r29, 8
+/* 800318C8 0002D528 48 1F C4 6D */ bl func_8022DD34
+lbl_800318CC:
+/* 800318CC 0002D52C 7C 7C 1B 78 */ mr r28, r3
+lbl_800318D0:
+/* 800318D0 0002D530 A8 1D 00 10 */ lha r0, 0x10(r29)
+/* 800318D4 0002D534 2C 00 00 01 */ cmpwi r0, 1
+/* 800318D8 0002D538 40 82 00 0C */ bne lbl_800318E4
+/* 800318DC 0002D53C 80 BD 00 14 */ lwz r5, 0x14(r29)
+/* 800318E0 0002D540 48 00 00 2C */ b lbl_8003190C
+lbl_800318E4:
+/* 800318E4 0002D544 2C 00 00 02 */ cmpwi r0, 2
+/* 800318E8 0002D548 40 82 00 18 */ bne lbl_80031900
+/* 800318EC 0002D54C C0 1D 00 14 */ lfs f0, 0x14(r29)
+/* 800318F0 0002D550 FC 00 00 1E */ fctiwz f0, f0
+/* 800318F4 0002D554 D8 01 00 90 */ stfd f0, 0x90(r1)
+/* 800318F8 0002D558 80 61 00 94 */ lwz r3, 0x94(r1)
+/* 800318FC 0002D55C 48 00 00 0C */ b lbl_80031908
+lbl_80031900:
+/* 80031900 0002D560 38 7D 00 10 */ addi r3, r29, 0x10
+/* 80031904 0002D564 48 1F C4 31 */ bl func_8022DD34
+lbl_80031908:
+/* 80031908 0002D568 7C 65 1B 78 */ mr r5, r3
+lbl_8003190C:
+/* 8003190C 0002D56C 7F E3 FB 78 */ mr r3, r31
+/* 80031910 0002D570 7F 84 E3 78 */ mr r4, r28
+/* 80031914 0002D574 38 C0 00 00 */ li r6, 0
+/* 80031918 0002D578 48 01 C9 1D */ bl func_8004E234
+/* 8003191C 0002D57C 2C 03 00 00 */ cmpwi r3, 0
+/* 80031920 0002D580 41 82 08 80 */ beq lbl_800321A0
+/* 80031924 0002D584 38 00 00 01 */ li r0, 1
+/* 80031928 0002D588 B0 1E 00 00 */ sth r0, 0(r30)
+/* 8003192C 0002D58C 90 1E 00 04 */ stw r0, 4(r30)
+/* 80031930 0002D590 48 00 08 70 */ b lbl_800321A0
+/* 80031934 0002D594 7F E3 FB 78 */ mr r3, r31
+/* 80031938 0002D598 48 01 C6 41 */ bl func_8004DF78
+/* 8003193C 0002D59C 48 00 08 64 */ b lbl_800321A0
+/* 80031940 0002D5A0 A8 1D 00 08 */ lha r0, 8(r29)
+/* 80031944 0002D5A4 2C 00 00 04 */ cmpwi r0, 4
+/* 80031948 0002D5A8 40 82 00 0C */ bne lbl_80031954
+/* 8003194C 0002D5AC 80 BD 00 0C */ lwz r5, 0xc(r29)
+/* 80031950 0002D5B0 48 00 00 10 */ b lbl_80031960
+lbl_80031954:
+/* 80031954 0002D5B4 38 7D 00 08 */ addi r3, r29, 8
+/* 80031958 0002D5B8 4B FF 69 89 */ bl func_800282E0
+/* 8003195C 0002D5BC 7C 65 1B 78 */ mr r5, r3
+lbl_80031960:
+/* 80031960 0002D5C0 80 7F 00 40 */ lwz r3, 0x40(r31)
+/* 80031964 0002D5C4 2C 03 00 00 */ cmpwi r3, 0
+/* 80031968 0002D5C8 41 82 08 38 */ beq lbl_800321A0
+/* 8003196C 0002D5CC C0 05 00 00 */ lfs f0, 0(r5)
+/* 80031970 0002D5D0 38 80 00 01 */ li r4, 1
+/* 80031974 0002D5D4 D0 03 00 20 */ stfs f0, 0x20(r3)
+/* 80031978 0002D5D8 C0 05 00 04 */ lfs f0, 4(r5)
+/* 8003197C 0002D5DC D0 03 00 24 */ stfs f0, 0x24(r3)
+/* 80031980 0002D5E0 C0 05 00 08 */ lfs f0, 8(r5)
+/* 80031984 0002D5E4 D0 03 00 28 */ stfs f0, 0x28(r3)
+/* 80031988 0002D5E8 48 1C 0D 31 */ bl func_801F26B8
+/* 8003198C 0002D5EC 48 00 08 14 */ b lbl_800321A0
+/* 80031990 0002D5F0 7F E4 FB 78 */ mr r4, r31
+/* 80031994 0002D5F4 38 61 00 28 */ addi r3, r1, 0x28
+/* 80031998 0002D5F8 48 01 CB 6D */ bl func_8004E504
+/* 8003199C 0002D5FC C0 41 00 28 */ lfs f2, 0x28(r1)
+/* 800319A0 0002D600 38 00 00 04 */ li r0, 4
+/* 800319A4 0002D604 C0 21 00 2C */ lfs f1, 0x2c(r1)
+/* 800319A8 0002D608 C0 01 00 30 */ lfs f0, 0x30(r1)
+/* 800319AC 0002D60C D0 41 00 34 */ stfs f2, 0x34(r1)
+/* 800319B0 0002D610 D0 21 00 38 */ stfs f1, 0x38(r1)
+/* 800319B4 0002D614 D0 01 00 3C */ stfs f0, 0x3c(r1)
+/* 800319B8 0002D618 80 7A 09 14 */ lwz r3, 0x914(r26)
+/* 800319BC 0002D61C D0 43 01 38 */ stfs f2, 0x138(r3)
+/* 800319C0 0002D620 C0 01 00 38 */ lfs f0, 0x38(r1)
+/* 800319C4 0002D624 D0 03 01 3C */ stfs f0, 0x13c(r3)
+/* 800319C8 0002D628 C0 01 00 3C */ lfs f0, 0x3c(r1)
+/* 800319CC 0002D62C D0 03 01 40 */ stfs f0, 0x140(r3)
+/* 800319D0 0002D630 80 9A 09 14 */ lwz r4, 0x914(r26)
+/* 800319D4 0002D634 38 64 01 38 */ addi r3, r4, 0x138
+/* 800319D8 0002D638 90 64 00 14 */ stw r3, 0x14(r4)
+/* 800319DC 0002D63C 80 7A 09 14 */ lwz r3, 0x914(r26)
+/* 800319E0 0002D640 B0 03 00 10 */ sth r0, 0x10(r3)
+/* 800319E4 0002D644 48 00 07 BC */ b lbl_800321A0
+/* 800319E8 0002D648 A8 1D 00 08 */ lha r0, 8(r29)
+/* 800319EC 0002D64C 2C 00 00 04 */ cmpwi r0, 4
+/* 800319F0 0002D650 40 82 00 0C */ bne lbl_800319FC
+/* 800319F4 0002D654 80 7D 00 0C */ lwz r3, 0xc(r29)
+/* 800319F8 0002D658 48 00 00 0C */ b lbl_80031A04
+lbl_800319FC:
+/* 800319FC 0002D65C 38 7D 00 08 */ addi r3, r29, 8
+/* 80031A00 0002D660 4B FF 68 E1 */ bl func_800282E0
+lbl_80031A04:
+/* 80031A04 0002D664 A8 1D 00 10 */ lha r0, 0x10(r29)
+/* 80031A08 0002D668 7C 7C 1B 78 */ mr r28, r3
+/* 80031A0C 0002D66C 2C 00 00 01 */ cmpwi r0, 1
+/* 80031A10 0002D670 40 82 00 28 */ bne lbl_80031A38
+/* 80031A14 0002D674 80 7D 00 14 */ lwz r3, 0x14(r29)
+/* 80031A18 0002D678 3C 00 43 30 */ lis r0, 0x4330
+/* 80031A1C 0002D67C 90 01 00 90 */ stw r0, 0x90(r1)
+/* 80031A20 0002D680 6C 60 80 00 */ xoris r0, r3, 0x8000
+/* 80031A24 0002D684 C8 22 81 A0 */ lfd f1, lbl_806407A0-_SDA2_BASE_(r2)
+/* 80031A28 0002D688 90 01 00 94 */ stw r0, 0x94(r1)
+/* 80031A2C 0002D68C C8 01 00 90 */ lfd f0, 0x90(r1)
+/* 80031A30 0002D690 EF E0 08 28 */ fsubs f31, f0, f1
+/* 80031A34 0002D694 48 00 00 20 */ b lbl_80031A54
+lbl_80031A38:
+/* 80031A38 0002D698 2C 00 00 02 */ cmpwi r0, 2
+/* 80031A3C 0002D69C 40 82 00 0C */ bne lbl_80031A48
+/* 80031A40 0002D6A0 C0 3D 00 14 */ lfs f1, 0x14(r29)
+/* 80031A44 0002D6A4 48 00 00 0C */ b lbl_80031A50
+lbl_80031A48:
+/* 80031A48 0002D6A8 38 7D 00 10 */ addi r3, r29, 0x10
+/* 80031A4C 0002D6AC 48 1F C3 2D */ bl func_8022DD78
+lbl_80031A50:
+/* 80031A50 0002D6B0 FF E0 08 90 */ fmr f31, f1
+lbl_80031A54:
+/* 80031A54 0002D6B4 A8 1D 00 18 */ lha r0, 0x18(r29)
+/* 80031A58 0002D6B8 2C 00 00 01 */ cmpwi r0, 1
+/* 80031A5C 0002D6BC 40 82 00 0C */ bne lbl_80031A68
+/* 80031A60 0002D6C0 80 BD 00 1C */ lwz r5, 0x1c(r29)
+/* 80031A64 0002D6C4 48 00 00 2C */ b lbl_80031A90
+lbl_80031A68:
+/* 80031A68 0002D6C8 2C 00 00 02 */ cmpwi r0, 2
+/* 80031A6C 0002D6CC 40 82 00 18 */ bne lbl_80031A84
+/* 80031A70 0002D6D0 C0 1D 00 1C */ lfs f0, 0x1c(r29)
+/* 80031A74 0002D6D4 FC 00 00 1E */ fctiwz f0, f0
+/* 80031A78 0002D6D8 D8 01 00 90 */ stfd f0, 0x90(r1)
+/* 80031A7C 0002D6DC 80 61 00 94 */ lwz r3, 0x94(r1)
+/* 80031A80 0002D6E0 48 00 00 0C */ b lbl_80031A8C
+lbl_80031A84:
+/* 80031A84 0002D6E4 38 7D 00 18 */ addi r3, r29, 0x18
+/* 80031A88 0002D6E8 48 1F C2 AD */ bl func_8022DD34
+lbl_80031A8C:
+/* 80031A8C 0002D6EC 7C 65 1B 78 */ mr r5, r3
+lbl_80031A90:
+/* 80031A90 0002D6F0 FC 20 F8 90 */ fmr f1, f31
+/* 80031A94 0002D6F4 7F E3 FB 78 */ mr r3, r31
+/* 80031A98 0002D6F8 7F 84 E3 78 */ mr r4, r28
+/* 80031A9C 0002D6FC 48 01 CA A5 */ bl func_8004E540
+/* 80031AA0 0002D700 48 00 07 00 */ b lbl_800321A0
+/* 80031AA4 0002D704 A8 1D 00 08 */ lha r0, 8(r29)
+/* 80031AA8 0002D708 2C 00 00 04 */ cmpwi r0, 4
+/* 80031AAC 0002D70C 40 82 00 0C */ bne lbl_80031AB8
+/* 80031AB0 0002D710 80 7D 00 0C */ lwz r3, 0xc(r29)
+/* 80031AB4 0002D714 48 00 00 0C */ b lbl_80031AC0
+lbl_80031AB8:
+/* 80031AB8 0002D718 38 7D 00 08 */ addi r3, r29, 8
+/* 80031ABC 0002D71C 4B FF 68 25 */ bl func_800282E0
+lbl_80031AC0:
+/* 80031AC0 0002D720 C0 23 00 00 */ lfs f1, 0(r3)
+/* 80031AC4 0002D724 C0 02 81 88 */ lfs f0, lbl_80640788-_SDA2_BASE_(r2)
+/* 80031AC8 0002D728 D0 21 00 34 */ stfs f1, 0x34(r1)
+/* 80031ACC 0002D72C EC 40 00 72 */ fmuls f2, f0, f1
+/* 80031AD0 0002D730 C0 23 00 04 */ lfs f1, 4(r3)
+/* 80031AD4 0002D734 D0 21 00 38 */ stfs f1, 0x38(r1)
+/* 80031AD8 0002D738 EC 20 00 72 */ fmuls f1, f0, f1
+/* 80031ADC 0002D73C C0 63 00 08 */ lfs f3, 8(r3)
+/* 80031AE0 0002D740 EC 00 00 F2 */ fmuls f0, f0, f3
+/* 80031AE4 0002D744 D0 41 00 34 */ stfs f2, 0x34(r1)
+/* 80031AE8 0002D748 D0 21 00 38 */ stfs f1, 0x38(r1)
+/* 80031AEC 0002D74C D0 01 00 3C */ stfs f0, 0x3c(r1)
+/* 80031AF0 0002D750 80 1F 00 40 */ lwz r0, 0x40(r31)
+/* 80031AF4 0002D754 2C 00 00 00 */ cmpwi r0, 0
+/* 80031AF8 0002D758 41 82 06 A8 */ beq lbl_800321A0
+/* 80031AFC 0002D75C 38 61 00 18 */ addi r3, r1, 0x18
+/* 80031B00 0002D760 38 81 00 34 */ addi r4, r1, 0x34
+/* 80031B04 0002D764 48 1F 1B BD */ bl func_802236C0
+/* 80031B08 0002D768 80 7F 00 40 */ lwz r3, 0x40(r31)
+/* 80031B0C 0002D76C 38 80 00 01 */ li r4, 1
+/* 80031B10 0002D770 C0 01 00 18 */ lfs f0, 0x18(r1)
+/* 80031B14 0002D774 D0 03 00 2C */ stfs f0, 0x2c(r3)
+/* 80031B18 0002D778 C0 01 00 1C */ lfs f0, 0x1c(r1)
+/* 80031B1C 0002D77C D0 03 00 30 */ stfs f0, 0x30(r3)
+/* 80031B20 0002D780 C0 01 00 20 */ lfs f0, 0x20(r1)
+/* 80031B24 0002D784 D0 03 00 34 */ stfs f0, 0x34(r3)
+/* 80031B28 0002D788 C0 01 00 24 */ lfs f0, 0x24(r1)
+/* 80031B2C 0002D78C D0 03 00 38 */ stfs f0, 0x38(r3)
+/* 80031B30 0002D790 A0 03 00 10 */ lhz r0, 0x10(r3)
+/* 80031B34 0002D794 54 00 07 B8 */ rlwinm r0, r0, 0, 0x1e, 0x1c
+/* 80031B38 0002D798 B0 03 00 10 */ sth r0, 0x10(r3)
+/* 80031B3C 0002D79C 48 1C 0B 7D */ bl func_801F26B8
+/* 80031B40 0002D7A0 48 00 06 60 */ b lbl_800321A0
+/* 80031B44 0002D7A4 A8 1D 00 08 */ lha r0, 8(r29)
+/* 80031B48 0002D7A8 2C 00 00 04 */ cmpwi r0, 4
+/* 80031B4C 0002D7AC 40 82 00 0C */ bne lbl_80031B58
+/* 80031B50 0002D7B0 80 7D 00 0C */ lwz r3, 0xc(r29)
+/* 80031B54 0002D7B4 48 00 00 0C */ b lbl_80031B60
+lbl_80031B58:
+/* 80031B58 0002D7B8 38 7D 00 08 */ addi r3, r29, 8
+/* 80031B5C 0002D7BC 4B FF 67 85 */ bl func_800282E0
+lbl_80031B60:
+/* 80031B60 0002D7C0 C0 23 00 00 */ lfs f1, 0(r3)
+/* 80031B64 0002D7C4 C0 02 81 88 */ lfs f0, lbl_80640788-_SDA2_BASE_(r2)
+/* 80031B68 0002D7C8 D0 21 00 34 */ stfs f1, 0x34(r1)
+/* 80031B6C 0002D7CC EC 40 00 72 */ fmuls f2, f0, f1
+/* 80031B70 0002D7D0 C0 23 00 04 */ lfs f1, 4(r3)
+/* 80031B74 0002D7D4 D0 21 00 38 */ stfs f1, 0x38(r1)
+/* 80031B78 0002D7D8 EC 20 00 72 */ fmuls f1, f0, f1
+/* 80031B7C 0002D7DC C0 63 00 08 */ lfs f3, 8(r3)
+/* 80031B80 0002D7E0 EC 00 00 F2 */ fmuls f0, f0, f3
+/* 80031B84 0002D7E4 D0 41 00 34 */ stfs f2, 0x34(r1)
+/* 80031B88 0002D7E8 D0 21 00 38 */ stfs f1, 0x38(r1)
+/* 80031B8C 0002D7EC D0 01 00 3C */ stfs f0, 0x3c(r1)
+/* 80031B90 0002D7F0 80 1F 00 40 */ lwz r0, 0x40(r31)
+/* 80031B94 0002D7F4 2C 00 00 00 */ cmpwi r0, 0
+/* 80031B98 0002D7F8 41 82 06 08 */ beq lbl_800321A0
+/* 80031B9C 0002D7FC 38 61 00 60 */ addi r3, r1, 0x60
+/* 80031BA0 0002D800 38 81 00 34 */ addi r4, r1, 0x34
+/* 80031BA4 0002D804 38 A0 00 05 */ li r5, 5
+/* 80031BA8 0002D808 48 1F 18 21 */ bl func_802233C8
+/* 80031BAC 0002D80C 38 61 00 08 */ addi r3, r1, 8
+/* 80031BB0 0002D810 38 81 00 60 */ addi r4, r1, 0x60
+/* 80031BB4 0002D814 48 24 B6 11 */ bl C_QUATMtx
+/* 80031BB8 0002D818 80 7F 00 40 */ lwz r3, 0x40(r31)
+/* 80031BBC 0002D81C 38 80 00 01 */ li r4, 1
+/* 80031BC0 0002D820 C0 01 00 08 */ lfs f0, 8(r1)
+/* 80031BC4 0002D824 D0 03 00 2C */ stfs f0, 0x2c(r3)
+/* 80031BC8 0002D828 C0 01 00 0C */ lfs f0, 0xc(r1)
+/* 80031BCC 0002D82C D0 03 00 30 */ stfs f0, 0x30(r3)
+/* 80031BD0 0002D830 C0 01 00 10 */ lfs f0, 0x10(r1)
+/* 80031BD4 0002D834 D0 03 00 34 */ stfs f0, 0x34(r3)
+/* 80031BD8 0002D838 C0 01 00 14 */ lfs f0, 0x14(r1)
+/* 80031BDC 0002D83C D0 03 00 38 */ stfs f0, 0x38(r3)
+/* 80031BE0 0002D840 A0 03 00 10 */ lhz r0, 0x10(r3)
+/* 80031BE4 0002D844 54 00 07 B8 */ rlwinm r0, r0, 0, 0x1e, 0x1c
+/* 80031BE8 0002D848 B0 03 00 10 */ sth r0, 0x10(r3)
+/* 80031BEC 0002D84C 48 1C 0A CD */ bl func_801F26B8
+/* 80031BF0 0002D850 48 00 05 B0 */ b lbl_800321A0
+/* 80031BF4 0002D854 A8 1D 00 08 */ lha r0, 8(r29)
+/* 80031BF8 0002D858 2C 00 00 04 */ cmpwi r0, 4
+/* 80031BFC 0002D85C 40 82 00 0C */ bne lbl_80031C08
+/* 80031C00 0002D860 80 7D 00 0C */ lwz r3, 0xc(r29)
+/* 80031C04 0002D864 48 00 00 0C */ b lbl_80031C10
+lbl_80031C08:
+/* 80031C08 0002D868 38 7D 00 08 */ addi r3, r29, 8
+/* 80031C0C 0002D86C 4B FF 66 D5 */ bl func_800282E0
+lbl_80031C10:
+/* 80031C10 0002D870 80 9F 00 40 */ lwz r4, 0x40(r31)
+/* 80031C14 0002D874 2C 04 00 00 */ cmpwi r4, 0
+/* 80031C18 0002D878 41 82 05 88 */ beq lbl_800321A0
+/* 80031C1C 0002D87C C0 03 00 00 */ lfs f0, 0(r3)
+/* 80031C20 0002D880 C0 42 81 8C */ lfs f2, lbl_8064078C-_SDA2_BASE_(r2)
+/* 80031C24 0002D884 D0 04 00 48 */ stfs f0, 0x48(r4)
+/* 80031C28 0002D888 FC 00 10 40 */ fcmpo cr0, f0, f2
+/* 80031C2C 0002D88C C0 03 00 04 */ lfs f0, 4(r3)
+/* 80031C30 0002D890 D0 04 00 4C */ stfs f0, 0x4c(r4)
+/* 80031C34 0002D894 C0 03 00 08 */ lfs f0, 8(r3)
+/* 80031C38 0002D898 D0 04 00 50 */ stfs f0, 0x50(r4)
+/* 80031C3C 0002D89C 40 80 00 2C */ bge lbl_80031C68
+/* 80031C40 0002D8A0 C0 24 00 48 */ lfs f1, 0x48(r4)
+/* 80031C44 0002D8A4 C0 62 81 90 */ lfs f3, lbl_80640790-_SDA2_BASE_(r2)
+/* 80031C48 0002D8A8 FC 01 18 40 */ fcmpo cr0, f1, f3
+/* 80031C4C 0002D8AC 40 81 00 1C */ ble lbl_80031C68
+/* 80031C50 0002D8B0 C0 02 81 94 */ lfs f0, lbl_80640794-_SDA2_BASE_(r2)
+/* 80031C54 0002D8B4 FC 01 00 40 */ fcmpo cr0, f1, f0
+/* 80031C58 0002D8B8 40 80 00 08 */ bge lbl_80031C60
+/* 80031C5C 0002D8BC 48 00 00 08 */ b lbl_80031C64
+lbl_80031C60:
+/* 80031C60 0002D8C0 FC 60 10 90 */ fmr f3, f2
+lbl_80031C64:
+/* 80031C64 0002D8C4 D0 64 00 48 */ stfs f3, 0x48(r4)
+lbl_80031C68:
+/* 80031C68 0002D8C8 C0 44 00 4C */ lfs f2, 0x4c(r4)
+/* 80031C6C 0002D8CC C0 22 81 8C */ lfs f1, lbl_8064078C-_SDA2_BASE_(r2)
+/* 80031C70 0002D8D0 FC 02 08 40 */ fcmpo cr0, f2, f1
+/* 80031C74 0002D8D4 40 80 00 28 */ bge lbl_80031C9C
+/* 80031C78 0002D8D8 C0 62 81 90 */ lfs f3, lbl_80640790-_SDA2_BASE_(r2)
+/* 80031C7C 0002D8DC FC 02 18 40 */ fcmpo cr0, f2, f3
+/* 80031C80 0002D8E0 40 81 00 1C */ ble lbl_80031C9C
+/* 80031C84 0002D8E4 C0 02 81 94 */ lfs f0, lbl_80640794-_SDA2_BASE_(r2)
+/* 80031C88 0002D8E8 FC 02 00 40 */ fcmpo cr0, f2, f0
+/* 80031C8C 0002D8EC 40 80 00 08 */ bge lbl_80031C94
+/* 80031C90 0002D8F0 48 00 00 08 */ b lbl_80031C98
+lbl_80031C94:
+/* 80031C94 0002D8F4 FC 60 08 90 */ fmr f3, f1
+lbl_80031C98:
+/* 80031C98 0002D8F8 D0 64 00 4C */ stfs f3, 0x4c(r4)
+lbl_80031C9C:
+/* 80031C9C 0002D8FC C0 44 00 50 */ lfs f2, 0x50(r4)
+/* 80031CA0 0002D900 C0 22 81 8C */ lfs f1, lbl_8064078C-_SDA2_BASE_(r2)
+/* 80031CA4 0002D904 FC 02 08 40 */ fcmpo cr0, f2, f1
+/* 80031CA8 0002D908 40 80 00 28 */ bge lbl_80031CD0
+/* 80031CAC 0002D90C C0 62 81 90 */ lfs f3, lbl_80640790-_SDA2_BASE_(r2)
+/* 80031CB0 0002D910 FC 02 18 40 */ fcmpo cr0, f2, f3
+/* 80031CB4 0002D914 40 81 00 1C */ ble lbl_80031CD0
+/* 80031CB8 0002D918 C0 02 81 94 */ lfs f0, lbl_80640794-_SDA2_BASE_(r2)
+/* 80031CBC 0002D91C FC 02 00 40 */ fcmpo cr0, f2, f0
+/* 80031CC0 0002D920 40 80 00 08 */ bge lbl_80031CC8
+/* 80031CC4 0002D924 48 00 00 08 */ b lbl_80031CCC
+lbl_80031CC8:
+/* 80031CC8 0002D928 FC 60 08 90 */ fmr f3, f1
+lbl_80031CCC:
+/* 80031CCC 0002D92C D0 64 00 50 */ stfs f3, 0x50(r4)
+lbl_80031CD0:
+/* 80031CD0 0002D930 7C 83 23 78 */ mr r3, r4
+/* 80031CD4 0002D934 38 80 00 01 */ li r4, 1
+/* 80031CD8 0002D938 48 1C 09 E1 */ bl func_801F26B8
+/* 80031CDC 0002D93C 48 00 04 C4 */ b lbl_800321A0
+/* 80031CE0 0002D940 A8 1D 00 08 */ lha r0, 8(r29)
+/* 80031CE4 0002D944 2C 00 00 01 */ cmpwi r0, 1
+/* 80031CE8 0002D948 40 82 00 0C */ bne lbl_80031CF4
+/* 80031CEC 0002D94C 80 9D 00 0C */ lwz r4, 0xc(r29)
+/* 80031CF0 0002D950 48 00 00 2C */ b lbl_80031D1C
+lbl_80031CF4:
+/* 80031CF4 0002D954 2C 00 00 02 */ cmpwi r0, 2
+/* 80031CF8 0002D958 40 82 00 18 */ bne lbl_80031D10
+/* 80031CFC 0002D95C C0 1D 00 0C */ lfs f0, 0xc(r29)
+/* 80031D00 0002D960 FC 00 00 1E */ fctiwz f0, f0
+/* 80031D04 0002D964 D8 01 00 90 */ stfd f0, 0x90(r1)
+/* 80031D08 0002D968 80 61 00 94 */ lwz r3, 0x94(r1)
+/* 80031D0C 0002D96C 48 00 00 0C */ b lbl_80031D18
+lbl_80031D10:
+/* 80031D10 0002D970 38 7D 00 08 */ addi r3, r29, 8
+/* 80031D14 0002D974 48 1F C0 21 */ bl func_8022DD34
+lbl_80031D18:
+/* 80031D18 0002D978 7C 64 1B 78 */ mr r4, r3
+lbl_80031D1C:
+/* 80031D1C 0002D97C C0 22 81 98 */ lfs f1, lbl_80640798-_SDA2_BASE_(r2)
+/* 80031D20 0002D980 7F E3 FB 78 */ mr r3, r31
+/* 80031D24 0002D984 48 01 C6 31 */ bl func_8004E354
+/* 80031D28 0002D988 48 00 04 78 */ b lbl_800321A0
+/* 80031D2C 0002D98C A8 1D 00 08 */ lha r0, 8(r29)
+/* 80031D30 0002D990 2C 00 00 01 */ cmpwi r0, 1
+/* 80031D34 0002D994 40 82 00 0C */ bne lbl_80031D40
+/* 80031D38 0002D998 83 9D 00 0C */ lwz r28, 0xc(r29)
+/* 80031D3C 0002D99C 48 00 00 2C */ b lbl_80031D68
+lbl_80031D40:
+/* 80031D40 0002D9A0 2C 00 00 02 */ cmpwi r0, 2
+/* 80031D44 0002D9A4 40 82 00 18 */ bne lbl_80031D5C
+/* 80031D48 0002D9A8 C0 1D 00 0C */ lfs f0, 0xc(r29)
+/* 80031D4C 0002D9AC FC 00 00 1E */ fctiwz f0, f0
+/* 80031D50 0002D9B0 D8 01 00 90 */ stfd f0, 0x90(r1)
+/* 80031D54 0002D9B4 80 61 00 94 */ lwz r3, 0x94(r1)
+/* 80031D58 0002D9B8 48 00 00 0C */ b lbl_80031D64
+lbl_80031D5C:
+/* 80031D5C 0002D9BC 38 7D 00 08 */ addi r3, r29, 8
+/* 80031D60 0002D9C0 48 1F BF D5 */ bl func_8022DD34
+lbl_80031D64:
+/* 80031D64 0002D9C4 7C 7C 1B 78 */ mr r28, r3
+lbl_80031D68:
+/* 80031D68 0002D9C8 A8 1D 00 10 */ lha r0, 0x10(r29)
+/* 80031D6C 0002D9CC 2C 00 00 01 */ cmpwi r0, 1
+/* 80031D70 0002D9D0 40 82 00 28 */ bne lbl_80031D98
+/* 80031D74 0002D9D4 80 7D 00 14 */ lwz r3, 0x14(r29)
+/* 80031D78 0002D9D8 3C 00 43 30 */ lis r0, 0x4330
+/* 80031D7C 0002D9DC 90 01 00 90 */ stw r0, 0x90(r1)
+/* 80031D80 0002D9E0 6C 60 80 00 */ xoris r0, r3, 0x8000
+/* 80031D84 0002D9E4 C8 22 81 A0 */ lfd f1, lbl_806407A0-_SDA2_BASE_(r2)
+/* 80031D88 0002D9E8 90 01 00 94 */ stw r0, 0x94(r1)
+/* 80031D8C 0002D9EC C8 01 00 90 */ lfd f0, 0x90(r1)
+/* 80031D90 0002D9F0 EC 20 08 28 */ fsubs f1, f0, f1
+/* 80031D94 0002D9F4 48 00 00 1C */ b lbl_80031DB0
+lbl_80031D98:
+/* 80031D98 0002D9F8 2C 00 00 02 */ cmpwi r0, 2
+/* 80031D9C 0002D9FC 40 82 00 0C */ bne lbl_80031DA8
+/* 80031DA0 0002DA00 C0 3D 00 14 */ lfs f1, 0x14(r29)
+/* 80031DA4 0002DA04 48 00 00 0C */ b lbl_80031DB0
+lbl_80031DA8:
+/* 80031DA8 0002DA08 38 7D 00 10 */ addi r3, r29, 0x10
+/* 80031DAC 0002DA0C 48 1F BF CD */ bl func_8022DD78
+lbl_80031DB0:
+/* 80031DB0 0002DA10 7F E3 FB 78 */ mr r3, r31
+/* 80031DB4 0002DA14 7F 84 E3 78 */ mr r4, r28
+/* 80031DB8 0002DA18 48 01 C5 9D */ bl func_8004E354
+/* 80031DBC 0002DA1C 48 00 03 E4 */ b lbl_800321A0
+/* 80031DC0 0002DA20 A8 1D 00 08 */ lha r0, 8(r29)
+/* 80031DC4 0002DA24 2C 00 00 21 */ cmpwi r0, 0x21
+/* 80031DC8 0002DA28 40 82 03 D8 */ bne lbl_800321A0
+/* 80031DCC 0002DA2C 83 DD 00 0C */ lwz r30, 0xc(r29)
+/* 80031DD0 0002DA30 2C 1E 00 00 */ cmpwi r30, 0
+/* 80031DD4 0002DA34 41 82 03 CC */ beq lbl_800321A0
+/* 80031DD8 0002DA38 A8 1D 00 10 */ lha r0, 0x10(r29)
+/* 80031DDC 0002DA3C 2C 00 00 01 */ cmpwi r0, 1
+/* 80031DE0 0002DA40 40 82 00 0C */ bne lbl_80031DEC
+/* 80031DE4 0002DA44 83 9D 00 14 */ lwz r28, 0x14(r29)
+/* 80031DE8 0002DA48 48 00 00 2C */ b lbl_80031E14
+lbl_80031DEC:
+/* 80031DEC 0002DA4C 2C 00 00 02 */ cmpwi r0, 2
+/* 80031DF0 0002DA50 40 82 00 18 */ bne lbl_80031E08
+/* 80031DF4 0002DA54 C0 1D 00 14 */ lfs f0, 0x14(r29)
+/* 80031DF8 0002DA58 FC 00 00 1E */ fctiwz f0, f0
+/* 80031DFC 0002DA5C D8 01 00 90 */ stfd f0, 0x90(r1)
+/* 80031E00 0002DA60 80 61 00 94 */ lwz r3, 0x94(r1)
+/* 80031E04 0002DA64 48 00 00 0C */ b lbl_80031E10
+lbl_80031E08:
+/* 80031E08 0002DA68 38 7D 00 10 */ addi r3, r29, 0x10
+/* 80031E0C 0002DA6C 48 1F BF 29 */ bl func_8022DD34
+lbl_80031E10:
+/* 80031E10 0002DA70 7C 7C 1B 78 */ mr r28, r3
+lbl_80031E14:
+/* 80031E14 0002DA74 A8 1D 00 18 */ lha r0, 0x18(r29)
+/* 80031E18 0002DA78 2C 00 00 01 */ cmpwi r0, 1
+/* 80031E1C 0002DA7C 40 82 00 0C */ bne lbl_80031E28
+/* 80031E20 0002DA80 83 BD 00 1C */ lwz r29, 0x1c(r29)
+/* 80031E24 0002DA84 48 00 00 2C */ b lbl_80031E50
+lbl_80031E28:
+/* 80031E28 0002DA88 2C 00 00 02 */ cmpwi r0, 2
+/* 80031E2C 0002DA8C 40 82 00 18 */ bne lbl_80031E44
+/* 80031E30 0002DA90 C0 1D 00 1C */ lfs f0, 0x1c(r29)
+/* 80031E34 0002DA94 FC 00 00 1E */ fctiwz f0, f0
+/* 80031E38 0002DA98 D8 01 00 90 */ stfd f0, 0x90(r1)
+/* 80031E3C 0002DA9C 80 61 00 94 */ lwz r3, 0x94(r1)
+/* 80031E40 0002DAA0 48 00 00 0C */ b lbl_80031E4C
+lbl_80031E44:
+/* 80031E44 0002DAA4 38 7D 00 18 */ addi r3, r29, 0x18
+/* 80031E48 0002DAA8 48 1F BE ED */ bl func_8022DD34
+lbl_80031E4C:
+/* 80031E4C 0002DAAC 7C 7D 1B 78 */ mr r29, r3
+lbl_80031E50:
+/* 80031E50 0002DAB0 7F C3 F3 78 */ mr r3, r30
+/* 80031E54 0002DAB4 7F 84 E3 78 */ mr r4, r28
+/* 80031E58 0002DAB8 48 00 7A 95 */ bl func_800398EC
+/* 80031E5C 0002DABC 7C 64 1B 78 */ mr r4, r3
+/* 80031E60 0002DAC0 7F E3 FB 78 */ mr r3, r31
+/* 80031E64 0002DAC4 7F A5 EB 78 */ mr r5, r29
+/* 80031E68 0002DAC8 48 01 C3 01 */ bl func_8004E168
+/* 80031E6C 0002DACC 48 00 03 34 */ b lbl_800321A0
+/* 80031E70 0002DAD0 A8 1D 00 08 */ lha r0, 8(r29)
+/* 80031E74 0002DAD4 2C 00 00 21 */ cmpwi r0, 0x21
+/* 80031E78 0002DAD8 40 82 03 28 */ bne lbl_800321A0
+/* 80031E7C 0002DADC 83 DD 00 0C */ lwz r30, 0xc(r29)
+/* 80031E80 0002DAE0 2C 1E 00 00 */ cmpwi r30, 0
+/* 80031E84 0002DAE4 41 82 03 1C */ beq lbl_800321A0
+/* 80031E88 0002DAE8 A8 1D 00 10 */ lha r0, 0x10(r29)
+/* 80031E8C 0002DAEC 2C 00 00 01 */ cmpwi r0, 1
+/* 80031E90 0002DAF0 40 82 00 0C */ bne lbl_80031E9C
+/* 80031E94 0002DAF4 83 9D 00 14 */ lwz r28, 0x14(r29)
+/* 80031E98 0002DAF8 48 00 00 2C */ b lbl_80031EC4
+lbl_80031E9C:
+/* 80031E9C 0002DAFC 2C 00 00 02 */ cmpwi r0, 2
+/* 80031EA0 0002DB00 40 82 00 18 */ bne lbl_80031EB8
+/* 80031EA4 0002DB04 C0 1D 00 14 */ lfs f0, 0x14(r29)
+/* 80031EA8 0002DB08 FC 00 00 1E */ fctiwz f0, f0
+/* 80031EAC 0002DB0C D8 01 00 90 */ stfd f0, 0x90(r1)
+/* 80031EB0 0002DB10 80 61 00 94 */ lwz r3, 0x94(r1)
+/* 80031EB4 0002DB14 48 00 00 0C */ b lbl_80031EC0
+lbl_80031EB8:
+/* 80031EB8 0002DB18 38 7D 00 10 */ addi r3, r29, 0x10
+/* 80031EBC 0002DB1C 48 1F BE 79 */ bl func_8022DD34
+lbl_80031EC0:
+/* 80031EC0 0002DB20 7C 7C 1B 78 */ mr r28, r3
+lbl_80031EC4:
+/* 80031EC4 0002DB24 A8 1D 00 18 */ lha r0, 0x18(r29)
+/* 80031EC8 0002DB28 2C 00 00 01 */ cmpwi r0, 1
+/* 80031ECC 0002DB2C 40 82 00 0C */ bne lbl_80031ED8
+/* 80031ED0 0002DB30 83 BD 00 1C */ lwz r29, 0x1c(r29)
+/* 80031ED4 0002DB34 48 00 00 2C */ b lbl_80031F00
+lbl_80031ED8:
+/* 80031ED8 0002DB38 2C 00 00 02 */ cmpwi r0, 2
+/* 80031EDC 0002DB3C 40 82 00 18 */ bne lbl_80031EF4
+/* 80031EE0 0002DB40 C0 1D 00 1C */ lfs f0, 0x1c(r29)
+/* 80031EE4 0002DB44 FC 00 00 1E */ fctiwz f0, f0
+/* 80031EE8 0002DB48 D8 01 00 90 */ stfd f0, 0x90(r1)
+/* 80031EEC 0002DB4C 80 61 00 94 */ lwz r3, 0x94(r1)
+/* 80031EF0 0002DB50 48 00 00 0C */ b lbl_80031EFC
+lbl_80031EF4:
+/* 80031EF4 0002DB54 38 7D 00 18 */ addi r3, r29, 0x18
+/* 80031EF8 0002DB58 48 1F BE 3D */ bl func_8022DD34
+lbl_80031EFC:
+/* 80031EFC 0002DB5C 7C 7D 1B 78 */ mr r29, r3
+lbl_80031F00:
+/* 80031F00 0002DB60 7F C3 F3 78 */ mr r3, r30
+/* 80031F04 0002DB64 7F 84 E3 78 */ mr r4, r28
+/* 80031F08 0002DB68 48 00 7A 75 */ bl func_8003997C
+/* 80031F0C 0002DB6C 7C 64 1B 78 */ mr r4, r3
+/* 80031F10 0002DB70 7F E3 FB 78 */ mr r3, r31
+/* 80031F14 0002DB74 7F A5 EB 78 */ mr r5, r29
+/* 80031F18 0002DB78 48 01 C2 51 */ bl func_8004E168
+/* 80031F1C 0002DB7C 48 00 02 84 */ b lbl_800321A0
+/* 80031F20 0002DB80 A8 1D 00 08 */ lha r0, 8(r29)
+/* 80031F24 0002DB84 2C 00 00 21 */ cmpwi r0, 0x21
+/* 80031F28 0002DB88 40 82 00 EC */ bne lbl_80032014
+/* 80031F2C 0002DB8C 83 DD 00 0C */ lwz r30, 0xc(r29)
+/* 80031F30 0002DB90 2C 1E 00 00 */ cmpwi r30, 0
+/* 80031F34 0002DB94 41 82 00 E0 */ beq lbl_80032014
+/* 80031F38 0002DB98 A8 1D 00 10 */ lha r0, 0x10(r29)
+/* 80031F3C 0002DB9C 2C 00 00 01 */ cmpwi r0, 1
+/* 80031F40 0002DBA0 40 82 00 0C */ bne lbl_80031F4C
+/* 80031F44 0002DBA4 83 9D 00 14 */ lwz r28, 0x14(r29)
+/* 80031F48 0002DBA8 48 00 00 2C */ b lbl_80031F74
+lbl_80031F4C:
+/* 80031F4C 0002DBAC 2C 00 00 02 */ cmpwi r0, 2
+/* 80031F50 0002DBB0 40 82 00 18 */ bne lbl_80031F68
+/* 80031F54 0002DBB4 C0 1D 00 14 */ lfs f0, 0x14(r29)
+/* 80031F58 0002DBB8 FC 00 00 1E */ fctiwz f0, f0
+/* 80031F5C 0002DBBC D8 01 00 90 */ stfd f0, 0x90(r1)
+/* 80031F60 0002DBC0 80 61 00 94 */ lwz r3, 0x94(r1)
+/* 80031F64 0002DBC4 48 00 00 0C */ b lbl_80031F70
+lbl_80031F68:
+/* 80031F68 0002DBC8 38 7D 00 10 */ addi r3, r29, 0x10
+/* 80031F6C 0002DBCC 48 1F BD C9 */ bl func_8022DD34
+lbl_80031F70:
+/* 80031F70 0002DBD0 7C 7C 1B 78 */ mr r28, r3
+lbl_80031F74:
+/* 80031F74 0002DBD4 A8 1D 00 18 */ lha r0, 0x18(r29)
+/* 80031F78 0002DBD8 2C 00 00 01 */ cmpwi r0, 1
+/* 80031F7C 0002DBDC 40 82 00 0C */ bne lbl_80031F88
+/* 80031F80 0002DBE0 80 1D 00 1C */ lwz r0, 0x1c(r29)
+/* 80031F84 0002DBE4 48 00 00 2C */ b lbl_80031FB0
+lbl_80031F88:
+/* 80031F88 0002DBE8 2C 00 00 02 */ cmpwi r0, 2
+/* 80031F8C 0002DBEC 40 82 00 18 */ bne lbl_80031FA4
+/* 80031F90 0002DBF0 C0 1D 00 1C */ lfs f0, 0x1c(r29)
+/* 80031F94 0002DBF4 FC 00 00 1E */ fctiwz f0, f0
+/* 80031F98 0002DBF8 D8 01 00 90 */ stfd f0, 0x90(r1)
+/* 80031F9C 0002DBFC 80 61 00 94 */ lwz r3, 0x94(r1)
+/* 80031FA0 0002DC00 48 00 00 0C */ b lbl_80031FAC
+lbl_80031FA4:
+/* 80031FA4 0002DC04 38 7D 00 18 */ addi r3, r29, 0x18
+/* 80031FA8 0002DC08 48 1F BD 8D */ bl func_8022DD34
+lbl_80031FAC:
+/* 80031FAC 0002DC0C 7C 60 1B 78 */ mr r0, r3
+lbl_80031FB0:
+/* 80031FB0 0002DC10 7F C3 F3 78 */ mr r3, r30
+/* 80031FB4 0002DC14 57 84 04 3E */ clrlwi r4, r28, 0x10
+/* 80031FB8 0002DC18 54 05 04 3E */ clrlwi r5, r0, 0x10
+/* 80031FBC 0002DC1C 48 00 BF 81 */ bl func_8003DF3C
+/* 80031FC0 0002DC20 2C 03 00 00 */ cmpwi r3, 0
+/* 80031FC4 0002DC24 7C 7C 1B 78 */ mr r28, r3
+/* 80031FC8 0002DC28 41 82 00 4C */ beq lbl_80032014
+/* 80031FCC 0002DC2C A8 1D 00 20 */ lha r0, 0x20(r29)
+/* 80031FD0 0002DC30 2C 00 00 01 */ cmpwi r0, 1
+/* 80031FD4 0002DC34 40 82 00 0C */ bne lbl_80031FE0
+/* 80031FD8 0002DC38 80 BD 00 24 */ lwz r5, 0x24(r29)
+/* 80031FDC 0002DC3C 48 00 00 2C */ b lbl_80032008
+lbl_80031FE0:
+/* 80031FE0 0002DC40 2C 00 00 02 */ cmpwi r0, 2
+/* 80031FE4 0002DC44 40 82 00 18 */ bne lbl_80031FFC
+/* 80031FE8 0002DC48 C0 1D 00 24 */ lfs f0, 0x24(r29)
+/* 80031FEC 0002DC4C FC 00 00 1E */ fctiwz f0, f0
+/* 80031FF0 0002DC50 D8 01 00 90 */ stfd f0, 0x90(r1)
+/* 80031FF4 0002DC54 80 61 00 94 */ lwz r3, 0x94(r1)
+/* 80031FF8 0002DC58 48 00 00 0C */ b lbl_80032004
+lbl_80031FFC:
+/* 80031FFC 0002DC5C 38 7D 00 20 */ addi r3, r29, 0x20
+/* 80032000 0002DC60 48 1F BD 35 */ bl func_8022DD34
+lbl_80032004:
+/* 80032004 0002DC64 7C 65 1B 78 */ mr r5, r3
+lbl_80032008:
+/* 80032008 0002DC68 7F E3 FB 78 */ mr r3, r31
+/* 8003200C 0002DC6C 7F 84 E3 78 */ mr r4, r28
+/* 80032010 0002DC70 48 01 C1 59 */ bl func_8004E168
+lbl_80032014:
+/* 80032014 0002DC74 C0 22 81 94 */ lfs f1, lbl_80640794-_SDA2_BASE_(r2)
+/* 80032018 0002DC78 7F E3 FB 78 */ mr r3, r31
+/* 8003201C 0002DC7C 48 01 C7 AD */ bl func_8004E7C8
+/* 80032020 0002DC80 48 00 01 80 */ b lbl_800321A0
+/* 80032024 0002DC84 80 7F 00 40 */ lwz r3, 0x40(r31)
+/* 80032028 0002DC88 2C 03 00 00 */ cmpwi r3, 0
+/* 8003202C 0002DC8C 41 82 01 74 */ beq lbl_800321A0
+/* 80032030 0002DC90 80 03 01 04 */ lwz r0, 0x104(r3)
+/* 80032034 0002DC94 C0 02 81 94 */ lfs f0, lbl_80640794-_SDA2_BASE_(r2)
+/* 80032038 0002DC98 60 00 00 04 */ ori r0, r0, 4
+/* 8003203C 0002DC9C 90 03 01 04 */ stw r0, 0x104(r3)
+/* 80032040 0002DCA0 D0 03 01 10 */ stfs f0, 0x110(r3)
+/* 80032044 0002DCA4 48 00 01 5C */ b lbl_800321A0
+/* 80032048 0002DCA8 80 7F 00 40 */ lwz r3, 0x40(r31)
+/* 8003204C 0002DCAC 2C 03 00 00 */ cmpwi r3, 0
+/* 80032050 0002DCB0 41 82 00 40 */ beq lbl_80032090
+/* 80032054 0002DCB4 80 03 01 04 */ lwz r0, 0x104(r3)
+/* 80032058 0002DCB8 54 00 07 FF */ clrlwi. r0, r0, 0x1f
+/* 8003205C 0002DCBC 41 82 00 0C */ beq lbl_80032068
+/* 80032060 0002DCC0 38 60 00 01 */ li r3, 1
+/* 80032064 0002DCC4 48 00 00 30 */ b lbl_80032094
+lbl_80032068:
+/* 80032068 0002DCC8 80 63 01 38 */ lwz r3, 0x138(r3)
+/* 8003206C 0002DCCC 2C 03 00 00 */ cmpwi r3, 0
+/* 80032070 0002DCD0 41 82 00 18 */ beq lbl_80032088
+/* 80032074 0002DCD4 A0 03 01 48 */ lhz r0, 0x148(r3)
+/* 80032078 0002DCD8 54 00 07 FF */ clrlwi. r0, r0, 0x1f
+/* 8003207C 0002DCDC 41 82 00 0C */ beq lbl_80032088
+/* 80032080 0002DCE0 38 60 00 01 */ li r3, 1
+/* 80032084 0002DCE4 48 00 00 10 */ b lbl_80032094
+lbl_80032088:
+/* 80032088 0002DCE8 38 60 00 00 */ li r3, 0
+/* 8003208C 0002DCEC 48 00 00 08 */ b lbl_80032094
+lbl_80032090:
+/* 80032090 0002DCF0 38 60 00 00 */ li r3, 0
+lbl_80032094:
+/* 80032094 0002DCF4 38 00 00 01 */ li r0, 1
+/* 80032098 0002DCF8 90 7E 00 04 */ stw r3, 4(r30)
+/* 8003209C 0002DCFC B0 1E 00 00 */ sth r0, 0(r30)
+/* 800320A0 0002DD00 48 00 01 00 */ b lbl_800321A0
+/* 800320A4 0002DD04 A8 1D 00 08 */ lha r0, 8(r29)
+/* 800320A8 0002DD08 2C 00 00 01 */ cmpwi r0, 1
+/* 800320AC 0002DD0C 40 82 00 0C */ bne lbl_800320B8
+/* 800320B0 0002DD10 80 9D 00 0C */ lwz r4, 0xc(r29)
+/* 800320B4 0002DD14 48 00 00 2C */ b lbl_800320E0
+lbl_800320B8:
+/* 800320B8 0002DD18 2C 00 00 02 */ cmpwi r0, 2
+/* 800320BC 0002DD1C 40 82 00 18 */ bne lbl_800320D4
+/* 800320C0 0002DD20 C0 1D 00 0C */ lfs f0, 0xc(r29)
+/* 800320C4 0002DD24 FC 00 00 1E */ fctiwz f0, f0
+/* 800320C8 0002DD28 D8 01 00 90 */ stfd f0, 0x90(r1)
+/* 800320CC 0002DD2C 80 61 00 94 */ lwz r3, 0x94(r1)
+/* 800320D0 0002DD30 48 00 00 0C */ b lbl_800320DC
+lbl_800320D4:
+/* 800320D4 0002DD34 38 7D 00 08 */ addi r3, r29, 8
+/* 800320D8 0002DD38 48 1F BC 5D */ bl func_8022DD34
+lbl_800320DC:
+/* 800320DC 0002DD3C 7C 64 1B 78 */ mr r4, r3
+lbl_800320E0:
+/* 800320E0 0002DD40 7F E3 FB 78 */ mr r3, r31
+/* 800320E4 0002DD44 48 01 C6 9D */ bl func_8004E780
+/* 800320E8 0002DD48 48 00 00 B8 */ b lbl_800321A0
+/* 800320EC 0002DD4C 7F E3 FB 78 */ mr r3, r31
+/* 800320F0 0002DD50 48 01 C6 A5 */ bl func_8004E794
+/* 800320F4 0002DD54 48 00 00 AC */ b lbl_800321A0
+/* 800320F8 0002DD58 80 1F 00 34 */ lwz r0, 0x34(r31)
+/* 800320FC 0002DD5C 60 00 00 04 */ ori r0, r0, 4
+/* 80032100 0002DD60 90 1F 00 34 */ stw r0, 0x34(r31)
+/* 80032104 0002DD64 48 00 00 9C */ b lbl_800321A0
+/* 80032108 0002DD68 A8 1D 00 08 */ lha r0, 8(r29)
+/* 8003210C 0002DD6C 2C 00 00 01 */ cmpwi r0, 1
+/* 80032110 0002DD70 40 82 00 0C */ bne lbl_8003211C
+/* 80032114 0002DD74 83 9D 00 0C */ lwz r28, 0xc(r29)
+/* 80032118 0002DD78 48 00 00 2C */ b lbl_80032144
+lbl_8003211C:
+/* 8003211C 0002DD7C 2C 00 00 02 */ cmpwi r0, 2
+/* 80032120 0002DD80 40 82 00 18 */ bne lbl_80032138
+/* 80032124 0002DD84 C0 1D 00 0C */ lfs f0, 0xc(r29)
+/* 80032128 0002DD88 FC 00 00 1E */ fctiwz f0, f0
+/* 8003212C 0002DD8C D8 01 00 90 */ stfd f0, 0x90(r1)
+/* 80032130 0002DD90 80 61 00 94 */ lwz r3, 0x94(r1)
+/* 80032134 0002DD94 48 00 00 0C */ b lbl_80032140
+lbl_80032138:
+/* 80032138 0002DD98 38 7D 00 08 */ addi r3, r29, 8
+/* 8003213C 0002DD9C 48 1F BB F9 */ bl func_8022DD34
+lbl_80032140:
+/* 80032140 0002DDA0 7C 7C 1B 78 */ mr r28, r3
+lbl_80032144:
+/* 80032144 0002DDA4 A8 1D 00 10 */ lha r0, 0x10(r29)
+/* 80032148 0002DDA8 2C 00 00 01 */ cmpwi r0, 1
+/* 8003214C 0002DDAC 40 82 00 0C */ bne lbl_80032158
+/* 80032150 0002DDB0 80 BD 00 14 */ lwz r5, 0x14(r29)
+/* 80032154 0002DDB4 48 00 00 2C */ b lbl_80032180
+lbl_80032158:
+/* 80032158 0002DDB8 2C 00 00 02 */ cmpwi r0, 2
+/* 8003215C 0002DDBC 40 82 00 18 */ bne lbl_80032174
+/* 80032160 0002DDC0 C0 1D 00 14 */ lfs f0, 0x14(r29)
+/* 80032164 0002DDC4 FC 00 00 1E */ fctiwz f0, f0
+/* 80032168 0002DDC8 D8 01 00 90 */ stfd f0, 0x90(r1)
+/* 8003216C 0002DDCC 80 61 00 94 */ lwz r3, 0x94(r1)
+/* 80032170 0002DDD0 48 00 00 0C */ b lbl_8003217C
+lbl_80032174:
+/* 80032174 0002DDD4 38 7D 00 10 */ addi r3, r29, 0x10
+/* 80032178 0002DDD8 48 1F BB BD */ bl func_8022DD34
+lbl_8003217C:
+/* 8003217C 0002DDDC 7C 65 1B 78 */ mr r5, r3
+lbl_80032180:
+/* 80032180 0002DDE0 7C 7C 00 D0 */ neg r3, r28
+/* 80032184 0002DDE4 7C 05 00 D0 */ neg r0, r5
+/* 80032188 0002DDE8 7C 64 E3 78 */ or r4, r3, r28
+/* 8003218C 0002DDEC 7C 00 2B 78 */ or r0, r0, r5
+/* 80032190 0002DDF0 7F E3 FB 78 */ mr r3, r31
+/* 80032194 0002DDF4 54 84 0F FE */ srwi r4, r4, 0x1f
+/* 80032198 0002DDF8 54 05 0F FE */ srwi r5, r0, 0x1f
+/* 8003219C 0002DDFC 48 01 C4 DD */ bl func_8004E678
+lbl_800321A0:
+/* 800321A0 0002DE00 38 60 00 01 */ li r3, 1
+lbl_800321A4:
+/* 800321A4 0002DE04 E3 E1 00 B8 */ psq_l f31, 184(r1), 0, qr0
+/* 800321A8 0002DE08 39 61 00 B0 */ addi r11, r1, 0xb0
+/* 800321AC 0002DE0C CB E1 00 B0 */ lfd f31, 0xb0(r1)
+/* 800321B0 0002DE10 48 19 4F C1 */ bl _restgpr_26
+/* 800321B4 0002DE14 80 01 00 C4 */ lwz r0, 0xc4(r1)
+/* 800321B8 0002DE18 7C 08 03 A6 */ mtlr r0
+/* 800321BC 0002DE1C 38 21 00 C0 */ addi r1, r1, 0xc0
+/* 800321C0 0002DE20 4E 80 00 20 */ blr
+
+.global func_800321C4
+func_800321C4:
+/* 800321C4 0002DE24 38 A0 00 01 */ li r5, 1
+/* 800321C8 0002DE28 38 6D 97 68 */ addi r3, r13, lbl_8063EA28-_SDA_BASE_
+/* 800321CC 0002DE2C 38 80 00 04 */ li r4, 4
+/* 800321D0 0002DE30 38 00 00 00 */ li r0, 0
+/* 800321D4 0002DE34 98 AD 97 68 */ stb r5, lbl_8063EA28-_SDA_BASE_(r13)
+/* 800321D8 0002DE38 B0 83 00 02 */ sth r4, 2(r3)
+/* 800321DC 0002DE3C 98 03 00 04 */ stb r0, 4(r3)
+/* 800321E0 0002DE40 4E 80 00 20 */ blr