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
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
|
.include "macros.inc"
.section .text, "ax" # 0x80006980 - 0x803E1E60
.global AIRegisterDMACallback
AIRegisterDMACallback:
/* 8028EB04 0028A764 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 8028EB08 0028A768 7C 08 02 A6 */ mflr r0
/* 8028EB0C 0028A76C 90 01 00 14 */ stw r0, 0x14(r1)
/* 8028EB10 0028A770 93 E1 00 0C */ stw r31, 0xc(r1)
/* 8028EB14 0028A774 93 C1 00 08 */ stw r30, 8(r1)
/* 8028EB18 0028A778 7C 7E 1B 78 */ mr r30, r3
/* 8028EB1C 0028A77C 83 ED AB 08 */ lwz r31, lbl_8063FDC8-_SDA_BASE_(r13)
/* 8028EB20 0028A780 4B FD FC 3D */ bl OSDisableInterrupts
/* 8028EB24 0028A784 93 CD AB 08 */ stw r30, lbl_8063FDC8-_SDA_BASE_(r13)
/* 8028EB28 0028A788 4B FD FC 5D */ bl OSRestoreInterrupts
/* 8028EB2C 0028A78C 7F E3 FB 78 */ mr r3, r31
/* 8028EB30 0028A790 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 8028EB34 0028A794 83 C1 00 08 */ lwz r30, 8(r1)
/* 8028EB38 0028A798 80 01 00 14 */ lwz r0, 0x14(r1)
/* 8028EB3C 0028A79C 7C 08 03 A6 */ mtlr r0
/* 8028EB40 0028A7A0 38 21 00 10 */ addi r1, r1, 0x10
/* 8028EB44 0028A7A4 4E 80 00 20 */ blr
.global AIInitDMA
AIInitDMA:
/* 8028EB48 0028A7A8 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 8028EB4C 0028A7AC 7C 08 02 A6 */ mflr r0
/* 8028EB50 0028A7B0 90 01 00 14 */ stw r0, 0x14(r1)
/* 8028EB54 0028A7B4 93 E1 00 0C */ stw r31, 0xc(r1)
/* 8028EB58 0028A7B8 7C 9F 23 78 */ mr r31, r4
/* 8028EB5C 0028A7BC 93 C1 00 08 */ stw r30, 8(r1)
/* 8028EB60 0028A7C0 7C 7E 1B 78 */ mr r30, r3
/* 8028EB64 0028A7C4 4B FD FB F9 */ bl OSDisableInterrupts
/* 8028EB68 0028A7C8 3C E0 CC 00 */ lis r7, 0xCC005030@ha
/* 8028EB6C 0028A7CC 57 C5 84 3E */ srwi r5, r30, 0x10
/* 8028EB70 0028A7D0 A0 C7 50 30 */ lhz r6, 0xCC005030@l(r7)
/* 8028EB74 0028A7D4 57 C4 04 3E */ clrlwi r4, r30, 0x10
/* 8028EB78 0028A7D8 57 E0 DC 3E */ rlwinm r0, r31, 0x1b, 0x10, 0x1f
/* 8028EB7C 0028A7DC 54 C6 00 24 */ rlwinm r6, r6, 0, 0, 0x12
/* 8028EB80 0028A7E0 7C C5 2B 78 */ or r5, r6, r5
/* 8028EB84 0028A7E4 B0 A7 50 30 */ sth r5, 0x5030(r7)
/* 8028EB88 0028A7E8 A0 A7 50 32 */ lhz r5, 0x5032(r7)
/* 8028EB8C 0028A7EC 54 A5 06 DE */ rlwinm r5, r5, 0, 0x1b, 0xf
/* 8028EB90 0028A7F0 7C A4 23 78 */ or r4, r5, r4
/* 8028EB94 0028A7F4 B0 87 50 32 */ sth r4, 0x5032(r7)
/* 8028EB98 0028A7F8 A0 87 50 36 */ lhz r4, 0x5036(r7)
/* 8028EB9C 0028A7FC 54 84 00 20 */ rlwinm r4, r4, 0, 0, 0x10
/* 8028EBA0 0028A800 7C 80 03 78 */ or r0, r4, r0
/* 8028EBA4 0028A804 B0 07 50 36 */ sth r0, 0x5036(r7)
/* 8028EBA8 0028A808 4B FD FB DD */ bl OSRestoreInterrupts
/* 8028EBAC 0028A80C 80 01 00 14 */ lwz r0, 0x14(r1)
/* 8028EBB0 0028A810 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 8028EBB4 0028A814 83 C1 00 08 */ lwz r30, 8(r1)
/* 8028EBB8 0028A818 7C 08 03 A6 */ mtlr r0
/* 8028EBBC 0028A81C 38 21 00 10 */ addi r1, r1, 0x10
/* 8028EBC0 0028A820 4E 80 00 20 */ blr
.global AIStartDMA
AIStartDMA:
/* 8028EBC4 0028A824 3C 60 CC 00 */ lis r3, 0xCC005036@ha
/* 8028EBC8 0028A828 A0 03 50 36 */ lhz r0, 0xCC005036@l(r3)
/* 8028EBCC 0028A82C 60 00 80 00 */ ori r0, r0, 0x8000
/* 8028EBD0 0028A830 B0 03 50 36 */ sth r0, 0x5036(r3)
/* 8028EBD4 0028A834 4E 80 00 20 */ blr
.global AIGetDMABytesLeft
AIGetDMABytesLeft:
/* 8028EBD8 0028A838 3C 60 CC 00 */ lis r3, 0xCC00503A@ha
/* 8028EBDC 0028A83C A0 03 50 3A */ lhz r0, 0xCC00503A@l(r3)
/* 8028EBE0 0028A840 54 03 2B 34 */ rlwinm r3, r0, 5, 0xc, 0x1a
/* 8028EBE4 0028A844 4E 80 00 20 */ blr
.global AIInit
AIInit:
/* 8028EBE8 0028A848 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 8028EBEC 0028A84C 7C 08 02 A6 */ mflr r0
/* 8028EBF0 0028A850 90 01 00 24 */ stw r0, 0x24(r1)
/* 8028EBF4 0028A854 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 8028EBF8 0028A858 7C 7F 1B 78 */ mr r31, r3
/* 8028EBFC 0028A85C 93 C1 00 18 */ stw r30, 0x18(r1)
/* 8028EC00 0028A860 93 A1 00 14 */ stw r29, 0x14(r1)
/* 8028EC04 0028A864 80 0D AA D0 */ lwz r0, lbl_8063FD90-_SDA_BASE_(r13)
/* 8028EC08 0028A868 2C 00 00 01 */ cmpwi r0, 1
/* 8028EC0C 0028A86C 41 82 01 40 */ beq lbl_8028ED4C
/* 8028EC10 0028A870 80 6D 88 E0 */ lwz r3, lbl_8063DBA0-_SDA_BASE_(r13)
/* 8028EC14 0028A874 4B FD AA 3D */ bl OSRegisterVersion
/* 8028EC18 0028A878 3C 60 80 00 */ lis r3, 0x800000F8@ha
/* 8028EC1C 0028A87C 3C 80 43 1C */ lis r4, 0x431BDE83@ha
/* 8028EC20 0028A880 80 03 00 F8 */ lwz r0, 0x800000F8@l(r3)
/* 8028EC24 0028A884 38 E0 00 00 */ li r7, 0
/* 8028EC28 0028A888 3C A0 10 62 */ lis r5, 0x10624DD3@ha
/* 8028EC2C 0028A88C 38 84 DE 83 */ addi r4, r4, 0x431BDE83@l
/* 8028EC30 0028A890 54 06 F0 BE */ srwi r6, r0, 2
/* 8028EC34 0028A894 3C 60 00 01 */ lis r3, 0x0000A428@ha
/* 8028EC38 0028A898 7C C4 30 16 */ mulhwu r6, r4, r6
/* 8028EC3C 0028A89C 39 25 4D D3 */ addi r9, r5, 0x10624DD3@l
/* 8028EC40 0028A8A0 38 03 A4 28 */ addi r0, r3, 0x0000A428@l
/* 8028EC44 0028A8A4 90 ED AA F8 */ stw r7, lbl_8063FDB8-_SDA_BASE_(r13)
/* 8028EC48 0028A8A8 38 83 A4 10 */ addi r4, r3, -23536
/* 8028EC4C 0028A8AC 38 63 F6 18 */ addi r3, r3, -2536
/* 8028EC50 0028A8B0 54 CA 8B FE */ srwi r10, r6, 0xf
/* 8028EC54 0028A8B4 90 ED AA F0 */ stw r7, lbl_8063FDB0-_SDA_BASE_(r13)
/* 8028EC58 0028A8B8 7C CA 01 D6 */ mullw r6, r10, r0
/* 8028EC5C 0028A8BC 3F C0 CD 00 */ lis r30, 0xCD006C00@ha
/* 8028EC60 0028A8C0 90 ED AA E8 */ stw r7, lbl_8063FDA8-_SDA_BASE_(r13)
/* 8028EC64 0028A8C4 38 00 FF EA */ li r0, -22
/* 8028EC68 0028A8C8 90 ED AA E0 */ stw r7, lbl_8063FDA0-_SDA_BASE_(r13)
/* 8028EC6C 0028A8CC 7C AA 21 D6 */ mullw r5, r10, r4
/* 8028EC70 0028A8D0 90 ED AA D8 */ stw r7, lbl_8063FD98-_SDA_BASE_(r13)
/* 8028EC74 0028A8D4 7C 8A 19 D6 */ mullw r4, r10, r3
/* 8028EC78 0028A8D8 1D 0A 7B 24 */ mulli r8, r10, 0x7b24
/* 8028EC7C 0028A8DC 1C 6A 0B B8 */ mulli r3, r10, 0xbb8
/* 8028EC80 0028A8E0 7D 09 40 16 */ mulhwu r8, r9, r8
/* 8028EC84 0028A8E4 7C C9 30 16 */ mulhwu r6, r9, r6
/* 8028EC88 0028A8E8 55 08 BA 7E */ srwi r8, r8, 9
/* 8028EC8C 0028A8EC 91 0D AA FC */ stw r8, lbl_8063FDBC-_SDA_BASE_(r13)
/* 8028EC90 0028A8F0 7C A9 28 16 */ mulhwu r5, r9, r5
/* 8028EC94 0028A8F4 54 C6 BA 7E */ srwi r6, r6, 9
/* 8028EC98 0028A8F8 90 CD AA F4 */ stw r6, lbl_8063FDB4-_SDA_BASE_(r13)
/* 8028EC9C 0028A8FC 7C 89 20 16 */ mulhwu r4, r9, r4
/* 8028ECA0 0028A900 54 A5 BA 7E */ srwi r5, r5, 9
/* 8028ECA4 0028A904 90 AD AA EC */ stw r5, lbl_8063FDAC-_SDA_BASE_(r13)
/* 8028ECA8 0028A908 7C 69 18 16 */ mulhwu r3, r9, r3
/* 8028ECAC 0028A90C 54 84 BA 7E */ srwi r4, r4, 9
/* 8028ECB0 0028A910 90 8D AA E4 */ stw r4, lbl_8063FDA4-_SDA_BASE_(r13)
/* 8028ECB4 0028A914 54 63 BA 7E */ srwi r3, r3, 9
/* 8028ECB8 0028A918 90 6D AA DC */ stw r3, lbl_8063FD9C-_SDA_BASE_(r13)
/* 8028ECBC 0028A91C 80 7E 6C 00 */ lwz r3, 0xCD006C00@l(r30)
/* 8028ECC0 0028A920 7C 60 00 38 */ and r0, r3, r0
/* 8028ECC4 0028A924 90 1E 6C 00 */ stw r0, 0x6c00(r30)
/* 8028ECC8 0028A928 90 FE 6C 04 */ stw r7, 0x6c04(r30)
/* 8028ECCC 0028A92C 90 FE 6C 0C */ stw r7, 0x6c0c(r30)
/* 8028ECD0 0028A930 80 1E 6C 00 */ lwz r0, 0x6c00(r30)
/* 8028ECD4 0028A934 54 00 06 F2 */ rlwinm r0, r0, 0, 0x1b, 0x19
/* 8028ECD8 0028A938 60 00 00 20 */ ori r0, r0, 0x20
/* 8028ECDC 0028A93C 90 1E 6C 00 */ stw r0, 0x6c00(r30)
/* 8028ECE0 0028A940 80 1E 6C 00 */ lwz r0, 0x6c00(r30)
/* 8028ECE4 0028A944 54 00 D7 FE */ rlwinm r0, r0, 0x1a, 0x1f, 0x1f
/* 8028ECE8 0028A948 68 00 00 01 */ xori r0, r0, 1
/* 8028ECEC 0028A94C 2C 00 00 00 */ cmpwi r0, 0
/* 8028ECF0 0028A950 41 82 00 30 */ beq lbl_8028ED20
/* 8028ECF4 0028A954 80 1E 6C 00 */ lwz r0, 0x6c00(r30)
/* 8028ECF8 0028A958 54 00 06 B0 */ rlwinm r0, r0, 0, 0x1a, 0x18
/* 8028ECFC 0028A95C 90 1E 6C 00 */ stw r0, 0x6c00(r30)
/* 8028ED00 0028A960 4B FD FA 5D */ bl OSDisableInterrupts
/* 8028ED04 0028A964 7C 7D 1B 78 */ mr r29, r3
/* 8028ED08 0028A968 48 00 01 6D */ bl __AI_SRC_INIT
/* 8028ED0C 0028A96C 80 1E 6C 00 */ lwz r0, 0x6c00(r30)
/* 8028ED10 0028A970 7F A3 EB 78 */ mr r3, r29
/* 8028ED14 0028A974 60 00 00 40 */ ori r0, r0, 0x40
/* 8028ED18 0028A978 90 1E 6C 00 */ stw r0, 0x6c00(r30)
/* 8028ED1C 0028A97C 4B FD FA 69 */ bl OSRestoreInterrupts
lbl_8028ED20:
/* 8028ED20 0028A980 38 00 00 00 */ li r0, 0
/* 8028ED24 0028A984 3C 80 80 29 */ lis r4, __AIDHandler@ha
/* 8028ED28 0028A988 90 0D AB 08 */ stw r0, lbl_8063FDC8-_SDA_BASE_(r13)
/* 8028ED2C 0028A98C 38 84 ED 68 */ addi r4, r4, __AIDHandler@l
/* 8028ED30 0028A990 38 60 00 05 */ li r3, 5
/* 8028ED34 0028A994 93 ED AB 04 */ stw r31, lbl_8063FDC4-_SDA_BASE_(r13)
/* 8028ED38 0028A998 4B FD FA 71 */ bl __OSSetInterruptHandler
/* 8028ED3C 0028A99C 3C 60 04 00 */ lis r3, 0x400
/* 8028ED40 0028A9A0 4B FD FE 2D */ bl __OSUnmaskInterrupts
/* 8028ED44 0028A9A4 38 00 00 01 */ li r0, 1
/* 8028ED48 0028A9A8 90 0D AA D0 */ stw r0, lbl_8063FD90-_SDA_BASE_(r13)
lbl_8028ED4C:
/* 8028ED4C 0028A9AC 80 01 00 24 */ lwz r0, 0x24(r1)
/* 8028ED50 0028A9B0 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 8028ED54 0028A9B4 83 C1 00 18 */ lwz r30, 0x18(r1)
/* 8028ED58 0028A9B8 83 A1 00 14 */ lwz r29, 0x14(r1)
/* 8028ED5C 0028A9BC 7C 08 03 A6 */ mtlr r0
/* 8028ED60 0028A9C0 38 21 00 20 */ addi r1, r1, 0x20
/* 8028ED64 0028A9C4 4E 80 00 20 */ blr
__AIDHandler:
/* 8028ED68 0028A9C8 94 21 FD 20 */ stwu r1, -0x2e0(r1)
/* 8028ED6C 0028A9CC 7C 08 02 A6 */ mflr r0
/* 8028ED70 0028A9D0 3C C0 CC 00 */ lis r6, 0xCC00500A@ha
/* 8028ED74 0028A9D4 90 01 02 E4 */ stw r0, 0x2e4(r1)
/* 8028ED78 0028A9D8 38 00 FF 5F */ li r0, -161
/* 8028ED7C 0028A9DC 38 61 00 08 */ addi r3, r1, 8
/* 8028ED80 0028A9E0 93 E1 02 DC */ stw r31, 0x2dc(r1)
/* 8028ED84 0028A9E4 7C 9F 23 78 */ mr r31, r4
/* 8028ED88 0028A9E8 A0 A6 50 0A */ lhz r5, 0xCC00500A@l(r6)
/* 8028ED8C 0028A9EC 7C A0 00 38 */ and r0, r5, r0
/* 8028ED90 0028A9F0 60 00 00 08 */ ori r0, r0, 8
/* 8028ED94 0028A9F4 B0 06 50 0A */ sth r0, 0x500a(r6)
/* 8028ED98 0028A9F8 4B FD C2 F9 */ bl OSClearContext
/* 8028ED9C 0028A9FC 38 61 00 08 */ addi r3, r1, 8
/* 8028EDA0 0028AA00 4B FD C0 C9 */ bl OSSetCurrentContext
/* 8028EDA4 0028AA04 80 6D AB 08 */ lwz r3, lbl_8063FDC8-_SDA_BASE_(r13)
/* 8028EDA8 0028AA08 2C 03 00 00 */ cmpwi r3, 0
/* 8028EDAC 0028AA0C 41 82 00 40 */ beq lbl_8028EDEC
/* 8028EDB0 0028AA10 80 0D AA D4 */ lwz r0, lbl_8063FD94-_SDA_BASE_(r13)
/* 8028EDB4 0028AA14 2C 00 00 00 */ cmpwi r0, 0
/* 8028EDB8 0028AA18 40 82 00 34 */ bne lbl_8028EDEC
/* 8028EDBC 0028AA1C 80 0D AB 04 */ lwz r0, lbl_8063FDC4-_SDA_BASE_(r13)
/* 8028EDC0 0028AA20 38 80 00 01 */ li r4, 1
/* 8028EDC4 0028AA24 90 8D AA D4 */ stw r4, lbl_8063FD94-_SDA_BASE_(r13)
/* 8028EDC8 0028AA28 2C 00 00 00 */ cmpwi r0, 0
/* 8028EDCC 0028AA2C 41 82 00 0C */ beq lbl_8028EDD8
/* 8028EDD0 0028AA30 48 00 00 41 */ bl __AICallbackStackSwitch
/* 8028EDD4 0028AA34 48 00 00 10 */ b lbl_8028EDE4
lbl_8028EDD8:
/* 8028EDD8 0028AA38 7C 6C 1B 78 */ mr r12, r3
/* 8028EDDC 0028AA3C 7D 89 03 A6 */ mtctr r12
/* 8028EDE0 0028AA40 4E 80 04 21 */ bctrl
lbl_8028EDE4:
/* 8028EDE4 0028AA44 38 00 00 00 */ li r0, 0
/* 8028EDE8 0028AA48 90 0D AA D4 */ stw r0, lbl_8063FD94-_SDA_BASE_(r13)
lbl_8028EDEC:
/* 8028EDEC 0028AA4C 38 61 00 08 */ addi r3, r1, 8
/* 8028EDF0 0028AA50 4B FD C2 A1 */ bl OSClearContext
/* 8028EDF4 0028AA54 7F E3 FB 78 */ mr r3, r31
/* 8028EDF8 0028AA58 4B FD C0 71 */ bl OSSetCurrentContext
/* 8028EDFC 0028AA5C 80 01 02 E4 */ lwz r0, 0x2e4(r1)
/* 8028EE00 0028AA60 83 E1 02 DC */ lwz r31, 0x2dc(r1)
/* 8028EE04 0028AA64 7C 08 03 A6 */ mtlr r0
/* 8028EE08 0028AA68 38 21 02 E0 */ addi r1, r1, 0x2e0
/* 8028EE0C 0028AA6C 4E 80 00 20 */ blr
.global __AICallbackStackSwitch
__AICallbackStackSwitch:
/* 8028EE10 0028AA70 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 8028EE14 0028AA74 7C 08 02 A6 */ mflr r0
/* 8028EE18 0028AA78 90 01 00 14 */ stw r0, 0x14(r1)
/* 8028EE1C 0028AA7C 93 E1 00 0C */ stw r31, 0xc(r1)
/* 8028EE20 0028AA80 7C 3F 0B 78 */ mr r31, r1
/* 8028EE24 0028AA84 7C 7F 1B 78 */ mr r31, r3
/* 8028EE28 0028AA88 3C A0 80 64 */ lis r5, lbl_8063FDC0@ha
/* 8028EE2C 0028AA8C 38 A5 FD C0 */ addi r5, r5, lbl_8063FDC0@l
/* 8028EE30 0028AA90 90 25 00 00 */ stw r1, 0(r5)
/* 8028EE34 0028AA94 3C A0 80 64 */ lis r5, lbl_8063FDC4@ha
/* 8028EE38 0028AA98 38 A5 FD C4 */ addi r5, r5, lbl_8063FDC4@l
/* 8028EE3C 0028AA9C 80 25 00 00 */ lwz r1, 0(r5)
/* 8028EE40 0028AAA0 38 21 FF F8 */ addi r1, r1, -8
/* 8028EE44 0028AAA4 7F E8 03 A6 */ mtlr r31
/* 8028EE48 0028AAA8 4E 80 00 21 */ blrl
/* 8028EE4C 0028AAAC 3C A0 80 64 */ lis r5, lbl_8063FDC0@ha
/* 8028EE50 0028AAB0 38 A5 FD C0 */ addi r5, r5, lbl_8063FDC0@l
/* 8028EE54 0028AAB4 80 25 00 00 */ lwz r1, 0(r5)
/* 8028EE58 0028AAB8 7C 2A 0B 78 */ mr r10, r1
/* 8028EE5C 0028AABC 83 EA 00 0C */ lwz r31, 0xc(r10)
/* 8028EE60 0028AAC0 81 41 00 00 */ lwz r10, 0(r1)
/* 8028EE64 0028AAC4 80 0A 00 04 */ lwz r0, 4(r10)
/* 8028EE68 0028AAC8 7D 41 53 78 */ mr r1, r10
/* 8028EE6C 0028AACC 7C 08 03 A6 */ mtlr r0
/* 8028EE70 0028AAD0 4E 80 00 20 */ blr
.global __AI_SRC_INIT
__AI_SRC_INIT:
/* 8028EE74 0028AAD4 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 8028EE78 0028AAD8 7C 08 02 A6 */ mflr r0
/* 8028EE7C 0028AADC 90 01 00 24 */ stw r0, 0x24(r1)
/* 8028EE80 0028AAE0 39 61 00 20 */ addi r11, r1, 0x20
/* 8028EE84 0028AAE4 4B F3 82 A5 */ bl _savegpr_27
/* 8028EE88 0028AAE8 38 80 00 00 */ li r4, 0
/* 8028EE8C 0028AAEC 38 60 00 00 */ li r3, 0
/* 8028EE90 0028AAF0 38 00 00 00 */ li r0, 0
/* 8028EE94 0028AAF4 3B A0 00 00 */ li r29, 0
/* 8028EE98 0028AAF8 3B C0 00 00 */ li r30, 0
/* 8028EE9C 0028AAFC 3F E0 CD 00 */ lis r31, 0xcd00
/* 8028EEA0 0028AB00 48 00 01 50 */ b lbl_8028EFF0
lbl_8028EEA4:
/* 8028EEA4 0028AB04 80 1F 6C 00 */ lwz r0, 0x6c00(r31)
/* 8028EEA8 0028AB08 54 00 06 F2 */ rlwinm r0, r0, 0, 0x1b, 0x19
/* 8028EEAC 0028AB0C 60 00 00 20 */ ori r0, r0, 0x20
/* 8028EEB0 0028AB10 90 1F 6C 00 */ stw r0, 0x6c00(r31)
/* 8028EEB4 0028AB14 80 1F 6C 00 */ lwz r0, 0x6c00(r31)
/* 8028EEB8 0028AB18 54 00 07 FA */ rlwinm r0, r0, 0, 0x1f, 0x1d
/* 8028EEBC 0028AB1C 90 1F 6C 00 */ stw r0, 0x6c00(r31)
/* 8028EEC0 0028AB20 80 1F 6C 00 */ lwz r0, 0x6c00(r31)
/* 8028EEC4 0028AB24 54 00 00 3C */ rlwinm r0, r0, 0, 0, 0x1e
/* 8028EEC8 0028AB28 60 00 00 01 */ ori r0, r0, 1
/* 8028EECC 0028AB2C 90 1F 6C 00 */ stw r0, 0x6c00(r31)
/* 8028EED0 0028AB30 80 1F 6C 08 */ lwz r0, 0x6c08(r31)
/* 8028EED4 0028AB34 54 03 00 7E */ clrlwi r3, r0, 1
lbl_8028EED8:
/* 8028EED8 0028AB38 80 1F 6C 08 */ lwz r0, 0x6c08(r31)
/* 8028EEDC 0028AB3C 54 00 00 7E */ clrlwi r0, r0, 1
/* 8028EEE0 0028AB40 7C 03 00 40 */ cmplw r3, r0
/* 8028EEE4 0028AB44 41 82 FF F4 */ beq lbl_8028EED8
/* 8028EEE8 0028AB48 4B FE 38 D1 */ bl OSGetTime
/* 8028EEEC 0028AB4C 80 1F 6C 00 */ lwz r0, 0x6c00(r31)
/* 8028EEF0 0028AB50 7C 9B 23 78 */ mr r27, r4
/* 8028EEF4 0028AB54 7C 7C 1B 78 */ mr r28, r3
/* 8028EEF8 0028AB58 54 00 07 FA */ rlwinm r0, r0, 0, 0x1f, 0x1d
/* 8028EEFC 0028AB5C 60 00 00 02 */ ori r0, r0, 2
/* 8028EF00 0028AB60 90 1F 6C 00 */ stw r0, 0x6c00(r31)
/* 8028EF04 0028AB64 80 1F 6C 00 */ lwz r0, 0x6c00(r31)
/* 8028EF08 0028AB68 54 00 00 3C */ rlwinm r0, r0, 0, 0, 0x1e
/* 8028EF0C 0028AB6C 60 00 00 01 */ ori r0, r0, 1
/* 8028EF10 0028AB70 90 1F 6C 00 */ stw r0, 0x6c00(r31)
/* 8028EF14 0028AB74 80 1F 6C 08 */ lwz r0, 0x6c08(r31)
/* 8028EF18 0028AB78 54 03 00 7E */ clrlwi r3, r0, 1
lbl_8028EF1C:
/* 8028EF1C 0028AB7C 80 1F 6C 08 */ lwz r0, 0x6c08(r31)
/* 8028EF20 0028AB80 54 00 00 7E */ clrlwi r0, r0, 1
/* 8028EF24 0028AB84 7C 03 00 40 */ cmplw r3, r0
/* 8028EF28 0028AB88 41 82 FF F4 */ beq lbl_8028EF1C
/* 8028EF2C 0028AB8C 4B FE 38 8D */ bl OSGetTime
/* 8028EF30 0028AB90 80 1F 6C 00 */ lwz r0, 0x6c00(r31)
/* 8028EF34 0028AB94 7D 1B 20 10 */ subfc r8, r27, r4
/* 8028EF38 0028AB98 7C BC 19 10 */ subfe r5, r28, r3
/* 8028EF3C 0028AB9C 54 00 07 FA */ rlwinm r0, r0, 0, 0x1f, 0x1d
/* 8028EF40 0028ABA0 90 1F 6C 00 */ stw r0, 0x6c00(r31)
/* 8028EF44 0028ABA4 6C A7 80 00 */ xoris r7, r5, 0x8000
/* 8028EF48 0028ABA8 80 1F 6C 00 */ lwz r0, 0x6c00(r31)
/* 8028EF4C 0028ABAC 54 00 00 3C */ rlwinm r0, r0, 0, 0, 0x1e
/* 8028EF50 0028ABB0 90 1F 6C 00 */ stw r0, 0x6c00(r31)
/* 8028EF54 0028ABB4 81 4D AA DC */ lwz r10, lbl_8063FD9C-_SDA_BASE_(r13)
/* 8028EF58 0028ABB8 81 8D AA FC */ lwz r12, lbl_8063FDBC-_SDA_BASE_(r13)
/* 8028EF5C 0028ABBC 81 2D AA D8 */ lwz r9, lbl_8063FD98-_SDA_BASE_(r13)
/* 8028EF60 0028ABC0 81 6D AA F8 */ lwz r11, lbl_8063FDB8-_SDA_BASE_(r13)
/* 8028EF64 0028ABC4 7C CA 60 10 */ subfc r6, r10, r12
/* 8028EF68 0028ABC8 7C 09 59 10 */ subfe r0, r9, r11
/* 8028EF6C 0028ABCC 6C 05 80 00 */ xoris r5, r0, 0x8000
/* 8028EF70 0028ABD0 7C 06 40 10 */ subfc r0, r6, r8
/* 8028EF74 0028ABD4 7C A5 39 10 */ subfe r5, r5, r7
/* 8028EF78 0028ABD8 7C A7 39 10 */ subfe r5, r7, r7
/* 8028EF7C 0028ABDC 7C A5 00 D1 */ neg. r5, r5
/* 8028EF80 0028ABE0 41 82 00 14 */ beq lbl_8028EF94
/* 8028EF84 0028ABE4 83 CD AA E8 */ lwz r30, lbl_8063FDA8-_SDA_BASE_(r13)
/* 8028EF88 0028ABE8 38 00 00 01 */ li r0, 1
/* 8028EF8C 0028ABEC 83 AD AA EC */ lwz r29, lbl_8063FDAC-_SDA_BASE_(r13)
/* 8028EF90 0028ABF0 48 00 00 60 */ b lbl_8028EFF0
lbl_8028EF94:
/* 8028EF94 0028ABF4 7C CC 50 14 */ addc r6, r12, r10
/* 8028EF98 0028ABF8 7C 0B 49 14 */ adde r0, r11, r9
/* 8028EF9C 0028ABFC 6C 05 80 00 */ xoris r5, r0, 0x8000
/* 8028EFA0 0028AC00 7C 06 40 10 */ subfc r0, r6, r8
/* 8028EFA4 0028AC04 7C A5 39 10 */ subfe r5, r5, r7
/* 8028EFA8 0028AC08 7C A7 39 10 */ subfe r5, r7, r7
/* 8028EFAC 0028AC0C 7C A5 00 D1 */ neg. r5, r5
/* 8028EFB0 0028AC10 40 82 00 3C */ bne lbl_8028EFEC
/* 8028EFB4 0028AC14 80 AD AA F4 */ lwz r5, lbl_8063FDB4-_SDA_BASE_(r13)
/* 8028EFB8 0028AC18 80 0D AA F0 */ lwz r0, lbl_8063FDB0-_SDA_BASE_(r13)
/* 8028EFBC 0028AC1C 7C CA 28 10 */ subfc r6, r10, r5
/* 8028EFC0 0028AC20 7C 09 01 10 */ subfe r0, r9, r0
/* 8028EFC4 0028AC24 6C 05 80 00 */ xoris r5, r0, 0x8000
/* 8028EFC8 0028AC28 7C 06 40 10 */ subfc r0, r6, r8
/* 8028EFCC 0028AC2C 7C A5 39 10 */ subfe r5, r5, r7
/* 8028EFD0 0028AC30 7C A7 39 10 */ subfe r5, r7, r7
/* 8028EFD4 0028AC34 7C A5 00 D1 */ neg. r5, r5
/* 8028EFD8 0028AC38 41 82 00 14 */ beq lbl_8028EFEC
/* 8028EFDC 0028AC3C 83 CD AA E0 */ lwz r30, lbl_8063FDA0-_SDA_BASE_(r13)
/* 8028EFE0 0028AC40 38 00 00 01 */ li r0, 1
/* 8028EFE4 0028AC44 83 AD AA E4 */ lwz r29, lbl_8063FDA4-_SDA_BASE_(r13)
/* 8028EFE8 0028AC48 48 00 00 08 */ b lbl_8028EFF0
lbl_8028EFEC:
/* 8028EFEC 0028AC4C 38 00 00 00 */ li r0, 0
lbl_8028EFF0:
/* 8028EFF0 0028AC50 2C 00 00 00 */ cmpwi r0, 0
/* 8028EFF4 0028AC54 41 82 FE B0 */ beq lbl_8028EEA4
/* 8028EFF8 0028AC58 7F E4 E8 14 */ addc r31, r4, r29
/* 8028EFFC 0028AC5C 7F A3 F1 14 */ adde r29, r3, r30
lbl_8028F000:
/* 8028F000 0028AC60 4B FE 37 B9 */ bl OSGetTime
/* 8028F004 0028AC64 6C 60 80 00 */ xoris r0, r3, 0x8000
/* 8028F008 0028AC68 6F A5 80 00 */ xoris r5, r29, 0x8000
/* 8028F00C 0028AC6C 7C 7F 20 10 */ subfc r3, r31, r4
/* 8028F010 0028AC70 7C A5 01 10 */ subfe r5, r5, r0
/* 8028F014 0028AC74 7C A0 01 10 */ subfe r5, r0, r0
/* 8028F018 0028AC78 7C A5 00 D1 */ neg. r5, r5
/* 8028F01C 0028AC7C 40 82 FF E4 */ bne lbl_8028F000
/* 8028F020 0028AC80 39 61 00 20 */ addi r11, r1, 0x20
/* 8028F024 0028AC84 4B F3 81 51 */ bl _restgpr_27
/* 8028F028 0028AC88 80 01 00 24 */ lwz r0, 0x24(r1)
/* 8028F02C 0028AC8C 7C 08 03 A6 */ mtlr r0
/* 8028F030 0028AC90 38 21 00 20 */ addi r1, r1, 0x20
/* 8028F034 0028AC94 4E 80 00 20 */ blr
|