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

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

.global func_80247038
func_80247038:
/* 80247038 00242C98  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 8024703C 00242C9C  7C 08 02 A6 */	mflr r0
/* 80247040 00242CA0  90 01 00 14 */	stw r0, 0x14(r1)
/* 80247044 00242CA4  38 04 00 01 */	addi r0, r4, 1
/* 80247048 00242CA8  93 E1 00 0C */	stw r31, 0xc(r1)
/* 8024704C 00242CAC  7C 7F 1B 78 */	mr r31, r3
/* 80247050 00242CB0  90 83 00 00 */	stw r4, 0(r3)
/* 80247054 00242CB4  54 03 10 3A */	slwi r3, r0, 2
/* 80247058 00242CB8  4B F9 3A 1D */	bl __nwa__FUl
/* 8024705C 00242CBC  2C 03 00 00 */	cmpwi r3, 0
/* 80247060 00242CC0  90 7F 00 04 */	stw r3, 4(r31)
/* 80247064 00242CC4  41 82 00 0C */	beq lbl_80247070
/* 80247068 00242CC8  38 00 00 00 */	li r0, 0
/* 8024706C 00242CCC  90 03 00 00 */	stw r0, 0(r3)
lbl_80247070:
/* 80247070 00242CD0  7F E3 FB 78 */	mr r3, r31
/* 80247074 00242CD4  83 E1 00 0C */	lwz r31, 0xc(r1)
/* 80247078 00242CD8  80 01 00 14 */	lwz r0, 0x14(r1)
/* 8024707C 00242CDC  7C 08 03 A6 */	mtlr r0
/* 80247080 00242CE0  38 21 00 10 */	addi r1, r1, 0x10
/* 80247084 00242CE4  4E 80 00 20 */	blr

.global func_80247088
func_80247088:
/* 80247088 00242CE8  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 8024708C 00242CEC  7C 08 02 A6 */	mflr r0
/* 80247090 00242CF0  2C 03 00 00 */	cmpwi r3, 0
/* 80247094 00242CF4  90 01 00 14 */	stw r0, 0x14(r1)
/* 80247098 00242CF8  93 E1 00 0C */	stw r31, 0xc(r1)
/* 8024709C 00242CFC  7C 9F 23 78 */	mr r31, r4
/* 802470A0 00242D00  93 C1 00 08 */	stw r30, 8(r1)
/* 802470A4 00242D04  7C 7E 1B 78 */	mr r30, r3
/* 802470A8 00242D08  41 82 00 24 */	beq lbl_802470CC
/* 802470AC 00242D0C  80 63 00 04 */	lwz r3, 4(r3)
/* 802470B0 00242D10  2C 03 00 00 */	cmpwi r3, 0
/* 802470B4 00242D14  41 82 00 08 */	beq lbl_802470BC
/* 802470B8 00242D18  4B F9 3A 05 */	bl __dla__FPv
lbl_802470BC:
/* 802470BC 00242D1C  2C 1F 00 00 */	cmpwi r31, 0
/* 802470C0 00242D20  40 81 00 0C */	ble lbl_802470CC
/* 802470C4 00242D24  7F C3 F3 78 */	mr r3, r30
/* 802470C8 00242D28  4B F9 39 F1 */	bl __dl__FPv
lbl_802470CC:
/* 802470CC 00242D2C  7F C3 F3 78 */	mr r3, r30
/* 802470D0 00242D30  83 E1 00 0C */	lwz r31, 0xc(r1)
/* 802470D4 00242D34  83 C1 00 08 */	lwz r30, 8(r1)
/* 802470D8 00242D38  80 01 00 14 */	lwz r0, 0x14(r1)
/* 802470DC 00242D3C  7C 08 03 A6 */	mtlr r0
/* 802470E0 00242D40  38 21 00 10 */	addi r1, r1, 0x10
/* 802470E4 00242D44  4E 80 00 20 */	blr

.global func_802470E8
func_802470E8:
/* 802470E8 00242D48  80 63 00 04 */	lwz r3, 4(r3)
/* 802470EC 00242D4C  2C 03 00 00 */	cmpwi r3, 0
/* 802470F0 00242D50  41 82 00 18 */	beq lbl_80247108
/* 802470F4 00242D54  80 03 00 00 */	lwz r0, 0(r3)
/* 802470F8 00242D58  2C 00 00 00 */	cmpwi r0, 0
/* 802470FC 00242D5C  41 82 00 0C */	beq lbl_80247108
/* 80247100 00242D60  38 60 00 00 */	li r3, 0
/* 80247104 00242D64  4E 80 00 20 */	blr
lbl_80247108:
/* 80247108 00242D68  38 60 00 01 */	li r3, 1
/* 8024710C 00242D6C  4E 80 00 20 */	blr

