summaryrefslogtreecommitdiff
path: root/asm/code_801DAAE0_asm.s
blob: 99decd5019533da1d77feb98628caf5389206119 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
.include "macros.inc"

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

.global func_801DAC90
func_801DAC90:
/* 801DAC90 001D68F0  48 0B C6 7C */	b MEMSetGroupIDForExpHeap

.global func_801DAC94
func_801DAC94:
/* 801DAC94 001D68F4  38 A0 00 20 */	li r5, 0x20
/* 801DAC98 001D68F8  48 0B C2 90 */	b MEMAllocFromExpHeapEx

lbl_801DAC9C:
/* 801DAC9C 001D68FC  94 21 FF E0 */	stwu r1, -0x20(r1)
/* 801DACA0 001D6900  7C 08 02 A6 */	mflr r0
/* 801DACA4 001D6904  90 01 00 24 */	stw r0, 0x24(r1)
/* 801DACA8 001D6908  93 E1 00 1C */	stw r31, 0x1c(r1)
/* 801DACAC 001D690C  93 C1 00 18 */	stw r30, 0x18(r1)
/* 801DACB0 001D6910  7C BE 2B 78 */	mr r30, r5
/* 801DACB4 001D6914  93 A1 00 14 */	stw r29, 0x14(r1)
/* 801DACB8 001D6918  7C 9D 23 78 */	mr r29, r4
/* 801DACBC 001D691C  4B FF FF D9 */	bl func_801DAC94
/* 801DACC0 001D6920  2C 03 00 00 */	cmpwi r3, 0
/* 801DACC4 001D6924  7C 7F 1B 78 */	mr r31, r3
/* 801DACC8 001D6928  40 82 00 0C */	bne lbl_801DACD4
/* 801DACCC 001D692C  38 60 00 00 */	li r3, 0
/* 801DACD0 001D6930  48 00 00 14 */	b lbl_801DACE4
lbl_801DACD4:
/* 801DACD4 001D6934  7F C4 F3 78 */	mr r4, r30
/* 801DACD8 001D6938  7F A5 EB 78 */	mr r5, r29
/* 801DACDC 001D693C  4B E2 94 29 */	bl memset
/* 801DACE0 001D6940  7F E3 FB 78 */	mr r3, r31
lbl_801DACE4:
/* 801DACE4 001D6944  80 01 00 24 */	lwz r0, 0x24(r1)
/* 801DACE8 001D6948  83 E1 00 1C */	lwz r31, 0x1c(r1)
/* 801DACEC 001D694C  83 C1 00 18 */	lwz r30, 0x18(r1)
/* 801DACF0 001D6950  83 A1 00 14 */	lwz r29, 0x14(r1)
/* 801DACF4 001D6954  7C 08 03 A6 */	mtlr r0
/* 801DACF8 001D6958  38 21 00 20 */	addi r1, r1, 0x20
/* 801DACFC 001D695C  4E 80 00 20 */	blr

.global func_801DAD00
func_801DAD00:
/* 801DAD00 001D6960  38 A0 00 00 */	li r5, 0
/* 801DAD04 001D6964  4B FF FF 98 */	b lbl_801DAC9C

.global func_801DAD08
func_801DAD08:
/* 801DAD08 001D6968  48 0B C2 20 */	b MEMAllocFromExpHeapEx

.global func_801DAD0C
func_801DAD0C:
/* 801DAD0C 001D696C  2C 05 00 00 */	cmpwi r5, 0
/* 801DAD10 001D6970  40 81 00 08 */	ble lbl_801DAD18
/* 801DAD14 001D6974  7C A5 00 D0 */	neg r5, r5
lbl_801DAD18:
/* 801DAD18 001D6978  48 0B C2 10 */	b MEMAllocFromExpHeapEx

