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
|
.include "macros.inc"
.section .text, "ax" # 0x80006980 - 0x803E1E60
.global THPAudioDecode
THPAudioDecode:
/* 8029EEFC 0029AB5C 94 21 FF C0 */ stwu r1, -0x40(r1)
/* 8029EF00 0029AB60 7C 08 02 A6 */ mflr r0
/* 8029EF04 0029AB64 90 01 00 44 */ stw r0, 0x44(r1)
/* 8029EF08 0029AB68 39 61 00 40 */ addi r11, r1, 0x40
/* 8029EF0C 0029AB6C 4B F2 82 01 */ bl _savegpr_20
/* 8029EF10 0029AB70 2C 03 00 00 */ cmpwi r3, 0
/* 8029EF14 0029AB74 41 82 00 0C */ beq lbl_8029EF20
/* 8029EF18 0029AB78 2C 04 00 00 */ cmpwi r4, 0
/* 8029EF1C 0029AB7C 40 82 00 0C */ bne lbl_8029EF28
lbl_8029EF20:
/* 8029EF20 0029AB80 38 60 00 00 */ li r3, 0
/* 8029EF24 0029AB84 48 00 04 54 */ b lbl_8029F378
lbl_8029EF28:
/* 8029EF28 0029AB88 2C 05 00 01 */ cmpwi r5, 1
/* 8029EF2C 0029AB8C 80 A4 00 00 */ lwz r5, 0(r4)
/* 8029EF30 0029AB90 3A 84 00 50 */ addi r20, r4, 0x50
/* 8029EF34 0029AB94 7D 94 2A 14 */ add r12, r20, r5
/* 8029EF38 0029AB98 40 82 00 1C */ bne lbl_8029EF54
/* 8029EF3C 0029AB9C 80 04 00 04 */ lwz r0, 4(r4)
/* 8029EF40 0029ABA0 7C 7E 1B 78 */ mr r30, r3
/* 8029EF44 0029ABA4 39 00 00 01 */ li r8, 1
/* 8029EF48 0029ABA8 54 00 08 3C */ slwi r0, r0, 1
/* 8029EF4C 0029ABAC 7F E3 02 14 */ add r31, r3, r0
/* 8029EF50 0029ABB0 48 00 00 10 */ b lbl_8029EF60
lbl_8029EF54:
/* 8029EF54 0029ABB4 7C 7E 1B 78 */ mr r30, r3
/* 8029EF58 0029ABB8 3B E3 00 02 */ addi r31, r3, 2
/* 8029EF5C 0029ABBC 39 00 00 02 */ li r8, 2
lbl_8029EF60:
/* 8029EF60 0029ABC0 2C 05 00 00 */ cmpwi r5, 0
/* 8029EF64 0029ABC4 40 82 01 68 */ bne lbl_8029F0CC
/* 8029EF68 0029ABC8 88 B4 00 00 */ lbz r5, 0(r20)
/* 8029EF6C 0029ABCC 3E E0 80 00 */ lis r23, 0x7FFFFFFF@ha
/* 8029EF70 0029ABD0 39 60 00 00 */ li r11, 0
/* 8029EF74 0029ABD4 3C 60 00 01 */ lis r3, 0x00008000@ha
/* 8029EF78 0029ABD8 A9 24 00 48 */ lha r9, 0x48(r4)
/* 8029EF7C 0029ABDC 54 A0 E7 7E */ rlwinm r0, r5, 0x1c, 0x1d, 0x1f
/* 8029EF80 0029ABE0 54 A7 07 3E */ clrlwi r7, r5, 0x1c
/* 8029EF84 0029ABE4 A9 44 00 4A */ lha r10, 0x4a(r4)
/* 8029EF88 0029ABE8 55 08 08 3C */ slwi r8, r8, 1
/* 8029EF8C 0029ABEC 38 B4 00 01 */ addi r5, r20, 1
/* 8029EF90 0029ABF0 3B 63 80 00 */ addi r27, r3, 0x00008000@l
/* 8029EF94 0029ABF4 3B 37 FF FF */ addi r25, r23, 0x7FFFFFFF@l
/* 8029EF98 0029ABF8 6D 78 80 00 */ xoris r24, r11, 0x8000
/* 8029EF9C 0029ABFC 38 C0 00 02 */ li r6, 2
/* 8029EFA0 0029AC00 3B 40 00 00 */ li r26, 0
/* 8029EFA4 0029AC04 3A C0 FF FF */ li r22, -1
/* 8029EFA8 0029AC08 48 00 01 14 */ b lbl_8029F0BC
lbl_8029EFAC:
/* 8029EFAC 0029AC0C 54 C3 07 3F */ clrlwi. r3, r6, 0x1c
/* 8029EFB0 0029AC10 40 82 00 18 */ bne lbl_8029EFC8
/* 8029EFB4 0029AC14 88 65 00 00 */ lbz r3, 0(r5)
/* 8029EFB8 0029AC18 38 A5 00 01 */ addi r5, r5, 1
/* 8029EFBC 0029AC1C 38 C6 00 02 */ addi r6, r6, 2
/* 8029EFC0 0029AC20 54 60 E7 7E */ rlwinm r0, r3, 0x1c, 0x1d, 0x1f
/* 8029EFC4 0029AC24 54 67 07 3E */ clrlwi r7, r3, 0x1c
lbl_8029EFC8:
/* 8029EFC8 0029AC28 54 C3 07 FF */ clrlwi. r3, r6, 0x1f
/* 8029EFCC 0029AC2C 41 82 00 18 */ beq lbl_8029EFE4
/* 8029EFD0 0029AC30 88 65 00 00 */ lbz r3, 0(r5)
/* 8029EFD4 0029AC34 38 A5 00 01 */ addi r5, r5, 1
/* 8029EFD8 0029AC38 54 63 E0 06 */ slwi r3, r3, 0x1c
/* 8029EFDC 0029AC3C 7C 75 E6 70 */ srawi r21, r3, 0x1c
/* 8029EFE0 0029AC40 48 00 00 10 */ b lbl_8029EFF0
lbl_8029EFE4:
/* 8029EFE4 0029AC44 88 65 00 00 */ lbz r3, 0(r5)
/* 8029EFE8 0029AC48 54 63 C0 06 */ rlwinm r3, r3, 0x18, 0, 3
/* 8029EFEC 0029AC4C 7C 75 E6 70 */ srawi r21, r3, 0x1c
lbl_8029EFF0:
/* 8029EFF0 0029AC50 54 0C 15 BA */ rlwinm r12, r0, 2, 0x16, 0x1d
/* 8029EFF4 0029AC54 54 E3 06 3E */ clrlwi r3, r7, 0x18
/* 8029EFF8 0029AC58 7D 84 62 14 */ add r12, r4, r12
/* 8029EFFC 0029AC5C 7D 5C 07 34 */ extsh r28, r10
/* 8029F000 0029AC60 A9 4C 00 0A */ lha r10, 0xa(r12)
/* 8029F004 0029AC64 7E A3 18 30 */ slw r3, r21, r3
/* 8029F008 0029AC68 A9 8C 00 08 */ lha r12, 8(r12)
/* 8029F00C 0029AC6C 7D 35 07 34 */ extsh r21, r9
/* 8029F010 0029AC70 7F 9C 51 D6 */ mullw r28, r28, r10
/* 8029F014 0029AC74 54 6A 58 28 */ slwi r10, r3, 0xb
/* 8029F018 0029AC78 38 C6 00 01 */ addi r6, r6, 1
/* 8029F01C 0029AC7C 7E B5 61 D6 */ mullw r21, r21, r12
/* 8029F020 0029AC80 7F 83 FE 70 */ srawi r3, r28, 0x1f
/* 8029F024 0029AC84 7E AC FE 70 */ srawi r12, r21, 0x1f
/* 8029F028 0029AC88 7F 9C A8 14 */ addc r28, r28, r21
/* 8029F02C 0029AC8C 7E A3 61 14 */ adde r21, r3, r12
/* 8029F030 0029AC90 7D 43 FE 70 */ srawi r3, r10, 0x1f
/* 8029F034 0029AC94 7D 9C 50 14 */ addc r12, r28, r10
/* 8029F038 0029AC98 7C 75 19 14 */ adde r3, r21, r3
/* 8029F03C 0029AC9C 55 8A 28 34 */ slwi r10, r12, 5
/* 8029F040 0029ACA0 54 63 28 34 */ slwi r3, r3, 5
/* 8029F044 0029ACA4 51 83 2E FE */ rlwimi r3, r12, 5, 0x1b, 0x1f
/* 8029F048 0029ACA8 7E 8A D8 14 */ addc r20, r10, r27
/* 8029F04C 0029ACAC 7C 63 D1 14 */ adde r3, r3, r26
/* 8029F050 0029ACB0 6C 6C 80 00 */ xoris r12, r3, 0x8000
/* 8029F054 0029ACB4 7D 54 C8 10 */ subfc r10, r20, r25
/* 8029F058 0029ACB8 7D 8C C1 10 */ subfe r12, r12, r24
/* 8029F05C 0029ACBC 7D 98 C1 10 */ subfe r12, r24, r24
/* 8029F060 0029ACC0 7D 8C 00 D1 */ neg. r12, r12
/* 8029F064 0029ACC4 41 82 00 0C */ beq lbl_8029F070
/* 8029F068 0029ACC8 3A 97 FF FF */ addi r20, r23, -1
/* 8029F06C 0029ACCC 38 60 00 00 */ li r3, 0
lbl_8029F070:
/* 8029F070 0029ACD0 6C 6A 80 00 */ xoris r10, r3, 0x8000
/* 8029F074 0029ACD4 6E D5 80 00 */ xoris r21, r22, 0x8000
/* 8029F078 0029ACD8 7D 97 A0 10 */ subfc r12, r23, r20
/* 8029F07C 0029ACDC 7E B5 51 10 */ subfe r21, r21, r10
/* 8029F080 0029ACE0 7E AA 51 10 */ subfe r21, r10, r10
/* 8029F084 0029ACE4 7E B5 00 D1 */ neg. r21, r21
/* 8029F088 0029ACE8 41 82 00 0C */ beq lbl_8029F094
/* 8029F08C 0029ACEC 3E 80 80 00 */ lis r20, 0x8000
/* 8029F090 0029ACF0 38 60 FF FF */ li r3, -1
lbl_8029F094:
/* 8029F094 0029ACF4 56 8C 80 3E */ rotlwi r12, r20, 0x10
/* 8029F098 0029ACF8 7D 2A 4B 78 */ mr r10, r9
/* 8029F09C 0029ACFC 50 6C 80 1E */ rlwimi r12, r3, 0x10, 0, 0xf
/* 8029F0A0 0029AD00 7C 63 86 70 */ srawi r3, r3, 0x10
/* 8029F0A4 0029AD04 B1 9F 00 00 */ sth r12, 0(r31)
/* 8029F0A8 0029AD08 7D 89 63 78 */ mr r9, r12
/* 8029F0AC 0029AD0C 7F FF 42 14 */ add r31, r31, r8
/* 8029F0B0 0029AD10 39 6B 00 01 */ addi r11, r11, 1
/* 8029F0B4 0029AD14 B1 9E 00 00 */ sth r12, 0(r30)
/* 8029F0B8 0029AD18 7F DE 42 14 */ add r30, r30, r8
lbl_8029F0BC:
/* 8029F0BC 0029AD1C 80 64 00 04 */ lwz r3, 4(r4)
/* 8029F0C0 0029AD20 7C 0B 18 40 */ cmplw r11, r3
/* 8029F0C4 0029AD24 41 80 FE E8 */ blt lbl_8029EFAC
/* 8029F0C8 0029AD28 48 00 02 B0 */ b lbl_8029F378
lbl_8029F0CC:
/* 8029F0CC 0029AD2C 88 14 00 00 */ lbz r0, 0(r20)
/* 8029F0D0 0029AD30 3F 40 80 00 */ lis r26, 0x7FFFFFFF@ha
/* 8029F0D4 0029AD34 38 C0 00 00 */ li r6, 0
/* 8029F0D8 0029AD38 3C E0 00 01 */ lis r7, 0x00008000@ha
/* 8029F0DC 0029AD3C A8 64 00 48 */ lha r3, 0x48(r4)
/* 8029F0E0 0029AD40 54 0A E7 7E */ rlwinm r10, r0, 0x1c, 0x1d, 0x1f
/* 8029F0E4 0029AD44 54 0B 07 3E */ clrlwi r11, r0, 0x1c
/* 8029F0E8 0029AD48 55 00 08 3C */ slwi r0, r8, 1
/* 8029F0EC 0029AD4C A8 A4 00 4A */ lha r5, 0x4a(r4)
/* 8029F0F0 0029AD50 39 14 00 01 */ addi r8, r20, 1
/* 8029F0F4 0029AD54 3A C7 80 00 */ addi r22, r7, 0x00008000@l
/* 8029F0F8 0029AD58 3B 9A FF FF */ addi r28, r26, 0x7FFFFFFF@l
/* 8029F0FC 0029AD5C 6C DB 80 00 */ xoris r27, r6, 0x8000
/* 8029F100 0029AD60 39 20 00 02 */ li r9, 2
/* 8029F104 0029AD64 3B A0 00 00 */ li r29, 0
/* 8029F108 0029AD68 3B 20 FF FF */ li r25, -1
/* 8029F10C 0029AD6C 48 00 01 0C */ b lbl_8029F218
lbl_8029F110:
/* 8029F110 0029AD70 55 27 07 3F */ clrlwi. r7, r9, 0x1c
/* 8029F114 0029AD74 40 82 00 18 */ bne lbl_8029F12C
/* 8029F118 0029AD78 88 E8 00 00 */ lbz r7, 0(r8)
/* 8029F11C 0029AD7C 39 08 00 01 */ addi r8, r8, 1
/* 8029F120 0029AD80 39 29 00 02 */ addi r9, r9, 2
/* 8029F124 0029AD84 54 EA E7 7E */ rlwinm r10, r7, 0x1c, 0x1d, 0x1f
/* 8029F128 0029AD88 54 EB 07 3E */ clrlwi r11, r7, 0x1c
lbl_8029F12C:
/* 8029F12C 0029AD8C 55 27 07 FF */ clrlwi. r7, r9, 0x1f
/* 8029F130 0029AD90 41 82 00 18 */ beq lbl_8029F148
/* 8029F134 0029AD94 88 E8 00 00 */ lbz r7, 0(r8)
/* 8029F138 0029AD98 39 08 00 01 */ addi r8, r8, 1
/* 8029F13C 0029AD9C 54 E7 E0 06 */ slwi r7, r7, 0x1c
/* 8029F140 0029ADA0 7C F8 E6 70 */ srawi r24, r7, 0x1c
/* 8029F144 0029ADA4 48 00 00 10 */ b lbl_8029F154
lbl_8029F148:
/* 8029F148 0029ADA8 88 E8 00 00 */ lbz r7, 0(r8)
/* 8029F14C 0029ADAC 54 E7 C0 06 */ rlwinm r7, r7, 0x18, 0, 3
/* 8029F150 0029ADB0 7C F8 E6 70 */ srawi r24, r7, 0x1c
lbl_8029F154:
/* 8029F154 0029ADB4 55 55 15 BA */ rlwinm r21, r10, 2, 0x16, 0x1d
/* 8029F158 0029ADB8 55 67 06 3E */ clrlwi r7, r11, 0x18
/* 8029F15C 0029ADBC 7E 84 AA 14 */ add r20, r4, r21
/* 8029F160 0029ADC0 7C B7 07 34 */ extsh r23, r5
/* 8029F164 0029ADC4 AA B4 00 0A */ lha r21, 0xa(r20)
/* 8029F168 0029ADC8 7F 05 38 30 */ slw r5, r24, r7
/* 8029F16C 0029ADCC A8 F4 00 08 */ lha r7, 8(r20)
/* 8029F170 0029ADD0 7C 78 07 34 */ extsh r24, r3
/* 8029F174 0029ADD4 7E B7 A9 D6 */ mullw r21, r23, r21
/* 8029F178 0029ADD8 54 B7 58 28 */ slwi r23, r5, 0xb
/* 8029F17C 0029ADDC 39 29 00 01 */ addi r9, r9, 1
/* 8029F180 0029ADE0 7F 18 39 D6 */ mullw r24, r24, r7
/* 8029F184 0029ADE4 7E A7 FE 70 */ srawi r7, r21, 0x1f
/* 8029F188 0029ADE8 7F 05 FE 70 */ srawi r5, r24, 0x1f
/* 8029F18C 0029ADEC 7F 15 C0 14 */ addc r24, r21, r24
/* 8029F190 0029ADF0 7C E7 29 14 */ adde r7, r7, r5
/* 8029F194 0029ADF4 7E E5 FE 70 */ srawi r5, r23, 0x1f
/* 8029F198 0029ADF8 7E F8 B8 14 */ addc r23, r24, r23
/* 8029F19C 0029ADFC 7C A7 29 14 */ adde r5, r7, r5
/* 8029F1A0 0029AE00 56 E7 28 34 */ slwi r7, r23, 5
/* 8029F1A4 0029AE04 54 A5 28 34 */ slwi r5, r5, 5
/* 8029F1A8 0029AE08 52 E5 2E FE */ rlwimi r5, r23, 5, 0x1b, 0x1f
/* 8029F1AC 0029AE0C 7E 87 B0 14 */ addc r20, r7, r22
/* 8029F1B0 0029AE10 7C E5 E9 14 */ adde r7, r5, r29
/* 8029F1B4 0029AE14 6C F7 80 00 */ xoris r23, r7, 0x8000
/* 8029F1B8 0029AE18 7C B4 E0 10 */ subfc r5, r20, r28
/* 8029F1BC 0029AE1C 7E F7 D9 10 */ subfe r23, r23, r27
/* 8029F1C0 0029AE20 7E FB D9 10 */ subfe r23, r27, r27
/* 8029F1C4 0029AE24 7E F7 00 D1 */ neg. r23, r23
/* 8029F1C8 0029AE28 41 82 00 0C */ beq lbl_8029F1D4
/* 8029F1CC 0029AE2C 3A 9A FF FF */ addi r20, r26, -1
/* 8029F1D0 0029AE30 38 E0 00 00 */ li r7, 0
lbl_8029F1D4:
/* 8029F1D4 0029AE34 6C E5 80 00 */ xoris r5, r7, 0x8000
/* 8029F1D8 0029AE38 6F 38 80 00 */ xoris r24, r25, 0x8000
/* 8029F1DC 0029AE3C 7E FA A0 10 */ subfc r23, r26, r20
/* 8029F1E0 0029AE40 7F 18 29 10 */ subfe r24, r24, r5
/* 8029F1E4 0029AE44 7F 05 29 10 */ subfe r24, r5, r5
/* 8029F1E8 0029AE48 7F 18 00 D1 */ neg. r24, r24
/* 8029F1EC 0029AE4C 41 82 00 0C */ beq lbl_8029F1F8
/* 8029F1F0 0029AE50 3E 80 80 00 */ lis r20, 0x8000
/* 8029F1F4 0029AE54 38 E0 FF FF */ li r7, -1
lbl_8029F1F8:
/* 8029F1F8 0029AE58 56 97 80 3E */ rotlwi r23, r20, 0x10
/* 8029F1FC 0029AE5C 7C 65 1B 78 */ mr r5, r3
/* 8029F200 0029AE60 50 F7 80 1E */ rlwimi r23, r7, 0x10, 0, 0xf
/* 8029F204 0029AE64 7C E3 86 70 */ srawi r3, r7, 0x10
/* 8029F208 0029AE68 B2 FF 00 00 */ sth r23, 0(r31)
/* 8029F20C 0029AE6C 7E E3 BB 78 */ mr r3, r23
/* 8029F210 0029AE70 7F FF 02 14 */ add r31, r31, r0
/* 8029F214 0029AE74 38 C6 00 01 */ addi r6, r6, 1
lbl_8029F218:
/* 8029F218 0029AE78 80 E4 00 04 */ lwz r7, 4(r4)
/* 8029F21C 0029AE7C 7C 06 38 40 */ cmplw r6, r7
/* 8029F220 0029AE80 41 80 FE F0 */ blt lbl_8029F110
/* 8029F224 0029AE84 89 0C 00 00 */ lbz r8, 0(r12)
/* 8029F228 0029AE88 3F A0 80 00 */ lis r29, 0x7FFFFFFF@ha
/* 8029F22C 0029AE8C 38 E0 00 00 */ li r7, 0
/* 8029F230 0029AE90 3C 60 00 01 */ lis r3, 0x00008000@ha
/* 8029F234 0029AE94 A8 A4 00 4C */ lha r5, 0x4c(r4)
/* 8029F238 0029AE98 55 0A E7 7E */ rlwinm r10, r8, 0x1c, 0x1d, 0x1f
/* 8029F23C 0029AE9C 55 0B 07 3E */ clrlwi r11, r8, 0x1c
/* 8029F240 0029AEA0 A8 C4 00 4E */ lha r6, 0x4e(r4)
/* 8029F244 0029AEA4 39 0C 00 01 */ addi r8, r12, 1
/* 8029F248 0029AEA8 3B 23 80 00 */ addi r25, r3, 0x00008000@l
/* 8029F24C 0029AEAC 3B 7D FF FF */ addi r27, r29, 0x7FFFFFFF@l
/* 8029F250 0029AEB0 6C FC 80 00 */ xoris r28, r7, 0x8000
/* 8029F254 0029AEB4 39 20 00 02 */ li r9, 2
/* 8029F258 0029AEB8 3B 40 00 00 */ li r26, 0
/* 8029F25C 0029AEBC 3B E0 FF FF */ li r31, -1
/* 8029F260 0029AEC0 48 00 01 0C */ b lbl_8029F36C
lbl_8029F264:
/* 8029F264 0029AEC4 55 23 07 3F */ clrlwi. r3, r9, 0x1c
/* 8029F268 0029AEC8 40 82 00 18 */ bne lbl_8029F280
/* 8029F26C 0029AECC 88 68 00 00 */ lbz r3, 0(r8)
/* 8029F270 0029AED0 39 08 00 01 */ addi r8, r8, 1
/* 8029F274 0029AED4 39 29 00 02 */ addi r9, r9, 2
/* 8029F278 0029AED8 54 6A E7 7E */ rlwinm r10, r3, 0x1c, 0x1d, 0x1f
/* 8029F27C 0029AEDC 54 6B 07 3E */ clrlwi r11, r3, 0x1c
lbl_8029F280:
/* 8029F280 0029AEE0 55 23 07 FF */ clrlwi. r3, r9, 0x1f
/* 8029F284 0029AEE4 41 82 00 18 */ beq lbl_8029F29C
/* 8029F288 0029AEE8 88 68 00 00 */ lbz r3, 0(r8)
/* 8029F28C 0029AEEC 39 08 00 01 */ addi r8, r8, 1
/* 8029F290 0029AEF0 54 63 E0 06 */ slwi r3, r3, 0x1c
/* 8029F294 0029AEF4 7C 75 E6 70 */ srawi r21, r3, 0x1c
/* 8029F298 0029AEF8 48 00 00 10 */ b lbl_8029F2A8
lbl_8029F29C:
/* 8029F29C 0029AEFC 88 68 00 00 */ lbz r3, 0(r8)
/* 8029F2A0 0029AF00 54 63 C0 06 */ rlwinm r3, r3, 0x18, 0, 3
/* 8029F2A4 0029AF04 7C 75 E6 70 */ srawi r21, r3, 0x1c
lbl_8029F2A8:
/* 8029F2A8 0029AF08 55 4C 15 BA */ rlwinm r12, r10, 2, 0x16, 0x1d
/* 8029F2AC 0029AF0C 55 63 06 3E */ clrlwi r3, r11, 0x18
/* 8029F2B0 0029AF10 7D 84 62 14 */ add r12, r4, r12
/* 8029F2B4 0029AF14 7C D7 07 34 */ extsh r23, r6
/* 8029F2B8 0029AF18 A8 CC 00 2A */ lha r6, 0x2a(r12)
/* 8029F2BC 0029AF1C 7C B8 07 34 */ extsh r24, r5
/* 8029F2C0 0029AF20 A9 8C 00 28 */ lha r12, 0x28(r12)
/* 8029F2C4 0029AF24 7E A3 18 30 */ slw r3, r21, r3
/* 8029F2C8 0029AF28 7E F7 31 D6 */ mullw r23, r23, r6
/* 8029F2CC 0029AF2C 39 29 00 01 */ addi r9, r9, 1
/* 8029F2D0 0029AF30 54 66 58 28 */ slwi r6, r3, 0xb
/* 8029F2D4 0029AF34 7D 98 61 D6 */ mullw r12, r24, r12
/* 8029F2D8 0029AF38 7E F4 FE 70 */ srawi r20, r23, 0x1f
/* 8029F2DC 0029AF3C 7D 83 FE 70 */ srawi r3, r12, 0x1f
/* 8029F2E0 0029AF40 7D 97 60 14 */ addc r12, r23, r12
/* 8029F2E4 0029AF44 7F 14 19 14 */ adde r24, r20, r3
/* 8029F2E8 0029AF48 7C C3 FE 70 */ srawi r3, r6, 0x1f
/* 8029F2EC 0029AF4C 7D 8C 30 14 */ addc r12, r12, r6
/* 8029F2F0 0029AF50 7C 78 19 14 */ adde r3, r24, r3
/* 8029F2F4 0029AF54 55 86 28 34 */ slwi r6, r12, 5
/* 8029F2F8 0029AF58 54 63 28 34 */ slwi r3, r3, 5
/* 8029F2FC 0029AF5C 51 83 2E FE */ rlwimi r3, r12, 5, 0x1b, 0x1f
/* 8029F300 0029AF60 7E A6 C8 14 */ addc r21, r6, r25
/* 8029F304 0029AF64 7E 83 D1 14 */ adde r20, r3, r26
/* 8029F308 0029AF68 6E 86 80 00 */ xoris r6, r20, 0x8000
/* 8029F30C 0029AF6C 7C 75 D8 10 */ subfc r3, r21, r27
/* 8029F310 0029AF70 7C C6 E1 10 */ subfe r6, r6, r28
/* 8029F314 0029AF74 7C DC E1 10 */ subfe r6, r28, r28
/* 8029F318 0029AF78 7C C6 00 D1 */ neg. r6, r6
/* 8029F31C 0029AF7C 41 82 00 0C */ beq lbl_8029F328
/* 8029F320 0029AF80 3A BD FF FF */ addi r21, r29, -1
/* 8029F324 0029AF84 3A 80 00 00 */ li r20, 0
lbl_8029F328:
/* 8029F328 0029AF88 6E 83 80 00 */ xoris r3, r20, 0x8000
/* 8029F32C 0029AF8C 6F EC 80 00 */ xoris r12, r31, 0x8000
/* 8029F330 0029AF90 7C DD A8 10 */ subfc r6, r29, r21
/* 8029F334 0029AF94 7D 8C 19 10 */ subfe r12, r12, r3
/* 8029F338 0029AF98 7D 83 19 10 */ subfe r12, r3, r3
/* 8029F33C 0029AF9C 7D 8C 00 D1 */ neg. r12, r12
/* 8029F340 0029AFA0 41 82 00 0C */ beq lbl_8029F34C
/* 8029F344 0029AFA4 3E A0 80 00 */ lis r21, 0x8000
/* 8029F348 0029AFA8 3A 80 FF FF */ li r20, -1
lbl_8029F34C:
/* 8029F34C 0029AFAC 56 AC 80 3E */ rotlwi r12, r21, 0x10
/* 8029F350 0029AFB0 7C A6 2B 78 */ mr r6, r5
/* 8029F354 0029AFB4 52 8C 80 1E */ rlwimi r12, r20, 0x10, 0, 0xf
/* 8029F358 0029AFB8 7E 83 86 70 */ srawi r3, r20, 0x10
/* 8029F35C 0029AFBC B1 9E 00 00 */ sth r12, 0(r30)
/* 8029F360 0029AFC0 7D 85 63 78 */ mr r5, r12
/* 8029F364 0029AFC4 7F DE 02 14 */ add r30, r30, r0
/* 8029F368 0029AFC8 38 E7 00 01 */ addi r7, r7, 1
lbl_8029F36C:
/* 8029F36C 0029AFCC 80 64 00 04 */ lwz r3, 4(r4)
/* 8029F370 0029AFD0 7C 07 18 40 */ cmplw r7, r3
/* 8029F374 0029AFD4 41 80 FE F0 */ blt lbl_8029F264
lbl_8029F378:
/* 8029F378 0029AFD8 39 61 00 40 */ addi r11, r1, 0x40
/* 8029F37C 0029AFDC 4B F2 7D DD */ bl _restgpr_20
/* 8029F380 0029AFE0 80 01 00 44 */ lwz r0, 0x44(r1)
/* 8029F384 0029AFE4 7C 08 03 A6 */ mtlr r0
/* 8029F388 0029AFE8 38 21 00 40 */ addi r1, r1, 0x40
/* 8029F38C 0029AFEC 4E 80 00 20 */ blr
|