.global func_80247110
func_80247110:
/* 80247110 00242D70  80 03 00 00 */	lwz r0, 0(r3)
/* 80247114 00242D74  38 E0 00 00 */	li r7, 0
/* 80247118 00242D78  38 A0 00 00 */	li r5, 0
/* 8024711C 00242D7C  7C 09 03 A6 */	mtctr r0
/* 80247120 00242D80  2C 00 00 00 */	cmpwi r0, 0
/* 80247124 00242D84  40 81 00 54 */	ble lbl_80247178
lbl_80247128:
/* 80247128 00242D88  80 C3 00 04 */	lwz r6, 4(r3)
/* 8024712C 00242D8C  7C 06 28 2E */	lwzx r0, r6, r5
/* 80247130 00242D90  7C 04 00 40 */	cmplw r4, r0
/* 80247134 00242D94  40 82 00 0C */	bne lbl_80247140
/* 80247138 00242D98  38 60 00 01 */	li r3, 1
/* 8024713C 00242D9C  4E 80 00 20 */	blr
lbl_80247140:
/* 80247140 00242DA0  2C 00 00 00 */	cmpwi r0, 0
/* 80247144 00242DA4  40 82 00 28 */	bne lbl_8024716C
/* 80247148 00242DA8  54 E5 10 3A */	slwi r5, r7, 2
/* 8024714C 00242DAC  38 07 00 01 */	addi r0, r7, 1
/* 80247150 00242DB0  7C 86 29 2E */	stwx r4, r6, r5
/* 80247154 00242DB4  54 00 10 3A */	slwi r0, r0, 2
/* 80247158 00242DB8  38 A0 00 00 */	li r5, 0
/* 8024715C 00242DBC  80 83 00 04 */	lwz r4, 4(r3)
/* 80247160 00242DC0  38 60 00 01 */	li r3, 1
/* 80247164 00242DC4  7C A4 01 2E */	stwx r5, r4, r0
/* 80247168 00242DC8  4E 80 00 20 */	blr
lbl_8024716C:
/* 8024716C 00242DCC  38 A5 00 04 */	addi r5, r5, 4
/* 80247170 00242DD0  38 E7 00 01 */	addi r7, r7, 1
/* 80247174 00242DD4  42 00 FF B4 */	bdnz lbl_80247128
lbl_80247178:
/* 80247178 00242DD8  38 60 00 00 */	li r3, 0
/* 8024717C 00242DDC  4E 80 00 20 */	blr

.global func_80247180
func_80247180:
/* 80247180 00242DE0  80 63 00 04 */	lwz r3, 4(r3)
/* 80247184 00242DE4  4E 80 00 20 */	blr

.global func_80247188
func_80247188:
/* 80247188 00242DE8  94 21 FF E0 */	stwu r1, -0x20(r1)
/* 8024718C 00242DEC  7C 08 02 A6 */	mflr r0
/* 80247190 00242DF0  90 01 00 24 */	stw r0, 0x24(r1)
/* 80247194 00242DF4  93 E1 00 1C */	stw r31, 0x1c(r1)
/* 80247198 00242DF8  93 C1 00 18 */	stw r30, 0x18(r1)
/* 8024719C 00242DFC  7C 9E 23 78 */	mr r30, r4
/* 802471A0 00242E00  93 A1 00 14 */	stw r29, 0x14(r1)
/* 802471A4 00242E04  7C 7D 1B 78 */	mr r29, r3
/* 802471A8 00242E08  80 03 00 04 */	lwz r0, 4(r3)
/* 802471AC 00242E0C  2C 00 00 00 */	cmpwi r0, 0
/* 802471B0 00242E10  41 82 00 28 */	beq lbl_802471D8
/* 802471B4 00242E14  3B E0 00 00 */	li r31, 0
/* 802471B8 00242E18  48 00 00 10 */	b lbl_802471C8
lbl_802471BC:
/* 802471BC 00242E1C  7F C3 F3 78 */	mr r3, r30
/* 802471C0 00242E20  4B F9 43 3D */	bl func_801DB4FC
/* 802471C4 00242E24  3B FF 00 04 */	addi r31, r31, 4
lbl_802471C8:
/* 802471C8 00242E28  80 7D 00 04 */	lwz r3, 4(r29)
/* 802471CC 00242E2C  7C 83 F8 2E */	lwzx r4, r3, r31
/* 802471D0 00242E30  2C 04 00 00 */	cmpwi r4, 0
/* 802471D4 00242E34  40 82 FF E8 */	bne lbl_802471BC
lbl_802471D8:
/* 802471D8 00242E38  80 01 00 24 */	lwz r0, 0x24(r1)
/* 802471DC 00242E3C  83 E1 00 1C */	lwz r31, 0x1c(r1)
/* 802471E0 00242E40  83 C1 00 18 */	lwz r30, 0x18(r1)
/* 802471E4 00242E44  83 A1 00 14 */	lwz r29, 0x14(r1)
/* 802471E8 00242E48  7C 08 03 A6 */	mtlr r0
/* 802471EC 00242E4C  38 21 00 20 */	addi r1, r1, 0x20
/* 802471F0 00242E50  4E 80 00 20 */	blr

