summaryrefslogtreecommitdiff
path: root/asm/code_80157854.s
diff options
context:
space:
mode:
authorMax <mparisi@stevens.edu>2020-10-15 12:40:00 -0400
committerMax <mparisi@stevens.edu>2020-10-15 12:40:00 -0400
commit2e8cc28cb1295d67beef38ec46b5f56ae5c15aaf (patch)
tree3e499ee3bddebeeb78dc01ad03228e3a7e524f86 /asm/code_80157854.s
parentdec85bbe62409ebef073caa70474050768784429 (diff)
split text_3 and most of text_4, with linker errors
Diffstat (limited to 'asm/code_80157854.s')
-rw-r--r--asm/code_80157854.s669
1 files changed, 669 insertions, 0 deletions
diff --git a/asm/code_80157854.s b/asm/code_80157854.s
new file mode 100644
index 0000000..74f7796
--- /dev/null
+++ b/asm/code_80157854.s
@@ -0,0 +1,669 @@
+.include "macros.inc"
+
+.section .text, "ax" # 0x80006980 - 0x803E1E60
+
+.global func_80157854
+func_80157854:
+/* 80157854 001534B4 4E 80 00 20 */ blr
+
+.global func_80157858
+func_80157858:
+/* 80157858 001534B8 3C 80 80 42 */ lis r4, lbl_8041E8E4@ha
+/* 8015785C 001534BC 38 00 00 00 */ li r0, 0
+/* 80157860 001534C0 38 84 E8 E4 */ addi r4, r4, lbl_8041E8E4@l
+/* 80157864 001534C4 90 03 00 04 */ stw r0, 4(r3)
+/* 80157868 001534C8 90 83 00 00 */ stw r4, 0(r3)
+/* 8015786C 001534CC 90 03 00 08 */ stw r0, 8(r3)
+/* 80157870 001534D0 90 03 00 0C */ stw r0, 0xc(r3)
+/* 80157874 001534D4 90 03 00 10 */ stw r0, 0x10(r3)
+/* 80157878 001534D8 90 03 00 14 */ stw r0, 0x14(r3)
+/* 8015787C 001534DC 90 03 00 18 */ stw r0, 0x18(r3)
+/* 80157880 001534E0 98 03 00 1C */ stb r0, 0x1c(r3)
+/* 80157884 001534E4 98 03 00 1D */ stb r0, 0x1d(r3)
+/* 80157888 001534E8 4E 80 00 20 */ blr
+lbl_8015788C:
+/* 8015788C 001534EC 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 80157890 001534F0 7C 08 02 A6 */ mflr r0
+/* 80157894 001534F4 2C 03 00 00 */ cmpwi r3, 0
+/* 80157898 001534F8 90 01 00 14 */ stw r0, 0x14(r1)
+/* 8015789C 001534FC 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 801578A0 00153500 7C 7F 1B 78 */ mr r31, r3
+/* 801578A4 00153504 41 82 00 10 */ beq lbl_801578B4
+/* 801578A8 00153508 2C 04 00 00 */ cmpwi r4, 0
+/* 801578AC 0015350C 40 81 00 08 */ ble lbl_801578B4
+/* 801578B0 00153510 48 08 32 09 */ bl func_801DAAB8
+lbl_801578B4:
+/* 801578B4 00153514 7F E3 FB 78 */ mr r3, r31
+/* 801578B8 00153518 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 801578BC 0015351C 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 801578C0 00153520 7C 08 03 A6 */ mtlr r0
+/* 801578C4 00153524 38 21 00 10 */ addi r1, r1, 0x10
+/* 801578C8 00153528 4E 80 00 20 */ blr
+/* 801578CC 0015352C 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 801578D0 00153530 7C 08 02 A6 */ mflr r0
+/* 801578D4 00153534 90 01 00 14 */ stw r0, 0x14(r1)
+/* 801578D8 00153538 38 00 00 00 */ li r0, 0
+/* 801578DC 0015353C 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 801578E0 00153540 7C 7F 1B 78 */ mr r31, r3
+/* 801578E4 00153544 90 03 00 04 */ stw r0, 4(r3)
+/* 801578E8 00153548 4B EB 1F 09 */ bl func_800097F0
+/* 801578EC 0015354C 38 00 00 01 */ li r0, 1
+/* 801578F0 00153550 98 1F 00 1D */ stb r0, 0x1d(r31)
+/* 801578F4 00153554 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 801578F8 00153558 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 801578FC 0015355C 7C 08 03 A6 */ mtlr r0
+/* 80157900 00153560 38 21 00 10 */ addi r1, r1, 0x10
+/* 80157904 00153564 4E 80 00 20 */ blr
+
+.global func_80157908
+func_80157908:
+/* 80157908 00153568 80 A3 00 08 */ lwz r5, 8(r3)
+/* 8015790C 0015356C 39 00 00 00 */ li r8, 0
+/* 80157910 00153570 80 A5 00 00 */ lwz r5, 0(r5)
+/* 80157914 00153574 A1 25 00 18 */ lhz r9, 0x18(r5)
+/* 80157918 00153578 48 00 00 70 */ b lbl_80157988
+lbl_8015791C:
+/* 8015791C 0015357C 80 A3 00 08 */ lwz r5, 8(r3)
+/* 80157920 00153580 80 E5 00 04 */ lwz r7, 4(r5)
+/* 80157924 00153584 2C 07 00 00 */ cmpwi r7, 0
+/* 80157928 00153588 40 82 00 0C */ bne lbl_80157934
+/* 8015792C 0015358C 38 A0 00 00 */ li r5, 0
+/* 80157930 00153590 48 00 00 28 */ b lbl_80157958
+lbl_80157934:
+/* 80157934 00153594 80 A5 00 00 */ lwz r5, 0(r5)
+/* 80157938 00153598 55 06 04 3E */ clrlwi r6, r8, 0x10
+/* 8015793C 0015359C A0 05 00 18 */ lhz r0, 0x18(r5)
+/* 80157940 001535A0 7C 06 00 40 */ cmplw r6, r0
+/* 80157944 001535A4 41 80 00 0C */ blt lbl_80157950
+/* 80157948 001535A8 38 A0 00 00 */ li r5, 0
+/* 8015794C 001535AC 48 00 00 0C */ b lbl_80157958
+lbl_80157950:
+/* 80157950 001535B0 55 00 13 BA */ rlwinm r0, r8, 2, 0xe, 0x1d
+/* 80157954 001535B4 7C A7 00 2E */ lwzx r5, r7, r0
+lbl_80157958:
+/* 80157958 001535B8 2C 05 00 00 */ cmpwi r5, 0
+/* 8015795C 001535BC 41 82 00 28 */ beq lbl_80157984
+/* 80157960 001535C0 2C 04 00 00 */ cmpwi r4, 0
+/* 80157964 001535C4 41 82 00 14 */ beq lbl_80157978
+/* 80157968 001535C8 A0 05 00 DC */ lhz r0, 0xdc(r5)
+/* 8015796C 001535CC 60 00 00 01 */ ori r0, r0, 1
+/* 80157970 001535D0 B0 05 00 DC */ sth r0, 0xdc(r5)
+/* 80157974 001535D4 48 00 00 10 */ b lbl_80157984
+lbl_80157978:
+/* 80157978 001535D8 A0 05 00 DC */ lhz r0, 0xdc(r5)
+/* 8015797C 001535DC 54 00 04 3C */ rlwinm r0, r0, 0, 0x10, 0x1e
+/* 80157980 001535E0 B0 05 00 DC */ sth r0, 0xdc(r5)
+lbl_80157984:
+/* 80157984 001535E4 39 08 00 01 */ addi r8, r8, 1
+lbl_80157988:
+/* 80157988 001535E8 55 00 04 3E */ clrlwi r0, r8, 0x10
+/* 8015798C 001535EC 7C 00 48 40 */ cmplw r0, r9
+/* 80157990 001535F0 41 80 FF 8C */ blt lbl_8015791C
+/* 80157994 001535F4 4E 80 00 20 */ blr
+/* 80157998 001535F8 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 8015799C 001535FC 7C 08 02 A6 */ mflr r0
+/* 801579A0 00153600 90 01 00 24 */ stw r0, 0x24(r1)
+/* 801579A4 00153604 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 801579A8 00153608 93 C1 00 18 */ stw r30, 0x18(r1)
+/* 801579AC 0015360C 7C 7E 1B 78 */ mr r30, r3
+/* 801579B0 00153610 93 A1 00 14 */ stw r29, 0x14(r1)
+/* 801579B4 00153614 3B A0 00 00 */ li r29, 0
+/* 801579B8 00153618 93 81 00 10 */ stw r28, 0x10(r1)
+/* 801579BC 0015361C 93 A3 00 04 */ stw r29, 4(r3)
+/* 801579C0 00153620 38 60 00 02 */ li r3, 2
+/* 801579C4 00153624 48 0E 36 95 */ bl func_8023B058
+/* 801579C8 00153628 2C 03 00 00 */ cmpwi r3, 0
+/* 801579CC 0015362C 7C 7F 1B 78 */ mr r31, r3
+/* 801579D0 00153630 41 82 02 50 */ beq lbl_80157C20
+/* 801579D4 00153634 38 60 04 07 */ li r3, 0x407
+/* 801579D8 00153638 48 0F 1C 05 */ bl func_802495DC
+/* 801579DC 0015363C 2C 03 00 00 */ cmpwi r3, 0
+/* 801579E0 00153640 41 82 02 40 */ beq lbl_80157C20
+/* 801579E4 00153644 3C 80 0B 51 */ lis r4, 0x0B510400@ha
+/* 801579E8 00153648 38 60 04 07 */ li r3, 0x407
+/* 801579EC 0015364C 38 84 04 00 */ addi r4, r4, 0x0B510400@l
+/* 801579F0 00153650 48 08 3A CD */ bl func_801DB4BC
+/* 801579F4 00153654 2C 03 00 00 */ cmpwi r3, 0
+/* 801579F8 00153658 7C 7C 1B 78 */ mr r28, r3
+/* 801579FC 0015365C 41 82 02 24 */ beq lbl_80157C20
+/* 80157A00 00153660 48 08 31 29 */ bl func_801DAB28
+/* 80157A04 00153664 2C 03 00 00 */ cmpwi r3, 0
+/* 80157A08 00153668 41 82 00 14 */ beq lbl_80157A1C
+/* 80157A0C 0015366C 80 6D 96 38 */ lwz r3, lbl_8063E8F8-_SDA_BASE_(r13)
+/* 80157A10 00153670 38 80 00 14 */ li r4, 0x14
+/* 80157A14 00153674 48 08 32 81 */ bl func_801DAC94
+/* 80157A18 00153678 48 00 00 08 */ b lbl_80157A20
+lbl_80157A1C:
+/* 80157A1C 0015367C 7F A3 EB 78 */ mr r3, r29
+lbl_80157A20:
+/* 80157A20 00153680 2C 03 00 00 */ cmpwi r3, 0
+/* 80157A24 00153684 41 82 00 0C */ beq lbl_80157A30
+/* 80157A28 00153688 7F 84 E3 78 */ mr r4, r28
+/* 80157A2C 0015368C 48 0A 26 69 */ bl func_801FA094
+lbl_80157A30:
+/* 80157A30 00153690 2C 03 00 00 */ cmpwi r3, 0
+/* 80157A34 00153694 90 7E 00 08 */ stw r3, 8(r30)
+/* 80157A38 00153698 41 82 01 E8 */ beq lbl_80157C20
+/* 80157A3C 0015369C 7F C3 F3 78 */ mr r3, r30
+/* 80157A40 001536A0 38 80 00 00 */ li r4, 0
+/* 80157A44 001536A4 4B FF FE C5 */ bl func_80157908
+/* 80157A48 001536A8 80 7E 00 08 */ lwz r3, 8(r30)
+/* 80157A4C 001536AC 48 0A AF 85 */ bl func_802029D0
+/* 80157A50 001536B0 3C 80 27 31 */ lis r4, 0x27310400@ha
+/* 80157A54 001536B4 38 60 04 07 */ li r3, 0x407
+/* 80157A58 001536B8 38 84 04 00 */ addi r4, r4, 0x27310400@l
+/* 80157A5C 001536BC 48 08 3A 61 */ bl func_801DB4BC
+/* 80157A60 001536C0 2C 03 00 00 */ cmpwi r3, 0
+/* 80157A64 001536C4 7C 7D 1B 78 */ mr r29, r3
+/* 80157A68 001536C8 41 82 01 B8 */ beq lbl_80157C20
+/* 80157A6C 001536CC 48 08 30 BD */ bl func_801DAB28
+/* 80157A70 001536D0 2C 03 00 00 */ cmpwi r3, 0
+/* 80157A74 001536D4 41 82 00 14 */ beq lbl_80157A88
+/* 80157A78 001536D8 80 6D 96 38 */ lwz r3, lbl_8063E8F8-_SDA_BASE_(r13)
+/* 80157A7C 001536DC 38 80 00 14 */ li r4, 0x14
+/* 80157A80 001536E0 48 08 32 15 */ bl func_801DAC94
+/* 80157A84 001536E4 48 00 00 08 */ b lbl_80157A8C
+lbl_80157A88:
+/* 80157A88 001536E8 38 60 00 00 */ li r3, 0
+lbl_80157A8C:
+/* 80157A8C 001536EC 2C 03 00 00 */ cmpwi r3, 0
+/* 80157A90 001536F0 41 82 00 0C */ beq lbl_80157A9C
+/* 80157A94 001536F4 7F A4 EB 78 */ mr r4, r29
+/* 80157A98 001536F8 48 0A 25 FD */ bl func_801FA094
+lbl_80157A9C:
+/* 80157A9C 001536FC 2C 03 00 00 */ cmpwi r3, 0
+/* 80157AA0 00153700 90 7E 00 0C */ stw r3, 0xc(r30)
+/* 80157AA4 00153704 41 82 01 7C */ beq lbl_80157C20
+/* 80157AA8 00153708 80 83 00 00 */ lwz r4, 0(r3)
+/* 80157AAC 0015370C A0 04 00 18 */ lhz r0, 0x18(r4)
+/* 80157AB0 00153710 2C 80 00 00 */ cmpwi cr1, r0, 0
+/* 80157AB4 00153714 41 86 01 6C */ beq cr1, lbl_80157C20
+/* 80157AB8 00153718 80 63 00 04 */ lwz r3, 4(r3)
+/* 80157ABC 0015371C 2C 03 00 00 */ cmpwi r3, 0
+/* 80157AC0 00153720 40 82 00 0C */ bne lbl_80157ACC
+/* 80157AC4 00153724 38 60 00 00 */ li r3, 0
+/* 80157AC8 00153728 48 00 00 14 */ b lbl_80157ADC
+lbl_80157ACC:
+/* 80157ACC 0015372C 40 86 00 0C */ bne cr1, lbl_80157AD8
+/* 80157AD0 00153730 38 60 00 00 */ li r3, 0
+/* 80157AD4 00153734 48 00 00 08 */ b lbl_80157ADC
+lbl_80157AD8:
+/* 80157AD8 00153738 80 63 00 00 */ lwz r3, 0(r3)
+lbl_80157ADC:
+/* 80157ADC 0015373C 2C 03 00 00 */ cmpwi r3, 0
+/* 80157AE0 00153740 90 7E 00 10 */ stw r3, 0x10(r30)
+/* 80157AE4 00153744 41 82 01 3C */ beq lbl_80157C20
+/* 80157AE8 00153748 A0 03 00 DC */ lhz r0, 0xdc(r3)
+/* 80157AEC 0015374C 54 00 04 3C */ rlwinm r0, r0, 0, 0x10, 0x1e
+/* 80157AF0 00153750 B0 03 00 DC */ sth r0, 0xdc(r3)
+/* 80157AF4 00153754 80 7E 00 10 */ lwz r3, 0x10(r30)
+/* 80157AF8 00153758 80 83 00 10 */ lwz r4, 0x10(r3)
+/* 80157AFC 0015375C 2C 04 00 00 */ cmpwi r4, 0
+/* 80157B00 00153760 40 82 00 0C */ bne lbl_80157B0C
+/* 80157B04 00153764 38 00 00 00 */ li r0, 0
+/* 80157B08 00153768 48 00 00 4C */ b lbl_80157B54
+lbl_80157B0C:
+/* 80157B0C 0015376C A0 03 00 E0 */ lhz r0, 0xe0(r3)
+/* 80157B10 00153770 2C 00 00 00 */ cmpwi r0, 0
+/* 80157B14 00153774 40 82 00 0C */ bne lbl_80157B20
+/* 80157B18 00153778 38 00 00 00 */ li r0, 0
+/* 80157B1C 0015377C 48 00 00 38 */ b lbl_80157B54
+lbl_80157B20:
+/* 80157B20 00153780 80 A3 00 08 */ lwz r5, 8(r3)
+/* 80157B24 00153784 A0 84 00 00 */ lhz r4, 0(r4)
+/* 80157B28 00153788 2C 05 00 00 */ cmpwi r5, 0
+/* 80157B2C 0015378C 40 82 00 0C */ bne lbl_80157B38
+/* 80157B30 00153790 38 00 00 00 */ li r0, 0
+/* 80157B34 00153794 48 00 00 20 */ b lbl_80157B54
+lbl_80157B38:
+/* 80157B38 00153798 A0 03 00 DE */ lhz r0, 0xde(r3)
+/* 80157B3C 0015379C 7C 04 00 40 */ cmplw r4, r0
+/* 80157B40 001537A0 41 80 00 0C */ blt lbl_80157B4C
+/* 80157B44 001537A4 38 00 00 00 */ li r0, 0
+/* 80157B48 001537A8 48 00 00 0C */ b lbl_80157B54
+lbl_80157B4C:
+/* 80157B4C 001537AC 54 80 13 BA */ rlwinm r0, r4, 2, 0xe, 0x1d
+/* 80157B50 001537B0 7C 05 00 2E */ lwzx r0, r5, r0
+lbl_80157B54:
+/* 80157B54 001537B4 2C 00 00 00 */ cmpwi r0, 0
+/* 80157B58 001537B8 90 1E 00 14 */ stw r0, 0x14(r30)
+/* 80157B5C 001537BC 41 82 00 C4 */ beq lbl_80157C20
+/* 80157B60 001537C0 3B A0 00 00 */ li r29, 0
+/* 80157B64 001537C4 3C 60 27 32 */ lis r3, 0x27320A00@ha
+/* 80157B68 001537C8 93 BF 00 20 */ stw r29, 0x20(r31)
+/* 80157B6C 001537CC 38 83 0A 00 */ addi r4, r3, 0x27320A00@l
+/* 80157B70 001537D0 38 60 04 07 */ li r3, 0x407
+/* 80157B74 001537D4 90 1F 00 0C */ stw r0, 0xc(r31)
+/* 80157B78 001537D8 48 08 39 45 */ bl func_801DB4BC
+/* 80157B7C 001537DC 2C 03 00 00 */ cmpwi r3, 0
+/* 80157B80 001537E0 7C 7C 1B 78 */ mr r28, r3
+/* 80157B84 001537E4 41 82 00 9C */ beq lbl_80157C20
+/* 80157B88 001537E8 48 08 2F A1 */ bl func_801DAB28
+/* 80157B8C 001537EC 2C 03 00 00 */ cmpwi r3, 0
+/* 80157B90 001537F0 41 82 00 14 */ beq lbl_80157BA4
+/* 80157B94 001537F4 80 6D 96 38 */ lwz r3, lbl_8063E8F8-_SDA_BASE_(r13)
+/* 80157B98 001537F8 38 80 01 40 */ li r4, 0x140
+/* 80157B9C 001537FC 48 08 30 F9 */ bl func_801DAC94
+/* 80157BA0 00153800 48 00 00 08 */ b lbl_80157BA8
+lbl_80157BA4:
+/* 80157BA4 00153804 7F A3 EB 78 */ mr r3, r29
+lbl_80157BA8:
+/* 80157BA8 00153808 2C 03 00 00 */ cmpwi r3, 0
+/* 80157BAC 0015380C 7C 64 1B 78 */ mr r4, r3
+/* 80157BB0 00153810 41 82 00 10 */ beq lbl_80157BC0
+/* 80157BB4 00153814 7F 84 E3 78 */ mr r4, r28
+/* 80157BB8 00153818 48 0A 1D 35 */ bl func_801F98EC
+/* 80157BBC 0015381C 7C 64 1B 78 */ mr r4, r3
+lbl_80157BC0:
+/* 80157BC0 00153820 2C 04 00 00 */ cmpwi r4, 0
+/* 80157BC4 00153824 90 9E 00 18 */ stw r4, 0x18(r30)
+/* 80157BC8 00153828 41 82 00 58 */ beq lbl_80157C20
+/* 80157BCC 0015382C A0 04 00 10 */ lhz r0, 0x10(r4)
+/* 80157BD0 00153830 38 60 00 0D */ li r3, 0xd
+/* 80157BD4 00153834 C0 02 8F 40 */ lfs f0, lbl_80641540-_SDA2_BASE_(r2)
+/* 80157BD8 00153838 54 00 07 FA */ rlwinm r0, r0, 0, 0x1f, 0x1d
+/* 80157BDC 0015383C B0 04 00 10 */ sth r0, 0x10(r4)
+/* 80157BE0 00153840 80 9E 00 18 */ lwz r4, 0x18(r30)
+/* 80157BE4 00153844 80 04 01 04 */ lwz r0, 0x104(r4)
+/* 80157BE8 00153848 60 00 00 04 */ ori r0, r0, 4
+/* 80157BEC 0015384C 90 04 01 04 */ stw r0, 0x104(r4)
+/* 80157BF0 00153850 D0 04 01 10 */ stfs f0, 0x110(r4)
+/* 80157BF4 00153854 4B EB 36 DD */ bl func_8000B2D0
+/* 80157BF8 00153858 38 00 00 01 */ li r0, 1
+/* 80157BFC 0015385C 38 60 02 7C */ li r3, 0x27c
+/* 80157C00 00153860 90 1E 00 04 */ stw r0, 4(r30)
+/* 80157C04 00153864 48 00 AE 8D */ bl func_80162A90
+/* 80157C08 00153868 28 03 00 03 */ cmplwi r3, 3
+/* 80157C0C 0015386C 40 82 00 1C */ bne lbl_80157C28
+/* 80157C10 00153870 4B EB 1B C9 */ bl func_800097D8
+/* 80157C14 00153874 38 00 00 00 */ li r0, 0
+/* 80157C18 00153878 98 1E 00 1D */ stb r0, 0x1d(r30)
+/* 80157C1C 0015387C 48 00 00 0C */ b lbl_80157C28
+lbl_80157C20:
+/* 80157C20 00153880 38 00 00 07 */ li r0, 7
+/* 80157C24 00153884 90 1E 00 04 */ stw r0, 4(r30)
+lbl_80157C28:
+/* 80157C28 00153888 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 80157C2C 0015388C 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 80157C30 00153890 83 C1 00 18 */ lwz r30, 0x18(r1)
+/* 80157C34 00153894 83 A1 00 14 */ lwz r29, 0x14(r1)
+/* 80157C38 00153898 83 81 00 10 */ lwz r28, 0x10(r1)
+/* 80157C3C 0015389C 7C 08 03 A6 */ mtlr r0
+/* 80157C40 001538A0 38 21 00 20 */ addi r1, r1, 0x20
+/* 80157C44 001538A4 4E 80 00 20 */ blr
+/* 80157C48 001538A8 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 80157C4C 001538AC 7C 08 02 A6 */ mflr r0
+/* 80157C50 001538B0 38 80 00 00 */ li r4, 0
+/* 80157C54 001538B4 90 01 00 24 */ stw r0, 0x24(r1)
+/* 80157C58 001538B8 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 80157C5C 001538BC 7C 7F 1B 78 */ mr r31, r3
+/* 80157C60 001538C0 93 C1 00 18 */ stw r30, 0x18(r1)
+/* 80157C64 001538C4 93 A1 00 14 */ stw r29, 0x14(r1)
+/* 80157C68 001538C8 93 81 00 10 */ stw r28, 0x10(r1)
+/* 80157C6C 001538CC 80 AD A3 D8 */ lwz r5, lbl_8063F698-_SDA_BASE_(r13)
+/* 80157C70 001538D0 88 05 00 82 */ lbz r0, 0x82(r5)
+/* 80157C74 001538D4 2C 00 00 00 */ cmpwi r0, 0
+/* 80157C78 001538D8 40 82 00 10 */ bne lbl_80157C88
+/* 80157C7C 001538DC 88 05 00 83 */ lbz r0, 0x83(r5)
+/* 80157C80 001538E0 2C 00 00 00 */ cmpwi r0, 0
+/* 80157C84 001538E4 41 82 00 08 */ beq lbl_80157C8C
+lbl_80157C88:
+/* 80157C88 001538E8 38 80 00 01 */ li r4, 1
+lbl_80157C8C:
+/* 80157C8C 001538EC 2C 04 00 00 */ cmpwi r4, 0
+/* 80157C90 001538F0 40 82 03 58 */ bne lbl_80157FE8
+/* 80157C94 001538F4 83 A3 00 04 */ lwz r29, 4(r3)
+/* 80157C98 001538F8 38 60 02 7C */ li r3, 0x27c
+/* 80157C9C 001538FC 48 00 AD F5 */ bl func_80162A90
+/* 80157CA0 00153900 28 03 00 03 */ cmplwi r3, 3
+/* 80157CA4 00153904 40 82 00 98 */ bne lbl_80157D3C
+/* 80157CA8 00153908 80 1F 00 04 */ lwz r0, 4(r31)
+/* 80157CAC 0015390C 2C 00 00 08 */ cmpwi r0, 8
+/* 80157CB0 00153910 41 82 00 8C */ beq lbl_80157D3C
+/* 80157CB4 00153914 2C 00 00 00 */ cmpwi r0, 0
+/* 80157CB8 00153918 41 82 00 84 */ beq lbl_80157D3C
+/* 80157CBC 0015391C 48 0E CB 11 */ bl func_802447CC
+/* 80157CC0 00153920 7C 7E 1B 78 */ mr r30, r3
+/* 80157CC4 00153924 3B 80 00 00 */ li r28, 0
+/* 80157CC8 00153928 48 00 00 68 */ b lbl_80157D30
+lbl_80157CCC:
+/* 80157CCC 0015392C 57 84 06 3E */ clrlwi r4, r28, 0x18
+/* 80157CD0 00153930 3C 60 04 00 */ lis r3, 0x400
+/* 80157CD4 00153934 7C 85 23 78 */ mr r5, r4
+/* 80157CD8 00153938 38 C0 00 01 */ li r6, 1
+/* 80157CDC 0015393C 4B F0 1D 91 */ bl func_80059A6C
+/* 80157CE0 00153940 2C 03 00 00 */ cmpwi r3, 0
+/* 80157CE4 00153944 41 82 00 48 */ beq lbl_80157D2C
+/* 80157CE8 00153948 38 00 00 07 */ li r0, 7
+/* 80157CEC 0015394C 38 60 00 0D */ li r3, 0xd
+/* 80157CF0 00153950 90 1F 00 04 */ stw r0, 4(r31)
+/* 80157CF4 00153954 4B EB 37 CD */ bl func_8000B4C0
+/* 80157CF8 00153958 2C 03 00 00 */ cmpwi r3, 0
+/* 80157CFC 0015395C 41 82 00 40 */ beq lbl_80157D3C
+/* 80157D00 00153960 C0 42 8F 48 */ lfs f2, lbl_80641548-_SDA2_BASE_(r2)
+/* 80157D04 00153964 38 60 00 0D */ li r3, 0xd
+/* 80157D08 00153968 C0 2D 86 C8 */ lfs f1, lbl_8063D988-_SDA_BASE_(r13)
+/* 80157D0C 0015396C C0 02 8F 44 */ lfs f0, lbl_80641544-_SDA2_BASE_(r2)
+/* 80157D10 00153970 EC 22 00 72 */ fmuls f1, f2, f1
+/* 80157D14 00153974 EC 00 08 2A */ fadds f0, f0, f1
+/* 80157D18 00153978 FC 00 00 1E */ fctiwz f0, f0
+/* 80157D1C 0015397C D8 01 00 08 */ stfd f0, 8(r1)
+/* 80157D20 00153980 80 81 00 0C */ lwz r4, 0xc(r1)
+/* 80157D24 00153984 4B EB 37 49 */ bl func_8000B46C
+/* 80157D28 00153988 48 00 00 14 */ b lbl_80157D3C
+lbl_80157D2C:
+/* 80157D2C 0015398C 3B 9C 00 01 */ addi r28, r28, 1
+lbl_80157D30:
+/* 80157D30 00153990 57 80 06 3E */ clrlwi r0, r28, 0x18
+/* 80157D34 00153994 7C 00 F0 00 */ cmpw r0, r30
+/* 80157D38 00153998 41 80 FF 94 */ blt lbl_80157CCC
+lbl_80157D3C:
+/* 80157D3C 0015399C 80 1F 00 04 */ lwz r0, 4(r31)
+/* 80157D40 001539A0 28 00 00 08 */ cmplwi r0, 8
+/* 80157D44 001539A4 41 81 02 A4 */ bgt lbl_80157FE8
+/* 80157D48 001539A8 3C 60 80 42 */ lis r3, lbl_8041E8C0@ha
+/* 80157D4C 001539AC 54 00 10 3A */ slwi r0, r0, 2
+/* 80157D50 001539B0 38 63 E8 C0 */ addi r3, r3, lbl_8041E8C0@l
+/* 80157D54 001539B4 7C 63 00 2E */ lwzx r3, r3, r0
+/* 80157D58 001539B8 7C 69 03 A6 */ mtctr r3
+/* 80157D5C 001539BC 4E 80 04 20 */ bctr
+/* 80157D60 001539C0 7F E3 FB 78 */ mr r3, r31
+/* 80157D64 001539C4 38 80 00 01 */ li r4, 1
+/* 80157D68 001539C8 4B FF FB A1 */ bl func_80157908
+/* 80157D6C 001539CC 80 7F 00 10 */ lwz r3, 0x10(r31)
+/* 80157D70 001539D0 38 80 00 00 */ li r4, 0
+/* 80157D74 001539D4 C0 22 8F 40 */ lfs f1, lbl_80641540-_SDA2_BASE_(r2)
+/* 80157D78 001539D8 38 A0 00 00 */ li r5, 0
+/* 80157D7C 001539DC A0 03 00 DC */ lhz r0, 0xdc(r3)
+/* 80157D80 001539E0 38 C0 00 00 */ li r6, 0
+/* 80157D84 001539E4 C0 42 8F 4C */ lfs f2, lbl_8064154C-_SDA2_BASE_(r2)
+/* 80157D88 001539E8 38 E0 00 00 */ li r7, 0
+/* 80157D8C 001539EC 60 00 00 01 */ ori r0, r0, 1
+/* 80157D90 001539F0 39 00 00 00 */ li r8, 0
+/* 80157D94 001539F4 B0 03 00 DC */ sth r0, 0xdc(r3)
+/* 80157D98 001539F8 80 7F 00 10 */ lwz r3, 0x10(r31)
+/* 80157D9C 001539FC 48 09 D0 59 */ bl func_801F4DF4
+/* 80157DA0 00153A00 C0 22 8F 50 */ lfs f1, lbl_80641550-_SDA2_BASE_(r2)
+/* 80157DA4 00153A04 38 60 00 01 */ li r3, 1
+/* 80157DA8 00153A08 4B EF 83 E5 */ bl func_8005018C
+/* 80157DAC 00153A0C 80 7F 00 18 */ lwz r3, 0x18(r31)
+/* 80157DB0 00153A10 2C 03 00 00 */ cmpwi r3, 0
+/* 80157DB4 00153A14 41 82 00 2C */ beq lbl_80157DE0
+/* 80157DB8 00153A18 A0 03 00 10 */ lhz r0, 0x10(r3)
+/* 80157DBC 00153A1C C0 02 8F 40 */ lfs f0, lbl_80641540-_SDA2_BASE_(r2)
+/* 80157DC0 00153A20 60 00 00 02 */ ori r0, r0, 2
+/* 80157DC4 00153A24 B0 03 00 10 */ sth r0, 0x10(r3)
+/* 80157DC8 00153A28 80 7F 00 18 */ lwz r3, 0x18(r31)
+/* 80157DCC 00153A2C 80 03 01 04 */ lwz r0, 0x104(r3)
+/* 80157DD0 00153A30 60 00 00 01 */ ori r0, r0, 1
+/* 80157DD4 00153A34 54 00 07 F8 */ rlwinm r0, r0, 0, 0x1f, 0x1c
+/* 80157DD8 00153A38 90 03 01 04 */ stw r0, 0x104(r3)
+/* 80157DDC 00153A3C D0 03 01 08 */ stfs f0, 0x108(r3)
+lbl_80157DE0:
+/* 80157DE0 00153A40 C0 22 8F 4C */ lfs f1, lbl_8064154C-_SDA2_BASE_(r2)
+/* 80157DE4 00153A44 38 60 00 0D */ li r3, 0xd
+/* 80157DE8 00153A48 38 80 00 00 */ li r4, 0
+/* 80157DEC 00153A4C 4B EB 33 85 */ bl func_8000B170
+/* 80157DF0 00153A50 38 00 00 02 */ li r0, 2
+/* 80157DF4 00153A54 90 1F 00 04 */ stw r0, 4(r31)
+/* 80157DF8 00153A58 48 00 01 F0 */ b lbl_80157FE8
+/* 80157DFC 00153A5C 80 7F 00 18 */ lwz r3, 0x18(r31)
+/* 80157E00 00153A60 3B 80 00 00 */ li r28, 0
+/* 80157E04 00153A64 2C 03 00 00 */ cmpwi r3, 0
+/* 80157E08 00153A68 41 82 00 48 */ beq lbl_80157E50
+/* 80157E0C 00153A6C 80 03 01 04 */ lwz r0, 0x104(r3)
+/* 80157E10 00153A70 54 00 07 FF */ clrlwi. r0, r0, 0x1f
+/* 80157E14 00153A74 41 82 00 0C */ beq lbl_80157E20
+/* 80157E18 00153A78 38 00 00 01 */ li r0, 1
+/* 80157E1C 00153A7C 48 00 00 28 */ b lbl_80157E44
+lbl_80157E20:
+/* 80157E20 00153A80 80 63 01 38 */ lwz r3, 0x138(r3)
+/* 80157E24 00153A84 2C 03 00 00 */ cmpwi r3, 0
+/* 80157E28 00153A88 41 82 00 18 */ beq lbl_80157E40
+/* 80157E2C 00153A8C A0 03 01 48 */ lhz r0, 0x148(r3)
+/* 80157E30 00153A90 54 00 07 FF */ clrlwi. r0, r0, 0x1f
+/* 80157E34 00153A94 41 82 00 0C */ beq lbl_80157E40
+/* 80157E38 00153A98 38 00 00 01 */ li r0, 1
+/* 80157E3C 00153A9C 48 00 00 08 */ b lbl_80157E44
+lbl_80157E40:
+/* 80157E40 00153AA0 38 00 00 00 */ li r0, 0
+lbl_80157E44:
+/* 80157E44 00153AA4 2C 00 00 00 */ cmpwi r0, 0
+/* 80157E48 00153AA8 41 82 00 08 */ beq lbl_80157E50
+/* 80157E4C 00153AAC 3B 80 00 01 */ li r28, 1
+lbl_80157E50:
+/* 80157E50 00153AB0 80 7F 00 10 */ lwz r3, 0x10(r31)
+/* 80157E54 00153AB4 48 09 DF 61 */ bl func_801F5DB4
+/* 80157E58 00153AB8 2C 03 00 00 */ cmpwi r3, 0
+/* 80157E5C 00153ABC 41 82 00 18 */ beq lbl_80157E74
+/* 80157E60 00153AC0 80 7F 00 10 */ lwz r3, 0x10(r31)
+/* 80157E64 00153AC4 48 09 E0 E9 */ bl func_801F5F4C
+/* 80157E68 00153AC8 2C 03 00 00 */ cmpwi r3, 0
+/* 80157E6C 00153ACC 40 82 00 08 */ bne lbl_80157E74
+/* 80157E70 00153AD0 3B 80 00 01 */ li r28, 1
+lbl_80157E74:
+/* 80157E74 00153AD4 2C 1C 00 00 */ cmpwi r28, 0
+/* 80157E78 00153AD8 40 82 01 70 */ bne lbl_80157FE8
+/* 80157E7C 00153ADC 80 7F 00 18 */ lwz r3, 0x18(r31)
+/* 80157E80 00153AE0 2C 03 00 00 */ cmpwi r3, 0
+/* 80157E84 00153AE4 41 82 00 18 */ beq lbl_80157E9C
+/* 80157E88 00153AE8 81 83 01 00 */ lwz r12, 0x100(r3)
+/* 80157E8C 00153AEC 38 80 00 01 */ li r4, 1
+/* 80157E90 00153AF0 81 8C 00 08 */ lwz r12, 8(r12)
+/* 80157E94 00153AF4 7D 89 03 A6 */ mtctr r12
+/* 80157E98 00153AF8 4E 80 04 21 */ bctrl
+lbl_80157E9C:
+/* 80157E9C 00153AFC 38 60 00 00 */ li r3, 0
+/* 80157EA0 00153B00 38 00 00 03 */ li r0, 3
+/* 80157EA4 00153B04 90 7F 00 18 */ stw r3, 0x18(r31)
+/* 80157EA8 00153B08 90 1F 00 04 */ stw r0, 4(r31)
+/* 80157EAC 00153B0C 48 00 01 3C */ b lbl_80157FE8
+/* 80157EB0 00153B10 C0 22 8F 50 */ lfs f1, lbl_80641550-_SDA2_BASE_(r2)
+/* 80157EB4 00153B14 38 60 00 02 */ li r3, 2
+/* 80157EB8 00153B18 4B EF 82 D5 */ bl func_8005018C
+/* 80157EBC 00153B1C 38 00 00 04 */ li r0, 4
+/* 80157EC0 00153B20 90 1F 00 04 */ stw r0, 4(r31)
+/* 80157EC4 00153B24 48 00 01 24 */ b lbl_80157FE8
+/* 80157EC8 00153B28 4B EF 83 F5 */ bl func_800502BC
+/* 80157ECC 00153B2C 2C 03 00 00 */ cmpwi r3, 0
+/* 80157ED0 00153B30 41 82 01 18 */ beq lbl_80157FE8
+/* 80157ED4 00153B34 C0 22 8F 50 */ lfs f1, lbl_80641550-_SDA2_BASE_(r2)
+/* 80157ED8 00153B38 38 60 00 01 */ li r3, 1
+/* 80157EDC 00153B3C 4B EF 82 B1 */ bl func_8005018C
+/* 80157EE0 00153B40 7F E3 FB 78 */ mr r3, r31
+/* 80157EE4 00153B44 38 80 00 00 */ li r4, 0
+/* 80157EE8 00153B48 4B FF FA 21 */ bl func_80157908
+/* 80157EEC 00153B4C 38 00 00 05 */ li r0, 5
+/* 80157EF0 00153B50 90 1F 00 04 */ stw r0, 4(r31)
+/* 80157EF4 00153B54 48 00 00 F4 */ b lbl_80157FE8
+/* 80157EF8 00153B58 38 60 00 0D */ li r3, 0xd
+/* 80157EFC 00153B5C 38 80 00 00 */ li r4, 0
+/* 80157F00 00153B60 4B EB 35 6D */ bl func_8000B46C
+/* 80157F04 00153B64 38 60 01 F5 */ li r3, 0x1f5
+/* 80157F08 00153B68 38 80 00 01 */ li r4, 1
+/* 80157F0C 00153B6C 38 A0 00 00 */ li r5, 0
+/* 80157F10 00153B70 38 C0 00 00 */ li r6, 0
+/* 80157F14 00153B74 38 E0 00 00 */ li r7, 0
+/* 80157F18 00153B78 48 10 18 81 */ bl func_80259798
+/* 80157F1C 00153B7C 38 60 01 F5 */ li r3, 0x1f5
+/* 80157F20 00153B80 48 10 19 81 */ bl func_802598A0
+/* 80157F24 00153B84 4B EA F5 DD */ bl func_80007500
+/* 80157F28 00153B88 38 60 00 01 */ li r3, 1
+/* 80157F2C 00153B8C 38 00 00 06 */ li r0, 6
+/* 80157F30 00153B90 98 7F 00 1C */ stb r3, 0x1c(r31)
+/* 80157F34 00153B94 90 1F 00 04 */ stw r0, 4(r31)
+/* 80157F38 00153B98 48 00 00 B0 */ b lbl_80157FE8
+/* 80157F3C 00153B9C 38 60 01 F5 */ li r3, 0x1f5
+/* 80157F40 00153BA0 48 10 19 99 */ bl func_802598D8
+/* 80157F44 00153BA4 2C 03 00 00 */ cmpwi r3, 0
+/* 80157F48 00153BA8 40 82 00 A0 */ bne lbl_80157FE8
+/* 80157F4C 00153BAC 38 60 01 F5 */ li r3, 0x1f5
+/* 80157F50 00153BB0 48 10 18 F5 */ bl func_80259844
+/* 80157F54 00153BB4 38 60 00 00 */ li r3, 0
+/* 80157F58 00153BB8 38 00 00 07 */ li r0, 7
+/* 80157F5C 00153BBC 98 7F 00 1C */ stb r3, 0x1c(r31)
+/* 80157F60 00153BC0 90 1F 00 04 */ stw r0, 4(r31)
+/* 80157F64 00153BC4 48 00 00 84 */ b lbl_80157FE8
+/* 80157F68 00153BC8 2C 1D 00 03 */ cmpwi r29, 3
+/* 80157F6C 00153BCC 41 82 00 18 */ beq lbl_80157F84
+/* 80157F70 00153BD0 2C 1D 00 04 */ cmpwi r29, 4
+/* 80157F74 00153BD4 41 82 00 10 */ beq lbl_80157F84
+/* 80157F78 00153BD8 C0 22 8F 50 */ lfs f1, lbl_80641550-_SDA2_BASE_(r2)
+/* 80157F7C 00153BDC 38 60 00 02 */ li r3, 2
+/* 80157F80 00153BE0 4B EF 82 0D */ bl func_8005018C
+lbl_80157F84:
+/* 80157F84 00153BE4 38 00 00 08 */ li r0, 8
+/* 80157F88 00153BE8 90 1F 00 04 */ stw r0, 4(r31)
+/* 80157F8C 00153BEC 48 00 00 5C */ b lbl_80157FE8
+/* 80157F90 00153BF0 4B EF 83 2D */ bl func_800502BC
+/* 80157F94 00153BF4 2C 03 00 00 */ cmpwi r3, 0
+/* 80157F98 00153BF8 41 82 00 50 */ beq lbl_80157FE8
+/* 80157F9C 00153BFC 4B EA F5 4D */ bl func_800074E8
+/* 80157FA0 00153C00 38 60 02 7C */ li r3, 0x27c
+/* 80157FA4 00153C04 48 00 AA ED */ bl func_80162A90
+/* 80157FA8 00153C08 28 03 00 03 */ cmplwi r3, 3
+/* 80157FAC 00153C0C 40 82 00 28 */ bne lbl_80157FD4
+/* 80157FB0 00153C10 38 60 01 99 */ li r3, 0x199
+/* 80157FB4 00153C14 38 80 00 01 */ li r4, 1
+/* 80157FB8 00153C18 38 A0 00 01 */ li r5, 1
+/* 80157FBC 00153C1C 48 00 A9 85 */ bl func_80162940
+/* 80157FC0 00153C20 4B EF E2 B5 */ bl func_80056274
+/* 80157FC4 00153C24 80 6D A3 80 */ lwz r3, lbl_8063F640-_SDA_BASE_(r13)
+/* 80157FC8 00153C28 38 80 08 34 */ li r4, 0x834
+/* 80157FCC 00153C2C 48 0C E7 DD */ bl func_802267A8
+/* 80157FD0 00153C30 48 00 00 10 */ b lbl_80157FE0
+lbl_80157FD4:
+/* 80157FD4 00153C34 80 6D A3 80 */ lwz r3, lbl_8063F640-_SDA_BASE_(r13)
+/* 80157FD8 00153C38 38 80 07 D0 */ li r4, 0x7d0
+/* 80157FDC 00153C3C 48 0C E7 CD */ bl func_802267A8
+lbl_80157FE0:
+/* 80157FE0 00153C40 38 00 00 00 */ li r0, 0
+/* 80157FE4 00153C44 90 1F 00 04 */ stw r0, 4(r31)
+lbl_80157FE8:
+/* 80157FE8 00153C48 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 80157FEC 00153C4C 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 80157FF0 00153C50 83 C1 00 18 */ lwz r30, 0x18(r1)
+/* 80157FF4 00153C54 83 A1 00 14 */ lwz r29, 0x14(r1)
+/* 80157FF8 00153C58 83 81 00 10 */ lwz r28, 0x10(r1)
+/* 80157FFC 00153C5C 7C 08 03 A6 */ mtlr r0
+/* 80158000 00153C60 38 21 00 20 */ addi r1, r1, 0x20
+/* 80158004 00153C64 4E 80 00 20 */ blr
+/* 80158008 00153C68 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 8015800C 00153C6C 7C 08 02 A6 */ mflr r0
+/* 80158010 00153C70 90 01 00 14 */ stw r0, 0x14(r1)
+/* 80158014 00153C74 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 80158018 00153C78 7C 7F 1B 78 */ mr r31, r3
+/* 8015801C 00153C7C 88 03 00 1D */ lbz r0, 0x1d(r3)
+/* 80158020 00153C80 2C 00 00 00 */ cmpwi r0, 0
+/* 80158024 00153C84 41 82 00 10 */ beq lbl_80158034
+/* 80158028 00153C88 4B EB 17 B1 */ bl func_800097D8
+/* 8015802C 00153C8C 38 00 00 00 */ li r0, 0
+/* 80158030 00153C90 98 1F 00 1D */ stb r0, 0x1d(r31)
+lbl_80158034:
+/* 80158034 00153C94 38 60 00 02 */ li r3, 2
+/* 80158038 00153C98 48 0E 30 21 */ bl func_8023B058
+/* 8015803C 00153C9C 2C 03 00 00 */ cmpwi r3, 0
+/* 80158040 00153CA0 41 82 00 1C */ beq lbl_8015805C
+/* 80158044 00153CA4 3C 80 80 49 */ lis r4, lbl_80496754@ha
+/* 80158048 00153CA8 38 00 00 00 */ li r0, 0
+/* 8015804C 00153CAC 38 84 67 54 */ addi r4, r4, lbl_80496754@l
+/* 80158050 00153CB0 80 84 00 04 */ lwz r4, 4(r4)
+/* 80158054 00153CB4 90 03 00 20 */ stw r0, 0x20(r3)
+/* 80158058 00153CB8 90 83 00 0C */ stw r4, 0xc(r3)
+lbl_8015805C:
+/* 8015805C 00153CBC 80 6D A1 50 */ lwz r3, lbl_8063F410-_SDA_BASE_(r13)
+/* 80158060 00153CC0 88 03 04 68 */ lbz r0, 0x468(r3)
+/* 80158064 00153CC4 2C 00 00 00 */ cmpwi r0, 0
+/* 80158068 00153CC8 41 82 00 08 */ beq lbl_80158070
+/* 8015806C 00153CCC 48 0A 6E FD */ bl func_801FEF68
+lbl_80158070:
+/* 80158070 00153CD0 88 1F 00 1C */ lbz r0, 0x1c(r31)
+/* 80158074 00153CD4 2C 00 00 00 */ cmpwi r0, 0
+/* 80158078 00153CD8 41 82 00 14 */ beq lbl_8015808C
+/* 8015807C 00153CDC 38 60 01 F5 */ li r3, 0x1f5
+/* 80158080 00153CE0 48 10 17 C5 */ bl func_80259844
+/* 80158084 00153CE4 38 00 00 00 */ li r0, 0
+/* 80158088 00153CE8 98 1F 00 1C */ stb r0, 0x1c(r31)
+lbl_8015808C:
+/* 8015808C 00153CEC 80 7F 00 18 */ lwz r3, 0x18(r31)
+/* 80158090 00153CF0 2C 03 00 00 */ cmpwi r3, 0
+/* 80158094 00153CF4 41 82 00 24 */ beq lbl_801580B8
+/* 80158098 00153CF8 41 82 00 18 */ beq lbl_801580B0
+/* 8015809C 00153CFC 81 83 01 00 */ lwz r12, 0x100(r3)
+/* 801580A0 00153D00 38 80 00 01 */ li r4, 1
+/* 801580A4 00153D04 81 8C 00 08 */ lwz r12, 8(r12)
+/* 801580A8 00153D08 7D 89 03 A6 */ mtctr r12
+/* 801580AC 00153D0C 4E 80 04 21 */ bctrl
+lbl_801580B0:
+/* 801580B0 00153D10 38 00 00 00 */ li r0, 0
+/* 801580B4 00153D14 90 1F 00 18 */ stw r0, 0x18(r31)
+lbl_801580B8:
+/* 801580B8 00153D18 80 7F 00 0C */ lwz r3, 0xc(r31)
+/* 801580BC 00153D1C 2C 03 00 00 */ cmpwi r3, 0
+/* 801580C0 00153D20 41 82 00 1C */ beq lbl_801580DC
+/* 801580C4 00153D24 38 80 00 01 */ li r4, 1
+/* 801580C8 00153D28 48 0A 21 CD */ bl func_801FA294
+/* 801580CC 00153D2C 38 00 00 00 */ li r0, 0
+/* 801580D0 00153D30 90 1F 00 0C */ stw r0, 0xc(r31)
+/* 801580D4 00153D34 90 1F 00 10 */ stw r0, 0x10(r31)
+/* 801580D8 00153D38 90 1F 00 14 */ stw r0, 0x14(r31)
+lbl_801580DC:
+/* 801580DC 00153D3C 80 7F 00 08 */ lwz r3, 8(r31)
+/* 801580E0 00153D40 2C 03 00 00 */ cmpwi r3, 0
+/* 801580E4 00153D44 41 82 00 14 */ beq lbl_801580F8
+/* 801580E8 00153D48 38 80 00 01 */ li r4, 1
+/* 801580EC 00153D4C 48 0A 21 A9 */ bl func_801FA294
+/* 801580F0 00153D50 38 00 00 00 */ li r0, 0
+/* 801580F4 00153D54 90 1F 00 08 */ stw r0, 8(r31)
+lbl_801580F8:
+/* 801580F8 00153D58 38 60 04 07 */ li r3, 0x407
+/* 801580FC 00153D5C 48 0F 17 95 */ bl func_80249890
+/* 80158100 00153D60 38 60 04 07 */ li r3, 0x407
+/* 80158104 00153D64 48 08 35 71 */ bl func_801DB674
+/* 80158108 00153D68 38 00 00 00 */ li r0, 0
+/* 8015810C 00153D6C 90 1F 00 04 */ stw r0, 4(r31)
+/* 80158110 00153D70 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 80158114 00153D74 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 80158118 00153D78 7C 08 03 A6 */ mtlr r0
+/* 8015811C 00153D7C 38 21 00 10 */ addi r1, r1, 0x10
+/* 80158120 00153D80 4E 80 00 20 */ blr
+/* 80158124 00153D84 38 00 00 00 */ li r0, 0
+/* 80158128 00153D88 90 03 00 04 */ stw r0, 4(r3)
+/* 8015812C 00153D8C 4E 80 00 20 */ blr
+
+.global func_80158130
+func_80158130:
+/* 80158130 00153D90 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 80158134 00153D94 7C 08 02 A6 */ mflr r0
+/* 80158138 00153D98 38 60 00 01 */ li r3, 1
+/* 8015813C 00153D9C 38 8D 9D 18 */ addi r4, r13, lbl_8063EFD8-_SDA_BASE_
+/* 80158140 00153DA0 90 01 00 14 */ stw r0, 0x14(r1)
+/* 80158144 00153DA4 38 A0 00 04 */ li r5, 4
+/* 80158148 00153DA8 38 00 00 00 */ li r0, 0
+/* 8015814C 00153DAC 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 80158150 00153DB0 3F E0 80 48 */ lis r31, lbl_80487558@ha
+/* 80158154 00153DB4 3B FF 75 58 */ addi r31, r31, lbl_80487558@l
+/* 80158158 00153DB8 98 6D 9D 18 */ stb r3, lbl_8063EFD8-_SDA_BASE_(r13)
+/* 8015815C 00153DBC 38 7F 00 10 */ addi r3, r31, 0x10
+/* 80158160 00153DC0 B0 A4 00 02 */ sth r5, 2(r4)
+/* 80158164 00153DC4 98 04 00 04 */ stb r0, 4(r4)
+/* 80158168 00153DC8 4B FF F6 F1 */ bl func_80157858
+/* 8015816C 00153DCC 3C 80 80 15 */ lis r4, lbl_8015788C@ha
+/* 80158170 00153DD0 38 7F 00 10 */ addi r3, r31, 0x10
+/* 80158174 00153DD4 38 84 78 8C */ addi r4, r4, lbl_8015788C@l
+/* 80158178 00153DD8 38 BF 00 00 */ addi r5, r31, 0
+/* 8015817C 00153DDC 48 06 EA CD */ bl __register_global_object_tmp
+/* 80158180 00153DE0 38 7F 00 3C */ addi r3, r31, 0x3c
+/* 80158184 00153DE4 38 BF 00 10 */ addi r5, r31, 0x10
+/* 80158188 00153DE8 38 80 0C 1C */ li r4, 0xc1c
+/* 8015818C 00153DEC 48 0C DC B9 */ bl func_80225E44
+/* 80158190 00153DF0 3C 80 80 22 */ lis r4, func_80225EE0@ha
+/* 80158194 00153DF4 38 7F 00 3C */ addi r3, r31, 0x3c
+/* 80158198 00153DF8 38 84 5E E0 */ addi r4, r4, func_80225EE0@l
+/* 8015819C 00153DFC 38 BF 00 30 */ addi r5, r31, 0x30
+/* 801581A0 00153E00 48 06 EA A9 */ bl __register_global_object_tmp
+/* 801581A4 00153E04 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 801581A8 00153E08 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 801581AC 00153E0C 7C 08 03 A6 */ mtlr r0
+/* 801581B0 00153E10 38 21 00 10 */ addi r1, r1, 0x10
+/* 801581B4 00153E14 4E 80 00 20 */ blr