.global func_801DAD1C
func_801DAD1C:
/* 801DAD1C 001D697C  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 801DAD20 001D6980  7C 08 02 A6 */	mflr r0
/* 801DAD24 001D6984  90 01 00 14 */	stw r0, 0x14(r1)
/* 801DAD28 001D6988  48 0B C2 B1 */	bl MEMResizeForMBlockExpHeap
/* 801DAD2C 001D698C  7C 03 00 D0 */	neg r0, r3
/* 801DAD30 001D6990  7C 00 1B 78 */	or r0, r0, r3
/* 801DAD34 001D6994  54 03 0F FE */	srwi r3, r0, 0x1f
/* 801DAD38 001D6998  80 01 00 14 */	lwz r0, 0x14(r1)
/* 801DAD3C 001D699C  7C 08 03 A6 */	mtlr r0
/* 801DAD40 001D69A0  38 21 00 10 */	addi r1, r1, 0x10
/* 801DAD44 001D69A4  4E 80 00 20 */	blr

.global func_801DAD48
func_801DAD48:
/* 801DAD48 001D69A8  2C 04 00 00 */	cmpwi r4, 0
/* 801DAD4C 001D69AC  4D 82 00 20 */	beqlr
/* 801DAD50 001D69B0  48 0B C4 74 */	b MEMFreeToExpHeap
/* 801DAD54 001D69B4  4E 80 00 20 */	blr

.global func_801DAD58
func_801DAD58:
/* 801DAD58 001D69B8  7C 83 23 78 */	mr r3, r4
/* 801DAD5C 001D69BC  48 0B C6 9C */	b MEMGetSizeForMBlockExpHeap

.global func_801DAD60
func_801DAD60:
/* 801DAD60 001D69C0  48 0B C5 30 */	b MEMGetTotalFreeSizeForExpHeap

.global func_801DAD64
func_801DAD64:
/* 801DAD64 001D69C4  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 801DAD68 001D69C8  7C 08 02 A6 */	mflr r0
/* 801DAD6C 001D69CC  90 01 00 14 */	stw r0, 0x14(r1)
/* 801DAD70 001D69D0  93 E1 00 0C */	stw r31, 0xc(r1)
/* 801DAD74 001D69D4  7C 7F 1B 78 */	mr r31, r3
/* 801DAD78 001D69D8  4B FF FE 95 */	bl func_801DAC0C
/* 801DAD7C 001D69DC  7F E4 FB 78 */	mr r4, r31
/* 801DAD80 001D69E0  4B FF FF 15 */	bl func_801DAC94
/* 801DAD84 001D69E4  80 01 00 14 */	lwz r0, 0x14(r1)
/* 801DAD88 001D69E8  83 E1 00 0C */	lwz r31, 0xc(r1)
/* 801DAD8C 001D69EC  7C 08 03 A6 */	mtlr r0
/* 801DAD90 001D69F0  38 21 00 10 */	addi r1, r1, 0x10
/* 801DAD94 001D69F4  4E 80 00 20 */	blr

.global func_801DAD98
func_801DAD98:
/* 801DAD98 001D69F8  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 801DAD9C 001D69FC  7C 08 02 A6 */	mflr r0
/* 801DADA0 001D6A00  90 01 00 14 */	stw r0, 0x14(r1)
/* 801DADA4 001D6A04  93 E1 00 0C */	stw r31, 0xc(r1)
/* 801DADA8 001D6A08  7C 7F 1B 78 */	mr r31, r3
/* 801DADAC 001D6A0C  4B FF FE 61 */	bl func_801DAC0C
/* 801DADB0 001D6A10  7F E4 FB 78 */	mr r4, r31
/* 801DADB4 001D6A14  4B FF FF 4D */	bl func_801DAD00
/* 801DADB8 001D6A18  80 01 00 14 */	lwz r0, 0x14(r1)
/* 801DADBC 001D6A1C  83 E1 00 0C */	lwz r31, 0xc(r1)
/* 801DADC0 001D6A20  7C 08 03 A6 */	mtlr r0
/* 801DADC4 001D6A24  38 21 00 10 */	addi r1, r1, 0x10
/* 801DADC8 001D6A28  4E 80 00 20 */	blr