.global func_802471F4
func_802471F4:
/* 802471F4 00242E54  94 21 FF E0 */	stwu r1, -0x20(r1)
/* 802471F8 00242E58  7C 08 02 A6 */	mflr r0
/* 802471FC 00242E5C  90 01 00 24 */	stw r0, 0x24(r1)
/* 80247200 00242E60  93 E1 00 1C */	stw r31, 0x1c(r1)
/* 80247204 00242E64  93 C1 00 18 */	stw r30, 0x18(r1)
/* 80247208 00242E68  7C 9E 23 78 */	mr r30, r4
/* 8024720C 00242E6C  93 A1 00 14 */	stw r29, 0x14(r1)
/* 80247210 00242E70  7C 7D 1B 78 */	mr r29, r3
/* 80247214 00242E74  80 03 00 04 */	lwz r0, 4(r3)
/* 80247218 00242E78  2C 00 00 00 */	cmpwi r0, 0
/* 8024721C 00242E7C  41 82 00 28 */	beq lbl_80247244
/* 80247220 00242E80  3B E0 00 00 */	li r31, 0
/* 80247224 00242E84  48 00 00 10 */	b lbl_80247234
lbl_80247228:
/* 80247228 00242E88  7F C3 F3 78 */	mr r3, r30
/* 8024722C 00242E8C  4B F9 43 1D */	bl func_801DB548
/* 80247230 00242E90  3B FF 00 04 */	addi r31, r31, 4
lbl_80247234:
/* 80247234 00242E94  80 7D 00 04 */	lwz r3, 4(r29)
/* 80247238 00242E98  7C 83 F8 2E */	lwzx r4, r3, r31
/* 8024723C 00242E9C  2C 04 00 00 */	cmpwi r4, 0
/* 80247240 00242EA0  40 82 FF E8 */	bne lbl_80247228
lbl_80247244:
/* 80247244 00242EA4  80 01 00 24 */	lwz r0, 0x24(r1)
/* 80247248 00242EA8  83 E1 00 1C */	lwz r31, 0x1c(r1)
/* 8024724C 00242EAC  83 C1 00 18 */	lwz r30, 0x18(r1)
/* 80247250 00242EB0  83 A1 00 14 */	lwz r29, 0x14(r1)
/* 80247254 00242EB4  7C 08 03 A6 */	mtlr r0
/* 80247258 00242EB8  38 21 00 20 */	addi r1, r1, 0x20
/* 8024725C 00242EBC  4E 80 00 20 */	blr

.global func_80247260
func_80247260:
/* 80247260 00242EC0  38 A0 00 01 */	li r5, 1
/* 80247264 00242EC4  38 6D A5 88 */	addi r3, r13, lbl_8063F848-_SDA_BASE_
/* 80247268 00242EC8  38 80 00 04 */	li r4, 4
/* 8024726C 00242ECC  38 00 00 00 */	li r0, 0
/* 80247270 00242ED0  98 AD A5 88 */	stb r5, lbl_8063F848-_SDA_BASE_(r13)
/* 80247274 00242ED4  B0 83 00 02 */	sth r4, 2(r3)
/* 80247278 00242ED8  98 03 00 04 */	stb r0, 4(r3)
/* 8024727C 00242EDC  4E 80 00 20 */	blr