summaryrefslogtreecommitdiff
path: root/asm/SDK/BTE/sdp_server.s
blob: 097445b482cd22c0d3c5803a584a5b6dae81d20e (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
.include "macros.inc"

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

.global sdp_server_handle_client_req
sdp_server_handle_client_req:
/* 802E5700 002E1360  94 21 FF E0 */	stwu r1, -0x20(r1)
/* 802E5704 002E1364  7C 08 02 A6 */	mflr r0
/* 802E5708 002E1368  90 01 00 24 */	stw r0, 0x24(r1)
/* 802E570C 002E136C  93 E1 00 1C */	stw r31, 0x1c(r1)
/* 802E5710 002E1370  93 C1 00 18 */	stw r30, 0x18(r1)
/* 802E5714 002E1374  93 A1 00 14 */	stw r29, 0x14(r1)
/* 802E5718 002E1378  93 81 00 10 */	stw r28, 0x10(r1)
/* 802E571C 002E137C  7C 7C 1B 78 */	mr r28, r3
/* 802E5720 002E1380  38 63 00 08 */	addi r3, r3, 8
/* 802E5724 002E1384  A0 A4 00 04 */	lhz r5, 4(r4)
/* 802E5728 002E1388  A0 04 00 02 */	lhz r0, 2(r4)
/* 802E572C 002E138C  7C A4 2A 14 */	add r5, r4, r5
/* 802E5730 002E1390  38 80 00 05 */	li r4, 5
/* 802E5734 002E1394  3B E5 00 08 */	addi r31, r5, 8
/* 802E5738 002E1398  38 A0 00 1E */	li r5, 0x1e
/* 802E573C 002E139C  7F DF 02 14 */	add r30, r31, r0
/* 802E5740 002E13A0  4B FD 7D 9D */	bl btu_start_timer
/* 802E5744 002E13A4  88 7F 00 03 */	lbz r3, 3(r31)
/* 802E5748 002E13A8  88 1F 00 04 */	lbz r0, 4(r31)
/* 802E574C 002E13AC  54 63 40 2E */	slwi r3, r3, 8
/* 802E5750 002E13B0  88 DF 00 01 */	lbz r6, 1(r31)
/* 802E5754 002E13B4  7C 03 02 14 */	add r0, r3, r0
/* 802E5758 002E13B8  8B BF 00 00 */	lbz r29, 0(r31)
/* 802E575C 002E13BC  88 9F 00 02 */	lbz r4, 2(r31)
/* 802E5760 002E13C0  54 05 04 3E */	clrlwi r5, r0, 0x10
/* 802E5764 002E13C4  3B FF 00 01 */	addi r31, r31, 1
/* 802E5768 002E13C8  54 C6 40 2E */	slwi r6, r6, 8
/* 802E576C 002E13CC  7C 7F 2A 14 */	add r3, r31, r5
/* 802E5770 002E13D0  38 03 00 04 */	addi r0, r3, 4
/* 802E5774 002E13D4  7C 66 22 14 */	add r3, r6, r4
/* 802E5778 002E13D8  7C 00 F0 40 */	cmplw r0, r30
/* 802E577C 002E13DC  54 64 04 3E */	clrlwi r4, r3, 0x10
/* 802E5780 002E13E0  40 81 00 18 */	ble lbl_802E5798
/* 802E5784 002E13E4  7F 83 E3 78 */	mr r3, r28
/* 802E5788 002E13E8  38 A0 00 04 */	li r5, 4
/* 802E578C 002E13EC  38 C0 00 00 */	li r6, 0
/* 802E5790 002E13F0  48 00 10 E1 */	bl sdpu_build_n_send_error
/* 802E5794 002E13F4  48 00 00 A0 */	b lbl_802E5834
lbl_802E5798:
/* 802E5798 002E13F8  2C 1D 00 04 */	cmpwi r29, 4
/* 802E579C 002E13FC  41 82 00 34 */	beq lbl_802E57D0
/* 802E57A0 002E1400  40 80 00 10 */	bge lbl_802E57B0
/* 802E57A4 002E1404  2C 1D 00 02 */	cmpwi r29, 2
/* 802E57A8 002E1408  41 82 00 14 */	beq lbl_802E57BC
/* 802E57AC 002E140C  48 00 00 4C */	b lbl_802E57F8
lbl_802E57B0:
/* 802E57B0 002E1410  2C 1D 00 06 */	cmpwi r29, 6
/* 802E57B4 002E1414  41 82 00 30 */	beq lbl_802E57E4
/* 802E57B8 002E1418  48 00 00 40 */	b lbl_802E57F8
lbl_802E57BC:
/* 802E57BC 002E141C  7F 83 E3 78 */	mr r3, r28
/* 802E57C0 002E1420  7F C7 F3 78 */	mr r7, r30
/* 802E57C4 002E1424  38 DF 00 04 */	addi r6, r31, 4
/* 802E57C8 002E1428  48 00 00 8D */	bl process_service_search
/* 802E57CC 002E142C  48 00 00 68 */	b lbl_802E5834
lbl_802E57D0:
/* 802E57D0 002E1430  7F 83 E3 78 */	mr r3, r28
/* 802E57D4 002E1434  7F C7 F3 78 */	mr r7, r30
/* 802E57D8 002E1438  38 DF 00 04 */	addi r6, r31, 4
/* 802E57DC 002E143C  48 00 04 89 */	bl process_service_attr_req
/* 802E57E0 002E1440  48 00 00 54 */	b lbl_802E5834
lbl_802E57E4:
/* 802E57E4 002E1444  7F 83 E3 78 */	mr r3, r28
/* 802E57E8 002E1448  7F C7 F3 78 */	mr r7, r30
/* 802E57EC 002E144C  38 DF 00 04 */	addi r6, r31, 4
/* 802E57F0 002E1450  48 00 08 05 */	bl process_service_search_attr_req
/* 802E57F4 002E1454  48 00 00 40 */	b lbl_802E5834
lbl_802E57F8:
/* 802E57F8 002E1458  7F 83 E3 78 */	mr r3, r28
/* 802E57FC 002E145C  38 A0 00 03 */	li r5, 3
/* 802E5800 002E1460  38 C0 00 00 */	li r6, 0
/* 802E5804 002E1464  48 00 10 6D */	bl sdpu_build_n_send_error
/* 802E5808 002E1468  3C 60 80 57 */	lis r3, lbl_8056C840@ha
/* 802E580C 002E146C  38 63 C8 40 */	addi r3, r3, lbl_8056C840@l
/* 802E5810 002E1470  88 03 46 30 */	lbz r0, 0x4630(r3)
/* 802E5814 002E1474  28 00 00 02 */	cmplwi r0, 2
/* 802E5818 002E1478  41 80 00 1C */	blt lbl_802E5834
/* 802E581C 002E147C  3C 60 00 0A */	lis r3, 0x000A0001@ha
/* 802E5820 002E1480  3C 80 80 44 */	lis r4, lbl_80445508@ha
/* 802E5824 002E1484  7F A5 EB 78 */	mr r5, r29
/* 802E5828 002E1488  38 63 00 01 */	addi r3, r3, 0x000A0001@l
/* 802E582C 002E148C  38 84 55 08 */	addi r4, r4, lbl_80445508@l
/* 802E5830 002E1490  4B FD 76 F9 */	bl LogMsg_1
lbl_802E5834:
/* 802E5834 002E1494  80 01 00 24 */	lwz r0, 0x24(r1)
/* 802E5838 002E1498  83 E1 00 1C */	lwz r31, 0x1c(r1)
/* 802E583C 002E149C  83 C1 00 18 */	lwz r30, 0x18(r1)
/* 802E5840 002E14A0  83 A1 00 14 */	lwz r29, 0x14(r1)
/* 802E5844 002E14A4  83 81 00 10 */	lwz r28, 0x10(r1)
/* 802E5848 002E14A8  7C 08 03 A6 */	mtlr r0
/* 802E584C 002E14AC  38 21 00 20 */	addi r1, r1, 0x20
/* 802E5850 002E14B0  4E 80 00 20 */	blr

.global process_service_search
process_service_search:
/* 802E5854 002E14B4  94 21 FE 30 */	stwu r1, -0x1d0(r1)
/* 802E5858 002E14B8  7C 08 02 A6 */	mflr r0
/* 802E585C 002E14BC  90 01 01 D4 */	stw r0, 0x1d4(r1)
/* 802E5860 002E14C0  39 61 01 D0 */	addi r11, r1, 0x1d0
/* 802E5864 002E14C4  4B EE 18 91 */	bl __save_gpr
/* 802E5868 002E14C8  38 00 00 00 */	li r0, 0
/* 802E586C 002E14CC  7C 7E 1B 78 */	mr r30, r3
/* 802E5870 002E14D0  98 01 01 7C */	stb r0, 0x17c(r1)
/* 802E5874 002E14D4  7C 91 23 78 */	mr r17, r4
/* 802E5878 002E14D8  7C A4 2B 78 */	mr r4, r5
/* 802E587C 002E14DC  7C C3 33 78 */	mr r3, r6
/* 802E5880 002E14E0  38 A1 00 58 */	addi r5, r1, 0x58
/* 802E5884 002E14E4  3A 60 00 00 */	li r19, 0
/* 802E5888 002E14E8  48 00 11 25 */	bl sdpu_extract_uid_seq
/* 802E588C 002E14EC  2C 03 00 00 */	cmpwi r3, 0
/* 802E5890 002E14F0  7C 6F 1B 78 */	mr r15, r3
/* 802E5894 002E14F4  41 82 00 10 */	beq lbl_802E58A4
/* 802E5898 002E14F8  A0 01 00 58 */	lhz r0, 0x58(r1)
/* 802E589C 002E14FC  2C 00 00 00 */	cmpwi r0, 0
/* 802E58A0 002E1500  40 82 00 1C */	bne lbl_802E58BC
lbl_802E58A4:
/* 802E58A4 002E1504  7F C3 F3 78 */	mr r3, r30
/* 802E58A8 002E1508  7E 24 8B 78 */	mr r4, r17
/* 802E58AC 002E150C  38 A0 00 03 */	li r5, 3
/* 802E58B0 002E1510  38 C0 00 00 */	li r6, 0
/* 802E58B4 002E1514  48 00 0F BD */	bl sdpu_build_n_send_error
/* 802E58B8 002E1518  48 00 03 94 */	b lbl_802E5C4C
lbl_802E58BC:
/* 802E58BC 002E151C  88 83 00 00 */	lbz r4, 0(r3)
/* 802E58C0 002E1520  88 03 00 01 */	lbz r0, 1(r3)
/* 802E58C4 002E1524  54 83 40 2E */	slwi r3, r4, 8
/* 802E58C8 002E1528  7C 03 02 14 */	add r0, r3, r0
/* 802E58CC 002E152C  54 12 04 3E */	clrlwi r18, r0, 0x10
/* 802E58D0 002E1530  28 12 00 14 */	cmplwi r18, 0x14
/* 802E58D4 002E1534  40 81 00 08 */	ble lbl_802E58DC
/* 802E58D8 002E1538  3A 40 00 14 */	li r18, 0x14
lbl_802E58DC:
/* 802E58DC 002E153C  39 C1 00 08 */	addi r14, r1, 8
/* 802E58E0 002E1540  3A 00 00 00 */	li r16, 0
/* 802E58E4 002E1544  48 00 00 2C */	b lbl_802E5910
lbl_802E58E8:
/* 802E58E8 002E1548  7E 63 9B 78 */	mr r3, r19
/* 802E58EC 002E154C  38 81 00 58 */	addi r4, r1, 0x58
/* 802E58F0 002E1550  4B FF D3 61 */	bl sdp_db_service_search
/* 802E58F4 002E1554  2C 03 00 00 */	cmpwi r3, 0
/* 802E58F8 002E1558  7C 73 1B 78 */	mr r19, r3
/* 802E58FC 002E155C  41 82 00 20 */	beq lbl_802E591C
/* 802E5900 002E1560  80 63 00 00 */	lwz r3, 0(r3)
/* 802E5904 002E1564  56 00 13 BA */	rlwinm r0, r16, 2, 0xe, 0x1d
/* 802E5908 002E1568  3A 10 00 01 */	addi r16, r16, 1
/* 802E590C 002E156C  7C 6E 01 2E */	stwx r3, r14, r0
lbl_802E5910:
/* 802E5910 002E1570  56 00 04 3E */	clrlwi r0, r16, 0x10
/* 802E5914 002E1574  7C 00 90 40 */	cmplw r0, r18
/* 802E5918 002E1578  41 80 FF D0 */	blt lbl_802E58E8
lbl_802E591C:
/* 802E591C 002E157C  88 0F 00 02 */	lbz r0, 2(r15)
/* 802E5920 002E1580  2C 00 00 00 */	cmpwi r0, 0
/* 802E5924 002E1584  41 82 00 6C */	beq lbl_802E5990
/* 802E5928 002E1588  28 00 00 02 */	cmplwi r0, 2
/* 802E592C 002E158C  38 6F 00 03 */	addi r3, r15, 3
/* 802E5930 002E1590  41 82 00 1C */	beq lbl_802E594C
/* 802E5934 002E1594  7F C3 F3 78 */	mr r3, r30
/* 802E5938 002E1598  7E 24 8B 78 */	mr r4, r17
/* 802E593C 002E159C  38 A0 00 05 */	li r5, 5
/* 802E5940 002E15A0  38 C0 00 00 */	li r6, 0
/* 802E5944 002E15A4  48 00 0F 2D */	bl sdpu_build_n_send_error
/* 802E5948 002E15A8  48 00 03 04 */	b lbl_802E5C4C
lbl_802E594C:
/* 802E594C 002E15AC  88 03 00 00 */	lbz r0, 0(r3)
/* 802E5950 002E15B0  88 63 00 01 */	lbz r3, 1(r3)
/* 802E5954 002E15B4  54 04 40 2E */	slwi r4, r0, 8
/* 802E5958 002E15B8  A0 1E 04 76 */	lhz r0, 0x476(r30)
/* 802E595C 002E15BC  7C 64 1A 14 */	add r3, r4, r3
/* 802E5960 002E15C0  54 7F 04 3E */	clrlwi r31, r3, 0x10
/* 802E5964 002E15C4  7C 1F 00 40 */	cmplw r31, r0
/* 802E5968 002E15C8  41 82 00 1C */	beq lbl_802E5984
/* 802E596C 002E15CC  7F C3 F3 78 */	mr r3, r30
/* 802E5970 002E15D0  7E 24 8B 78 */	mr r4, r17
/* 802E5974 002E15D4  38 A0 00 05 */	li r5, 5
/* 802E5978 002E15D8  38 C0 00 00 */	li r6, 0
/* 802E597C 002E15DC  48 00 0E F5 */	bl sdpu_build_n_send_error
/* 802E5980 002E15E0  48 00 02 CC */	b lbl_802E5C4C
lbl_802E5984:
/* 802E5984 002E15E4  7C 1F 80 50 */	subf r0, r31, r16
/* 802E5988 002E15E8  54 04 04 3E */	clrlwi r4, r0, 0x10
/* 802E598C 002E15EC  48 00 00 0C */	b lbl_802E5998
lbl_802E5990:
/* 802E5990 002E15F0  7E 04 83 78 */	mr r4, r16
/* 802E5994 002E15F4  3B E0 00 00 */	li r31, 0
lbl_802E5998:
/* 802E5998 002E15F8  A0 7E 00 20 */	lhz r3, 0x20(r30)
/* 802E599C 002E15FC  54 80 04 3E */	clrlwi r0, r4, 0x10
/* 802E59A0 002E1600  38 63 FF F4 */	addi r3, r3, -12
/* 802E59A4 002E1604  7C 63 16 70 */	srawi r3, r3, 2
/* 802E59A8 002E1608  7C 63 01 94 */	addze r3, r3
/* 802E59AC 002E160C  54 6F 04 3E */	clrlwi r15, r3, 0x10
/* 802E59B0 002E1610  7C 00 78 40 */	cmplw r0, r15
/* 802E59B4 002E1614  41 81 00 0C */	bgt lbl_802E59C0
/* 802E59B8 002E1618  7C 8F 23 78 */	mr r15, r4
/* 802E59BC 002E161C  48 00 00 18 */	b lbl_802E59D4
lbl_802E59C0:
/* 802E59C0 002E1620  A0 7E 04 76 */	lhz r3, 0x476(r30)
/* 802E59C4 002E1624  38 00 00 01 */	li r0, 1
/* 802E59C8 002E1628  98 01 01 7C */	stb r0, 0x17c(r1)
/* 802E59CC 002E162C  7C 03 7A 14 */	add r0, r3, r15
/* 802E59D0 002E1630  B0 1E 04 76 */	sth r0, 0x476(r30)
lbl_802E59D4:
/* 802E59D4 002E1634  38 60 00 02 */	li r3, 2
/* 802E59D8 002E1638  4B FD 42 75 */	bl GKI_getpoolbuf
/* 802E59DC 002E163C  2C 03 00 00 */	cmpwi r3, 0
/* 802E59E0 002E1640  40 82 00 2C */	bne lbl_802E5A0C
/* 802E59E4 002E1644  3C 60 80 57 */	lis r3, lbl_8056C840@ha
/* 802E59E8 002E1648  38 63 C8 40 */	addi r3, r3, lbl_8056C840@l
/* 802E59EC 002E164C  88 03 46 30 */	lbz r0, 0x4630(r3)
/* 802E59F0 002E1650  28 00 00 01 */	cmplwi r0, 1
/* 802E59F4 002E1654  41 80 02 58 */	blt lbl_802E5C4C
/* 802E59F8 002E1658  3C 80 80 44 */	lis r4, lbl_8044552C@ha
/* 802E59FC 002E165C  3C 60 00 0A */	lis r3, 0xa
/* 802E5A00 002E1660  38 84 55 2C */	addi r4, r4, lbl_8044552C@l
/* 802E5A04 002E1664  4B FD 75 0D */	bl LogMsg_0
/* 802E5A08 002E1668  48 00 02 44 */	b lbl_802E5C4C
lbl_802E5A0C:
/* 802E5A0C 002E166C  38 00 00 09 */	li r0, 9
/* 802E5A10 002E1670  39 C3 00 11 */	addi r14, r3, 0x11
/* 802E5A14 002E1674  B0 03 00 04 */	sth r0, 4(r3)
/* 802E5A18 002E1678  38 80 00 03 */	li r4, 3
/* 802E5A1C 002E167C  55 E0 04 3E */	clrlwi r0, r15, 0x10
/* 802E5A20 002E1680  39 6E 00 03 */	addi r11, r14, 3
/* 802E5A24 002E1684  98 83 00 11 */	stb r4, 0x11(r3)
/* 802E5A28 002E1688  7D 5F 02 14 */	add r10, r31, r0
/* 802E5A2C 002E168C  7E 25 46 70 */	srawi r5, r17, 8
/* 802E5A30 002E1690  56 04 C6 3E */	rlwinm r4, r16, 0x18, 0x18, 0x1f
/* 802E5A34 002E1694  98 A3 00 12 */	stb r5, 0x12(r3)
/* 802E5A38 002E1698  55 E0 C6 3E */	rlwinm r0, r15, 0x18, 0x18, 0x1f
/* 802E5A3C 002E169C  7C 1F 50 00 */	cmpw r31, r10
/* 802E5A40 002E16A0  9A 23 00 13 */	stb r17, 0x13(r3)
/* 802E5A44 002E16A4  98 83 00 16 */	stb r4, 0x16(r3)
/* 802E5A48 002E16A8  9A 03 00 17 */	stb r16, 0x17(r3)
/* 802E5A4C 002E16AC  98 03 00 18 */	stb r0, 0x18(r3)
/* 802E5A50 002E16B0  91 61 01 80 */	stw r11, 0x180(r1)
/* 802E5A54 002E16B4  39 6B 00 06 */	addi r11, r11, 6
/* 802E5A58 002E16B8  99 E3 00 19 */	stb r15, 0x19(r3)
/* 802E5A5C 002E16BC  40 80 01 84 */	bge lbl_802E5BE0
/* 802E5A60 002E16C0  55 45 04 3E */	clrlwi r5, r10, 0x10
/* 802E5A64 002E16C4  38 0A FF F8 */	addi r0, r10, -8
/* 802E5A68 002E16C8  7C 9F 28 50 */	subf r4, r31, r5
/* 802E5A6C 002E16CC  54 84 04 3E */	clrlwi r4, r4, 0x10
/* 802E5A70 002E16D0  28 04 00 08 */	cmplwi r4, 8
/* 802E5A74 002E16D4  40 81 01 2C */	ble lbl_802E5BA0
/* 802E5A78 002E16D8  7C 1F 28 40 */	cmplw r31, r5
/* 802E5A7C 002E16DC  41 81 01 24 */	bgt lbl_802E5BA0
/* 802E5A80 002E16E0  48 00 01 14 */	b lbl_802E5B94
lbl_802E5A84:
/* 802E5A84 002E16E4  57 E4 13 BA */	rlwinm r4, r31, 2, 0xe, 0x1d
/* 802E5A88 002E16E8  3A 21 00 08 */	addi r17, r1, 8
/* 802E5A8C 002E16EC  7D 11 20 6E */	lwzux r8, r17, r4
/* 802E5A90 002E16F0  3B FF 00 08 */	addi r31, r31, 8
/* 802E5A94 002E16F4  55 05 46 3E */	srwi r5, r8, 0x18
/* 802E5A98 002E16F8  83 11 00 04 */	lwz r24, 4(r17)
/* 802E5A9C 002E16FC  98 AB 00 00 */	stb r5, 0(r11)
/* 802E5AA0 002E1700  55 06 86 3E */	rlwinm r6, r8, 0x10, 0x18, 0x1f
/* 802E5AA4 002E1704  80 91 00 08 */	lwz r4, 8(r17)
/* 802E5AA8 002E1708  55 07 C6 3E */	rlwinm r7, r8, 0x18, 0x18, 0x1f
/* 802E5AAC 002E170C  98 CB 00 01 */	stb r6, 1(r11)
/* 802E5AB0 002E1710  57 09 46 3E */	srwi r9, r24, 0x18
/* 802E5AB4 002E1714  80 D1 00 10 */	lwz r6, 0x10(r17)
/* 802E5AB8 002E1718  57 12 86 3E */	rlwinm r18, r24, 0x10, 0x18, 0x1f
/* 802E5ABC 002E171C  98 EB 00 02 */	stb r7, 2(r11)
/* 802E5AC0 002E1720  57 15 C6 3E */	rlwinm r21, r24, 0x18, 0x18, 0x1f
/* 802E5AC4 002E1724  80 F1 00 14 */	lwz r7, 0x14(r17)
/* 802E5AC8 002E1728  54 9B 46 3E */	srwi r27, r4, 0x18
/* 802E5ACC 002E172C  99 0B 00 03 */	stb r8, 3(r11)
/* 802E5AD0 002E1730  54 8C 86 3E */	rlwinm r12, r4, 0x10, 0x18, 0x1f
/* 802E5AD4 002E1734  81 11 00 18 */	lwz r8, 0x18(r17)
/* 802E5AD8 002E1738  54 8F C6 3E */	rlwinm r15, r4, 0x18, 0x18, 0x1f
/* 802E5ADC 002E173C  99 2B 00 04 */	stb r9, 4(r11)
/* 802E5AE0 002E1740  54 D3 46 3E */	srwi r19, r6, 0x18
/* 802E5AE4 002E1744  81 31 00 1C */	lwz r9, 0x1c(r17)
/* 802E5AE8 002E1748  54 D4 86 3E */	rlwinm r20, r6, 0x10, 0x18, 0x1f
/* 802E5AEC 002E174C  9A 4B 00 05 */	stb r18, 5(r11)
/* 802E5AF0 002E1750  54 F6 46 3E */	srwi r22, r7, 0x18
/* 802E5AF4 002E1754  80 B1 00 0C */	lwz r5, 0xc(r17)
/* 802E5AF8 002E1758  54 F7 86 3E */	rlwinm r23, r7, 0x10, 0x18, 0x1f
/* 802E5AFC 002E175C  9A AB 00 06 */	stb r21, 6(r11)
/* 802E5B00 002E1760  54 D5 C6 3E */	rlwinm r21, r6, 0x18, 0x18, 0x1f
/* 802E5B04 002E1764  54 B0 46 3E */	srwi r16, r5, 0x18
/* 802E5B08 002E1768  54 B1 86 3E */	rlwinm r17, r5, 0x10, 0x18, 0x1f
/* 802E5B0C 002E176C  9B 0B 00 07 */	stb r24, 7(r11)
/* 802E5B10 002E1770  54 B2 C6 3E */	rlwinm r18, r5, 0x18, 0x18, 0x1f
/* 802E5B14 002E1774  54 F8 C6 3E */	rlwinm r24, r7, 0x18, 0x18, 0x1f
/* 802E5B18 002E1778  55 19 46 3E */	srwi r25, r8, 0x18
/* 802E5B1C 002E177C  9B 6B 00 08 */	stb r27, 8(r11)
/* 802E5B20 002E1780  55 1A 86 3E */	rlwinm r26, r8, 0x10, 0x18, 0x1f
/* 802E5B24 002E1784  55 1B C6 3E */	rlwinm r27, r8, 0x18, 0x18, 0x1f
/* 802E5B28 002E1788  55 3C 46 3E */	srwi r28, r9, 0x18
/* 802E5B2C 002E178C  99 8B 00 09 */	stb r12, 9(r11)
/* 802E5B30 002E1790  55 3D 86 3E */	rlwinm r29, r9, 0x10, 0x18, 0x1f
/* 802E5B34 002E1794  55 2C C6 3E */	rlwinm r12, r9, 0x18, 0x18, 0x1f
/* 802E5B38 002E1798  99 EB 00 0A */	stb r15, 0xa(r11)
/* 802E5B3C 002E179C  98 8B 00 0B */	stb r4, 0xb(r11)
/* 802E5B40 002E17A0  9A 0B 00 0C */	stb r16, 0xc(r11)
/* 802E5B44 002E17A4  9A 2B 00 0D */	stb r17, 0xd(r11)
/* 802E5B48 002E17A8  9A 4B 00 0E */	stb r18, 0xe(r11)
/* 802E5B4C 002E17AC  98 AB 00 0F */	stb r5, 0xf(r11)
/* 802E5B50 002E17B0  9A 6B 00 10 */	stb r19, 0x10(r11)
/* 802E5B54 002E17B4  9A 8B 00 11 */	stb r20, 0x11(r11)
/* 802E5B58 002E17B8  9A AB 00 12 */	stb r21, 0x12(r11)
/* 802E5B5C 002E17BC  98 CB 00 13 */	stb r6, 0x13(r11)
/* 802E5B60 002E17C0  9A CB 00 14 */	stb r22, 0x14(r11)
/* 802E5B64 002E17C4  9A EB 00 15 */	stb r23, 0x15(r11)
/* 802E5B68 002E17C8  9B 0B 00 16 */	stb r24, 0x16(r11)
/* 802E5B6C 002E17CC  98 EB 00 17 */	stb r7, 0x17(r11)
/* 802E5B70 002E17D0  9B 2B 00 18 */	stb r25, 0x18(r11)
/* 802E5B74 002E17D4  9B 4B 00 19 */	stb r26, 0x19(r11)
/* 802E5B78 002E17D8  9B 6B 00 1A */	stb r27, 0x1a(r11)
/* 802E5B7C 002E17DC  99 0B 00 1B */	stb r8, 0x1b(r11)
/* 802E5B80 002E17E0  9B 8B 00 1C */	stb r28, 0x1c(r11)
/* 802E5B84 002E17E4  9B AB 00 1D */	stb r29, 0x1d(r11)
/* 802E5B88 002E17E8  99 8B 00 1E */	stb r12, 0x1e(r11)
/* 802E5B8C 002E17EC  99 2B 00 1F */	stb r9, 0x1f(r11)
/* 802E5B90 002E17F0  39 6B 00 20 */	addi r11, r11, 0x20
lbl_802E5B94:
/* 802E5B94 002E17F4  57 E4 04 3E */	clrlwi r4, r31, 0x10
/* 802E5B98 002E17F8  7C 04 00 00 */	cmpw r4, r0
/* 802E5B9C 002E17FC  41 80 FE E8 */	blt lbl_802E5A84
lbl_802E5BA0:
/* 802E5BA0 002E1800  38 A1 00 08 */	addi r5, r1, 8
/* 802E5BA4 002E1804  48 00 00 30 */	b lbl_802E5BD4
lbl_802E5BA8:
/* 802E5BA8 002E1808  57 E0 13 BA */	rlwinm r0, r31, 2, 0xe, 0x1d
/* 802E5BAC 002E180C  3B FF 00 01 */	addi r31, r31, 1
/* 802E5BB0 002E1810  7C C5 00 2E */	lwzx r6, r5, r0
/* 802E5BB4 002E1814  54 C0 46 3E */	srwi r0, r6, 0x18
/* 802E5BB8 002E1818  54 C4 86 3E */	rlwinm r4, r6, 0x10, 0x18, 0x1f
/* 802E5BBC 002E181C  98 0B 00 00 */	stb r0, 0(r11)
/* 802E5BC0 002E1820  54 C0 C6 3E */	rlwinm r0, r6, 0x18, 0x18, 0x1f
/* 802E5BC4 002E1824  98 8B 00 01 */	stb r4, 1(r11)
/* 802E5BC8 002E1828  98 0B 00 02 */	stb r0, 2(r11)
/* 802E5BCC 002E182C  98 CB 00 03 */	stb r6, 3(r11)
/* 802E5BD0 002E1830  39 6B 00 04 */	addi r11, r11, 4
lbl_802E5BD4:
/* 802E5BD4 002E1834  57 E0 04 3E */	clrlwi r0, r31, 0x10
/* 802E5BD8 002E1838  7C 00 50 00 */	cmpw r0, r10
/* 802E5BDC 002E183C  41 80 FF CC */	blt lbl_802E5BA8
lbl_802E5BE0:
/* 802E5BE0 002E1840  88 01 01 7C */	lbz r0, 0x17c(r1)
/* 802E5BE4 002E1844  2C 00 00 00 */	cmpwi r0, 0
/* 802E5BE8 002E1848  41 82 00 28 */	beq lbl_802E5C10
/* 802E5BEC 002E184C  38 00 00 02 */	li r0, 2
/* 802E5BF0 002E1850  98 0B 00 00 */	stb r0, 0(r11)
/* 802E5BF4 002E1854  A0 1E 04 76 */	lhz r0, 0x476(r30)
/* 802E5BF8 002E1858  7C 00 46 70 */	srawi r0, r0, 8
/* 802E5BFC 002E185C  98 0B 00 01 */	stb r0, 1(r11)
/* 802E5C00 002E1860  A0 1E 04 76 */	lhz r0, 0x476(r30)
/* 802E5C04 002E1864  98 0B 00 02 */	stb r0, 2(r11)
/* 802E5C08 002E1868  39 6B 00 03 */	addi r11, r11, 3
/* 802E5C0C 002E186C  48 00 00 10 */	b lbl_802E5C1C
lbl_802E5C10:
/* 802E5C10 002E1870  38 00 00 00 */	li r0, 0
/* 802E5C14 002E1874  98 0B 00 00 */	stb r0, 0(r11)
/* 802E5C18 002E1878  39 6B 00 01 */	addi r11, r11, 1
lbl_802E5C1C:
/* 802E5C1C 002E187C  80 01 01 80 */	lwz r0, 0x180(r1)
/* 802E5C20 002E1880  80 A1 01 80 */	lwz r5, 0x180(r1)
/* 802E5C24 002E1884  7C 80 58 50 */	subf r4, r0, r11
/* 802E5C28 002E1888  7C 0E 58 50 */	subf r0, r14, r11
/* 802E5C2C 002E188C  38 E4 FF FE */	addi r7, r4, -2
/* 802E5C30 002E1890  54 E6 C6 3E */	rlwinm r6, r7, 0x18, 0x18, 0x1f
/* 802E5C34 002E1894  7C 64 1B 78 */	mr r4, r3
/* 802E5C38 002E1898  98 C5 00 00 */	stb r6, 0(r5)
/* 802E5C3C 002E189C  98 E5 00 01 */	stb r7, 1(r5)
/* 802E5C40 002E18A0  B0 03 00 02 */	sth r0, 2(r3)
/* 802E5C44 002E18A4  A0 7E 00 22 */	lhz r3, 0x22(r30)
/* 802E5C48 002E18A8  4B FF 04 A9 */	bl L2CA_DataWrite
lbl_802E5C4C:
/* 802E5C4C 002E18AC  39 61 01 D0 */	addi r11, r1, 0x1d0
/* 802E5C50 002E18B0  4B EE 14 F1 */	bl __restore_gpr
/* 802E5C54 002E18B4  80 01 01 D4 */	lwz r0, 0x1d4(r1)
/* 802E5C58 002E18B8  7C 08 03 A6 */	mtlr r0
/* 802E5C5C 002E18BC  38 21 01 D0 */	addi r1, r1, 0x1d0
/* 802E5C60 002E18C0  4E 80 00 20 */	blr

.global process_service_attr_req
process_service_attr_req:
/* 802E5C64 002E18C4  94 21 FF 90 */	stwu r1, -0x70(r1)
/* 802E5C68 002E18C8  7C 08 02 A6 */	mflr r0
/* 802E5C6C 002E18CC  90 01 00 74 */	stw r0, 0x74(r1)
/* 802E5C70 002E18D0  39 61 00 70 */	addi r11, r1, 0x70
/* 802E5C74 002E18D4  4B EE 14 A9 */	bl _savegpr_24
/* 802E5C78 002E18D8  89 26 00 00 */	lbz r9, 0(r6)
/* 802E5C7C 002E18DC  38 06 00 04 */	addi r0, r6, 4
/* 802E5C80 002E18E0  89 06 00 01 */	lbz r8, 1(r6)
/* 802E5C84 002E18E4  7C 00 38 40 */	cmplw r0, r7
/* 802E5C88 002E18E8  88 06 00 02 */	lbz r0, 2(r6)
/* 802E5C8C 002E18EC  55 2A C0 0E */	slwi r10, r9, 0x18
/* 802E5C90 002E18F0  55 08 80 1E */	slwi r8, r8, 0x10
/* 802E5C94 002E18F4  89 26 00 03 */	lbz r9, 3(r6)
/* 802E5C98 002E18F8  54 00 40 2E */	slwi r0, r0, 8
/* 802E5C9C 002E18FC  7C 79 1B 78 */	mr r25, r3
/* 802E5CA0 002E1900  7D 0A 42 14 */	add r8, r10, r8
/* 802E5CA4 002E1904  7C 9A 23 78 */	mr r26, r4
/* 802E5CA8 002E1908  7C 09 02 14 */	add r0, r9, r0
/* 802E5CAC 002E190C  7C F8 3B 78 */	mr r24, r7
/* 802E5CB0 002E1910  7F 68 02 14 */	add r27, r8, r0
/* 802E5CB4 002E1914  40 81 00 14 */	ble lbl_802E5CC8
/* 802E5CB8 002E1918  38 A0 00 02 */	li r5, 2
/* 802E5CBC 002E191C  38 C0 00 00 */	li r6, 0
/* 802E5CC0 002E1920  48 00 0B B1 */	bl sdpu_build_n_send_error
/* 802E5CC4 002E1924  48 00 03 18 */	b lbl_802E5FDC
lbl_802E5CC8:
/* 802E5CC8 002E1928  88 86 00 04 */	lbz r4, 4(r6)
/* 802E5CCC 002E192C  88 06 00 05 */	lbz r0, 5(r6)
/* 802E5CD0 002E1930  54 84 40 2E */	slwi r4, r4, 8
/* 802E5CD4 002E1934  A0 63 00 20 */	lhz r3, 0x20(r3)
/* 802E5CD8 002E1938  7C 04 02 14 */	add r0, r4, r0
/* 802E5CDC 002E193C  54 1E 04 3E */	clrlwi r30, r0, 0x10
/* 802E5CE0 002E1940  38 03 FF F6 */	addi r0, r3, -10
/* 802E5CE4 002E1944  7C 1E 00 00 */	cmpw r30, r0
/* 802E5CE8 002E1948  40 81 00 08 */	ble lbl_802E5CF0
/* 802E5CEC 002E194C  54 1E 04 3E */	clrlwi r30, r0, 0x10
lbl_802E5CF0:
/* 802E5CF0 002E1950  7C A4 2B 78 */	mr r4, r5
/* 802E5CF4 002E1954  38 66 00 06 */	addi r3, r6, 6
/* 802E5CF8 002E1958  38 A1 00 08 */	addi r5, r1, 8
/* 802E5CFC 002E195C  48 00 10 01 */	bl sdpu_extract_attr_seq
/* 802E5D00 002E1960  2C 03 00 00 */	cmpwi r3, 0
/* 802E5D04 002E1964  7C 7C 1B 78 */	mr r28, r3
/* 802E5D08 002E1968  41 82 00 18 */	beq lbl_802E5D20
/* 802E5D0C 002E196C  A0 01 00 08 */	lhz r0, 8(r1)
/* 802E5D10 002E1970  2C 00 00 00 */	cmpwi r0, 0
/* 802E5D14 002E1974  41 82 00 0C */	beq lbl_802E5D20
/* 802E5D18 002E1978  7C 03 C0 40 */	cmplw r3, r24
/* 802E5D1C 002E197C  40 81 00 1C */	ble lbl_802E5D38
lbl_802E5D20:
/* 802E5D20 002E1980  7F 23 CB 78 */	mr r3, r25
/* 802E5D24 002E1984  7F 44 D3 78 */	mr r4, r26
/* 802E5D28 002E1988  38 A0 00 03 */	li r5, 3
/* 802E5D2C 002E198C  38 C0 00 00 */	li r6, 0
/* 802E5D30 002E1990  48 00 0B 41 */	bl sdpu_build_n_send_error
/* 802E5D34 002E1994  48 00 02 A8 */	b lbl_802E5FDC
lbl_802E5D38:
/* 802E5D38 002E1998  7F 63 DB 78 */	mr r3, r27
/* 802E5D3C 002E199C  4B FF D1 29 */	bl sdp_db_find_record
/* 802E5D40 002E19A0  2C 03 00 00 */	cmpwi r3, 0
/* 802E5D44 002E19A4  7C 7B 1B 78 */	mr r27, r3
/* 802E5D48 002E19A8  40 82 00 1C */	bne lbl_802E5D64
/* 802E5D4C 002E19AC  7F 23 CB 78 */	mr r3, r25
/* 802E5D50 002E19B0  7F 44 D3 78 */	mr r4, r26
/* 802E5D54 002E19B4  38 A0 00 02 */	li r5, 2
/* 802E5D58 002E19B8  38 C0 00 00 */	li r6, 0
/* 802E5D5C 002E19BC  48 00 0B 15 */	bl sdpu_build_n_send_error
/* 802E5D60 002E19C0  48 00 02 7C */	b lbl_802E5FDC
lbl_802E5D64:
/* 802E5D64 002E19C4  88 1C 00 00 */	lbz r0, 0(r28)
/* 802E5D68 002E19C8  2C 00 00 00 */	cmpwi r0, 0
/* 802E5D6C 002E19CC  41 82 00 5C */	beq lbl_802E5DC8
/* 802E5D70 002E19D0  28 00 00 02 */	cmplwi r0, 2
/* 802E5D74 002E19D4  41 82 00 1C */	beq lbl_802E5D90
/* 802E5D78 002E19D8  7F 23 CB 78 */	mr r3, r25
/* 802E5D7C 002E19DC  7F 44 D3 78 */	mr r4, r26
/* 802E5D80 002E19E0  38 A0 00 05 */	li r5, 5
/* 802E5D84 002E19E4  38 C0 00 00 */	li r6, 0
/* 802E5D88 002E19E8  48 00 0A E9 */	bl sdpu_build_n_send_error
/* 802E5D8C 002E19EC  48 00 02 50 */	b lbl_802E5FDC
lbl_802E5D90:
/* 802E5D90 002E19F0  88 1C 00 01 */	lbz r0, 1(r28)
/* 802E5D94 002E19F4  88 7C 00 02 */	lbz r3, 2(r28)
/* 802E5D98 002E19F8  54 04 40 2E */	slwi r4, r0, 8
/* 802E5D9C 002E19FC  A0 19 04 76 */	lhz r0, 0x476(r25)
/* 802E5DA0 002E1A00  7C 64 1A 14 */	add r3, r4, r3
/* 802E5DA4 002E1A04  54 63 04 3E */	clrlwi r3, r3, 0x10
/* 802E5DA8 002E1A08  7C 03 00 40 */	cmplw r3, r0
/* 802E5DAC 002E1A0C  41 82 01 14 */	beq lbl_802E5EC0
/* 802E5DB0 002E1A10  7F 23 CB 78 */	mr r3, r25
/* 802E5DB4 002E1A14  7F 44 D3 78 */	mr r4, r26
/* 802E5DB8 002E1A18  38 A0 00 05 */	li r5, 5
/* 802E5DBC 002E1A1C  38 C0 00 00 */	li r6, 0
/* 802E5DC0 002E1A20  48 00 0A B1 */	bl sdpu_build_n_send_error
/* 802E5DC4 002E1A24  48 00 02 18 */	b lbl_802E5FDC
lbl_802E5DC8:
/* 802E5DC8 002E1A28  38 00 00 00 */	li r0, 0
/* 802E5DCC 002E1A2C  3B B9 00 29 */	addi r29, r25, 0x29
/* 802E5DD0 002E1A30  B0 19 04 76 */	sth r0, 0x476(r25)
/* 802E5DD4 002E1A34  3B 80 00 00 */	li r28, 0
/* 802E5DD8 002E1A38  48 00 00 84 */	b lbl_802E5E5C
lbl_802E5DDC:
/* 802E5DDC 002E1A3C  57 80 13 BA */	rlwinm r0, r28, 2, 0xe, 0x1d
/* 802E5DE0 002E1A40  3B E1 00 08 */	addi r31, r1, 8
/* 802E5DE4 002E1A44  7F FF 02 14 */	add r31, r31, r0
/* 802E5DE8 002E1A48  7F 63 DB 78 */	mr r3, r27
/* 802E5DEC 002E1A4C  A0 9F 00 02 */	lhz r4, 2(r31)
/* 802E5DF0 002E1A50  A0 BF 00 04 */	lhz r5, 4(r31)
/* 802E5DF4 002E1A54  4B FF D0 CD */	bl sdp_db_find_attr_in_rec
/* 802E5DF8 002E1A58  2C 03 00 00 */	cmpwi r3, 0
/* 802E5DFC 002E1A5C  7C 78 1B 78 */	mr r24, r3
/* 802E5E00 002E1A60  41 82 00 58 */	beq lbl_802E5E58
/* 802E5E04 002E1A64  38 19 00 26 */	addi r0, r25, 0x26
/* 802E5E08 002E1A68  80 83 00 00 */	lwz r4, 0(r3)
/* 802E5E0C 002E1A6C  7C 00 E8 50 */	subf r0, r0, r29
/* 802E5E10 002E1A70  54 00 04 3E */	clrlwi r0, r0, 0x10
/* 802E5E14 002E1A74  20 00 03 E8 */	subfic r0, r0, 0x3e8
/* 802E5E18 002E1A78  54 03 04 3E */	clrlwi r3, r0, 0x10
/* 802E5E1C 002E1A7C  38 03 FF FA */	addi r0, r3, -6
/* 802E5E20 002E1A80  7C 04 00 40 */	cmplw r4, r0
/* 802E5E24 002E1A84  41 81 00 48 */	bgt lbl_802E5E6C
/* 802E5E28 002E1A88  7F A3 EB 78 */	mr r3, r29
/* 802E5E2C 002E1A8C  7F 04 C3 78 */	mr r4, r24
/* 802E5E30 002E1A90  48 00 08 ED */	bl sdpu_build_attrib_entry
/* 802E5E34 002E1A94  A0 9F 00 02 */	lhz r4, 2(r31)
/* 802E5E38 002E1A98  7C 7D 1B 78 */	mr r29, r3
/* 802E5E3C 002E1A9C  A0 1F 00 04 */	lhz r0, 4(r31)
/* 802E5E40 002E1AA0  7C 04 00 40 */	cmplw r4, r0
/* 802E5E44 002E1AA4  41 82 00 14 */	beq lbl_802E5E58
/* 802E5E48 002E1AA8  A0 78 00 08 */	lhz r3, 8(r24)
/* 802E5E4C 002E1AAC  3B 9C FF FF */	addi r28, r28, -1
/* 802E5E50 002E1AB0  38 03 00 01 */	addi r0, r3, 1
/* 802E5E54 002E1AB4  B0 1F 00 02 */	sth r0, 2(r31)
lbl_802E5E58:
/* 802E5E58 002E1AB8  3B 9C 00 01 */	addi r28, r28, 1
lbl_802E5E5C:
/* 802E5E5C 002E1ABC  A0 01 00 08 */	lhz r0, 8(r1)
/* 802E5E60 002E1AC0  57 83 04 3E */	clrlwi r3, r28, 0x10
/* 802E5E64 002E1AC4  7C 03 00 40 */	cmplw r3, r0
/* 802E5E68 002E1AC8  41 80 FF 74 */	blt lbl_802E5DDC
lbl_802E5E6C:
/* 802E5E6C 002E1ACC  38 19 00 26 */	addi r0, r25, 0x26
/* 802E5E70 002E1AD0  7C 00 E8 50 */	subf r0, r0, r29
/* 802E5E74 002E1AD4  54 04 04 3E */	clrlwi r4, r0, 0x10
/* 802E5E78 002E1AD8  B0 19 00 24 */	sth r0, 0x24(r25)
/* 802E5E7C 002E1ADC  28 04 00 FF */	cmplwi r4, 0xff
/* 802E5E80 002E1AE0  40 81 00 20 */	ble lbl_802E5EA0
/* 802E5E84 002E1AE4  38 64 FF FD */	addi r3, r4, -3
/* 802E5E88 002E1AE8  38 80 00 36 */	li r4, 0x36
/* 802E5E8C 002E1AEC  7C 60 46 70 */	srawi r0, r3, 8
/* 802E5E90 002E1AF0  98 99 00 26 */	stb r4, 0x26(r25)
/* 802E5E94 002E1AF4  98 19 00 27 */	stb r0, 0x27(r25)
/* 802E5E98 002E1AF8  98 79 00 28 */	stb r3, 0x28(r25)
/* 802E5E9C 002E1AFC  48 00 00 24 */	b lbl_802E5EC0
lbl_802E5EA0:
/* 802E5EA0 002E1B00  38 64 FF FD */	addi r3, r4, -3
/* 802E5EA4 002E1B04  38 04 FF FF */	addi r0, r4, -1
/* 802E5EA8 002E1B08  38 A0 00 01 */	li r5, 1
/* 802E5EAC 002E1B0C  38 80 00 35 */	li r4, 0x35
/* 802E5EB0 002E1B10  B0 B9 04 76 */	sth r5, 0x476(r25)
/* 802E5EB4 002E1B14  98 99 00 27 */	stb r4, 0x27(r25)
/* 802E5EB8 002E1B18  98 79 00 28 */	stb r3, 0x28(r25)
/* 802E5EBC 002E1B1C  B0 19 00 24 */	sth r0, 0x24(r25)
lbl_802E5EC0:
/* 802E5EC0 002E1B20  38 60 00 02 */	li r3, 2
/* 802E5EC4 002E1B24  4B FD 3D 89 */	bl GKI_getpoolbuf
/* 802E5EC8 002E1B28  2C 03 00 00 */	cmpwi r3, 0
/* 802E5ECC 002E1B2C  7C 7B 1B 78 */	mr r27, r3
/* 802E5ED0 002E1B30  40 82 00 2C */	bne lbl_802E5EFC
/* 802E5ED4 002E1B34  3C 60 80 57 */	lis r3, lbl_8056C840@ha
/* 802E5ED8 002E1B38  38 63 C8 40 */	addi r3, r3, lbl_8056C840@l
/* 802E5EDC 002E1B3C  88 03 46 30 */	lbz r0, 0x4630(r3)
/* 802E5EE0 002E1B40  28 00 00 01 */	cmplwi r0, 1
/* 802E5EE4 002E1B44  41 80 00 F8 */	blt lbl_802E5FDC
/* 802E5EE8 002E1B48  3C 80 80 44 */	lis r4, lbl_8044552C@ha
/* 802E5EEC 002E1B4C  3C 60 00 0A */	lis r3, 0xa
/* 802E5EF0 002E1B50  38 84 55 2C */	addi r4, r4, lbl_8044552C@l
/* 802E5EF4 002E1B54  4B FD 70 1D */	bl LogMsg_0
/* 802E5EF8 002E1B58  48 00 00 E4 */	b lbl_802E5FDC
lbl_802E5EFC:
/* 802E5EFC 002E1B5C  38 00 00 09 */	li r0, 9
/* 802E5F00 002E1B60  3B A3 00 11 */	addi r29, r3, 0x11
/* 802E5F04 002E1B64  B0 03 00 04 */	sth r0, 4(r3)
/* 802E5F08 002E1B68  38 60 00 05 */	li r3, 5
/* 802E5F0C 002E1B6C  3B FD 00 03 */	addi r31, r29, 3
/* 802E5F10 002E1B70  57 40 C6 3E */	rlwinm r0, r26, 0x18, 0x18, 0x1f
/* 802E5F14 002E1B74  98 7D 00 00 */	stb r3, 0(r29)
/* 802E5F18 002E1B78  7F FC FB 78 */	mr r28, r31
/* 802E5F1C 002E1B7C  98 1D 00 01 */	stb r0, 1(r29)
/* 802E5F20 002E1B80  9B 5D 00 02 */	stb r26, 2(r29)
/* 802E5F24 002E1B84  A0 19 00 24 */	lhz r0, 0x24(r25)
/* 802E5F28 002E1B88  7C 00 F0 40 */	cmplw r0, r30
/* 802E5F2C 002E1B8C  41 81 00 08 */	bgt lbl_802E5F34
/* 802E5F30 002E1B90  7C 1E 03 78 */	mr r30, r0
lbl_802E5F34:
/* 802E5F34 002E1B94  57 C0 C6 3E */	rlwinm r0, r30, 0x18, 0x18, 0x1f
/* 802E5F38 002E1B98  57 C5 04 3E */	clrlwi r5, r30, 0x10
/* 802E5F3C 002E1B9C  98 1F 00 02 */	stb r0, 2(r31)
/* 802E5F40 002E1BA0  9B DF 00 03 */	stb r30, 3(r31)
/* 802E5F44 002E1BA4  3B FF 00 04 */	addi r31, r31, 4
/* 802E5F48 002E1BA8  7F E3 FB 78 */	mr r3, r31
/* 802E5F4C 002E1BAC  A0 19 04 76 */	lhz r0, 0x476(r25)
/* 802E5F50 002E1BB0  7C 99 02 14 */	add r4, r25, r0
/* 802E5F54 002E1BB4  38 84 00 26 */	addi r4, r4, 0x26
/* 802E5F58 002E1BB8  4B D1 E0 A9 */	bl memcpy
/* 802E5F5C 002E1BBC  A0 19 00 24 */	lhz r0, 0x24(r25)
/* 802E5F60 002E1BC0  57 C3 04 3E */	clrlwi r3, r30, 0x10
/* 802E5F64 002E1BC4  7F FF 1A 14 */	add r31, r31, r3
/* 802E5F68 002E1BC8  A0 99 04 76 */	lhz r4, 0x476(r25)
/* 802E5F6C 002E1BCC  7C 7E 00 50 */	subf r3, r30, r0
/* 802E5F70 002E1BD0  54 60 04 3F */	clrlwi. r0, r3, 0x10
/* 802E5F74 002E1BD4  B0 79 00 24 */	sth r3, 0x24(r25)
/* 802E5F78 002E1BD8  7C 04 F2 14 */	add r0, r4, r30
/* 802E5F7C 002E1BDC  B0 19 04 76 */	sth r0, 0x476(r25)
/* 802E5F80 002E1BE0  41 82 00 28 */	beq lbl_802E5FA8
/* 802E5F84 002E1BE4  38 00 00 02 */	li r0, 2
/* 802E5F88 002E1BE8  98 1F 00 00 */	stb r0, 0(r31)
/* 802E5F8C 002E1BEC  A0 19 04 76 */	lhz r0, 0x476(r25)
/* 802E5F90 002E1BF0  7C 00 46 70 */	srawi r0, r0, 8
/* 802E5F94 002E1BF4  98 1F 00 01 */	stb r0, 1(r31)
/* 802E5F98 002E1BF8  A0 19 04 76 */	lhz r0, 0x476(r25)
/* 802E5F9C 002E1BFC  98 1F 00 02 */	stb r0, 2(r31)
/* 802E5FA0 002E1C00  3B FF 00 03 */	addi r31, r31, 3
/* 802E5FA4 002E1C04  48 00 00 10 */	b lbl_802E5FB4
lbl_802E5FA8:
/* 802E5FA8 002E1C08  38 00 00 00 */	li r0, 0
/* 802E5FAC 002E1C0C  98 1F 00 00 */	stb r0, 0(r31)
/* 802E5FB0 002E1C10  3B FF 00 01 */	addi r31, r31, 1
lbl_802E5FB4:
/* 802E5FB4 002E1C14  7C 7C F8 50 */	subf r3, r28, r31
/* 802E5FB8 002E1C18  7C 1D F8 50 */	subf r0, r29, r31
/* 802E5FBC 002E1C1C  38 A3 FF FE */	addi r5, r3, -2
/* 802E5FC0 002E1C20  7F 64 DB 78 */	mr r4, r27
/* 802E5FC4 002E1C24  54 A3 C6 3E */	rlwinm r3, r5, 0x18, 0x18, 0x1f
/* 802E5FC8 002E1C28  98 7C 00 00 */	stb r3, 0(r28)
/* 802E5FCC 002E1C2C  98 BC 00 01 */	stb r5, 1(r28)
/* 802E5FD0 002E1C30  B0 1B 00 02 */	sth r0, 2(r27)
/* 802E5FD4 002E1C34  A0 79 00 22 */	lhz r3, 0x22(r25)
/* 802E5FD8 002E1C38  4B FF 01 19 */	bl L2CA_DataWrite
lbl_802E5FDC:
/* 802E5FDC 002E1C3C  39 61 00 70 */	addi r11, r1, 0x70
/* 802E5FE0 002E1C40  4B EE 11 89 */	bl _restgpr_24
/* 802E5FE4 002E1C44  80 01 00 74 */	lwz r0, 0x74(r1)
/* 802E5FE8 002E1C48  7C 08 03 A6 */	mtlr r0
/* 802E5FEC 002E1C4C  38 21 00 70 */	addi r1, r1, 0x70
/* 802E5FF0 002E1C50  4E 80 00 20 */	blr

.global process_service_search_attr_req
process_service_search_attr_req:
/* 802E5FF4 002E1C54  94 21 FE 10 */	stwu r1, -0x1f0(r1)
/* 802E5FF8 002E1C58  7C 08 02 A6 */	mflr r0
/* 802E5FFC 002E1C5C  90 01 01 F4 */	stw r0, 0x1f4(r1)
/* 802E6000 002E1C60  39 61 01 F0 */	addi r11, r1, 0x1f0
/* 802E6004 002E1C64  4B EE 11 09 */	bl _savegpr_20
/* 802E6008 002E1C68  7C B4 2B 78 */	mr r20, r5
/* 802E600C 002E1C6C  7C 75 1B 78 */	mr r21, r3
/* 802E6010 002E1C70  7C 96 23 78 */	mr r22, r4
/* 802E6014 002E1C74  7C C3 33 78 */	mr r3, r6
/* 802E6018 002E1C78  7E 84 A3 78 */	mr r4, r20
/* 802E601C 002E1C7C  38 A1 00 90 */	addi r5, r1, 0x90
/* 802E6020 002E1C80  3B 00 00 00 */	li r24, 0
/* 802E6024 002E1C84  48 00 09 89 */	bl sdpu_extract_uid_seq
/* 802E6028 002E1C88  2C 03 00 00 */	cmpwi r3, 0
/* 802E602C 002E1C8C  41 82 00 10 */	beq lbl_802E603C
/* 802E6030 002E1C90  A0 01 00 90 */	lhz r0, 0x90(r1)
/* 802E6034 002E1C94  2C 00 00 00 */	cmpwi r0, 0
/* 802E6038 002E1C98  40 82 00 1C */	bne lbl_802E6054
lbl_802E603C:
/* 802E603C 002E1C9C  7E A3 AB 78 */	mr r3, r21
/* 802E6040 002E1CA0  7E C4 B3 78 */	mr r4, r22
/* 802E6044 002E1CA4  38 A0 00 03 */	li r5, 3
/* 802E6048 002E1CA8  38 C0 00 00 */	li r6, 0
/* 802E604C 002E1CAC  48 00 08 25 */	bl sdpu_build_n_send_error
/* 802E6050 002E1CB0  48 00 03 A8 */	b lbl_802E63F8
lbl_802E6054:
/* 802E6054 002E1CB4  88 83 00 00 */	lbz r4, 0(r3)
/* 802E6058 002E1CB8  88 03 00 01 */	lbz r0, 1(r3)
/* 802E605C 002E1CBC  54 85 40 2E */	slwi r5, r4, 8
/* 802E6060 002E1CC0  A0 95 00 20 */	lhz r4, 0x20(r21)
/* 802E6064 002E1CC4  7C 05 02 14 */	add r0, r5, r0
/* 802E6068 002E1CC8  54 1D 04 3E */	clrlwi r29, r0, 0x10
/* 802E606C 002E1CCC  38 04 FF F6 */	addi r0, r4, -10
/* 802E6070 002E1CD0  7C 1D 00 00 */	cmpw r29, r0
/* 802E6074 002E1CD4  40 81 00 08 */	ble lbl_802E607C
/* 802E6078 002E1CD8  54 1D 04 3E */	clrlwi r29, r0, 0x10
lbl_802E607C:
/* 802E607C 002E1CDC  7E 84 A3 78 */	mr r4, r20
/* 802E6080 002E1CE0  38 A1 00 4C */	addi r5, r1, 0x4c
/* 802E6084 002E1CE4  38 63 00 02 */	addi r3, r3, 2
/* 802E6088 002E1CE8  48 00 0C 75 */	bl sdpu_extract_attr_seq
/* 802E608C 002E1CEC  2C 03 00 00 */	cmpwi r3, 0
/* 802E6090 002E1CF0  41 82 00 10 */	beq lbl_802E60A0
/* 802E6094 002E1CF4  A0 01 00 4C */	lhz r0, 0x4c(r1)
/* 802E6098 002E1CF8  2C 00 00 00 */	cmpwi r0, 0
/* 802E609C 002E1CFC  40 82 00 1C */	bne lbl_802E60B8
lbl_802E60A0:
/* 802E60A0 002E1D00  7E A3 AB 78 */	mr r3, r21
/* 802E60A4 002E1D04  7E C4 B3 78 */	mr r4, r22
/* 802E60A8 002E1D08  38 A0 00 03 */	li r5, 3
/* 802E60AC 002E1D0C  38 C0 00 00 */	li r6, 0
/* 802E60B0 002E1D10  48 00 07 C1 */	bl sdpu_build_n_send_error
/* 802E60B4 002E1D14  48 00 03 44 */	b lbl_802E63F8
lbl_802E60B8:
/* 802E60B8 002E1D18  38 00 00 08 */	li r0, 8
/* 802E60BC 002E1D1C  38 C1 00 04 */	addi r6, r1, 4
/* 802E60C0 002E1D20  38 A1 00 48 */	addi r5, r1, 0x48
/* 802E60C4 002E1D24  7C 09 03 A6 */	mtctr r0
lbl_802E60C8:
/* 802E60C8 002E1D28  80 85 00 04 */	lwz r4, 4(r5)
/* 802E60CC 002E1D2C  84 05 00 08 */	lwzu r0, 8(r5)
/* 802E60D0 002E1D30  90 86 00 04 */	stw r4, 4(r6)
/* 802E60D4 002E1D34  94 06 00 08 */	stwu r0, 8(r6)
/* 802E60D8 002E1D38  42 00 FF F0 */	bdnz lbl_802E60C8
/* 802E60DC 002E1D3C  A0 05 00 04 */	lhz r0, 4(r5)
/* 802E60E0 002E1D40  B0 06 00 04 */	sth r0, 4(r6)
/* 802E60E4 002E1D44  88 03 00 00 */	lbz r0, 0(r3)
/* 802E60E8 002E1D48  2C 00 00 00 */	cmpwi r0, 0
/* 802E60EC 002E1D4C  41 82 00 5C */	beq lbl_802E6148
/* 802E60F0 002E1D50  28 00 00 02 */	cmplwi r0, 2
/* 802E60F4 002E1D54  41 82 00 1C */	beq lbl_802E6110
/* 802E60F8 002E1D58  7E A3 AB 78 */	mr r3, r21
/* 802E60FC 002E1D5C  7E C4 B3 78 */	mr r4, r22
/* 802E6100 002E1D60  38 A0 00 05 */	li r5, 5
/* 802E6104 002E1D64  38 C0 00 00 */	li r6, 0
/* 802E6108 002E1D68  48 00 07 69 */	bl sdpu_build_n_send_error
/* 802E610C 002E1D6C  48 00 02 EC */	b lbl_802E63F8
lbl_802E6110:
/* 802E6110 002E1D70  88 03 00 01 */	lbz r0, 1(r3)
/* 802E6114 002E1D74  88 63 00 02 */	lbz r3, 2(r3)
/* 802E6118 002E1D78  54 04 40 2E */	slwi r4, r0, 8
/* 802E611C 002E1D7C  A0 15 04 76 */	lhz r0, 0x476(r21)
/* 802E6120 002E1D80  7C 64 1A 14 */	add r3, r4, r3
/* 802E6124 002E1D84  54 63 04 3E */	clrlwi r3, r3, 0x10
/* 802E6128 002E1D88  7C 03 00 40 */	cmplw r3, r0
/* 802E612C 002E1D8C  41 82 01 B0 */	beq lbl_802E62DC
/* 802E6130 002E1D90  7E A3 AB 78 */	mr r3, r21
/* 802E6134 002E1D94  7E C4 B3 78 */	mr r4, r22
/* 802E6138 002E1D98  38 A0 00 05 */	li r5, 5
/* 802E613C 002E1D9C  38 C0 00 00 */	li r6, 0
/* 802E6140 002E1DA0  48 00 07 31 */	bl sdpu_build_n_send_error
/* 802E6144 002E1DA4  48 00 02 B4 */	b lbl_802E63F8
lbl_802E6148:
/* 802E6148 002E1DA8  38 00 00 00 */	li r0, 0
/* 802E614C 002E1DAC  3B 95 00 29 */	addi r28, r21, 0x29
/* 802E6150 002E1DB0  B0 15 04 76 */	sth r0, 0x476(r21)
/* 802E6154 002E1DB4  38 81 00 90 */	addi r4, r1, 0x90
/* 802E6158 002E1DB8  38 60 00 00 */	li r3, 0
/* 802E615C 002E1DBC  4B FF CA F5 */	bl sdp_db_service_search
/* 802E6160 002E1DC0  7C 7A 1B 78 */	mr r26, r3
/* 802E6164 002E1DC4  3B E0 00 08 */	li r31, 8
/* 802E6168 002E1DC8  3A 80 00 36 */	li r20, 0x36
/* 802E616C 002E1DCC  48 00 01 14 */	b lbl_802E6280
lbl_802E6170:
/* 802E6170 002E1DD0  38 A1 00 48 */	addi r5, r1, 0x48
/* 802E6174 002E1DD4  38 81 00 04 */	addi r4, r1, 4
/* 802E6178 002E1DD8  7F E9 03 A6 */	mtctr r31
lbl_802E617C:
/* 802E617C 002E1DDC  80 64 00 04 */	lwz r3, 4(r4)
/* 802E6180 002E1DE0  84 04 00 08 */	lwzu r0, 8(r4)
/* 802E6184 002E1DE4  90 65 00 04 */	stw r3, 4(r5)
/* 802E6188 002E1DE8  94 05 00 08 */	stwu r0, 8(r5)
/* 802E618C 002E1DEC  42 00 FF F0 */	bdnz lbl_802E617C
/* 802E6190 002E1DF0  A0 04 00 04 */	lhz r0, 4(r4)
/* 802E6194 002E1DF4  7F 97 E3 78 */	mr r23, r28
/* 802E6198 002E1DF8  3B 60 00 00 */	li r27, 0
/* 802E619C 002E1DFC  3B 9C 00 03 */	addi r28, r28, 3
/* 802E61A0 002E1E00  B0 05 00 04 */	sth r0, 4(r5)
/* 802E61A4 002E1E04  48 00 00 8C */	b lbl_802E6230
lbl_802E61A8:
/* 802E61A8 002E1E08  57 60 13 BA */	rlwinm r0, r27, 2, 0xe, 0x1d
/* 802E61AC 002E1E0C  3B C1 00 4C */	addi r30, r1, 0x4c
/* 802E61B0 002E1E10  7F DE 02 14 */	add r30, r30, r0
/* 802E61B4 002E1E14  7F 43 D3 78 */	mr r3, r26
/* 802E61B8 002E1E18  A0 9E 00 02 */	lhz r4, 2(r30)
/* 802E61BC 002E1E1C  A0 BE 00 04 */	lhz r5, 4(r30)
/* 802E61C0 002E1E20  4B FF CD 01 */	bl sdp_db_find_attr_in_rec
/* 802E61C4 002E1E24  2C 03 00 00 */	cmpwi r3, 0
/* 802E61C8 002E1E28  7C 79 1B 78 */	mr r25, r3
/* 802E61CC 002E1E2C  41 82 00 60 */	beq lbl_802E622C
/* 802E61D0 002E1E30  38 15 00 26 */	addi r0, r21, 0x26
/* 802E61D4 002E1E34  80 83 00 00 */	lwz r4, 0(r3)
/* 802E61D8 002E1E38  7C 00 E0 50 */	subf r0, r0, r28
/* 802E61DC 002E1E3C  54 00 04 3E */	clrlwi r0, r0, 0x10
/* 802E61E0 002E1E40  20 00 03 E8 */	subfic r0, r0, 0x3e8
/* 802E61E4 002E1E44  54 03 04 3E */	clrlwi r3, r0, 0x10
/* 802E61E8 002E1E48  38 03 FF FA */	addi r0, r3, -6
/* 802E61EC 002E1E4C  7C 04 00 40 */	cmplw r4, r0
/* 802E61F0 002E1E50  40 81 00 0C */	ble lbl_802E61FC
/* 802E61F4 002E1E54  3B 00 00 01 */	li r24, 1
/* 802E61F8 002E1E58  48 00 00 48 */	b lbl_802E6240
lbl_802E61FC:
/* 802E61FC 002E1E5C  7F 83 E3 78 */	mr r3, r28
/* 802E6200 002E1E60  7F 24 CB 78 */	mr r4, r25
/* 802E6204 002E1E64  48 00 05 19 */	bl sdpu_build_attrib_entry
/* 802E6208 002E1E68  A0 9E 00 02 */	lhz r4, 2(r30)
/* 802E620C 002E1E6C  7C 7C 1B 78 */	mr r28, r3
/* 802E6210 002E1E70  A0 1E 00 04 */	lhz r0, 4(r30)
/* 802E6214 002E1E74  7C 04 00 40 */	cmplw r4, r0
/* 802E6218 002E1E78  41 82 00 14 */	beq lbl_802E622C
/* 802E621C 002E1E7C  A0 79 00 08 */	lhz r3, 8(r25)
/* 802E6220 002E1E80  3B 7B FF FF */	addi r27, r27, -1
/* 802E6224 002E1E84  38 03 00 01 */	addi r0, r3, 1
/* 802E6228 002E1E88  B0 1E 00 02 */	sth r0, 2(r30)
lbl_802E622C:
/* 802E622C 002E1E8C  3B 7B 00 01 */	addi r27, r27, 1
lbl_802E6230:
/* 802E6230 002E1E90  A0 01 00 4C */	lhz r0, 0x4c(r1)
/* 802E6234 002E1E94  57 63 04 3E */	clrlwi r3, r27, 0x10
/* 802E6238 002E1E98  7C 03 00 40 */	cmplw r3, r0
/* 802E623C 002E1E9C  41 80 FF 6C */	blt lbl_802E61A8
lbl_802E6240:
/* 802E6240 002E1EA0  2C 18 00 00 */	cmpwi r24, 0
/* 802E6244 002E1EA4  40 82 00 44 */	bne lbl_802E6288
/* 802E6248 002E1EA8  7C 77 E0 50 */	subf r3, r23, r28
/* 802E624C 002E1EAC  38 03 FF FD */	addi r0, r3, -3
/* 802E6250 002E1EB0  54 03 04 3F */	clrlwi. r3, r0, 0x10
/* 802E6254 002E1EB4  41 82 00 18 */	beq lbl_802E626C
/* 802E6258 002E1EB8  9A 97 00 00 */	stb r20, 0(r23)
/* 802E625C 002E1EBC  54 60 C6 3E */	rlwinm r0, r3, 0x18, 0x18, 0x1f
/* 802E6260 002E1EC0  98 17 00 01 */	stb r0, 1(r23)
/* 802E6264 002E1EC4  98 77 00 02 */	stb r3, 2(r23)
/* 802E6268 002E1EC8  48 00 00 08 */	b lbl_802E6270
lbl_802E626C:
/* 802E626C 002E1ECC  7E FC BB 78 */	mr r28, r23
lbl_802E6270:
/* 802E6270 002E1ED0  7F 43 D3 78 */	mr r3, r26
/* 802E6274 002E1ED4  38 81 00 90 */	addi r4, r1, 0x90
/* 802E6278 002E1ED8  4B FF C9 D9 */	bl sdp_db_service_search
/* 802E627C 002E1EDC  7C 7A 1B 78 */	mr r26, r3
lbl_802E6280:
/* 802E6280 002E1EE0  2C 1A 00 00 */	cmpwi r26, 0
/* 802E6284 002E1EE4  40 82 FE EC */	bne lbl_802E6170
lbl_802E6288:
/* 802E6288 002E1EE8  38 15 00 26 */	addi r0, r21, 0x26
/* 802E628C 002E1EEC  7C 00 E0 50 */	subf r0, r0, r28
/* 802E6290 002E1EF0  54 04 04 3E */	clrlwi r4, r0, 0x10
/* 802E6294 002E1EF4  B0 15 00 24 */	sth r0, 0x24(r21)
/* 802E6298 002E1EF8  28 04 00 FF */	cmplwi r4, 0xff
/* 802E629C 002E1EFC  40 81 00 20 */	ble lbl_802E62BC
/* 802E62A0 002E1F00  38 64 FF FD */	addi r3, r4, -3
/* 802E62A4 002E1F04  38 80 00 36 */	li r4, 0x36
/* 802E62A8 002E1F08  7C 60 46 70 */	srawi r0, r3, 8
/* 802E62AC 002E1F0C  98 95 00 26 */	stb r4, 0x26(r21)
/* 802E62B0 002E1F10  98 15 00 27 */	stb r0, 0x27(r21)
/* 802E62B4 002E1F14  98 75 00 28 */	stb r3, 0x28(r21)
/* 802E62B8 002E1F18  48 00 00 24 */	b lbl_802E62DC
lbl_802E62BC:
/* 802E62BC 002E1F1C  38 64 FF FD */	addi r3, r4, -3
/* 802E62C0 002E1F20  38 04 FF FF */	addi r0, r4, -1
/* 802E62C4 002E1F24  38 A0 00 01 */	li r5, 1
/* 802E62C8 002E1F28  38 80 00 35 */	li r4, 0x35
/* 802E62CC 002E1F2C  B0 B5 04 76 */	sth r5, 0x476(r21)
/* 802E62D0 002E1F30  98 95 00 27 */	stb r4, 0x27(r21)
/* 802E62D4 002E1F34  98 75 00 28 */	stb r3, 0x28(r21)
/* 802E62D8 002E1F38  B0 15 00 24 */	sth r0, 0x24(r21)
lbl_802E62DC:
/* 802E62DC 002E1F3C  38 60 00 02 */	li r3, 2
/* 802E62E0 002E1F40  4B FD 39 6D */	bl GKI_getpoolbuf
/* 802E62E4 002E1F44  2C 03 00 00 */	cmpwi r3, 0
/* 802E62E8 002E1F48  7C 79 1B 78 */	mr r25, r3
/* 802E62EC 002E1F4C  40 82 00 2C */	bne lbl_802E6318
/* 802E62F0 002E1F50  3C 60 80 57 */	lis r3, lbl_8056C840@ha
/* 802E62F4 002E1F54  38 63 C8 40 */	addi r3, r3, lbl_8056C840@l
/* 802E62F8 002E1F58  88 03 46 30 */	lbz r0, 0x4630(r3)
/* 802E62FC 002E1F5C  28 00 00 01 */	cmplwi r0, 1
/* 802E6300 002E1F60  41 80 00 F8 */	blt lbl_802E63F8
/* 802E6304 002E1F64  3C 80 80 44 */	lis r4, lbl_8044552C@ha
/* 802E6308 002E1F68  3C 60 00 0A */	lis r3, 0xa
/* 802E630C 002E1F6C  38 84 55 2C */	addi r4, r4, lbl_8044552C@l
/* 802E6310 002E1F70  4B FD 6C 01 */	bl LogMsg_0
/* 802E6314 002E1F74  48 00 00 E4 */	b lbl_802E63F8
lbl_802E6318:
/* 802E6318 002E1F78  38 00 00 09 */	li r0, 9
/* 802E631C 002E1F7C  3B 83 00 11 */	addi r28, r3, 0x11
/* 802E6320 002E1F80  B0 03 00 04 */	sth r0, 4(r3)
/* 802E6324 002E1F84  38 60 00 07 */	li r3, 7
/* 802E6328 002E1F88  3B DC 00 03 */	addi r30, r28, 3
/* 802E632C 002E1F8C  56 C0 C6 3E */	rlwinm r0, r22, 0x18, 0x18, 0x1f
/* 802E6330 002E1F90  98 7C 00 00 */	stb r3, 0(r28)
/* 802E6334 002E1F94  7F DF F3 78 */	mr r31, r30
/* 802E6338 002E1F98  98 1C 00 01 */	stb r0, 1(r28)
/* 802E633C 002E1F9C  9A DC 00 02 */	stb r22, 2(r28)
/* 802E6340 002E1FA0  A0 15 00 24 */	lhz r0, 0x24(r21)
/* 802E6344 002E1FA4  7C 00 E8 40 */	cmplw r0, r29
/* 802E6348 002E1FA8  41 81 00 08 */	bgt lbl_802E6350
/* 802E634C 002E1FAC  7C 1D 03 78 */	mr r29, r0
lbl_802E6350:
/* 802E6350 002E1FB0  57 A0 C6 3E */	rlwinm r0, r29, 0x18, 0x18, 0x1f
/* 802E6354 002E1FB4  57 A5 04 3E */	clrlwi r5, r29, 0x10
/* 802E6358 002E1FB8  98 1E 00 02 */	stb r0, 2(r30)
/* 802E635C 002E1FBC  9B BE 00 03 */	stb r29, 3(r30)
/* 802E6360 002E1FC0  3B DE 00 04 */	addi r30, r30, 4
/* 802E6364 002E1FC4  7F C3 F3 78 */	mr r3, r30
/* 802E6368 002E1FC8  A0 15 04 76 */	lhz r0, 0x476(r21)
/* 802E636C 002E1FCC  7C 95 02 14 */	add r4, r21, r0
/* 802E6370 002E1FD0  38 84 00 26 */	addi r4, r4, 0x26
/* 802E6374 002E1FD4  4B D1 DC 8D */	bl memcpy
/* 802E6378 002E1FD8  A0 15 00 24 */	lhz r0, 0x24(r21)
/* 802E637C 002E1FDC  57 A3 04 3E */	clrlwi r3, r29, 0x10
/* 802E6380 002E1FE0  7F DE 1A 14 */	add r30, r30, r3
/* 802E6384 002E1FE4  A0 95 04 76 */	lhz r4, 0x476(r21)
/* 802E6388 002E1FE8  7C 7D 00 50 */	subf r3, r29, r0
/* 802E638C 002E1FEC  54 60 04 3F */	clrlwi. r0, r3, 0x10
/* 802E6390 002E1FF0  B0 75 00 24 */	sth r3, 0x24(r21)
/* 802E6394 002E1FF4  7C 04 EA 14 */	add r0, r4, r29
/* 802E6398 002E1FF8  B0 15 04 76 */	sth r0, 0x476(r21)
/* 802E639C 002E1FFC  41 82 00 28 */	beq lbl_802E63C4
/* 802E63A0 002E2000  38 00 00 02 */	li r0, 2
/* 802E63A4 002E2004  98 1E 00 00 */	stb r0, 0(r30)
/* 802E63A8 002E2008  A0 15 04 76 */	lhz r0, 0x476(r21)
/* 802E63AC 002E200C  7C 00 46 70 */	srawi r0, r0, 8
/* 802E63B0 002E2010  98 1E 00 01 */	stb r0, 1(r30)
/* 802E63B4 002E2014  A0 15 04 76 */	lhz r0, 0x476(r21)
/* 802E63B8 002E2018  98 1E 00 02 */	stb r0, 2(r30)
/* 802E63BC 002E201C  3B DE 00 03 */	addi r30, r30, 3
/* 802E63C0 002E2020  48 00 00 10 */	b lbl_802E63D0
lbl_802E63C4:
/* 802E63C4 002E2024  38 00 00 00 */	li r0, 0
/* 802E63C8 002E2028  98 1E 00 00 */	stb r0, 0(r30)
/* 802E63CC 002E202C  3B DE 00 01 */	addi r30, r30, 1
lbl_802E63D0:
/* 802E63D0 002E2030  7C 7F F0 50 */	subf r3, r31, r30
/* 802E63D4 002E2034  7C 1C F0 50 */	subf r0, r28, r30
/* 802E63D8 002E2038  38 A3 FF FE */	addi r5, r3, -2
/* 802E63DC 002E203C  7F 24 CB 78 */	mr r4, r25
/* 802E63E0 002E2040  54 A3 C6 3E */	rlwinm r3, r5, 0x18, 0x18, 0x1f
/* 802E63E4 002E2044  98 7F 00 00 */	stb r3, 0(r31)
/* 802E63E8 002E2048  98 BF 00 01 */	stb r5, 1(r31)
/* 802E63EC 002E204C  B0 19 00 02 */	sth r0, 2(r25)
/* 802E63F0 002E2050  A0 75 00 22 */	lhz r3, 0x22(r21)
/* 802E63F4 002E2054  4B FE FC FD */	bl L2CA_DataWrite
lbl_802E63F8:
/* 802E63F8 002E2058  39 61 01 F0 */	addi r11, r1, 0x1f0
/* 802E63FC 002E205C  4B EE 0D 5D */	bl _restgpr_20
/* 802E6400 002E2060  80 01 01 F4 */	lwz r0, 0x1f4(r1)
/* 802E6404 002E2064  7C 08 03 A6 */	mtlr r0
/* 802E6408 002E2068  38 21 01 F0 */	addi r1, r1, 0x1f0
/* 802E640C 002E206C  4E 80 00 20 */	blr