.global func_801DADCC
func_801DADCC:
/* 801DADCC 001D6A2C  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 801DADD0 001D6A30  7C 08 02 A6 */	mflr r0
/* 801DADD4 001D6A34  90 01 00 14 */	stw r0, 0x14(r1)
/* 801DADD8 001D6A38  93 E1 00 0C */	stw r31, 0xc(r1)
/* 801DADDC 001D6A3C  7C 9F 23 78 */	mr r31, r4
/* 801DADE0 001D6A40  93 C1 00 08 */	stw r30, 8(r1)
/* 801DADE4 001D6A44  7C 7E 1B 78 */	mr r30, r3
/* 801DADE8 001D6A48  4B FF FE 25 */	bl func_801DAC0C
/* 801DADEC 001D6A4C  7F C4 F3 78 */	mr r4, r30
/* 801DADF0 001D6A50  7F E5 FB 78 */	mr r5, r31
/* 801DADF4 001D6A54  4B FF FF 15 */	bl func_801DAD08
/* 801DADF8 001D6A58  80 01 00 14 */	lwz r0, 0x14(r1)
/* 801DADFC 001D6A5C  83 E1 00 0C */	lwz r31, 0xc(r1)
/* 801DAE00 001D6A60  83 C1 00 08 */	lwz r30, 8(r1)
/* 801DAE04 001D6A64  7C 08 03 A6 */	mtlr r0
/* 801DAE08 001D6A68  38 21 00 10 */	addi r1, r1, 0x10
/* 801DAE0C 001D6A6C  4E 80 00 20 */	blr

.global func_801DAE10
func_801DAE10:
/* 801DAE10 001D6A70  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 801DAE14 001D6A74  7C 08 02 A6 */	mflr r0
/* 801DAE18 001D6A78  2C 04 00 00 */	cmpwi r4, 0
/* 801DAE1C 001D6A7C  90 01 00 14 */	stw r0, 0x14(r1)
/* 801DAE20 001D6A80  93 E1 00 0C */	stw r31, 0xc(r1)
/* 801DAE24 001D6A84  7C 9F 23 78 */	mr r31, r4
/* 801DAE28 001D6A88  93 C1 00 08 */	stw r30, 8(r1)
/* 801DAE2C 001D6A8C  7C 7E 1B 78 */	mr r30, r3
/* 801DAE30 001D6A90  40 81 00 08 */	ble lbl_801DAE38
/* 801DAE34 001D6A94  7F E4 00 D0 */	neg r31, r4
lbl_801DAE38:
/* 801DAE38 001D6A98  4B FF FD D5 */	bl func_801DAC0C
/* 801DAE3C 001D6A9C  7F C4 F3 78 */	mr r4, r30
/* 801DAE40 001D6AA0  7F E5 FB 78 */	mr r5, r31
/* 801DAE44 001D6AA4  4B FF FE C5 */	bl func_801DAD08
/* 801DAE48 001D6AA8  80 01 00 14 */	lwz r0, 0x14(r1)
/* 801DAE4C 001D6AAC  83 E1 00 0C */	lwz r31, 0xc(r1)
/* 801DAE50 001D6AB0  83 C1 00 08 */	lwz r30, 8(r1)
/* 801DAE54 001D6AB4  7C 08 03 A6 */	mtlr r0
/* 801DAE58 001D6AB8  38 21 00 10 */	addi r1, r1, 0x10
/* 801DAE5C 001D6ABC  4E 80 00 20 */	blr

