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

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

.global free
free:
/* 8000A7C4 00006424  7C 64 1B 78 */	mr r4, r3
/* 8000A7C8 00006428  80 6D 96 2C */	lwz r3, lbl_8063E8EC-_SDA_BASE_(r13)
/* 8000A7CC 0000642C  48 1D 05 7C */	b func_801DAD48

.global func_8000A7D0
func_8000A7D0:
/* 8000A7D0 00006430  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 8000A7D4 00006434  7C 08 02 A6 */	mflr r0
/* 8000A7D8 00006438  2C 03 00 00 */	cmpwi r3, 0
/* 8000A7DC 0000643C  90 01 00 14 */	stw r0, 0x14(r1)
/* 8000A7E0 00006440  93 E1 00 0C */	stw r31, 0xc(r1)
/* 8000A7E4 00006444  7C 7F 1B 78 */	mr r31, r3
/* 8000A7E8 00006448  41 82 00 10 */	beq lbl_8000A7F8
/* 8000A7EC 0000644C  2C 04 00 00 */	cmpwi r4, 0
/* 8000A7F0 00006450  40 81 00 08 */	ble lbl_8000A7F8
/* 8000A7F4 00006454  48 1D 02 C5 */	bl __dl__FPv
lbl_8000A7F8:
/* 8000A7F8 00006458  7F E3 FB 78 */	mr r3, r31
/* 8000A7FC 0000645C  83 E1 00 0C */	lwz r31, 0xc(r1)
/* 8000A800 00006460  80 01 00 14 */	lwz r0, 0x14(r1)
/* 8000A804 00006464  7C 08 03 A6 */	mtlr r0
/* 8000A808 00006468  38 21 00 10 */	addi r1, r1, 0x10
/* 8000A80C 0000646C  4E 80 00 20 */	blr

.global func_8000A810
func_8000A810:
/* 8000A810 00006470  4E 80 00 20 */	blr

