summaryrefslogtreecommitdiff
path: root/asm/SDK/BTE/hidh_api.s
blob: 00f568d412bc6d24b4e6087bb8418215ddd0f670 (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
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
.include "macros.inc"

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

.global HID_HostGetSDPRecord
HID_HostGetSDPRecord:
/* 802D2A70 002CE6D0  94 21 FF D0 */	stwu r1, -0x30(r1)
/* 802D2A74 002CE6D4  7C 08 02 A6 */	mflr r0
/* 802D2A78 002CE6D8  90 01 00 34 */	stw r0, 0x34(r1)
/* 802D2A7C 002CE6DC  93 E1 00 2C */	stw r31, 0x2c(r1)
/* 802D2A80 002CE6E0  3F E0 80 57 */	lis r31, lbl_8056B838@ha
/* 802D2A84 002CE6E4  3B FF B8 38 */	addi r31, r31, lbl_8056B838@l
/* 802D2A88 002CE6E8  93 C1 00 28 */	stw r30, 0x28(r1)
/* 802D2A8C 002CE6EC  7C DE 33 78 */	mr r30, r6
/* 802D2A90 002CE6F0  93 A1 00 24 */	stw r29, 0x24(r1)
/* 802D2A94 002CE6F4  7C 9D 23 78 */	mr r29, r4
/* 802D2A98 002CE6F8  93 81 00 20 */	stw r28, 0x20(r1)
/* 802D2A9C 002CE6FC  7C 7C 1B 78 */	mr r28, r3
/* 802D2AA0 002CE700  88 1F 03 80 */	lbz r0, 0x380(r31)
/* 802D2AA4 002CE704  2C 00 00 00 */	cmpwi r0, 0
/* 802D2AA8 002CE708  41 82 00 0C */	beq lbl_802D2AB4
/* 802D2AAC 002CE70C  38 60 00 10 */	li r3, 0x10
/* 802D2AB0 002CE710  48 00 00 68 */	b lbl_802D2B18
lbl_802D2AB4:
/* 802D2AB4 002CE714  38 E0 00 02 */	li r7, 2
/* 802D2AB8 002CE718  38 00 11 24 */	li r0, 0x1124
/* 802D2ABC 002CE71C  90 9F 03 88 */	stw r4, 0x388(r31)
/* 802D2AC0 002CE720  7C A4 2B 78 */	mr r4, r5
/* 802D2AC4 002CE724  7F A3 EB 78 */	mr r3, r29
/* 802D2AC8 002CE728  38 C1 00 08 */	addi r6, r1, 8
/* 802D2ACC 002CE72C  B0 E1 00 08 */	sth r7, 8(r1)
/* 802D2AD0 002CE730  38 A0 00 01 */	li r5, 1
/* 802D2AD4 002CE734  38 E0 00 00 */	li r7, 0
/* 802D2AD8 002CE738  39 00 00 00 */	li r8, 0
/* 802D2ADC 002CE73C  B0 01 00 0C */	sth r0, 0xc(r1)
/* 802D2AE0 002CE740  48 00 F3 09 */	bl SDP_InitDiscoveryDb
/* 802D2AE4 002CE744  3C A0 80 2D */	lis r5, hidh_search_callback@ha
/* 802D2AE8 002CE748  7F 83 E3 78 */	mr r3, r28
/* 802D2AEC 002CE74C  7F A4 EB 78 */	mr r4, r29
/* 802D2AF0 002CE750  38 A5 2B 38 */	addi r5, r5, hidh_search_callback@l
/* 802D2AF4 002CE754  48 00 F6 6D */	bl SDP_ServiceSearchRequest
/* 802D2AF8 002CE758  54 60 06 3F */	clrlwi. r0, r3, 0x18
/* 802D2AFC 002CE75C  41 82 00 18 */	beq lbl_802D2B14
/* 802D2B00 002CE760  38 00 00 01 */	li r0, 1
/* 802D2B04 002CE764  93 DF 03 84 */	stw r30, 0x384(r31)
/* 802D2B08 002CE768  38 60 00 00 */	li r3, 0
/* 802D2B0C 002CE76C  98 1F 03 80 */	stb r0, 0x380(r31)
/* 802D2B10 002CE770  48 00 00 08 */	b lbl_802D2B18
lbl_802D2B14:
/* 802D2B14 002CE774  38 60 00 03 */	li r3, 3
lbl_802D2B18:
/* 802D2B18 002CE778  80 01 00 34 */	lwz r0, 0x34(r1)
/* 802D2B1C 002CE77C  83 E1 00 2C */	lwz r31, 0x2c(r1)
/* 802D2B20 002CE780  83 C1 00 28 */	lwz r30, 0x28(r1)
/* 802D2B24 002CE784  83 A1 00 24 */	lwz r29, 0x24(r1)
/* 802D2B28 002CE788  83 81 00 20 */	lwz r28, 0x20(r1)
/* 802D2B2C 002CE78C  7C 08 03 A6 */	mtlr r0
/* 802D2B30 002CE790  38 21 00 30 */	addi r1, r1, 0x30
/* 802D2B34 002CE794  4E 80 00 20 */	blr

hidh_search_callback:
/* 802D2B38 002CE798  94 21 FF D0 */	stwu r1, -0x30(r1)
/* 802D2B3C 002CE79C  7C 08 02 A6 */	mflr r0
/* 802D2B40 002CE7A0  38 80 00 02 */	li r4, 2
/* 802D2B44 002CE7A4  2C 03 00 00 */	cmpwi r3, 0
/* 802D2B48 002CE7A8  90 01 00 34 */	stw r0, 0x34(r1)
/* 802D2B4C 002CE7AC  38 00 11 24 */	li r0, 0x1124
/* 802D2B50 002CE7B0  93 E1 00 2C */	stw r31, 0x2c(r1)
/* 802D2B54 002CE7B4  93 C1 00 28 */	stw r30, 0x28(r1)
/* 802D2B58 002CE7B8  93 A1 00 24 */	stw r29, 0x24(r1)
/* 802D2B5C 002CE7BC  3B A0 00 00 */	li r29, 0
/* 802D2B60 002CE7C0  93 81 00 20 */	stw r28, 0x20(r1)
/* 802D2B64 002CE7C4  3F 80 80 57 */	lis r28, lbl_8056B838@ha
/* 802D2B68 002CE7C8  3B 9C B8 38 */	addi r28, r28, lbl_8056B838@l
/* 802D2B6C 002CE7CC  B0 81 00 08 */	sth r4, 8(r1)
/* 802D2B70 002CE7D0  3B DC 03 8C */	addi r30, r28, 0x38c
/* 802D2B74 002CE7D4  80 9C 03 88 */	lwz r4, 0x388(r28)
/* 802D2B78 002CE7D8  B0 01 00 0C */	sth r0, 0xc(r1)
/* 802D2B7C 002CE7DC  9B BC 03 80 */	stb r29, 0x380(r28)
/* 802D2B80 002CE7E0  41 82 00 1C */	beq lbl_802D2B9C
/* 802D2B84 002CE7E4  81 9C 03 84 */	lwz r12, 0x384(r28)
/* 802D2B88 002CE7E8  38 80 00 00 */	li r4, 0
/* 802D2B8C 002CE7EC  38 A0 00 00 */	li r5, 0
/* 802D2B90 002CE7F0  7D 89 03 A6 */	mtctr r12
/* 802D2B94 002CE7F4  4E 80 04 21 */	bctrl
/* 802D2B98 002CE7F8  48 00 03 D0 */	b lbl_802D2F68
lbl_802D2B9C:
/* 802D2B9C 002CE7FC  7C 83 23 78 */	mr r3, r4
/* 802D2BA0 002CE800  38 81 00 08 */	addi r4, r1, 8
/* 802D2BA4 002CE804  38 A0 00 00 */	li r5, 0
/* 802D2BA8 002CE808  48 00 F7 6D */	bl SDP_FindServiceUUIDInDb
/* 802D2BAC 002CE80C  2C 03 00 00 */	cmpwi r3, 0
/* 802D2BB0 002CE810  7C 7F 1B 78 */	mr r31, r3
/* 802D2BB4 002CE814  40 82 00 20 */	bne lbl_802D2BD4
/* 802D2BB8 002CE818  81 9C 03 84 */	lwz r12, 0x384(r28)
/* 802D2BBC 002CE81C  38 60 00 0C */	li r3, 0xc
/* 802D2BC0 002CE820  38 80 00 00 */	li r4, 0
/* 802D2BC4 002CE824  38 A0 00 00 */	li r5, 0
/* 802D2BC8 002CE828  7D 89 03 A6 */	mtctr r12
/* 802D2BCC 002CE82C  4E 80 04 21 */	bctrl
/* 802D2BD0 002CE830  48 00 03 98 */	b lbl_802D2F68
lbl_802D2BD4:
/* 802D2BD4 002CE834  7F C3 F3 78 */	mr r3, r30
/* 802D2BD8 002CE838  38 80 00 00 */	li r4, 0
/* 802D2BDC 002CE83C  38 A0 00 74 */	li r5, 0x74
/* 802D2BE0 002CE840  4B D3 15 25 */	bl memset
/* 802D2BE4 002CE844  7F E3 FB 78 */	mr r3, r31
/* 802D2BE8 002CE848  38 80 02 06 */	li r4, 0x206
/* 802D2BEC 002CE84C  48 00 F6 35 */	bl SDP_FindAttributeInRec
/* 802D2BF0 002CE850  2C 03 00 00 */	cmpwi r3, 0
/* 802D2BF4 002CE854  41 82 00 58 */	beq lbl_802D2C4C
/* 802D2BF8 002CE858  A0 03 00 06 */	lhz r0, 6(r3)
/* 802D2BFC 002CE85C  7C 00 66 70 */	srawi r0, r0, 0xc
/* 802D2C00 002CE860  2C 00 00 06 */	cmpwi r0, 6
/* 802D2C04 002CE864  40 82 00 48 */	bne lbl_802D2C4C
/* 802D2C08 002CE868  80 63 00 08 */	lwz r3, 8(r3)
/* 802D2C0C 002CE86C  2C 03 00 00 */	cmpwi r3, 0
/* 802D2C10 002CE870  41 82 00 3C */	beq lbl_802D2C4C
/* 802D2C14 002CE874  A0 03 00 06 */	lhz r0, 6(r3)
/* 802D2C18 002CE878  7C 00 66 70 */	srawi r0, r0, 0xc
/* 802D2C1C 002CE87C  2C 00 00 06 */	cmpwi r0, 6
/* 802D2C20 002CE880  40 82 00 2C */	bne lbl_802D2C4C
/* 802D2C24 002CE884  80 63 00 08 */	lwz r3, 8(r3)
/* 802D2C28 002CE888  2C 03 00 00 */	cmpwi r3, 0
/* 802D2C2C 002CE88C  41 82 00 20 */	beq lbl_802D2C4C
/* 802D2C30 002CE890  80 83 00 00 */	lwz r4, 0(r3)
/* 802D2C34 002CE894  2C 04 00 00 */	cmpwi r4, 0
/* 802D2C38 002CE898  41 82 00 14 */	beq lbl_802D2C4C
/* 802D2C3C 002CE89C  A0 64 00 06 */	lhz r3, 6(r4)
/* 802D2C40 002CE8A0  7C 60 66 70 */	srawi r0, r3, 0xc
/* 802D2C44 002CE8A4  2C 00 00 04 */	cmpwi r0, 4
/* 802D2C48 002CE8A8  41 82 00 28 */	beq lbl_802D2C70
lbl_802D2C4C:
/* 802D2C4C 002CE8AC  3C A0 80 57 */	lis r5, lbl_8056B838@ha
/* 802D2C50 002CE8B0  38 60 00 0D */	li r3, 0xd
/* 802D2C54 002CE8B4  38 A5 B8 38 */	addi r5, r5, lbl_8056B838@l
/* 802D2C58 002CE8B8  38 80 00 00 */	li r4, 0
/* 802D2C5C 002CE8BC  81 85 03 84 */	lwz r12, 0x384(r5)
/* 802D2C60 002CE8C0  38 A0 00 00 */	li r5, 0
/* 802D2C64 002CE8C4  7D 89 03 A6 */	mtctr r12
/* 802D2C68 002CE8C8  4E 80 04 21 */	bctrl
/* 802D2C6C 002CE8CC  48 00 02 FC */	b lbl_802D2F68
lbl_802D2C70:
/* 802D2C70 002CE8D0  54 60 05 3F */	clrlwi. r0, r3, 0x14
/* 802D2C74 002CE8D4  B0 1E 00 68 */	sth r0, 0x68(r30)
/* 802D2C78 002CE8D8  41 82 00 0C */	beq lbl_802D2C84
/* 802D2C7C 002CE8DC  38 04 00 08 */	addi r0, r4, 8
/* 802D2C80 002CE8E0  90 1E 00 6C */	stw r0, 0x6c(r30)
lbl_802D2C84:
/* 802D2C84 002CE8E4  7F E3 FB 78 */	mr r3, r31
/* 802D2C88 002CE8E8  38 80 02 04 */	li r4, 0x204
/* 802D2C8C 002CE8EC  48 00 F5 95 */	bl SDP_FindAttributeInRec
/* 802D2C90 002CE8F0  2C 03 00 00 */	cmpwi r3, 0
/* 802D2C94 002CE8F4  41 82 00 14 */	beq lbl_802D2CA8
/* 802D2C98 002CE8F8  88 03 00 08 */	lbz r0, 8(r3)
/* 802D2C9C 002CE8FC  2C 00 00 00 */	cmpwi r0, 0
/* 802D2CA0 002CE900  41 82 00 08 */	beq lbl_802D2CA8
/* 802D2CA4 002CE904  63 BD 00 01 */	ori r29, r29, 1
lbl_802D2CA8:
/* 802D2CA8 002CE908  7F E3 FB 78 */	mr r3, r31
/* 802D2CAC 002CE90C  38 80 02 05 */	li r4, 0x205
/* 802D2CB0 002CE910  48 00 F5 71 */	bl SDP_FindAttributeInRec
/* 802D2CB4 002CE914  2C 03 00 00 */	cmpwi r3, 0
/* 802D2CB8 002CE918  41 82 00 18 */	beq lbl_802D2CD0
/* 802D2CBC 002CE91C  88 03 00 08 */	lbz r0, 8(r3)
/* 802D2CC0 002CE920  2C 00 00 00 */	cmpwi r0, 0
/* 802D2CC4 002CE924  41 82 00 0C */	beq lbl_802D2CD0
/* 802D2CC8 002CE928  63 A0 00 04 */	ori r0, r29, 4
/* 802D2CCC 002CE92C  54 1D 04 3E */	clrlwi r29, r0, 0x10
lbl_802D2CD0:
/* 802D2CD0 002CE930  7F E3 FB 78 */	mr r3, r31
/* 802D2CD4 002CE934  38 80 02 0D */	li r4, 0x20d
/* 802D2CD8 002CE938  48 00 F5 49 */	bl SDP_FindAttributeInRec
/* 802D2CDC 002CE93C  2C 03 00 00 */	cmpwi r3, 0
/* 802D2CE0 002CE940  41 82 00 18 */	beq lbl_802D2CF8
/* 802D2CE4 002CE944  88 03 00 08 */	lbz r0, 8(r3)
/* 802D2CE8 002CE948  2C 00 00 00 */	cmpwi r0, 0
/* 802D2CEC 002CE94C  41 82 00 0C */	beq lbl_802D2CF8
/* 802D2CF0 002CE950  63 A0 00 02 */	ori r0, r29, 2
/* 802D2CF4 002CE954  54 1D 04 3E */	clrlwi r29, r0, 0x10
lbl_802D2CF8:
/* 802D2CF8 002CE958  7F E3 FB 78 */	mr r3, r31
/* 802D2CFC 002CE95C  38 80 02 08 */	li r4, 0x208
/* 802D2D00 002CE960  48 00 F5 21 */	bl SDP_FindAttributeInRec
/* 802D2D04 002CE964  2C 03 00 00 */	cmpwi r3, 0
/* 802D2D08 002CE968  41 82 00 18 */	beq lbl_802D2D20
/* 802D2D0C 002CE96C  88 03 00 08 */	lbz r0, 8(r3)
/* 802D2D10 002CE970  2C 00 00 00 */	cmpwi r0, 0
/* 802D2D14 002CE974  41 82 00 0C */	beq lbl_802D2D20
/* 802D2D18 002CE978  63 A0 00 08 */	ori r0, r29, 8
/* 802D2D1C 002CE97C  54 1D 04 3E */	clrlwi r29, r0, 0x10
lbl_802D2D20:
/* 802D2D20 002CE980  7F E3 FB 78 */	mr r3, r31
/* 802D2D24 002CE984  38 80 02 09 */	li r4, 0x209
/* 802D2D28 002CE988  48 00 F4 F9 */	bl SDP_FindAttributeInRec
/* 802D2D2C 002CE98C  2C 03 00 00 */	cmpwi r3, 0
/* 802D2D30 002CE990  41 82 00 18 */	beq lbl_802D2D48
/* 802D2D34 002CE994  88 03 00 08 */	lbz r0, 8(r3)
/* 802D2D38 002CE998  2C 00 00 00 */	cmpwi r0, 0
/* 802D2D3C 002CE99C  41 82 00 0C */	beq lbl_802D2D48
/* 802D2D40 002CE9A0  63 A0 00 10 */	ori r0, r29, 0x10
/* 802D2D44 002CE9A4  54 1D 04 3E */	clrlwi r29, r0, 0x10
lbl_802D2D48:
/* 802D2D48 002CE9A8  7F E3 FB 78 */	mr r3, r31
/* 802D2D4C 002CE9AC  38 80 02 0A */	li r4, 0x20a
/* 802D2D50 002CE9B0  48 00 F4 D1 */	bl SDP_FindAttributeInRec
/* 802D2D54 002CE9B4  2C 03 00 00 */	cmpwi r3, 0
/* 802D2D58 002CE9B8  41 82 00 18 */	beq lbl_802D2D70
/* 802D2D5C 002CE9BC  88 03 00 08 */	lbz r0, 8(r3)
/* 802D2D60 002CE9C0  2C 00 00 00 */	cmpwi r0, 0
/* 802D2D64 002CE9C4  41 82 00 0C */	beq lbl_802D2D70
/* 802D2D68 002CE9C8  63 A0 00 20 */	ori r0, r29, 0x20
/* 802D2D6C 002CE9CC  54 1D 04 3E */	clrlwi r29, r0, 0x10
lbl_802D2D70:
/* 802D2D70 002CE9D0  7F E3 FB 78 */	mr r3, r31
/* 802D2D74 002CE9D4  38 80 01 00 */	li r4, 0x100
/* 802D2D78 002CE9D8  48 00 F4 A9 */	bl SDP_FindAttributeInRec
/* 802D2D7C 002CE9DC  2C 03 00 00 */	cmpwi r3, 0
/* 802D2D80 002CE9E0  7C 64 1B 78 */	mr r4, r3
/* 802D2D84 002CE9E4  41 82 00 4C */	beq lbl_802D2DD0
/* 802D2D88 002CE9E8  A0 03 00 06 */	lhz r0, 6(r3)
/* 802D2D8C 002CE9EC  54 1C 05 3E */	clrlwi r28, r0, 0x14
/* 802D2D90 002CE9F0  28 1C 00 20 */	cmplwi r28, 0x20
/* 802D2D94 002CE9F4  40 80 00 20 */	bge lbl_802D2DB4
/* 802D2D98 002CE9F8  7F C3 F3 78 */	mr r3, r30
/* 802D2D9C 002CE9FC  7F 85 E3 78 */	mr r5, r28
/* 802D2DA0 002CEA00  38 84 00 08 */	addi r4, r4, 8
/* 802D2DA4 002CEA04  4B D3 12 5D */	bl memcpy
/* 802D2DA8 002CEA08  38 00 00 00 */	li r0, 0
/* 802D2DAC 002CEA0C  7C 1E E1 AE */	stbx r0, r30, r28
/* 802D2DB0 002CEA10  48 00 00 28 */	b lbl_802D2DD8
lbl_802D2DB4:
/* 802D2DB4 002CEA14  7F C3 F3 78 */	mr r3, r30
/* 802D2DB8 002CEA18  38 84 00 08 */	addi r4, r4, 8
/* 802D2DBC 002CEA1C  38 A0 00 1F */	li r5, 0x1f
/* 802D2DC0 002CEA20  4B D3 12 41 */	bl memcpy
/* 802D2DC4 002CEA24  38 00 00 00 */	li r0, 0
/* 802D2DC8 002CEA28  98 1E 00 20 */	stb r0, 0x20(r30)
/* 802D2DCC 002CEA2C  48 00 00 0C */	b lbl_802D2DD8
lbl_802D2DD0:
/* 802D2DD0 002CEA30  38 00 00 00 */	li r0, 0
/* 802D2DD4 002CEA34  98 1E 00 00 */	stb r0, 0(r30)
lbl_802D2DD8:
/* 802D2DD8 002CEA38  7F E3 FB 78 */	mr r3, r31
/* 802D2DDC 002CEA3C  38 80 01 01 */	li r4, 0x101
/* 802D2DE0 002CEA40  48 00 F4 41 */	bl SDP_FindAttributeInRec
/* 802D2DE4 002CEA44  2C 03 00 00 */	cmpwi r3, 0
/* 802D2DE8 002CEA48  7C 64 1B 78 */	mr r4, r3
/* 802D2DEC 002CEA4C  41 82 00 50 */	beq lbl_802D2E3C
/* 802D2DF0 002CEA50  A0 03 00 06 */	lhz r0, 6(r3)
/* 802D2DF4 002CEA54  54 1C 05 3E */	clrlwi r28, r0, 0x14
/* 802D2DF8 002CEA58  28 1C 00 20 */	cmplwi r28, 0x20
/* 802D2DFC 002CEA5C  40 80 00 24 */	bge lbl_802D2E20
/* 802D2E00 002CEA60  7F 85 E3 78 */	mr r5, r28
/* 802D2E04 002CEA64  38 7E 00 20 */	addi r3, r30, 0x20
/* 802D2E08 002CEA68  38 84 00 08 */	addi r4, r4, 8
/* 802D2E0C 002CEA6C  4B D3 11 F5 */	bl memcpy
/* 802D2E10 002CEA70  7C 7E E2 14 */	add r3, r30, r28
/* 802D2E14 002CEA74  38 00 00 00 */	li r0, 0
/* 802D2E18 002CEA78  98 03 00 20 */	stb r0, 0x20(r3)
/* 802D2E1C 002CEA7C  48 00 00 28 */	b lbl_802D2E44
lbl_802D2E20:
/* 802D2E20 002CEA80  38 7E 00 20 */	addi r3, r30, 0x20
/* 802D2E24 002CEA84  38 84 00 08 */	addi r4, r4, 8
/* 802D2E28 002CEA88  38 A0 00 1F */	li r5, 0x1f
/* 802D2E2C 002CEA8C  4B D3 11 D5 */	bl memcpy
/* 802D2E30 002CEA90  38 00 00 00 */	li r0, 0
/* 802D2E34 002CEA94  98 1E 00 40 */	stb r0, 0x40(r30)
/* 802D2E38 002CEA98  48 00 00 0C */	b lbl_802D2E44
lbl_802D2E3C:
/* 802D2E3C 002CEA9C  38 00 00 00 */	li r0, 0
/* 802D2E40 002CEAA0  98 1E 00 20 */	stb r0, 0x20(r30)
lbl_802D2E44:
/* 802D2E44 002CEAA4  7F E3 FB 78 */	mr r3, r31
/* 802D2E48 002CEAA8  38 80 01 02 */	li r4, 0x102
/* 802D2E4C 002CEAAC  48 00 F3 D5 */	bl SDP_FindAttributeInRec
/* 802D2E50 002CEAB0  2C 03 00 00 */	cmpwi r3, 0
/* 802D2E54 002CEAB4  7C 64 1B 78 */	mr r4, r3
/* 802D2E58 002CEAB8  41 82 00 50 */	beq lbl_802D2EA8
/* 802D2E5C 002CEABC  A0 03 00 06 */	lhz r0, 6(r3)
/* 802D2E60 002CEAC0  54 1C 05 3E */	clrlwi r28, r0, 0x14
/* 802D2E64 002CEAC4  28 1C 00 20 */	cmplwi r28, 0x20
/* 802D2E68 002CEAC8  40 80 00 24 */	bge lbl_802D2E8C
/* 802D2E6C 002CEACC  7F 85 E3 78 */	mr r5, r28
/* 802D2E70 002CEAD0  38 7E 00 40 */	addi r3, r30, 0x40
/* 802D2E74 002CEAD4  38 84 00 08 */	addi r4, r4, 8
/* 802D2E78 002CEAD8  4B D3 11 89 */	bl memcpy
/* 802D2E7C 002CEADC  7C 7E E2 14 */	add r3, r30, r28
/* 802D2E80 002CEAE0  38 00 00 00 */	li r0, 0
/* 802D2E84 002CEAE4  98 03 00 40 */	stb r0, 0x40(r3)
/* 802D2E88 002CEAE8  48 00 00 28 */	b lbl_802D2EB0
lbl_802D2E8C:
/* 802D2E8C 002CEAEC  38 7E 00 40 */	addi r3, r30, 0x40
/* 802D2E90 002CEAF0  38 84 00 08 */	addi r4, r4, 8
/* 802D2E94 002CEAF4  38 A0 00 1F */	li r5, 0x1f
/* 802D2E98 002CEAF8  4B D3 11 69 */	bl memcpy
/* 802D2E9C 002CEAFC  38 00 00 00 */	li r0, 0
/* 802D2EA0 002CEB00  98 1E 00 60 */	stb r0, 0x60(r30)
/* 802D2EA4 002CEB04  48 00 00 0C */	b lbl_802D2EB0
lbl_802D2EA8:
/* 802D2EA8 002CEB08  38 00 00 00 */	li r0, 0
/* 802D2EAC 002CEB0C  98 1E 00 40 */	stb r0, 0x40(r30)
lbl_802D2EB0:
/* 802D2EB0 002CEB10  7F E3 FB 78 */	mr r3, r31
/* 802D2EB4 002CEB14  38 80 02 00 */	li r4, 0x200
/* 802D2EB8 002CEB18  48 00 F3 69 */	bl SDP_FindAttributeInRec
/* 802D2EBC 002CEB1C  2C 03 00 00 */	cmpwi r3, 0
/* 802D2EC0 002CEB20  41 82 00 0C */	beq lbl_802D2ECC
/* 802D2EC4 002CEB24  A0 03 00 08 */	lhz r0, 8(r3)
/* 802D2EC8 002CEB28  B0 1E 00 60 */	sth r0, 0x60(r30)
lbl_802D2ECC:
/* 802D2ECC 002CEB2C  7F E3 FB 78 */	mr r3, r31
/* 802D2ED0 002CEB30  38 80 02 03 */	li r4, 0x203
/* 802D2ED4 002CEB34  48 00 F3 4D */	bl SDP_FindAttributeInRec
/* 802D2ED8 002CEB38  2C 03 00 00 */	cmpwi r3, 0
/* 802D2EDC 002CEB3C  41 82 00 0C */	beq lbl_802D2EE8
/* 802D2EE0 002CEB40  88 03 00 08 */	lbz r0, 8(r3)
/* 802D2EE4 002CEB44  98 1E 00 65 */	stb r0, 0x65(r30)
lbl_802D2EE8:
/* 802D2EE8 002CEB48  7F E3 FB 78 */	mr r3, r31
/* 802D2EEC 002CEB4C  38 80 02 02 */	li r4, 0x202
/* 802D2EF0 002CEB50  48 00 F3 31 */	bl SDP_FindAttributeInRec
/* 802D2EF4 002CEB54  2C 03 00 00 */	cmpwi r3, 0
/* 802D2EF8 002CEB58  41 82 00 0C */	beq lbl_802D2F04
/* 802D2EFC 002CEB5C  88 03 00 08 */	lbz r0, 8(r3)
/* 802D2F00 002CEB60  98 1E 00 64 */	stb r0, 0x64(r30)
lbl_802D2F04:
/* 802D2F04 002CEB64  7F E3 FB 78 */	mr r3, r31
/* 802D2F08 002CEB68  38 80 02 01 */	li r4, 0x201
/* 802D2F0C 002CEB6C  48 00 F3 15 */	bl SDP_FindAttributeInRec
/* 802D2F10 002CEB70  2C 03 00 00 */	cmpwi r3, 0
/* 802D2F14 002CEB74  41 82 00 0C */	beq lbl_802D2F20
/* 802D2F18 002CEB78  A0 03 00 08 */	lhz r0, 8(r3)
/* 802D2F1C 002CEB7C  B0 1E 00 62 */	sth r0, 0x62(r30)
lbl_802D2F20:
/* 802D2F20 002CEB80  7F E3 FB 78 */	mr r3, r31
/* 802D2F24 002CEB84  38 80 02 0C */	li r4, 0x20c
/* 802D2F28 002CEB88  48 00 F2 F9 */	bl SDP_FindAttributeInRec
/* 802D2F2C 002CEB8C  2C 03 00 00 */	cmpwi r3, 0
/* 802D2F30 002CEB90  41 82 00 14 */	beq lbl_802D2F44
/* 802D2F34 002CEB94  A0 03 00 08 */	lhz r0, 8(r3)
/* 802D2F38 002CEB98  63 A3 00 40 */	ori r3, r29, 0x40
/* 802D2F3C 002CEB9C  54 7D 04 3E */	clrlwi r29, r3, 0x10
/* 802D2F40 002CEBA0  B0 1E 00 66 */	sth r0, 0x66(r30)
lbl_802D2F44:
/* 802D2F44 002CEBA4  3C C0 80 57 */	lis r6, lbl_8056B838@ha
/* 802D2F48 002CEBA8  57 A4 04 3E */	clrlwi r4, r29, 0x10
/* 802D2F4C 002CEBAC  38 C6 B8 38 */	addi r6, r6, lbl_8056B838@l
/* 802D2F50 002CEBB0  38 60 00 00 */	li r3, 0
/* 802D2F54 002CEBB4  81 86 03 84 */	lwz r12, 0x384(r6)
/* 802D2F58 002CEBB8  38 A6 03 8C */	addi r5, r6, 0x38c
/* 802D2F5C 002CEBBC  93 E6 03 FC */	stw r31, 0x3fc(r6)
/* 802D2F60 002CEBC0  7D 89 03 A6 */	mtctr r12
/* 802D2F64 002CEBC4  4E 80 04 21 */	bctrl
lbl_802D2F68:
/* 802D2F68 002CEBC8  80 01 00 34 */	lwz r0, 0x34(r1)
/* 802D2F6C 002CEBCC  83 E1 00 2C */	lwz r31, 0x2c(r1)
/* 802D2F70 002CEBD0  83 C1 00 28 */	lwz r30, 0x28(r1)
/* 802D2F74 002CEBD4  83 A1 00 24 */	lwz r29, 0x24(r1)
/* 802D2F78 002CEBD8  83 81 00 20 */	lwz r28, 0x20(r1)
/* 802D2F7C 002CEBDC  7C 08 03 A6 */	mtlr r0
/* 802D2F80 002CEBE0  38 21 00 30 */	addi r1, r1, 0x30
/* 802D2F84 002CEBE4  4E 80 00 20 */	blr

.global HID_HostInit
HID_HostInit:
/* 802D2F88 002CEBE8  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 802D2F8C 002CEBEC  7C 08 02 A6 */	mflr r0
/* 802D2F90 002CEBF0  38 80 00 00 */	li r4, 0
/* 802D2F94 002CEBF4  38 A0 04 04 */	li r5, 0x404
/* 802D2F98 002CEBF8  90 01 00 14 */	stw r0, 0x14(r1)
/* 802D2F9C 002CEBFC  93 E1 00 0C */	stw r31, 0xc(r1)
/* 802D2FA0 002CEC00  3F E0 80 57 */	lis r31, lbl_8056B838@ha
/* 802D2FA4 002CEC04  38 7F B8 38 */	addi r3, r31, lbl_8056B838@l
/* 802D2FA8 002CEC08  4B D3 11 5D */	bl memset
/* 802D2FAC 002CEC0C  38 7F B8 38 */	addi r3, r31, -18376
/* 802D2FB0 002CEC10  38 00 00 00 */	li r0, 0
/* 802D2FB4 002CEC14  98 03 04 01 */	stb r0, 0x401(r3)
/* 802D2FB8 002CEC18  83 E1 00 0C */	lwz r31, 0xc(r1)
/* 802D2FBC 002CEC1C  80 01 00 14 */	lwz r0, 0x14(r1)
/* 802D2FC0 002CEC20  7C 08 03 A6 */	mtlr r0
/* 802D2FC4 002CEC24  38 21 00 10 */	addi r1, r1, 0x10
/* 802D2FC8 002CEC28  4E 80 00 20 */	blr

.global HID_HostRegister
HID_HostRegister:
/* 802D2FCC 002CEC2C  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 802D2FD0 002CEC30  7C 08 02 A6 */	mflr r0
/* 802D2FD4 002CEC34  90 01 00 14 */	stw r0, 0x14(r1)
/* 802D2FD8 002CEC38  93 E1 00 0C */	stw r31, 0xc(r1)
/* 802D2FDC 002CEC3C  3F E0 80 57 */	lis r31, lbl_8056B838@ha
/* 802D2FE0 002CEC40  3B FF B8 38 */	addi r31, r31, lbl_8056B838@l
/* 802D2FE4 002CEC44  93 C1 00 08 */	stw r30, 8(r1)
/* 802D2FE8 002CEC48  7C 7E 1B 78 */	mr r30, r3
/* 802D2FEC 002CEC4C  88 1F 04 00 */	lbz r0, 0x400(r31)
/* 802D2FF0 002CEC50  2C 00 00 00 */	cmpwi r0, 0
/* 802D2FF4 002CEC54  41 82 00 0C */	beq lbl_802D3000
/* 802D2FF8 002CEC58  38 60 00 02 */	li r3, 2
/* 802D2FFC 002CEC5C  48 00 00 34 */	b lbl_802D3030
lbl_802D3000:
/* 802D3000 002CEC60  2C 03 00 00 */	cmpwi r3, 0
/* 802D3004 002CEC64  40 82 00 0C */	bne lbl_802D3010
/* 802D3008 002CEC68  38 60 00 05 */	li r3, 5
/* 802D300C 002CEC6C  48 00 00 24 */	b lbl_802D3030
lbl_802D3010:
/* 802D3010 002CEC70  48 00 07 E1 */	bl hidh_conn_reg
/* 802D3014 002CEC74  54 60 06 3F */	clrlwi. r0, r3, 0x18
/* 802D3018 002CEC78  41 82 00 08 */	beq lbl_802D3020
/* 802D301C 002CEC7C  48 00 00 14 */	b lbl_802D3030
lbl_802D3020:
/* 802D3020 002CEC80  38 00 00 01 */	li r0, 1
/* 802D3024 002CEC84  93 DF 03 40 */	stw r30, 0x340(r31)
/* 802D3028 002CEC88  38 60 00 00 */	li r3, 0
/* 802D302C 002CEC8C  98 1F 04 00 */	stb r0, 0x400(r31)
lbl_802D3030:
/* 802D3030 002CEC90  80 01 00 14 */	lwz r0, 0x14(r1)
/* 802D3034 002CEC94  83 E1 00 0C */	lwz r31, 0xc(r1)
/* 802D3038 002CEC98  83 C1 00 08 */	lwz r30, 8(r1)
/* 802D303C 002CEC9C  7C 08 03 A6 */	mtlr r0
/* 802D3040 002CECA0  38 21 00 10 */	addi r1, r1, 0x10
/* 802D3044 002CECA4  4E 80 00 20 */	blr

.global HID_HostDeregister
HID_HostDeregister:
/* 802D3048 002CECA8  94 21 FF E0 */	stwu r1, -0x20(r1)
/* 802D304C 002CECAC  7C 08 02 A6 */	mflr r0
/* 802D3050 002CECB0  90 01 00 24 */	stw r0, 0x24(r1)
/* 802D3054 002CECB4  39 61 00 20 */	addi r11, r1, 0x20
/* 802D3058 002CECB8  4B EF 40 D1 */	bl _savegpr_27
/* 802D305C 002CECBC  3C 60 80 57 */	lis r3, lbl_8056B838@ha
/* 802D3060 002CECC0  3B A3 B8 38 */	addi r29, r3, lbl_8056B838@l
/* 802D3064 002CECC4  88 1D 04 00 */	lbz r0, 0x400(r29)
/* 802D3068 002CECC8  2C 00 00 00 */	cmpwi r0, 0
/* 802D306C 002CECCC  40 82 00 0C */	bne lbl_802D3078
/* 802D3070 002CECD0  38 60 00 01 */	li r3, 1
/* 802D3074 002CECD4  48 00 00 A0 */	b lbl_802D3114
lbl_802D3078:
/* 802D3078 002CECD8  3B 60 00 00 */	li r27, 0
/* 802D307C 002CECDC  3B C0 00 01 */	li r30, 1
/* 802D3080 002CECE0  3B E0 00 00 */	li r31, 0
lbl_802D3084:
/* 802D3084 002CECE4  88 1D 04 00 */	lbz r0, 0x400(r29)
/* 802D3088 002CECE8  2F 00 00 00 */	cmpwi cr6, r0, 0
/* 802D308C 002CECEC  41 9A 00 64 */	beq cr6, lbl_802D30F0
/* 802D3090 002CECF0  57 60 06 3E */	clrlwi r0, r27, 0x18
/* 802D3094 002CECF4  28 80 00 10 */	cmplwi cr1, r0, 0x10
/* 802D3098 002CECF8  41 85 00 58 */	bgt cr1, lbl_802D30F0
/* 802D309C 002CECFC  1C 00 00 34 */	mulli r0, r0, 0x34
/* 802D30A0 002CED00  7F 9D 02 14 */	add r28, r29, r0
/* 802D30A4 002CED04  7C 1D 00 AE */	lbzx r0, r29, r0
/* 802D30A8 002CED08  2C 00 00 00 */	cmpwi r0, 0
/* 802D30AC 002CED0C  41 82 00 44 */	beq lbl_802D30F0
/* 802D30B0 002CED10  41 9A 00 30 */	beq cr6, lbl_802D30E0
/* 802D30B4 002CED14  41 85 00 2C */	bgt cr1, lbl_802D30E0
/* 802D30B8 002CED18  41 82 00 28 */	beq lbl_802D30E0
/* 802D30BC 002CED1C  9B DC 00 0C */	stb r30, 0xc(r28)
/* 802D30C0 002CED20  38 7C 00 1C */	addi r3, r28, 0x1c
/* 802D30C4 002CED24  4B FE A4 89 */	bl btu_stop_timer
/* 802D30C8 002CED28  88 1C 00 0A */	lbz r0, 0xa(r28)
/* 802D30CC 002CED2C  28 00 00 01 */	cmplwi r0, 1
/* 802D30D0 002CED30  40 82 00 10 */	bne lbl_802D30E0
/* 802D30D4 002CED34  9B DC 00 0C */	stb r30, 0xc(r28)
/* 802D30D8 002CED38  57 63 06 3E */	clrlwi r3, r27, 0x18
/* 802D30DC 002CED3C  48 00 08 6D */	bl hidh_conn_disconnect
lbl_802D30E0:
/* 802D30E0 002CED40  9B FC 00 00 */	stb r31, 0(r28)
/* 802D30E4 002CED44  9B FC 00 10 */	stb r31, 0x10(r28)
/* 802D30E8 002CED48  B3 FC 00 16 */	sth r31, 0x16(r28)
/* 802D30EC 002CED4C  B3 FC 00 14 */	sth r31, 0x14(r28)
lbl_802D30F0:
/* 802D30F0 002CED50  3B 7B 00 01 */	addi r27, r27, 1
/* 802D30F4 002CED54  28 1B 00 10 */	cmplwi r27, 0x10
/* 802D30F8 002CED58  41 80 FF 8C */	blt lbl_802D3084
/* 802D30FC 002CED5C  48 00 27 09 */	bl hidh_conn_dereg
/* 802D3100 002CED60  3C 80 80 57 */	lis r4, lbl_8056B838@ha
/* 802D3104 002CED64  38 00 00 00 */	li r0, 0
/* 802D3108 002CED68  38 84 B8 38 */	addi r4, r4, lbl_8056B838@l
/* 802D310C 002CED6C  38 60 00 00 */	li r3, 0
/* 802D3110 002CED70  98 04 04 00 */	stb r0, 0x400(r4)
lbl_802D3114:
/* 802D3114 002CED74  39 61 00 20 */	addi r11, r1, 0x20
/* 802D3118 002CED78  4B EF 40 5D */	bl _restgpr_27
/* 802D311C 002CED7C  80 01 00 24 */	lwz r0, 0x24(r1)
/* 802D3120 002CED80  7C 08 03 A6 */	mtlr r0
/* 802D3124 002CED84  38 21 00 20 */	addi r1, r1, 0x20
/* 802D3128 002CED88  4E 80 00 20 */	blr

.global HID_HostAddDev
HID_HostAddDev:
/* 802D312C 002CED8C  94 21 FF E0 */	stwu r1, -0x20(r1)
/* 802D3130 002CED90  7C 08 02 A6 */	mflr r0
/* 802D3134 002CED94  90 01 00 24 */	stw r0, 0x24(r1)
/* 802D3138 002CED98  39 61 00 20 */	addi r11, r1, 0x20
/* 802D313C 002CED9C  4B EF 3F E9 */	bl _savegpr_26
/* 802D3140 002CEDA0  3F E0 80 57 */	lis r31, lbl_8056B838@ha
/* 802D3144 002CEDA4  7C 7A 1B 78 */	mr r26, r3
/* 802D3148 002CEDA8  3B FF B8 38 */	addi r31, r31, lbl_8056B838@l
/* 802D314C 002CEDAC  7C 9B 23 78 */	mr r27, r4
/* 802D3150 002CEDB0  88 1F 04 00 */	lbz r0, 0x400(r31)
/* 802D3154 002CEDB4  7C BC 2B 78 */	mr r28, r5
/* 802D3158 002CEDB8  2C 00 00 00 */	cmpwi r0, 0
/* 802D315C 002CEDBC  40 82 00 0C */	bne lbl_802D3168
/* 802D3160 002CEDC0  38 60 00 01 */	li r3, 1
/* 802D3164 002CEDC4  48 00 01 40 */	b lbl_802D32A4
lbl_802D3168:
/* 802D3168 002CEDC8  3B A0 00 00 */	li r29, 0
lbl_802D316C:
/* 802D316C 002CEDCC  7F 43 D3 78 */	mr r3, r26
/* 802D3170 002CEDD0  38 9F 00 01 */	addi r4, r31, 1
/* 802D3174 002CEDD4  38 A0 00 06 */	li r5, 6
/* 802D3178 002CEDD8  4B EF 72 21 */	bl memcmp
/* 802D317C 002CEDDC  2C 03 00 00 */	cmpwi r3, 0
/* 802D3180 002CEDE0  41 82 00 14 */	beq lbl_802D3194
/* 802D3184 002CEDE4  3B BD 00 01 */	addi r29, r29, 1
/* 802D3188 002CEDE8  3B FF 00 34 */	addi r31, r31, 0x34
/* 802D318C 002CEDEC  2C 1D 00 10 */	cmpwi r29, 0x10
/* 802D3190 002CEDF0  41 80 FF DC */	blt lbl_802D316C
lbl_802D3194:
/* 802D3194 002CEDF4  2C 1D 00 10 */	cmpwi r29, 0x10
/* 802D3198 002CEDF8  40 82 00 A0 */	bne lbl_802D3238
/* 802D319C 002CEDFC  3C 60 80 57 */	lis r3, lbl_8056B838@ha
/* 802D31A0 002CEE00  38 00 00 02 */	li r0, 2
/* 802D31A4 002CEE04  38 63 B8 38 */	addi r3, r3, lbl_8056B838@l
/* 802D31A8 002CEE08  3B A0 00 00 */	li r29, 0
/* 802D31AC 002CEE0C  7C 09 03 A6 */	mtctr r0
lbl_802D31B0:
/* 802D31B0 002CEE10  88 03 00 00 */	lbz r0, 0(r3)
/* 802D31B4 002CEE14  2C 00 00 00 */	cmpwi r0, 0
/* 802D31B8 002CEE18  41 82 00 80 */	beq lbl_802D3238
/* 802D31BC 002CEE1C  88 03 00 34 */	lbz r0, 0x34(r3)
/* 802D31C0 002CEE20  3B BD 00 01 */	addi r29, r29, 1
/* 802D31C4 002CEE24  2C 00 00 00 */	cmpwi r0, 0
/* 802D31C8 002CEE28  41 82 00 70 */	beq lbl_802D3238
/* 802D31CC 002CEE2C  88 03 00 68 */	lbz r0, 0x68(r3)
/* 802D31D0 002CEE30  3B BD 00 01 */	addi r29, r29, 1
/* 802D31D4 002CEE34  2C 00 00 00 */	cmpwi r0, 0
/* 802D31D8 002CEE38  41 82 00 60 */	beq lbl_802D3238
/* 802D31DC 002CEE3C  88 03 00 9C */	lbz r0, 0x9c(r3)
/* 802D31E0 002CEE40  3B BD 00 01 */	addi r29, r29, 1
/* 802D31E4 002CEE44  2C 00 00 00 */	cmpwi r0, 0
/* 802D31E8 002CEE48  41 82 00 50 */	beq lbl_802D3238
/* 802D31EC 002CEE4C  88 03 00 D0 */	lbz r0, 0xd0(r3)
/* 802D31F0 002CEE50  3B BD 00 01 */	addi r29, r29, 1
/* 802D31F4 002CEE54  2C 00 00 00 */	cmpwi r0, 0
/* 802D31F8 002CEE58  41 82 00 40 */	beq lbl_802D3238
/* 802D31FC 002CEE5C  88 03 01 04 */	lbz r0, 0x104(r3)
/* 802D3200 002CEE60  3B BD 00 01 */	addi r29, r29, 1
/* 802D3204 002CEE64  2C 00 00 00 */	cmpwi r0, 0
/* 802D3208 002CEE68  41 82 00 30 */	beq lbl_802D3238
/* 802D320C 002CEE6C  88 03 01 38 */	lbz r0, 0x138(r3)
/* 802D3210 002CEE70  3B BD 00 01 */	addi r29, r29, 1
/* 802D3214 002CEE74  2C 00 00 00 */	cmpwi r0, 0
/* 802D3218 002CEE78  41 82 00 20 */	beq lbl_802D3238
/* 802D321C 002CEE7C  88 03 01 6C */	lbz r0, 0x16c(r3)
/* 802D3220 002CEE80  3B BD 00 01 */	addi r29, r29, 1
/* 802D3224 002CEE84  2C 00 00 00 */	cmpwi r0, 0
/* 802D3228 002CEE88  41 82 00 10 */	beq lbl_802D3238
/* 802D322C 002CEE8C  38 63 01 A0 */	addi r3, r3, 0x1a0
/* 802D3230 002CEE90  3B BD 00 01 */	addi r29, r29, 1
/* 802D3234 002CEE94  42 00 FF 7C */	bdnz lbl_802D31B0
lbl_802D3238:
/* 802D3238 002CEE98  2C 1D 00 10 */	cmpwi r29, 0x10
/* 802D323C 002CEE9C  40 82 00 0C */	bne lbl_802D3248
/* 802D3240 002CEEA0  38 60 00 03 */	li r3, 3
/* 802D3244 002CEEA4  48 00 00 60 */	b lbl_802D32A4
lbl_802D3248:
/* 802D3248 002CEEA8  1F DD 00 34 */	mulli r30, r29, 0x34
/* 802D324C 002CEEAC  3F E0 80 57 */	lis r31, lbl_8056B838@ha
/* 802D3250 002CEEB0  3B FF B8 38 */	addi r31, r31, lbl_8056B838@l
/* 802D3254 002CEEB4  7C 1F F0 AE */	lbzx r0, r31, r30
/* 802D3258 002CEEB8  2C 00 00 00 */	cmpwi r0, 0
/* 802D325C 002CEEBC  40 82 00 30 */	bne lbl_802D328C
/* 802D3260 002CEEC0  38 00 00 01 */	li r0, 1
/* 802D3264 002CEEC4  7C 7F F2 14 */	add r3, r31, r30
/* 802D3268 002CEEC8  7C 1F F1 AE */	stbx r0, r31, r30
/* 802D326C 002CEECC  7F 44 D3 78 */	mr r4, r26
/* 802D3270 002CEED0  38 63 00 01 */	addi r3, r3, 1
/* 802D3274 002CEED4  38 A0 00 06 */	li r5, 6
/* 802D3278 002CEED8  4B D3 0D 89 */	bl memcpy
/* 802D327C 002CEEDC  7C 7F F2 14 */	add r3, r31, r30
/* 802D3280 002CEEE0  38 00 00 00 */	li r0, 0
/* 802D3284 002CEEE4  98 03 00 0A */	stb r0, 0xa(r3)
/* 802D3288 002CEEE8  98 03 00 0C */	stb r0, 0xc(r3)
lbl_802D328C:
/* 802D328C 002CEEEC  3C 80 80 57 */	lis r4, lbl_8056B838@ha
/* 802D3290 002CEEF0  38 60 00 00 */	li r3, 0
/* 802D3294 002CEEF4  38 84 B8 38 */	addi r4, r4, lbl_8056B838@l
/* 802D3298 002CEEF8  7C 84 F2 14 */	add r4, r4, r30
/* 802D329C 002CEEFC  B3 64 00 08 */	sth r27, 8(r4)
/* 802D32A0 002CEF00  9B BC 00 00 */	stb r29, 0(r28)
lbl_802D32A4:
/* 802D32A4 002CEF04  39 61 00 20 */	addi r11, r1, 0x20
/* 802D32A8 002CEF08  4B EF 3E C9 */	bl _restgpr_26
/* 802D32AC 002CEF0C  80 01 00 24 */	lwz r0, 0x24(r1)
/* 802D32B0 002CEF10  7C 08 03 A6 */	mtlr r0
/* 802D32B4 002CEF14  38 21 00 20 */	addi r1, r1, 0x20
/* 802D32B8 002CEF18  4E 80 00 20 */	blr

.global HID_HostRemoveDev
HID_HostRemoveDev:
/* 802D32BC 002CEF1C  94 21 FF E0 */	stwu r1, -0x20(r1)
/* 802D32C0 002CEF20  7C 08 02 A6 */	mflr r0
/* 802D32C4 002CEF24  90 01 00 24 */	stw r0, 0x24(r1)
/* 802D32C8 002CEF28  39 61 00 20 */	addi r11, r1, 0x20
/* 802D32CC 002CEF2C  4B EF 3E 5D */	bl _savegpr_27
/* 802D32D0 002CEF30  3F C0 80 57 */	lis r30, lbl_8056B838@ha
/* 802D32D4 002CEF34  7C 7B 1B 78 */	mr r27, r3
/* 802D32D8 002CEF38  3B DE B8 38 */	addi r30, r30, lbl_8056B838@l
/* 802D32DC 002CEF3C  88 1E 04 00 */	lbz r0, 0x400(r30)
/* 802D32E0 002CEF40  2F 00 00 00 */	cmpwi cr6, r0, 0
/* 802D32E4 002CEF44  40 9A 00 0C */	bne cr6, lbl_802D32F0
/* 802D32E8 002CEF48  38 60 00 01 */	li r3, 1
/* 802D32EC 002CEF4C  48 00 00 80 */	b lbl_802D336C
lbl_802D32F0:
/* 802D32F0 002CEF50  28 83 00 10 */	cmplwi cr1, r3, 0x10
/* 802D32F4 002CEF54  41 85 00 18 */	bgt cr1, lbl_802D330C
/* 802D32F8 002CEF58  1F 83 00 34 */	mulli r28, r3, 0x34
/* 802D32FC 002CEF5C  7C 1E E0 AE */	lbzx r0, r30, r28
/* 802D3300 002CEF60  7F BE E2 14 */	add r29, r30, r28
/* 802D3304 002CEF64  2C 00 00 00 */	cmpwi r0, 0
/* 802D3308 002CEF68  40 82 00 0C */	bne lbl_802D3314
lbl_802D330C:
/* 802D330C 002CEF6C  38 60 00 05 */	li r3, 5
/* 802D3310 002CEF70  48 00 00 5C */	b lbl_802D336C
lbl_802D3314:
/* 802D3314 002CEF74  41 9A 00 34 */	beq cr6, lbl_802D3348
/* 802D3318 002CEF78  41 85 00 30 */	bgt cr1, lbl_802D3348
/* 802D331C 002CEF7C  41 82 00 2C */	beq lbl_802D3348
/* 802D3320 002CEF80  3B E0 00 01 */	li r31, 1
/* 802D3324 002CEF84  38 7D 00 1C */	addi r3, r29, 0x1c
/* 802D3328 002CEF88  9B FD 00 0C */	stb r31, 0xc(r29)
/* 802D332C 002CEF8C  4B FE A2 21 */	bl btu_stop_timer
/* 802D3330 002CEF90  88 1D 00 0A */	lbz r0, 0xa(r29)
/* 802D3334 002CEF94  28 00 00 01 */	cmplwi r0, 1
/* 802D3338 002CEF98  40 82 00 10 */	bne lbl_802D3348
/* 802D333C 002CEF9C  9B FD 00 0C */	stb r31, 0xc(r29)
/* 802D3340 002CEFA0  7F 63 DB 78 */	mr r3, r27
/* 802D3344 002CEFA4  48 00 06 05 */	bl hidh_conn_disconnect
lbl_802D3348:
/* 802D3348 002CEFA8  38 00 00 00 */	li r0, 0
/* 802D334C 002CEFAC  3C 60 80 57 */	lis r3, lbl_8056B838@ha
/* 802D3350 002CEFB0  38 63 B8 38 */	addi r3, r3, lbl_8056B838@l
/* 802D3354 002CEFB4  98 1D 00 00 */	stb r0, 0(r29)
/* 802D3358 002CEFB8  7C 83 E2 14 */	add r4, r3, r28
/* 802D335C 002CEFBC  98 04 00 10 */	stb r0, 0x10(r4)
/* 802D3360 002CEFC0  38 60 00 00 */	li r3, 0
/* 802D3364 002CEFC4  B0 04 00 16 */	sth r0, 0x16(r4)
/* 802D3368 002CEFC8  B0 04 00 14 */	sth r0, 0x14(r4)
lbl_802D336C:
/* 802D336C 002CEFCC  39 61 00 20 */	addi r11, r1, 0x20
/* 802D3370 002CEFD0  4B EF 3E 05 */	bl _restgpr_27
/* 802D3374 002CEFD4  80 01 00 24 */	lwz r0, 0x24(r1)
/* 802D3378 002CEFD8  7C 08 03 A6 */	mtlr r0
/* 802D337C 002CEFDC  38 21 00 20 */	addi r1, r1, 0x20
/* 802D3380 002CEFE0  4E 80 00 20 */	blr

.global HID_HostOpenDev
HID_HostOpenDev:
/* 802D3384 002CEFE4  3C 80 80 57 */	lis r4, lbl_8056B838@ha
/* 802D3388 002CEFE8  38 84 B8 38 */	addi r4, r4, lbl_8056B838@l
/* 802D338C 002CEFEC  88 04 04 00 */	lbz r0, 0x400(r4)
/* 802D3390 002CEFF0  2C 00 00 00 */	cmpwi r0, 0
/* 802D3394 002CEFF4  40 82 00 0C */	bne lbl_802D33A0
/* 802D3398 002CEFF8  38 60 00 01 */	li r3, 1
/* 802D339C 002CEFFC  4E 80 00 20 */	blr
lbl_802D33A0:
/* 802D33A0 002CF000  28 03 00 10 */	cmplwi r3, 0x10
/* 802D33A4 002CF004  41 81 00 14 */	bgt lbl_802D33B8
/* 802D33A8 002CF008  1C A3 00 34 */	mulli r5, r3, 0x34
/* 802D33AC 002CF00C  7C 04 28 AE */	lbzx r0, r4, r5
/* 802D33B0 002CF010  2C 00 00 00 */	cmpwi r0, 0
/* 802D33B4 002CF014  40 82 00 0C */	bne lbl_802D33C0
lbl_802D33B8:
/* 802D33B8 002CF018  38 60 00 05 */	li r3, 5
/* 802D33BC 002CF01C  4E 80 00 20 */	blr
lbl_802D33C0:
/* 802D33C0 002CF020  7C 84 2A 14 */	add r4, r4, r5
/* 802D33C4 002CF024  88 04 00 0A */	lbz r0, 0xa(r4)
/* 802D33C8 002CF028  2C 00 00 00 */	cmpwi r0, 0
/* 802D33CC 002CF02C  41 82 00 0C */	beq lbl_802D33D8
/* 802D33D0 002CF030  38 60 00 0A */	li r3, 0xa
/* 802D33D4 002CF034  4E 80 00 20 */	blr
lbl_802D33D8:
/* 802D33D8 002CF038  38 00 00 01 */	li r0, 1
/* 802D33DC 002CF03C  98 04 00 0C */	stb r0, 0xc(r4)
/* 802D33E0 002CF040  48 00 23 28 */	b hidh_conn_initiate
/* 802D33E4 002CF044  4E 80 00 20 */	blr

.global HID_HostWriteDev
HID_HostWriteDev:
/* 802D33E8 002CF048  94 21 FF D0 */	stwu r1, -0x30(r1)
/* 802D33EC 002CF04C  7C 08 02 A6 */	mflr r0
/* 802D33F0 002CF050  90 01 00 34 */	stw r0, 0x34(r1)
/* 802D33F4 002CF054  39 61 00 30 */	addi r11, r1, 0x30
/* 802D33F8 002CF058  4B EF 3D 25 */	bl _savegpr_24
/* 802D33FC 002CF05C  3D 20 80 57 */	lis r9, lbl_8056B838@ha
/* 802D3400 002CF060  3F E0 80 44 */	lis r31, lbl_80442740@ha
/* 802D3404 002CF064  39 29 B8 38 */	addi r9, r9, lbl_8056B838@l
/* 802D3408 002CF068  7C 79 1B 78 */	mr r25, r3
/* 802D340C 002CF06C  88 09 04 00 */	lbz r0, 0x400(r9)
/* 802D3410 002CF070  7C 9A 23 78 */	mr r26, r4
/* 802D3414 002CF074  7C BB 2B 78 */	mr r27, r5
/* 802D3418 002CF078  7C DC 33 78 */	mr r28, r6
/* 802D341C 002CF07C  2C 00 00 00 */	cmpwi r0, 0
/* 802D3420 002CF080  7C FD 3B 78 */	mr r29, r7
/* 802D3424 002CF084  7D 1E 43 78 */	mr r30, r8
/* 802D3428 002CF088  3B FF 27 40 */	addi r31, r31, lbl_80442740@l
/* 802D342C 002CF08C  3B 00 00 00 */	li r24, 0
/* 802D3430 002CF090  40 82 00 20 */	bne lbl_802D3450
/* 802D3434 002CF094  88 09 04 01 */	lbz r0, 0x401(r9)
/* 802D3438 002CF098  28 00 00 01 */	cmplwi r0, 1
/* 802D343C 002CF09C  41 80 00 10 */	blt lbl_802D344C
/* 802D3440 002CF0A0  38 9F 00 00 */	addi r4, r31, 0
/* 802D3444 002CF0A4  3C 60 00 1E */	lis r3, 0x1e
/* 802D3448 002CF0A8  4B FE 9A C9 */	bl LogMsg_0
lbl_802D344C:
/* 802D344C 002CF0AC  3B 00 00 01 */	li r24, 1
lbl_802D3450:
/* 802D3450 002CF0B0  28 19 00 10 */	cmplwi r25, 0x10
/* 802D3454 002CF0B4  41 81 00 1C */	bgt lbl_802D3470
/* 802D3458 002CF0B8  1C 19 00 34 */	mulli r0, r25, 0x34
/* 802D345C 002CF0BC  3C 60 80 57 */	lis r3, lbl_8056B838@ha
/* 802D3460 002CF0C0  38 63 B8 38 */	addi r3, r3, lbl_8056B838@l
/* 802D3464 002CF0C4  7C 03 00 AE */	lbzx r0, r3, r0
/* 802D3468 002CF0C8  2C 00 00 00 */	cmpwi r0, 0
/* 802D346C 002CF0CC  40 82 00 28 */	bne lbl_802D3494
lbl_802D3470:
/* 802D3470 002CF0D0  3C 60 80 57 */	lis r3, lbl_8056B838@ha
/* 802D3474 002CF0D4  38 63 B8 38 */	addi r3, r3, lbl_8056B838@l
/* 802D3478 002CF0D8  88 03 04 01 */	lbz r0, 0x401(r3)
/* 802D347C 002CF0DC  28 00 00 01 */	cmplwi r0, 1
/* 802D3480 002CF0E0  41 80 00 10 */	blt lbl_802D3490
/* 802D3484 002CF0E4  38 9F 00 18 */	addi r4, r31, 0x18
/* 802D3488 002CF0E8  3C 60 00 1E */	lis r3, 0x1e
/* 802D348C 002CF0EC  4B FE 9A 85 */	bl LogMsg_0
lbl_802D3490:
/* 802D3490 002CF0F0  3B 00 00 05 */	li r24, 5
lbl_802D3494:
/* 802D3494 002CF0F4  1C 19 00 34 */	mulli r0, r25, 0x34
/* 802D3498 002CF0F8  3C 80 80 57 */	lis r4, lbl_8056B838@ha
/* 802D349C 002CF0FC  38 84 B8 38 */	addi r4, r4, lbl_8056B838@l
/* 802D34A0 002CF100  7C 64 02 14 */	add r3, r4, r0
/* 802D34A4 002CF104  88 03 00 0A */	lbz r0, 0xa(r3)
/* 802D34A8 002CF108  28 00 00 01 */	cmplwi r0, 1
/* 802D34AC 002CF10C  41 82 00 24 */	beq lbl_802D34D0
/* 802D34B0 002CF110  88 04 04 01 */	lbz r0, 0x401(r4)
/* 802D34B4 002CF114  28 00 00 01 */	cmplwi r0, 1
/* 802D34B8 002CF118  41 80 00 14 */	blt lbl_802D34CC
/* 802D34BC 002CF11C  7F 25 CB 78 */	mr r5, r25
/* 802D34C0 002CF120  38 9F 00 30 */	addi r4, r31, 0x30
/* 802D34C4 002CF124  3C 60 00 1E */	lis r3, 0x1e
/* 802D34C8 002CF128  4B FE 9A 61 */	bl LogMsg_1
lbl_802D34CC:
/* 802D34CC 002CF12C  3B 00 00 04 */	li r24, 4
lbl_802D34D0:
/* 802D34D0 002CF130  2C 18 00 00 */	cmpwi r24, 0
/* 802D34D4 002CF134  41 82 00 18 */	beq lbl_802D34EC
/* 802D34D8 002CF138  2C 1E 00 00 */	cmpwi r30, 0
/* 802D34DC 002CF13C  41 82 00 30 */	beq lbl_802D350C
/* 802D34E0 002CF140  7F C3 F3 78 */	mr r3, r30
/* 802D34E4 002CF144  4B FE 68 51 */	bl GKI_freebuf
/* 802D34E8 002CF148  48 00 00 24 */	b lbl_802D350C
lbl_802D34EC:
/* 802D34EC 002CF14C  7F 23 CB 78 */	mr r3, r25
/* 802D34F0 002CF150  7F 44 D3 78 */	mr r4, r26
/* 802D34F4 002CF154  7F 65 DB 78 */	mr r5, r27
/* 802D34F8 002CF158  7F 86 E3 78 */	mr r6, r28
/* 802D34FC 002CF15C  7F A7 EB 78 */	mr r7, r29
/* 802D3500 002CF160  7F C8 F3 78 */	mr r8, r30
/* 802D3504 002CF164  48 00 1F 69 */	bl hidh_conn_snd_data
/* 802D3508 002CF168  7C 78 1B 78 */	mr r24, r3
lbl_802D350C:
/* 802D350C 002CF16C  39 61 00 30 */	addi r11, r1, 0x30
/* 802D3510 002CF170  7F 03 C3 78 */	mr r3, r24
/* 802D3514 002CF174  4B EF 3C 55 */	bl _restgpr_24
/* 802D3518 002CF178  80 01 00 34 */	lwz r0, 0x34(r1)
/* 802D351C 002CF17C  7C 08 03 A6 */	mtlr r0
/* 802D3520 002CF180  38 21 00 30 */	addi r1, r1, 0x30
/* 802D3524 002CF184  4E 80 00 20 */	blr

.global HID_HostCloseDev
HID_HostCloseDev:
/* 802D3528 002CF188  94 21 FF E0 */	stwu r1, -0x20(r1)
/* 802D352C 002CF18C  7C 08 02 A6 */	mflr r0
/* 802D3530 002CF190  90 01 00 24 */	stw r0, 0x24(r1)
/* 802D3534 002CF194  39 61 00 20 */	addi r11, r1, 0x20
/* 802D3538 002CF198  4B EF 3B F1 */	bl _savegpr_27
/* 802D353C 002CF19C  3F C0 80 57 */	lis r30, lbl_8056B838@ha
/* 802D3540 002CF1A0  7C 7B 1B 78 */	mr r27, r3
/* 802D3544 002CF1A4  3B DE B8 38 */	addi r30, r30, lbl_8056B838@l
/* 802D3548 002CF1A8  88 1E 04 00 */	lbz r0, 0x400(r30)
/* 802D354C 002CF1AC  2C 00 00 00 */	cmpwi r0, 0
/* 802D3550 002CF1B0  40 82 00 0C */	bne lbl_802D355C
/* 802D3554 002CF1B4  38 60 00 01 */	li r3, 1
/* 802D3558 002CF1B8  48 00 00 58 */	b lbl_802D35B0
lbl_802D355C:
/* 802D355C 002CF1BC  28 03 00 10 */	cmplwi r3, 0x10
/* 802D3560 002CF1C0  41 81 00 18 */	bgt lbl_802D3578
/* 802D3564 002CF1C4  1F 83 00 34 */	mulli r28, r3, 0x34
/* 802D3568 002CF1C8  7C 1E E0 AE */	lbzx r0, r30, r28
/* 802D356C 002CF1CC  7F BE E2 14 */	add r29, r30, r28
/* 802D3570 002CF1D0  2C 00 00 00 */	cmpwi r0, 0
/* 802D3574 002CF1D4  40 82 00 0C */	bne lbl_802D3580
lbl_802D3578:
/* 802D3578 002CF1D8  38 60 00 05 */	li r3, 5
/* 802D357C 002CF1DC  48 00 00 34 */	b lbl_802D35B0
lbl_802D3580:
/* 802D3580 002CF1E0  3B E0 00 01 */	li r31, 1
/* 802D3584 002CF1E4  38 7D 00 1C */	addi r3, r29, 0x1c
/* 802D3588 002CF1E8  9B FD 00 0C */	stb r31, 0xc(r29)
/* 802D358C 002CF1EC  4B FE 9F C1 */	bl btu_stop_timer
/* 802D3590 002CF1F0  88 1D 00 0A */	lbz r0, 0xa(r29)
/* 802D3594 002CF1F4  28 00 00 01 */	cmplwi r0, 1
/* 802D3598 002CF1F8  41 82 00 0C */	beq lbl_802D35A4
/* 802D359C 002CF1FC  38 60 00 04 */	li r3, 4
/* 802D35A0 002CF200  48 00 00 10 */	b lbl_802D35B0
lbl_802D35A4:
/* 802D35A4 002CF204  9B FD 00 0C */	stb r31, 0xc(r29)
/* 802D35A8 002CF208  7F 63 DB 78 */	mr r3, r27
/* 802D35AC 002CF20C  48 00 03 9D */	bl hidh_conn_disconnect
lbl_802D35B0:
/* 802D35B0 002CF210  39 61 00 20 */	addi r11, r1, 0x20
/* 802D35B4 002CF214  4B EF 3B C1 */	bl _restgpr_27
/* 802D35B8 002CF218  80 01 00 24 */	lwz r0, 0x24(r1)
/* 802D35BC 002CF21C  7C 08 03 A6 */	mtlr r0
/* 802D35C0 002CF220  38 21 00 20 */	addi r1, r1, 0x20
/* 802D35C4 002CF224  4E 80 00 20 */	blr

.global HID_HostSetSecurityLevel
HID_HostSetSecurityLevel:
/* 802D35C8 002CF228  94 21 FF E0 */	stwu r1, -0x20(r1)
/* 802D35CC 002CF22C  7C 08 02 A6 */	mflr r0
/* 802D35D0 002CF230  38 A0 00 20 */	li r5, 0x20
/* 802D35D4 002CF234  38 E0 00 11 */	li r7, 0x11
/* 802D35D8 002CF238  90 01 00 24 */	stw r0, 0x24(r1)
/* 802D35DC 002CF23C  39 00 00 06 */	li r8, 6
/* 802D35E0 002CF240  39 20 00 01 */	li r9, 1
/* 802D35E4 002CF244  93 E1 00 1C */	stw r31, 0x1c(r1)
/* 802D35E8 002CF248  3F E0 80 44 */	lis r31, lbl_80442740@ha
/* 802D35EC 002CF24C  3B FF 27 40 */	addi r31, r31, lbl_80442740@l
/* 802D35F0 002CF250  93 C1 00 18 */	stw r30, 0x18(r1)
/* 802D35F4 002CF254  7C 9E 23 78 */	mr r30, r4
/* 802D35F8 002CF258  7F C6 F3 78 */	mr r6, r30
/* 802D35FC 002CF25C  93 A1 00 14 */	stw r29, 0x14(r1)
/* 802D3600 002CF260  7C 7D 1B 78 */	mr r29, r3
/* 802D3604 002CF264  38 60 00 00 */	li r3, 0
/* 802D3608 002CF268  7F A4 EB 78 */	mr r4, r29
/* 802D360C 002CF26C  4B FF 74 79 */	bl BTM_SetSecurityLevel
/* 802D3610 002CF270  54 60 06 3F */	clrlwi. r0, r3, 0x18
/* 802D3614 002CF274  40 82 00 2C */	bne lbl_802D3640
/* 802D3618 002CF278  3C 60 80 57 */	lis r3, lbl_8056B838@ha
/* 802D361C 002CF27C  38 63 B8 38 */	addi r3, r3, lbl_8056B838@l
/* 802D3620 002CF280  88 03 04 01 */	lbz r0, 0x401(r3)
/* 802D3624 002CF284  28 00 00 01 */	cmplwi r0, 1
/* 802D3628 002CF288  41 80 00 10 */	blt lbl_802D3638
/* 802D362C 002CF28C  38 9F 00 54 */	addi r4, r31, 0x54
/* 802D3630 002CF290  3C 60 00 1E */	lis r3, 0x1e
/* 802D3634 002CF294  4B FE 98 DD */	bl LogMsg_0
lbl_802D3638:
/* 802D3638 002CF298  38 60 00 03 */	li r3, 3
/* 802D363C 002CF29C  48 00 01 98 */	b lbl_802D37D4
lbl_802D3640:
/* 802D3640 002CF2A0  7F A4 EB 78 */	mr r4, r29
/* 802D3644 002CF2A4  7F C6 F3 78 */	mr r6, r30
/* 802D3648 002CF2A8  38 60 00 01 */	li r3, 1
/* 802D364C 002CF2AC  38 A0 00 20 */	li r5, 0x20
/* 802D3650 002CF2B0  38 E0 00 11 */	li r7, 0x11
/* 802D3654 002CF2B4  39 00 00 06 */	li r8, 6
/* 802D3658 002CF2B8  39 20 00 01 */	li r9, 1
/* 802D365C 002CF2BC  4B FF 74 29 */	bl BTM_SetSecurityLevel
/* 802D3660 002CF2C0  54 60 06 3F */	clrlwi. r0, r3, 0x18
/* 802D3664 002CF2C4  40 82 00 2C */	bne lbl_802D3690
/* 802D3668 002CF2C8  3C 60 80 57 */	lis r3, lbl_8056B838@ha
/* 802D366C 002CF2CC  38 63 B8 38 */	addi r3, r3, lbl_8056B838@l
/* 802D3670 002CF2D0  88 03 04 01 */	lbz r0, 0x401(r3)
/* 802D3674 002CF2D4  28 00 00 01 */	cmplwi r0, 1
/* 802D3678 002CF2D8  41 80 00 10 */	blt lbl_802D3688
/* 802D367C 002CF2DC  38 9F 00 74 */	addi r4, r31, 0x74
/* 802D3680 002CF2E0  3C 60 00 1E */	lis r3, 0x1e
/* 802D3684 002CF2E4  4B FE 98 8D */	bl LogMsg_0
lbl_802D3688:
/* 802D3688 002CF2E8  38 60 00 03 */	li r3, 3
/* 802D368C 002CF2EC  48 00 01 48 */	b lbl_802D37D4
lbl_802D3690:
/* 802D3690 002CF2F0  7F A4 EB 78 */	mr r4, r29
/* 802D3694 002CF2F4  38 60 00 00 */	li r3, 0
/* 802D3698 002CF2F8  38 A0 00 21 */	li r5, 0x21
/* 802D369C 002CF2FC  38 C0 00 00 */	li r6, 0
/* 802D36A0 002CF300  38 E0 00 11 */	li r7, 0x11
/* 802D36A4 002CF304  39 00 00 06 */	li r8, 6
/* 802D36A8 002CF308  39 20 00 02 */	li r9, 2
/* 802D36AC 002CF30C  4B FF 73 D9 */	bl BTM_SetSecurityLevel
/* 802D36B0 002CF310  54 60 06 3F */	clrlwi. r0, r3, 0x18
/* 802D36B4 002CF314  40 82 00 2C */	bne lbl_802D36E0
/* 802D36B8 002CF318  3C 60 80 57 */	lis r3, lbl_8056B838@ha
/* 802D36BC 002CF31C  38 63 B8 38 */	addi r3, r3, lbl_8056B838@l
/* 802D36C0 002CF320  88 03 04 01 */	lbz r0, 0x401(r3)
/* 802D36C4 002CF324  28 00 00 01 */	cmplwi r0, 1
/* 802D36C8 002CF328  41 80 00 10 */	blt lbl_802D36D8
/* 802D36CC 002CF32C  38 9F 00 94 */	addi r4, r31, 0x94
/* 802D36D0 002CF330  3C 60 00 1E */	lis r3, 0x1e
/* 802D36D4 002CF334  4B FE 98 3D */	bl LogMsg_0
lbl_802D36D8:
/* 802D36D8 002CF338  38 60 00 03 */	li r3, 3
/* 802D36DC 002CF33C  48 00 00 F8 */	b lbl_802D37D4
lbl_802D36E0:
/* 802D36E0 002CF340  7F A4 EB 78 */	mr r4, r29
/* 802D36E4 002CF344  38 60 00 01 */	li r3, 1
/* 802D36E8 002CF348  38 A0 00 21 */	li r5, 0x21
/* 802D36EC 002CF34C  38 C0 00 00 */	li r6, 0
/* 802D36F0 002CF350  38 E0 00 11 */	li r7, 0x11
/* 802D36F4 002CF354  39 00 00 06 */	li r8, 6
/* 802D36F8 002CF358  39 20 00 02 */	li r9, 2
/* 802D36FC 002CF35C  4B FF 73 89 */	bl BTM_SetSecurityLevel
/* 802D3700 002CF360  54 60 06 3F */	clrlwi. r0, r3, 0x18
/* 802D3704 002CF364  40 82 00 2C */	bne lbl_802D3730
/* 802D3708 002CF368  3C 60 80 57 */	lis r3, lbl_8056B838@ha
/* 802D370C 002CF36C  38 63 B8 38 */	addi r3, r3, lbl_8056B838@l
/* 802D3710 002CF370  88 03 04 01 */	lbz r0, 0x401(r3)
/* 802D3714 002CF374  28 00 00 01 */	cmplwi r0, 1
/* 802D3718 002CF378  41 80 00 10 */	blt lbl_802D3728
/* 802D371C 002CF37C  38 9F 00 B4 */	addi r4, r31, 0xb4
/* 802D3720 002CF380  3C 60 00 1E */	lis r3, 0x1e
/* 802D3724 002CF384  4B FE 97 ED */	bl LogMsg_0
lbl_802D3728:
/* 802D3728 002CF388  38 60 00 03 */	li r3, 3
/* 802D372C 002CF38C  48 00 00 A8 */	b lbl_802D37D4
lbl_802D3730:
/* 802D3730 002CF390  7F A4 EB 78 */	mr r4, r29
/* 802D3734 002CF394  38 60 00 01 */	li r3, 1
/* 802D3738 002CF398  38 A0 00 22 */	li r5, 0x22
/* 802D373C 002CF39C  38 C0 00 00 */	li r6, 0
/* 802D3740 002CF3A0  38 E0 00 13 */	li r7, 0x13
/* 802D3744 002CF3A4  39 00 00 06 */	li r8, 6
/* 802D3748 002CF3A8  39 20 00 00 */	li r9, 0
/* 802D374C 002CF3AC  4B FF 73 39 */	bl BTM_SetSecurityLevel
/* 802D3750 002CF3B0  54 60 06 3F */	clrlwi. r0, r3, 0x18
/* 802D3754 002CF3B4  40 82 00 2C */	bne lbl_802D3780
/* 802D3758 002CF3B8  3C 60 80 57 */	lis r3, lbl_8056B838@ha
/* 802D375C 002CF3BC  38 63 B8 38 */	addi r3, r3, lbl_8056B838@l
/* 802D3760 002CF3C0  88 03 04 01 */	lbz r0, 0x401(r3)
/* 802D3764 002CF3C4  28 00 00 01 */	cmplwi r0, 1
/* 802D3768 002CF3C8  41 80 00 10 */	blt lbl_802D3778
/* 802D376C 002CF3CC  38 9F 00 D4 */	addi r4, r31, 0xd4
/* 802D3770 002CF3D0  3C 60 00 1E */	lis r3, 0x1e
/* 802D3774 002CF3D4  4B FE 97 9D */	bl LogMsg_0
lbl_802D3778:
/* 802D3778 002CF3D8  38 60 00 03 */	li r3, 3
/* 802D377C 002CF3DC  48 00 00 58 */	b lbl_802D37D4
lbl_802D3780:
/* 802D3780 002CF3E0  7F A4 EB 78 */	mr r4, r29
/* 802D3784 002CF3E4  38 60 00 00 */	li r3, 0
/* 802D3788 002CF3E8  38 A0 00 22 */	li r5, 0x22
/* 802D378C 002CF3EC  38 C0 00 00 */	li r6, 0
/* 802D3790 002CF3F0  38 E0 00 13 */	li r7, 0x13
/* 802D3794 002CF3F4  39 00 00 06 */	li r8, 6
/* 802D3798 002CF3F8  39 20 00 00 */	li r9, 0
/* 802D379C 002CF3FC  4B FF 72 E9 */	bl BTM_SetSecurityLevel
/* 802D37A0 002CF400  54 60 06 3F */	clrlwi. r0, r3, 0x18
/* 802D37A4 002CF404  40 82 00 2C */	bne lbl_802D37D0
/* 802D37A8 002CF408  3C 60 80 57 */	lis r3, lbl_8056B838@ha
/* 802D37AC 002CF40C  38 63 B8 38 */	addi r3, r3, lbl_8056B838@l
/* 802D37B0 002CF410  88 03 04 01 */	lbz r0, 0x401(r3)
/* 802D37B4 002CF414  28 00 00 01 */	cmplwi r0, 1
/* 802D37B8 002CF418  41 80 00 10 */	blt lbl_802D37C8
/* 802D37BC 002CF41C  38 9F 00 F4 */	addi r4, r31, 0xf4
/* 802D37C0 002CF420  3C 60 00 1E */	lis r3, 0x1e
/* 802D37C4 002CF424  4B FE 97 4D */	bl LogMsg_0
lbl_802D37C8:
/* 802D37C8 002CF428  38 60 00 03 */	li r3, 3
/* 802D37CC 002CF42C  48 00 00 08 */	b lbl_802D37D4
lbl_802D37D0:
/* 802D37D0 002CF430  38 60 00 00 */	li r3, 0
lbl_802D37D4:
/* 802D37D4 002CF434  80 01 00 24 */	lwz r0, 0x24(r1)
/* 802D37D8 002CF438  83 E1 00 1C */	lwz r31, 0x1c(r1)
/* 802D37DC 002CF43C  83 C1 00 18 */	lwz r30, 0x18(r1)
/* 802D37E0 002CF440  83 A1 00 14 */	lwz r29, 0x14(r1)
/* 802D37E4 002CF444  7C 08 03 A6 */	mtlr r0
/* 802D37E8 002CF448  38 21 00 20 */	addi r1, r1, 0x20
/* 802D37EC 002CF44C  4E 80 00 20 */	blr