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
|