.global func_8000A814
func_8000A814:
/* 8000A814 00006474  94 21 FF E0 */	stwu r1, -0x20(r1)
/* 8000A818 00006478  7C 08 02 A6 */	mflr r0
/* 8000A81C 0000647C  90 01 00 24 */	stw r0, 0x24(r1)
/* 8000A820 00006480  38 00 00 01 */	li r0, 1
/* 8000A824 00006484  93 E1 00 1C */	stw r31, 0x1c(r1)
/* 8000A828 00006488  93 C1 00 18 */	stw r30, 0x18(r1)
/* 8000A82C 0000648C  93 A1 00 14 */	stw r29, 0x14(r1)
/* 8000A830 00006490  7C 9D 23 78 */	mr r29, r4
/* 8000A834 00006494  98 03 00 04 */	stb r0, 4(r3)
/* 8000A838 00006498  83 ED 96 F0 */	lwz r31, lbl_8063E9B0-_SDA_BASE_(r13)
/* 8000A83C 0000649C  2C 1F 00 00 */	cmpwi r31, 0
/* 8000A840 000064A0  41 82 00 28 */	beq lbl_8000A868
/* 8000A844 000064A4  3C A0 80 40 */	lis r5, lbl_80405E98@ha
/* 8000A848 000064A8  7F E3 FB 78 */	mr r3, r31
/* 8000A84C 000064AC  7F A6 EB 78 */	mr r6, r29
/* 8000A850 000064B0  38 80 00 01 */	li r4, 1
/* 8000A854 000064B4  38 A5 5E 98 */	addi r5, r5, lbl_80405E98@l
/* 8000A858 000064B8  38 E0 00 00 */	li r7, 0
/* 8000A85C 000064BC  39 00 00 00 */	li r8, 0
/* 8000A860 000064C0  39 20 00 00 */	li r9, 0
/* 8000A864 000064C4  48 01 AA 15 */	bl func_80025278
lbl_8000A868:
/* 8000A868 000064C8  48 00 02 D5 */	bl func_8000AB3C
/* 8000A86C 000064CC  2C 03 00 00 */	cmpwi r3, 0
/* 8000A870 000064D0  7C 7E 1B 78 */	mr r30, r3
/* 8000A874 000064D4  41 82 00 8C */	beq lbl_8000A900
/* 8000A878 000064D8  81 83 00 00 */	lwz r12, 0(r3)
/* 8000A87C 000064DC  81 8C 00 08 */	lwz r12, 8(r12)
/* 8000A880 000064E0  7D 89 03 A6 */	mtctr r12
/* 8000A884 000064E4  4E 80 04 21 */	bctrl
/* 8000A888 000064E8  2C 03 00 04 */	cmpwi r3, 4
/* 8000A88C 000064EC  41 82 00 0C */	beq lbl_8000A898
/* 8000A890 000064F0  40 80 00 3C */	bge lbl_8000A8CC
/* 8000A894 000064F4  48 00 00 38 */	b lbl_8000A8CC
lbl_8000A898:
/* 8000A898 000064F8  38 60 00 0C */	li r3, 0xc
/* 8000A89C 000064FC  48 23 ED 41 */	bl func_802495DC
/* 8000A8A0 00006500  2C 1F 00 00 */	cmpwi r31, 0
/* 8000A8A4 00006504  41 82 00 28 */	beq lbl_8000A8CC
/* 8000A8A8 00006508  3C A0 80 40 */	lis r5, lbl_80405E98@ha
/* 8000A8AC 0000650C  7F E3 FB 78 */	mr r3, r31
/* 8000A8B0 00006510  7F A6 EB 78 */	mr r6, r29
/* 8000A8B4 00006514  38 80 00 00 */	li r4, 0
/* 8000A8B8 00006518  38 A5 5E 98 */	addi r5, r5, lbl_80405E98@l
/* 8000A8BC 0000651C  38 E0 00 00 */	li r7, 0
/* 8000A8C0 00006520  39 00 00 00 */	li r8, 0
/* 8000A8C4 00006524  39 20 00 00 */	li r9, 0
/* 8000A8C8 00006528  48 01 AA 25 */	bl func_800252EC
lbl_8000A8CC:
/* 8000A8CC 0000652C  4B FF C7 C1 */	bl func_8000708C
/* 8000A8D0 00006530  2C 03 00 00 */	cmpwi r3, 0
/* 8000A8D4 00006534  41 82 00 2C */	beq lbl_8000A900
/* 8000A8D8 00006538  7F C3 F3 78 */	mr r3, r30
/* 8000A8DC 0000653C  48 00 02 49 */	bl func_8000AB24
/* 8000A8E0 00006540  54 60 04 3F */	clrlwi. r0, r3, 0x10
/* 8000A8E4 00006544  41 82 00 1C */	beq lbl_8000A900
/* 8000A8E8 00006548  7F C3 F3 78 */	mr r3, r30
/* 8000A8EC 0000654C  48 00 02 39 */	bl func_8000AB24
/* 8000A8F0 00006550  C0 22 80 70 */	lfs f1, lbl_80640670-_SDA2_BASE_(r2)
/* 8000A8F4 00006554  54 63 04 3E */	clrlwi r3, r3, 0x10
/* 8000A8F8 00006558  38 80 00 00 */	li r4, 0
/* 8000A8FC 0000655C  48 00 08 75 */	bl func_8000B170
lbl_8000A900:
/* 8000A900 00006560  80 01 00 24 */	lwz r0, 0x24(r1)
/* 8000A904 00006564  83 E1 00 1C */	lwz r31, 0x1c(r1)
/* 8000A908 00006568  83 C1 00 18 */	lwz r30, 0x18(r1)
/* 8000A90C 0000656C  83 A1 00 14 */	lwz r29, 0x14(r1)
/* 8000A910 00006570  7C 08 03 A6 */	mtlr r0
/* 8000A914 00006574  38 21 00 20 */	addi r1, r1, 0x20
/* 8000A918 00006578  4E 80 00 20 */	blr

.global func_8000A91C
func_8000A91C:
/* 8000A91C 0000657C  88 03 00 04 */	lbz r0, 4(r3)
/* 8000A920 00006580  2C 00 00 00 */	cmpwi r0, 0
/* 8000A924 00006584  4D 82 00 20 */	beqlr
/* 8000A928 00006588  38 00 00 00 */	li r0, 0
/* 8000A92C 0000658C  98 03 00 04 */	stb r0, 4(r3)
/* 8000A930 00006590  80 6D 96 F0 */	lwz r3, lbl_8063E9B0-_SDA_BASE_(r13)
/* 8000A934 00006594  2C 03 00 00 */	cmpwi r3, 0
/* 8000A938 00006598  4D 82 00 20 */	beqlr
/* 8000A93C 0000659C  7C 86 23 78 */	mr r6, r4
/* 8000A940 000065A0  38 80 00 01 */	li r4, 1
/* 8000A944 000065A4  38 AD 80 20 */	addi r5, r13, lbl_8063D2E0-_SDA_BASE_
/* 8000A948 000065A8  38 E0 00 00 */	li r7, 0
/* 8000A94C 000065AC  39 00 00 00 */	li r8, 0
/* 8000A950 000065B0  39 20 00 00 */	li r9, 0
/* 8000A954 000065B4  48 01 A9 24 */	b func_80025278
/* 8000A958 000065B8  4E 80 00 20 */	blr