.global func_801DAE60
func_801DAE60:
/* 801DAE60 001D6AC0  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 801DAE64 001D6AC4  7C 08 02 A6 */	mflr r0
/* 801DAE68 001D6AC8  90 01 00 14 */	stw r0, 0x14(r1)
/* 801DAE6C 001D6ACC  93 E1 00 0C */	stw r31, 0xc(r1)
/* 801DAE70 001D6AD0  7C 9F 23 78 */	mr r31, r4
/* 801DAE74 001D6AD4  93 C1 00 08 */	stw r30, 8(r1)
/* 801DAE78 001D6AD8  7C 7E 1B 78 */	mr r30, r3
/* 801DAE7C 001D6ADC  4B FF FD 91 */	bl func_801DAC0C
/* 801DAE80 001D6AE0  7F C4 F3 78 */	mr r4, r30
/* 801DAE84 001D6AE4  7F E5 FB 78 */	mr r5, r31
/* 801DAE88 001D6AE8  4B FF FE 95 */	bl func_801DAD1C
/* 801DAE8C 001D6AEC  80 01 00 14 */	lwz r0, 0x14(r1)
/* 801DAE90 001D6AF0  83 E1 00 0C */	lwz r31, 0xc(r1)
/* 801DAE94 001D6AF4  83 C1 00 08 */	lwz r30, 8(r1)
/* 801DAE98 001D6AF8  7C 08 03 A6 */	mtlr r0
/* 801DAE9C 001D6AFC  38 21 00 10 */	addi r1, r1, 0x10
/* 801DAEA0 001D6B00  4E 80 00 20 */	blr

.global func_801DAEA4
func_801DAEA4:
/* 801DAEA4 001D6B04  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 801DAEA8 001D6B08  7C 08 02 A6 */	mflr r0
/* 801DAEAC 001D6B0C  2C 03 00 00 */	cmpwi r3, 0
/* 801DAEB0 001D6B10  90 01 00 14 */	stw r0, 0x14(r1)
/* 801DAEB4 001D6B14  93 E1 00 0C */	stw r31, 0xc(r1)
/* 801DAEB8 001D6B18  7C 7F 1B 78 */	mr r31, r3
/* 801DAEBC 001D6B1C  41 82 00 10 */	beq lbl_801DAECC
/* 801DAEC0 001D6B20  4B FF FD 4D */	bl func_801DAC0C
/* 801DAEC4 001D6B24  7F E4 FB 78 */	mr r4, r31
/* 801DAEC8 001D6B28  4B FF FE 81 */	bl func_801DAD48
lbl_801DAECC:
/* 801DAECC 001D6B2C  80 01 00 14 */	lwz r0, 0x14(r1)
/* 801DAED0 001D6B30  83 E1 00 0C */	lwz r31, 0xc(r1)
/* 801DAED4 001D6B34  7C 08 03 A6 */	mtlr r0
/* 801DAED8 001D6B38  38 21 00 10 */	addi r1, r1, 0x10
/* 801DAEDC 001D6B3C  4E 80 00 20 */	blr

.global func_801DAEE0
func_801DAEE0:
/* 801DAEE0 001D6B40  2C 03 00 00 */	cmpwi r3, 0
/* 801DAEE4 001D6B44  40 82 00 0C */	bne lbl_801DAEF0
/* 801DAEE8 001D6B48  38 60 00 00 */	li r3, 0
/* 801DAEEC 001D6B4C  4E 80 00 20 */	blr
lbl_801DAEF0:
/* 801DAEF0 001D6B50  48 0B C5 08 */	b MEMGetSizeForMBlockExpHeap
/* 801DAEF4 001D6B54  4E 80 00 20 */	blr

