summaryrefslogtreecommitdiff
path: root/asm/SDK/WUD/WUDHidHost.s
blob: f16facbe5930b16d8569069a42bae12c96a5f30a (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
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
371
372
373
374
375
376
.include "macros.inc"

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

.global WUDHidHostCallback
WUDHidHostCallback:
/* 802B9030 002B4C90  94 21 FF E0 */	stwu r1, -0x20(r1)
/* 802B9034 002B4C94  7C 08 02 A6 */	mflr r0
/* 802B9038 002B4C98  28 03 00 0F */	cmplwi r3, 0xf
/* 802B903C 002B4C9C  90 01 00 24 */	stw r0, 0x24(r1)
/* 802B9040 002B4CA0  93 E1 00 1C */	stw r31, 0x1c(r1)
/* 802B9044 002B4CA4  3F E0 80 54 */	lis r31, lbl_8053A4E0@ha
/* 802B9048 002B4CA8  3B FF A4 E0 */	addi r31, r31, lbl_8053A4E0@l
/* 802B904C 002B4CAC  93 C1 00 18 */	stw r30, 0x18(r1)
/* 802B9050 002B4CB0  7C 9E 23 78 */	mr r30, r4
/* 802B9054 002B4CB4  93 A1 00 14 */	stw r29, 0x14(r1)
/* 802B9058 002B4CB8  3F A0 80 44 */	lis r29, lbl_8043EEB0@ha
/* 802B905C 002B4CBC  3B BD EE B0 */	addi r29, r29, lbl_8043EEB0@l
/* 802B9060 002B4CC0  41 81 04 9C */	bgt lbl_802B94FC
/* 802B9064 002B4CC4  3C A0 80 44 */	lis r5, lbl_8043F0B0@ha
/* 802B9068 002B4CC8  54 60 10 3A */	slwi r0, r3, 2
/* 802B906C 002B4CCC  38 A5 F0 B0 */	addi r5, r5, lbl_8043F0B0@l
/* 802B9070 002B4CD0  7C A5 00 2E */	lwzx r5, r5, r0
/* 802B9074 002B4CD4  7C A9 03 A6 */	mtctr r5
/* 802B9078 002B4CD8  4E 80 04 20 */	bctr
/* 802B907C 002B4CDC  38 7D 00 00 */	addi r3, r29, 0
/* 802B9080 002B4CE0  4C C6 31 82 */	crclr 6
/* 802B9084 002B4CE4  48 00 04 F9 */	bl WUD_DEBUGPrint
/* 802B9088 002B4CE8  80 1F 07 40 */	lwz r0, 0x740(r31)
/* 802B908C 002B4CEC  60 00 00 01 */	ori r0, r0, 1
/* 802B9090 002B4CF0  90 1F 07 40 */	stw r0, 0x740(r31)
/* 802B9094 002B4CF4  48 00 04 68 */	b lbl_802B94FC
/* 802B9098 002B4CF8  38 7D 00 14 */	addi r3, r29, 0x14
/* 802B909C 002B4CFC  4C C6 31 82 */	crclr 6
/* 802B90A0 002B4D00  48 00 04 DD */	bl WUD_DEBUGPrint
/* 802B90A4 002B4D04  48 00 04 58 */	b lbl_802B94FC
/* 802B90A8 002B4D08  38 7D 00 28 */	addi r3, r29, 0x28
/* 802B90AC 002B4D0C  4C C6 31 82 */	crclr 6
/* 802B90B0 002B4D10  48 00 04 CD */	bl WUD_DEBUGPrint
/* 802B90B4 002B4D14  88 9E 00 07 */	lbz r4, 7(r30)
/* 802B90B8 002B4D18  38 7D 00 3C */	addi r3, r29, 0x3c
/* 802B90BC 002B4D1C  88 BE 00 00 */	lbz r5, 0(r30)
/* 802B90C0 002B4D20  88 DE 00 01 */	lbz r6, 1(r30)
/* 802B90C4 002B4D24  88 FE 00 02 */	lbz r7, 2(r30)
/* 802B90C8 002B4D28  89 1E 00 03 */	lbz r8, 3(r30)
/* 802B90CC 002B4D2C  89 3E 00 04 */	lbz r9, 4(r30)
/* 802B90D0 002B4D30  89 5E 00 05 */	lbz r10, 5(r30)
/* 802B90D4 002B4D34  4C C6 31 82 */	crclr 6
/* 802B90D8 002B4D38  48 00 04 A5 */	bl WUD_DEBUGPrint
/* 802B90DC 002B4D3C  88 9E 00 06 */	lbz r4, 6(r30)
/* 802B90E0 002B4D40  2C 04 00 00 */	cmpwi r4, 0
/* 802B90E4 002B4D44  40 82 01 30 */	bne lbl_802B9214
/* 802B90E8 002B4D48  3F A0 80 54 */	lis r29, lbl_8053B1C8@ha
/* 802B90EC 002B4D4C  7F C4 F3 78 */	mr r4, r30
/* 802B90F0 002B4D50  3B BD B1 C8 */	addi r29, r29, lbl_8053B1C8@l
/* 802B90F4 002B4D54  38 A0 00 06 */	li r5, 6
/* 802B90F8 002B4D58  38 7D 00 40 */	addi r3, r29, 0x40
/* 802B90FC 002B4D5C  4B F1 12 9D */	bl memcmp
/* 802B9100 002B4D60  2C 03 00 00 */	cmpwi r3, 0
/* 802B9104 002B4D64  41 82 00 10 */	beq lbl_802B9114
/* 802B9108 002B4D68  7F C3 F3 78 */	mr r3, r30
/* 802B910C 002B4D6C  4B FF E6 59 */	bl WUDiGetDevInfo
/* 802B9110 002B4D70  7C 7D 1B 78 */	mr r29, r3
lbl_802B9114:
/* 802B9114 002B4D74  88 1D 00 59 */	lbz r0, 0x59(r29)
/* 802B9118 002B4D78  2C 00 00 0C */	cmpwi r0, 0xc
/* 802B911C 002B4D7C  41 82 00 14 */	beq lbl_802B9130
/* 802B9120 002B4D80  40 80 00 24 */	bge lbl_802B9144
/* 802B9124 002B4D84  2C 00 00 02 */	cmpwi r0, 2
/* 802B9128 002B4D88  41 82 00 14 */	beq lbl_802B913C
/* 802B912C 002B4D8C  48 00 00 18 */	b lbl_802B9144
lbl_802B9130:
/* 802B9130 002B4D90  38 00 00 12 */	li r0, 0x12
/* 802B9134 002B4D94  98 1F 00 0C */	stb r0, 0xc(r31)
/* 802B9138 002B4D98  48 00 00 0C */	b lbl_802B9144
lbl_802B913C:
/* 802B913C 002B4D9C  38 00 00 17 */	li r0, 0x17
/* 802B9140 002B4DA0  98 1F 00 0C */	stb r0, 0xc(r31)
lbl_802B9144:
/* 802B9144 002B4DA4  38 00 00 08 */	li r0, 8
/* 802B9148 002B4DA8  7F C3 F3 78 */	mr r3, r30
/* 802B914C 002B4DAC  98 1D 00 59 */	stb r0, 0x59(r29)
/* 802B9150 002B4DB0  88 1E 00 07 */	lbz r0, 7(r30)
/* 802B9154 002B4DB4  98 1D 00 56 */	stb r0, 0x56(r29)
/* 802B9158 002B4DB8  88 9F 06 E4 */	lbz r4, 0x6e4(r31)
/* 802B915C 002B4DBC  38 04 00 01 */	addi r0, r4, 1
/* 802B9160 002B4DC0  98 1F 06 E4 */	stb r0, 0x6e4(r31)
/* 802B9164 002B4DC4  4B FF E6 01 */	bl WUDiGetDevInfo
/* 802B9168 002B4DC8  2C 03 00 00 */	cmpwi r3, 0
/* 802B916C 002B4DCC  7C 7D 1B 78 */	mr r29, r3
/* 802B9170 002B4DD0  40 82 00 0C */	bne lbl_802B917C
/* 802B9174 002B4DD4  3F A0 80 54 */	lis r29, lbl_8053B1C8@ha
/* 802B9178 002B4DD8  3B BD B1 C8 */	addi r29, r29, lbl_8053B1C8@l
lbl_802B917C:
/* 802B917C 002B4DDC  88 1E 00 07 */	lbz r0, 7(r30)
/* 802B9180 002B4DE0  3C A0 80 54 */	lis r5, lbl_8053B228@ha
/* 802B9184 002B4DE4  3C 80 80 54 */	lis r4, lbl_8053C280@ha
/* 802B9188 002B4DE8  3C 60 80 54 */	lis r3, lbl_8053C2A0@ha
/* 802B918C 002B4DEC  38 DD 00 40 */	addi r6, r29, 0x40
/* 802B9190 002B4DF0  54 00 10 3A */	slwi r0, r0, 2
/* 802B9194 002B4DF4  38 A5 B2 28 */	addi r5, r5, lbl_8053B228@l
/* 802B9198 002B4DF8  38 84 C2 80 */	addi r4, r4, lbl_8053C280@l
/* 802B919C 002B4DFC  7C C5 01 2E */	stwx r6, r5, r0
/* 802B91A0 002B4E00  38 A0 00 00 */	li r5, 0
/* 802B91A4 002B4E04  38 63 C2 A0 */	addi r3, r3, lbl_8053C2A0@l
/* 802B91A8 002B4E08  88 1E 00 07 */	lbz r0, 7(r30)
/* 802B91AC 002B4E0C  54 00 08 3C */	slwi r0, r0, 1
/* 802B91B0 002B4E10  7C A4 03 2E */	sthx r5, r4, r0
/* 802B91B4 002B4E14  88 1E 00 07 */	lbz r0, 7(r30)
/* 802B91B8 002B4E18  54 00 08 3C */	slwi r0, r0, 1
/* 802B91BC 002B4E1C  7C A3 03 2E */	sthx r5, r3, r0
/* 802B91C0 002B4E20  88 1D 00 5B */	lbz r0, 0x5b(r29)
/* 802B91C4 002B4E24  28 00 00 03 */	cmplwi r0, 3
/* 802B91C8 002B4E28  41 82 00 0C */	beq lbl_802B91D4
/* 802B91CC 002B4E2C  28 00 00 01 */	cmplwi r0, 1
/* 802B91D0 002B4E30  40 82 00 10 */	bne lbl_802B91E0
lbl_802B91D4:
/* 802B91D4 002B4E34  7F A3 EB 78 */	mr r3, r29
/* 802B91D8 002B4E38  4B FF E7 25 */	bl WUDiMoveTopSmpDevInfoPtr
/* 802B91DC 002B4E3C  48 00 00 0C */	b lbl_802B91E8
lbl_802B91E0:
/* 802B91E0 002B4E40  7F A3 EB 78 */	mr r3, r29
/* 802B91E4 002B4E44  4B FF EA A1 */	bl WUDiMoveTopStdDevInfoPtr
lbl_802B91E8:
/* 802B91E8 002B4E48  38 7D 00 40 */	addi r3, r29, 0x40
/* 802B91EC 002B4E4C  38 80 00 08 */	li r4, 8
/* 802B91F0 002B4E50  4B FF D8 25 */	bl WUDSetSniffMode
/* 802B91F4 002B4E54  81 9F 06 F0 */	lwz r12, 0x6f0(r31)
/* 802B91F8 002B4E58  2C 0C 00 00 */	cmpwi r12, 0
/* 802B91FC 002B4E5C  41 82 03 00 */	beq lbl_802B94FC
/* 802B9200 002B4E60  88 7E 00 07 */	lbz r3, 7(r30)
/* 802B9204 002B4E64  38 80 00 01 */	li r4, 1
/* 802B9208 002B4E68  7D 89 03 A6 */	mtctr r12
/* 802B920C 002B4E6C  4E 80 04 21 */	bctrl
/* 802B9210 002B4E70  48 00 02 EC */	b lbl_802B94FC
lbl_802B9214:
/* 802B9214 002B4E74  38 7D 00 70 */	addi r3, r29, 0x70
/* 802B9218 002B4E78  4C C6 31 82 */	crclr 6
/* 802B921C 002B4E7C  48 00 03 61 */	bl WUD_DEBUGPrint
/* 802B9220 002B4E80  3F A0 80 54 */	lis r29, lbl_8053B1C8@ha
/* 802B9224 002B4E84  7F C3 F3 78 */	mr r3, r30
/* 802B9228 002B4E88  3B BD B1 C8 */	addi r29, r29, lbl_8053B1C8@l
/* 802B922C 002B4E8C  38 A0 00 06 */	li r5, 6
/* 802B9230 002B4E90  38 9D 00 40 */	addi r4, r29, 0x40
/* 802B9234 002B4E94  4B F1 11 65 */	bl memcmp
/* 802B9238 002B4E98  2C 03 00 00 */	cmpwi r3, 0
/* 802B923C 002B4E9C  40 82 02 C0 */	bne lbl_802B94FC
/* 802B9240 002B4EA0  88 1F 00 0C */	lbz r0, 0xc(r31)
/* 802B9244 002B4EA4  2C 00 00 00 */	cmpwi r0, 0
/* 802B9248 002B4EA8  41 82 02 B4 */	beq lbl_802B94FC
/* 802B924C 002B4EAC  88 1D 00 59 */	lbz r0, 0x59(r29)
/* 802B9250 002B4EB0  28 00 00 02 */	cmplwi r0, 2
/* 802B9254 002B4EB4  40 82 02 A8 */	bne lbl_802B94FC
/* 802B9258 002B4EB8  7F C3 F3 78 */	mr r3, r30
/* 802B925C 002B4EBC  4B FF E5 09 */	bl WUDiGetDevInfo
/* 802B9260 002B4EC0  2C 03 00 00 */	cmpwi r3, 0
/* 802B9264 002B4EC4  41 82 00 24 */	beq lbl_802B9288
/* 802B9268 002B4EC8  88 1E 00 06 */	lbz r0, 6(r30)
/* 802B926C 002B4ECC  28 00 00 0C */	cmplwi r0, 0xc
/* 802B9270 002B4ED0  40 82 00 18 */	bne lbl_802B9288
/* 802B9274 002B4ED4  7F C3 F3 78 */	mr r3, r30
/* 802B9278 002B4ED8  4B FF E3 A9 */	bl WUDiRemoveDevice
/* 802B927C 002B4EDC  88 7F 06 E5 */	lbz r3, 0x6e5(r31)
/* 802B9280 002B4EE0  38 03 FF FF */	addi r0, r3, -1
/* 802B9284 002B4EE4  98 1F 06 E5 */	stb r0, 0x6e5(r31)
lbl_802B9288:
/* 802B9288 002B4EE8  38 00 00 FF */	li r0, 0xff
/* 802B928C 002B4EEC  98 1F 00 0C */	stb r0, 0xc(r31)
/* 802B9290 002B4EF0  48 00 02 6C */	b lbl_802B94FC
/* 802B9294 002B4EF4  38 7D 00 80 */	addi r3, r29, 0x80
/* 802B9298 002B4EF8  4C C6 31 82 */	crclr 6
/* 802B929C 002B4EFC  48 00 02 E1 */	bl WUD_DEBUGPrint
/* 802B92A0 002B4F00  88 9F 06 E4 */	lbz r4, 0x6e4(r31)
/* 802B92A4 002B4F04  38 7D 00 94 */	addi r3, r29, 0x94
/* 802B92A8 002B4F08  38 04 FF FF */	addi r0, r4, -1
/* 802B92AC 002B4F0C  98 1F 06 E4 */	stb r0, 0x6e4(r31)
/* 802B92B0 002B4F10  88 9E 00 01 */	lbz r4, 1(r30)
/* 802B92B4 002B4F14  88 BE 00 00 */	lbz r5, 0(r30)
/* 802B92B8 002B4F18  4C C6 31 82 */	crclr 6
/* 802B92BC 002B4F1C  48 00 02 C1 */	bl WUD_DEBUGPrint
/* 802B92C0 002B4F20  88 1E 00 01 */	lbz r0, 1(r30)
/* 802B92C4 002B4F24  3C 60 80 54 */	lis r3, lbl_8053B228@ha
/* 802B92C8 002B4F28  38 63 B2 28 */	addi r3, r3, lbl_8053B228@l
/* 802B92CC 002B4F2C  54 00 10 3A */	slwi r0, r0, 2
/* 802B92D0 002B4F30  7C 63 00 2E */	lwzx r3, r3, r0
/* 802B92D4 002B4F34  4B FF E4 91 */	bl WUDiGetDevInfo
/* 802B92D8 002B4F38  2C 03 00 00 */	cmpwi r3, 0
/* 802B92DC 002B4F3C  41 82 00 24 */	beq lbl_802B9300
/* 802B92E0 002B4F40  88 03 00 5B */	lbz r0, 0x5b(r3)
/* 802B92E4 002B4F44  28 00 00 03 */	cmplwi r0, 3
/* 802B92E8 002B4F48  41 82 00 0C */	beq lbl_802B92F4
/* 802B92EC 002B4F4C  28 00 00 01 */	cmplwi r0, 1
/* 802B92F0 002B4F50  40 82 00 0C */	bne lbl_802B92FC
lbl_802B92F4:
/* 802B92F4 002B4F54  4B FF E8 39 */	bl WUDiMoveTopOfDisconnectedSmpDevice
/* 802B92F8 002B4F58  48 00 00 08 */	b lbl_802B9300
lbl_802B92FC:
/* 802B92FC 002B4F5C  4B FF EB B9 */	bl WUDiMoveTopOfDisconnectedStdDevice
lbl_802B9300:
/* 802B9300 002B4F60  88 1E 00 01 */	lbz r0, 1(r30)
/* 802B9304 002B4F64  3C A0 80 54 */	lis r5, lbl_8053B228@ha
/* 802B9308 002B4F68  3C 80 80 54 */	lis r4, lbl_8053C280@ha
/* 802B930C 002B4F6C  81 9F 06 F0 */	lwz r12, 0x6f0(r31)
/* 802B9310 002B4F70  54 00 10 3A */	slwi r0, r0, 2
/* 802B9314 002B4F74  38 A5 B2 28 */	addi r5, r5, lbl_8053B228@l
/* 802B9318 002B4F78  38 C0 00 00 */	li r6, 0
/* 802B931C 002B4F7C  3C 60 80 54 */	lis r3, lbl_8053C2A0@ha
/* 802B9320 002B4F80  7C C5 01 2E */	stwx r6, r5, r0
/* 802B9324 002B4F84  38 84 C2 80 */	addi r4, r4, lbl_8053C280@l
/* 802B9328 002B4F88  2C 0C 00 00 */	cmpwi r12, 0
/* 802B932C 002B4F8C  38 63 C2 A0 */	addi r3, r3, lbl_8053C2A0@l
/* 802B9330 002B4F90  88 1E 00 01 */	lbz r0, 1(r30)
/* 802B9334 002B4F94  54 00 08 3C */	slwi r0, r0, 1
/* 802B9338 002B4F98  7C C4 03 2E */	sthx r6, r4, r0
/* 802B933C 002B4F9C  88 1E 00 01 */	lbz r0, 1(r30)
/* 802B9340 002B4FA0  54 00 08 3C */	slwi r0, r0, 1
/* 802B9344 002B4FA4  7C C3 03 2E */	sthx r6, r3, r0
/* 802B9348 002B4FA8  41 82 01 B4 */	beq lbl_802B94FC
/* 802B934C 002B4FAC  88 7E 00 01 */	lbz r3, 1(r30)
/* 802B9350 002B4FB0  38 80 00 00 */	li r4, 0
/* 802B9354 002B4FB4  7D 89 03 A6 */	mtctr r12
/* 802B9358 002B4FB8  4E 80 04 21 */	bctrl
/* 802B935C 002B4FBC  48 00 01 A0 */	b lbl_802B94FC
/* 802B9360 002B4FC0  38 7D 00 B8 */	addi r3, r29, 0xb8
/* 802B9364 002B4FC4  4C C6 31 82 */	crclr 6
/* 802B9368 002B4FC8  48 00 02 15 */	bl WUD_DEBUGPrint
/* 802B936C 002B4FCC  48 00 01 90 */	b lbl_802B94FC
/* 802B9370 002B4FD0  38 7D 00 CC */	addi r3, r29, 0xcc
/* 802B9374 002B4FD4  4C C6 31 82 */	crclr 6
/* 802B9378 002B4FD8  48 00 02 05 */	bl WUD_DEBUGPrint
/* 802B937C 002B4FDC  48 00 01 80 */	b lbl_802B94FC
/* 802B9380 002B4FE0  38 7D 00 E0 */	addi r3, r29, 0xe0
/* 802B9384 002B4FE4  4C C6 31 82 */	crclr 6
/* 802B9388 002B4FE8  48 00 01 F5 */	bl WUD_DEBUGPrint
/* 802B938C 002B4FEC  48 00 01 70 */	b lbl_802B94FC
/* 802B9390 002B4FF0  38 7D 00 F8 */	addi r3, r29, 0xf8
/* 802B9394 002B4FF4  4C C6 31 82 */	crclr 6
/* 802B9398 002B4FF8  48 00 01 E5 */	bl WUD_DEBUGPrint
/* 802B939C 002B4FFC  48 00 01 60 */	b lbl_802B94FC
/* 802B93A0 002B5000  38 7D 01 10 */	addi r3, r29, 0x110
/* 802B93A4 002B5004  4C C6 31 82 */	crclr 6
/* 802B93A8 002B5008  48 00 01 D5 */	bl WUD_DEBUGPrint
/* 802B93AC 002B500C  48 00 01 50 */	b lbl_802B94FC
/* 802B93B0 002B5010  38 7D 01 28 */	addi r3, r29, 0x128
/* 802B93B4 002B5014  4C C6 31 82 */	crclr 6
/* 802B93B8 002B5018  48 00 01 C5 */	bl WUD_DEBUGPrint
/* 802B93BC 002B501C  48 00 01 40 */	b lbl_802B94FC
/* 802B93C0 002B5020  38 7D 01 40 */	addi r3, r29, 0x140
/* 802B93C4 002B5024  4C C6 31 82 */	crclr 6
/* 802B93C8 002B5028  48 00 01 B5 */	bl WUD_DEBUGPrint
/* 802B93CC 002B502C  48 00 01 30 */	b lbl_802B94FC
/* 802B93D0 002B5030  38 7D 01 58 */	addi r3, r29, 0x158
/* 802B93D4 002B5034  4C C6 31 82 */	crclr 6
/* 802B93D8 002B5038  48 00 01 A5 */	bl WUD_DEBUGPrint
/* 802B93DC 002B503C  88 1E 00 05 */	lbz r0, 5(r30)
/* 802B93E0 002B5040  38 7D 01 6C */	addi r3, r29, 0x16c
/* 802B93E4 002B5044  90 01 00 08 */	stw r0, 8(r1)
/* 802B93E8 002B5048  88 9E 00 06 */	lbz r4, 6(r30)
/* 802B93EC 002B504C  88 BE 00 07 */	lbz r5, 7(r30)
/* 802B93F0 002B5050  88 DE 00 00 */	lbz r6, 0(r30)
/* 802B93F4 002B5054  88 FE 00 01 */	lbz r7, 1(r30)
/* 802B93F8 002B5058  89 1E 00 02 */	lbz r8, 2(r30)
/* 802B93FC 002B505C  89 3E 00 03 */	lbz r9, 3(r30)
/* 802B9400 002B5060  89 5E 00 04 */	lbz r10, 4(r30)
/* 802B9404 002B5064  4C C6 31 82 */	crclr 6
/* 802B9408 002B5068  48 00 01 75 */	bl WUD_DEBUGPrint
/* 802B940C 002B506C  7F C3 F3 78 */	mr r3, r30
/* 802B9410 002B5070  4B FF E3 55 */	bl WUDiGetDevInfo
/* 802B9414 002B5074  88 1E 00 07 */	lbz r0, 7(r30)
/* 802B9418 002B5078  98 03 00 56 */	stb r0, 0x56(r3)
/* 802B941C 002B507C  48 00 00 E0 */	b lbl_802B94FC
/* 802B9420 002B5080  38 7D 01 AC */	addi r3, r29, 0x1ac
/* 802B9424 002B5084  4C C6 31 82 */	crclr 6
/* 802B9428 002B5088  48 00 01 55 */	bl WUD_DEBUGPrint
/* 802B942C 002B508C  88 1E 00 05 */	lbz r0, 5(r30)
/* 802B9430 002B5090  38 7D 01 6C */	addi r3, r29, 0x16c
/* 802B9434 002B5094  90 01 00 08 */	stw r0, 8(r1)
/* 802B9438 002B5098  88 9E 00 06 */	lbz r4, 6(r30)
/* 802B943C 002B509C  88 BE 00 07 */	lbz r5, 7(r30)
/* 802B9440 002B50A0  88 DE 00 00 */	lbz r6, 0(r30)
/* 802B9444 002B50A4  88 FE 00 01 */	lbz r7, 1(r30)
/* 802B9448 002B50A8  89 1E 00 02 */	lbz r8, 2(r30)
/* 802B944C 002B50AC  89 3E 00 03 */	lbz r9, 3(r30)
/* 802B9450 002B50B0  89 5E 00 04 */	lbz r10, 4(r30)
/* 802B9454 002B50B4  4C C6 31 82 */	crclr 6
/* 802B9458 002B50B8  48 00 01 25 */	bl WUD_DEBUGPrint
/* 802B945C 002B50BC  48 00 00 A0 */	b lbl_802B94FC
/* 802B9460 002B50C0  38 7D 01 C0 */	addi r3, r29, 0x1c0
/* 802B9464 002B50C4  4C C6 31 82 */	crclr 6
/* 802B9468 002B50C8  48 00 01 15 */	bl WUD_DEBUGPrint
/* 802B946C 002B50CC  48 00 00 90 */	b lbl_802B94FC
/* 802B9470 002B50D0  A0 04 00 00 */	lhz r0, 0(r4)
/* 802B9474 002B50D4  88 7F 06 E5 */	lbz r3, 0x6e5(r31)
/* 802B9478 002B50D8  B0 1F 07 44 */	sth r0, 0x744(r31)
/* 802B947C 002B50DC  A0 04 00 02 */	lhz r0, 2(r4)
/* 802B9480 002B50E0  B0 1F 07 46 */	sth r0, 0x746(r31)
/* 802B9484 002B50E4  A0 04 00 04 */	lhz r0, 4(r4)
/* 802B9488 002B50E8  7C 03 00 00 */	cmpw r3, r0
/* 802B948C 002B50EC  40 80 00 18 */	bge lbl_802B94A4
/* 802B9490 002B50F0  38 7D 01 D8 */	addi r3, r29, 0x1d8
/* 802B9494 002B50F4  4C C6 31 82 */	crclr 6
/* 802B9498 002B50F8  4B D4 E6 2D */	bl func_80007AC4
/* 802B949C 002B50FC  A0 1E 00 04 */	lhz r0, 4(r30)
/* 802B94A0 002B5100  98 1F 06 E5 */	stb r0, 0x6e5(r31)
lbl_802B94A4:
/* 802B94A4 002B5104  3C A0 80 54 */	lis r5, lbl_8053C280@ha
/* 802B94A8 002B5108  3C 60 80 54 */	lis r3, lbl_8053C2A0@ha
/* 802B94AC 002B510C  7F C6 F3 78 */	mr r6, r30
/* 802B94B0 002B5110  38 E0 00 00 */	li r7, 0
/* 802B94B4 002B5114  38 A5 C2 80 */	addi r5, r5, lbl_8053C280@l
/* 802B94B8 002B5118  38 63 C2 A0 */	addi r3, r3, lbl_8053C2A0@l
/* 802B94BC 002B511C  48 00 00 34 */	b lbl_802B94F0
lbl_802B94C0:
/* 802B94C0 002B5120  88 06 00 06 */	lbz r0, 6(r6)
/* 802B94C4 002B5124  28 00 00 10 */	cmplwi r0, 0x10
/* 802B94C8 002B5128  40 80 00 20 */	bge lbl_802B94E8
/* 802B94CC 002B512C  A0 86 00 08 */	lhz r4, 8(r6)
/* 802B94D0 002B5130  54 00 0D FC */	rlwinm r0, r0, 1, 0x17, 0x1e
/* 802B94D4 002B5134  7C 85 03 2E */	sthx r4, r5, r0
/* 802B94D8 002B5138  88 06 00 06 */	lbz r0, 6(r6)
/* 802B94DC 002B513C  A0 86 00 0A */	lhz r4, 0xa(r6)
/* 802B94E0 002B5140  54 00 08 3C */	slwi r0, r0, 1
/* 802B94E4 002B5144  7C 83 03 2E */	sthx r4, r3, r0
lbl_802B94E8:
/* 802B94E8 002B5148  38 C6 00 06 */	addi r6, r6, 6
/* 802B94EC 002B514C  38 E7 00 01 */	addi r7, r7, 1
lbl_802B94F0:
/* 802B94F0 002B5150  A0 1E 00 04 */	lhz r0, 4(r30)
/* 802B94F4 002B5154  7C 07 00 00 */	cmpw r7, r0
/* 802B94F8 002B5158  41 80 FF C8 */	blt lbl_802B94C0
lbl_802B94FC:
/* 802B94FC 002B515C  80 01 00 24 */	lwz r0, 0x24(r1)
/* 802B9500 002B5160  83 E1 00 1C */	lwz r31, 0x1c(r1)
/* 802B9504 002B5164  83 C1 00 18 */	lwz r30, 0x18(r1)
/* 802B9508 002B5168  83 A1 00 14 */	lwz r29, 0x14(r1)
/* 802B950C 002B516C  7C 08 03 A6 */	mtlr r0
/* 802B9510 002B5170  38 21 00 20 */	addi r1, r1, 0x20
/* 802B9514 002B5174  4E 80 00 20 */	blr

.global bta_hh_co_data
bta_hh_co_data:
/* 802B9518 002B5178  28 08 00 03 */	cmplwi r8, 3
/* 802B951C 002B517C  3C C0 80 54 */	lis r6, lbl_8053A4E0@ha
/* 802B9520 002B5180  38 C6 A4 E0 */	addi r6, r6, lbl_8053A4E0@l
/* 802B9524 002B5184  40 82 00 18 */	bne lbl_802B953C
/* 802B9528 002B5188  81 86 06 EC */	lwz r12, 0x6ec(r6)
/* 802B952C 002B518C  2C 0C 00 00 */	cmpwi r12, 0
/* 802B9530 002B5190  4D 82 00 20 */	beqlr
/* 802B9534 002B5194  7D 89 03 A6 */	mtctr r12
/* 802B9538 002B5198  4E 80 04 20 */	bctr
lbl_802B953C:
/* 802B953C 002B519C  3C 60 80 44 */	lis r3, lbl_8043F0F0@ha
/* 802B9540 002B51A0  7D 04 43 78 */	mr r4, r8
/* 802B9544 002B51A4  38 63 F0 F0 */	addi r3, r3, lbl_8043F0F0@l
/* 802B9548 002B51A8  4C C6 31 82 */	crclr 6
/* 802B954C 002B51AC  48 00 00 30 */	b WUD_DEBUGPrint
/* 802B9550 002B51B0  4E 80 00 20 */	blr

.global bta_hh_co_open
bta_hh_co_open:
/* 802B9554 002B51B4  3C 60 80 44 */	lis r3, lbl_8043F108@ha
/* 802B9558 002B51B8  38 63 F1 08 */	addi r3, r3, lbl_8043F108@l
/* 802B955C 002B51BC  4C C6 31 82 */	crclr 6
/* 802B9560 002B51C0  48 00 00 1C */	b WUD_DEBUGPrint

.global bta_hh_co_close
bta_hh_co_close:
/* 802B9564 002B51C4  3C 60 80 44 */	lis r3, lbl_8043F11C@ha
/* 802B9568 002B51C8  38 63 F1 1C */	addi r3, r3, lbl_8043F11C@l
/* 802B956C 002B51CC  4C C6 31 82 */	crclr 6
/* 802B9570 002B51D0  48 00 00 0C */	b WUD_DEBUGPrint

.global bta_dm_co_get_compress_memory
bta_dm_co_get_compress_memory:
/* 802B9574 002B51D4  38 60 00 00 */	li r3, 0
/* 802B9578 002B51D8  4E 80 00 20 */	blr