.global func_8000A95C
func_8000A95C:
/* 8000A95C 000065BC  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 8000A960 000065C0  7C 08 02 A6 */	mflr r0
/* 8000A964 000065C4  90 01 00 14 */	stw r0, 0x14(r1)
/* 8000A968 000065C8  80 6D 96 F0 */	lwz r3, lbl_8063E9B0-_SDA_BASE_(r13)
/* 8000A96C 000065CC  2C 03 00 00 */	cmpwi r3, 0
/* 8000A970 000065D0  41 82 00 24 */	beq lbl_8000A994
/* 8000A974 000065D4  3C A0 80 40 */	lis r5, lbl_80405EA4@ha
/* 8000A978 000065D8  7C 86 23 78 */	mr r6, r4
/* 8000A97C 000065DC  38 80 00 01 */	li r4, 1
/* 8000A980 000065E0  38 E0 00 00 */	li r7, 0
/* 8000A984 000065E4  38 A5 5E A4 */	addi r5, r5, lbl_80405EA4@l
/* 8000A988 000065E8  39 00 00 00 */	li r8, 0
/* 8000A98C 000065EC  39 20 00 00 */	li r9, 0
/* 8000A990 000065F0  48 01 A8 E9 */	bl func_80025278
lbl_8000A994:
/* 8000A994 000065F4  38 60 00 0C */	li r3, 0xc
/* 8000A998 000065F8  48 23 EE F9 */	bl func_80249890
/* 8000A99C 000065FC  38 60 00 0C */	li r3, 0xc
/* 8000A9A0 00006600  48 1D 0C D5 */	bl func_801DB674
/* 8000A9A4 00006604  80 01 00 14 */	lwz r0, 0x14(r1)
/* 8000A9A8 00006608  7C 08 03 A6 */	mtlr r0
/* 8000A9AC 0000660C  38 21 00 10 */	addi r1, r1, 0x10
/* 8000A9B0 00006610  4E 80 00 20 */	blr

.global func_8000A9B4
func_8000A9B4:
/* 8000A9B4 00006614  4E 80 00 20 */	blr

.global func_8000A9B8
func_8000A9B8:
/* 8000A9B8 00006618  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 8000A9BC 0000661C  7C 08 02 A6 */	mflr r0
/* 8000A9C0 00006620  90 01 00 14 */	stw r0, 0x14(r1)
/* 8000A9C4 00006624  80 0D A3 80 */	lwz r0, lbl_8063F640-_SDA_BASE_(r13)
/* 8000A9C8 00006628  2C 00 00 00 */	cmpwi r0, 0
/* 8000A9CC 0000662C  41 82 00 28 */	beq lbl_8000A9F4
/* 8000A9D0 00006630  80 0D 96 80 */	lwz r0, lbl_8063E940-_SDA_BASE_(r13)
/* 8000A9D4 00006634  2C 00 00 00 */	cmpwi r0, 0
/* 8000A9D8 00006638  40 82 00 1C */	bne lbl_8000A9F4
/* 8000A9DC 0000663C  38 60 00 04 */	li r3, 4
/* 8000A9E0 00006640  48 1D 00 51 */	bl __nw__FUl
/* 8000A9E4 00006644  2C 03 00 00 */	cmpwi r3, 0
/* 8000A9E8 00006648  41 82 00 08 */	beq lbl_8000A9F0
/* 8000A9EC 0000664C  48 00 00 19 */	bl func_8000AA04
lbl_8000A9F0:
/* 8000A9F0 00006650  90 6D 96 80 */	stw r3, lbl_8063E940-_SDA_BASE_(r13)
lbl_8000A9F4:
/* 8000A9F4 00006654  80 01 00 14 */	lwz r0, 0x14(r1)
/* 8000A9F8 00006658  7C 08 03 A6 */	mtlr r0
/* 8000A9FC 0000665C  38 21 00 10 */	addi r1, r1, 0x10
/* 8000AA00 00006660  4E 80 00 20 */	blr