.global func_801DAEF8
func_801DAEF8:
/* 801DAEF8 001D6B58  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 801DAEFC 001D6B5C  7C 08 02 A6 */	mflr r0
/* 801DAF00 001D6B60  90 01 00 14 */	stw r0, 0x14(r1)
/* 801DAF04 001D6B64  4B FF FD 09 */	bl func_801DAC0C
/* 801DAF08 001D6B68  4B FF FE 59 */	bl func_801DAD60
/* 801DAF0C 001D6B6C  80 01 00 14 */	lwz r0, 0x14(r1)
/* 801DAF10 001D6B70  7C 08 03 A6 */	mtlr r0
/* 801DAF14 001D6B74  38 21 00 10 */	addi r1, r1, 0x10
/* 801DAF18 001D6B78  4E 80 00 20 */	blr
lbl_801DAF1C:
/* 801DAF1C 001D6B7C  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 801DAF20 001D6B80  7C 08 02 A6 */	mflr r0
/* 801DAF24 001D6B84  90 01 00 14 */	stw r0, 0x14(r1)
/* 801DAF28 001D6B88  93 E1 00 0C */	stw r31, 0xc(r1)
/* 801DAF2C 001D6B8C  7C BF 2B 78 */	mr r31, r5
/* 801DAF30 001D6B90  93 C1 00 08 */	stw r30, 8(r1)
/* 801DAF34 001D6B94  7C 7E 1B 78 */	mr r30, r3
/* 801DAF38 001D6B98  48 0B C4 C9 */	bl MEMGetGroupIDForMBlockExpHeap
/* 801DAF3C 001D6B9C  A0 1F 00 04 */	lhz r0, 4(r31)
/* 801DAF40 001D6BA0  54 63 04 3E */	clrlwi r3, r3, 0x10
/* 801DAF44 001D6BA4  7C 00 18 40 */	cmplw r0, r3
/* 801DAF48 001D6BA8  40 82 00 10 */	bne lbl_801DAF58
/* 801DAF4C 001D6BAC  80 7F 00 00 */	lwz r3, 0(r31)
/* 801DAF50 001D6BB0  7F C4 F3 78 */	mr r4, r30
/* 801DAF54 001D6BB4  48 0B C2 71 */	bl MEMFreeToExpHeap
lbl_801DAF58:
/* 801DAF58 001D6BB8  80 01 00 14 */	lwz r0, 0x14(r1)
/* 801DAF5C 001D6BBC  83 E1 00 0C */	lwz r31, 0xc(r1)
/* 801DAF60 001D6BC0  83 C1 00 08 */	lwz r30, 8(r1)
/* 801DAF64 001D6BC4  7C 08 03 A6 */	mtlr r0
/* 801DAF68 001D6BC8  38 21 00 10 */	addi r1, r1, 0x10
/* 801DAF6C 001D6BCC  4E 80 00 20 */	blr

.global func_801DAF70
func_801DAF70:
/* 801DAF70 001D6BD0  94 21 FF E0 */	stwu r1, -0x20(r1)
/* 801DAF74 001D6BD4  7C 08 02 A6 */	mflr r0
/* 801DAF78 001D6BD8  3C C0 80 1E */	lis r6, lbl_801DAF1C@ha
/* 801DAF7C 001D6BDC  90 01 00 24 */	stw r0, 0x24(r1)
/* 801DAF80 001D6BE0  38 00 00 00 */	li r0, 0
/* 801DAF84 001D6BE4  38 A1 00 08 */	addi r5, r1, 8
/* 801DAF88 001D6BE8  B0 81 00 0C */	sth r4, 0xc(r1)
/* 801DAF8C 001D6BEC  38 86 AF 1C */	addi r4, r6, lbl_801DAF1C@l
/* 801DAF90 001D6BF0  90 61 00 08 */	stw r3, 8(r1)
/* 801DAF94 001D6BF4  90 01 00 10 */	stw r0, 0x10(r1)
/* 801DAF98 001D6BF8  48 0B C3 C5 */	bl MEMVisitAllocatedForExpHeap
/* 801DAF9C 001D6BFC  80 01 00 24 */	lwz r0, 0x24(r1)
/* 801DAFA0 001D6C00  7C 08 03 A6 */	mtlr r0
/* 801DAFA4 001D6C04  38 21 00 20 */	addi r1, r1, 0x20
/* 801DAFA8 001D6C08  4E 80 00 20 */	blr

.global func_801DAFAC
func_801DAFAC:
/* 801DAFAC 001D6C0C  54 60 06 FF */	clrlwi. r0, r3, 0x1b
/* 801DAFB0 001D6C10  40 82 00 14 */	bne lbl_801DAFC4
/* 801DAFB4 001D6C14  54 80 06 FF */	clrlwi. r0, r4, 0x1b
/* 801DAFB8 001D6C18  40 82 00 0C */	bne lbl_801DAFC4
/* 801DAFBC 001D6C1C  54 A0 06 FF */	clrlwi. r0, r5, 0x1b
/* 801DAFC0 001D6C20  41 82 00 08 */	beq lbl_801DAFC8
lbl_801DAFC4:
/* 801DAFC4 001D6C24  4B E2 90 3C */	b memcpy
lbl_801DAFC8:
/* 801DAFC8 001D6C28  54 A5 D9 7E */	srwi r5, r5, 5
/* 801DAFCC 001D6C2C  7C A9 03 A6 */	mtctr r5
/* 801DAFD0 001D6C30  38 63 FF FC */	addi r3, r3, -4
/* 801DAFD4 001D6C34  38 84 FF FC */	addi r4, r4, -4
lbl_801DAFD8:
/* 801DAFD8 001D6C38  84 04 00 04 */	lwzu r0, 4(r4)
/* 801DAFDC 001D6C3C  84 A4 00 04 */	lwzu r5, 4(r4)
/* 801DAFE0 001D6C40  84 C4 00 04 */	lwzu r6, 4(r4)
/* 801DAFE4 001D6C44  84 E4 00 04 */	lwzu r7, 4(r4)
/* 801DAFE8 001D6C48  85 04 00 04 */	lwzu r8, 4(r4)
/* 801DAFEC 001D6C4C  85 24 00 04 */	lwzu r9, 4(r4)
/* 801DAFF0 001D6C50  85 44 00 04 */	lwzu r10, 4(r4)
/* 801DAFF4 001D6C54  85 64 00 04 */	lwzu r11, 4(r4)
/* 801DAFF8 001D6C58  94 03 00 04 */	stwu r0, 4(r3)
/* 801DAFFC 001D6C5C  94 A3 00 04 */	stwu r5, 4(r3)
/* 801DB000 001D6C60  94 C3 00 04 */	stwu r6, 4(r3)
/* 801DB004 001D6C64  94 E3 00 04 */	stwu r7, 4(r3)
/* 801DB008 001D6C68  95 03 00 04 */	stwu r8, 4(r3)
/* 801DB00C 001D6C6C  95 23 00 04 */	stwu r9, 4(r3)
/* 801DB010 001D6C70  95 43 00 04 */	stwu r10, 4(r3)
/* 801DB014 001D6C74  95 63 00 04 */	stwu r11, 4(r3)
/* 801DB018 001D6C78  42 00 FF C0 */	bdnz lbl_801DAFD8
/* 801DB01C 001D6C7C  4E 80 00 20 */	blr

.global func_801DB020
func_801DB020:
/* 801DB020 001D6C80  38 A0 00 01 */	li r5, 1
/* 801DB024 001D6C84  38 6D A0 10 */	addi r3, r13, lbl_8063F2D0-_SDA_BASE_
/* 801DB028 001D6C88  38 80 00 04 */	li r4, 4
/* 801DB02C 001D6C8C  38 00 00 00 */	li r0, 0
/* 801DB030 001D6C90  98 AD A0 10 */	stb r5, lbl_8063F2D0-_SDA_BASE_(r13)
/* 801DB034 001D6C94  B0 83 00 02 */	sth r4, 2(r3)
/* 801DB038 001D6C98  98 03 00 04 */	stb r0, 4(r3)
/* 801DB03C 001D6C9C  4E 80 00 20 */	blr