.global func_8000AA04
func_8000AA04:
/* 8000AA04 00006664  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 8000AA08 00006668  7C 08 02 A6 */	mflr r0
/* 8000AA0C 0000666C  90 01 00 14 */	stw r0, 0x14(r1)
/* 8000AA10 00006670  93 E1 00 0C */	stw r31, 0xc(r1)
/* 8000AA14 00006674  7C 7F 1B 78 */	mr r31, r3
/* 8000AA18 00006678  80 0D A3 80 */	lwz r0, lbl_8063F640-_SDA_BASE_(r13)
/* 8000AA1C 0000667C  2C 00 00 00 */	cmpwi r0, 0
/* 8000AA20 00006680  40 82 00 08 */	bne lbl_8000AA28
/* 8000AA24 00006684  48 00 00 48 */	b lbl_8000AA6C
lbl_8000AA28:
/* 8000AA28 00006688  38 60 00 08 */	li r3, 8
/* 8000AA2C 0000668C  48 1D 00 05 */	bl __nw__FUl
/* 8000AA30 00006690  2C 03 00 00 */	cmpwi r3, 0
/* 8000AA34 00006694  7C 66 1B 78 */	mr r6, r3
/* 8000AA38 00006698  41 82 00 10 */	beq lbl_8000AA48
/* 8000AA3C 0000669C  3C 80 80 40 */	lis r4, lbl_80405EB0@ha
/* 8000AA40 000066A0  38 84 5E B0 */	addi r4, r4, lbl_80405EB0@l
/* 8000AA44 000066A4  90 83 00 00 */	stw r4, 0(r3)
lbl_8000AA48:
/* 8000AA48 000066A8  90 7F 00 00 */	stw r3, 0(r31)
/* 8000AA4C 000066AC  80 6D A3 80 */	lwz r3, lbl_8063F640-_SDA_BASE_(r13)
/* 8000AA50 000066B0  80 63 00 00 */	lwz r3, 0(r3)
/* 8000AA54 000066B4  2C 03 00 00 */	cmpwi r3, 0
/* 8000AA58 000066B8  41 82 00 10 */	beq lbl_8000AA68
/* 8000AA5C 000066BC  38 80 00 00 */	li r4, 0
/* 8000AA60 000066C0  38 A0 00 00 */	li r5, 0
/* 8000AA64 000066C4  48 21 D6 85 */	bl func_802280E8
lbl_8000AA68:
/* 8000AA68 000066C8  7F E3 FB 78 */	mr r3, r31
lbl_8000AA6C:
/* 8000AA6C 000066CC  80 01 00 14 */	lwz r0, 0x14(r1)
/* 8000AA70 000066D0  83 E1 00 0C */	lwz r31, 0xc(r1)
/* 8000AA74 000066D4  7C 08 03 A6 */	mtlr r0
/* 8000AA78 000066D8  38 21 00 10 */	addi r1, r1, 0x10
/* 8000AA7C 000066DC  4E 80 00 20 */	blr

.global func_8000AA80
func_8000AA80:
/* 8000AA80 000066E0  38 60 00 00 */	li r3, 0
/* 8000AA84 000066E4  4E 80 00 20 */	blr

.global func_8000AA88
func_8000AA88:
/* 8000AA88 000066E8  38 60 00 00 */	li r3, 0
/* 8000AA8C 000066EC  4E 80 00 20 */	blr

.global func_8000AA90
func_8000AA90:
/* 8000AA90 000066F0  4E 80 00 20 */	blr

.global func_8000AA94
func_8000AA94:
/* 8000AA94 000066F4  4E 80 00 20 */	blr

.global func_8000AA98
func_8000AA98:
/* 8000AA98 000066F8  3C 60 80 40 */	lis r3, lbl_80405F20@ha
/* 8000AA9C 000066FC  38 63 5F 20 */	addi r3, r3, lbl_80405F20@l
/* 8000AAA0 00006700  4E 80 00 20 */	blr

.global func_8000AAA4
func_8000AAA4:
/* 8000AAA4 00006704  38 A0 00 01 */	li r5, 1
/* 8000AAA8 00006708  38 6D 96 78 */	addi r3, r13, lbl_8063E938-_SDA_BASE_
/* 8000AAAC 0000670C  38 80 00 04 */	li r4, 4
/* 8000AAB0 00006710  38 00 00 00 */	li r0, 0
/* 8000AAB4 00006714  98 AD 96 78 */	stb r5, lbl_8063E938-_SDA_BASE_(r13)
/* 8000AAB8 00006718  B0 83 00 02 */	sth r4, 2(r3)
/* 8000AABC 0000671C  98 03 00 04 */	stb r0, 4(r3)
/* 8000AAC0 00006720  4E 80 00 20 */	blr