summaryrefslogtreecommitdiff
path: root/asm/SDK/DWC/gamespy/sb_queryengine.s
blob: ff0282f67dda0f9e836a4ca0b13fab25568d18d2 (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
.include "macros.inc"

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

.global FIFORemove
FIFORemove:
/* 8035C928 00358588  80 A3 00 00 */	lwz r5, 0(r3)
/* 8035C92C 0035858C  38 C0 00 00 */	li r6, 0
/* 8035C930 00358590  48 00 00 5C */	b lbl_8035C98C
lbl_8035C934:
/* 8035C934 00358594  7C 05 20 40 */	cmplw r5, r4
/* 8035C938 00358598  40 82 00 4C */	bne lbl_8035C984
/* 8035C93C 0035859C  2C 06 00 00 */	cmpwi r6, 0
/* 8035C940 003585A0  41 82 00 0C */	beq lbl_8035C94C
/* 8035C944 003585A4  80 05 00 24 */	lwz r0, 0x24(r5)
/* 8035C948 003585A8  90 06 00 24 */	stw r0, 0x24(r6)
lbl_8035C94C:
/* 8035C94C 003585AC  80 03 00 00 */	lwz r0, 0(r3)
/* 8035C950 003585B0  7C 00 28 40 */	cmplw r0, r5
/* 8035C954 003585B4  40 82 00 0C */	bne lbl_8035C960
/* 8035C958 003585B8  80 05 00 24 */	lwz r0, 0x24(r5)
/* 8035C95C 003585BC  90 03 00 00 */	stw r0, 0(r3)
lbl_8035C960:
/* 8035C960 003585C0  80 03 00 04 */	lwz r0, 4(r3)
/* 8035C964 003585C4  7C 00 28 40 */	cmplw r0, r5
/* 8035C968 003585C8  40 82 00 08 */	bne lbl_8035C970
/* 8035C96C 003585CC  90 C3 00 04 */	stw r6, 4(r3)
lbl_8035C970:
/* 8035C970 003585D0  80 83 00 08 */	lwz r4, 8(r3)
/* 8035C974 003585D4  38 04 FF FF */	addi r0, r4, -1
/* 8035C978 003585D8  90 03 00 08 */	stw r0, 8(r3)
/* 8035C97C 003585DC  38 60 00 01 */	li r3, 1
/* 8035C980 003585E0  4E 80 00 20 */	blr
lbl_8035C984:
/* 8035C984 003585E4  7C A6 2B 78 */	mr r6, r5
/* 8035C988 003585E8  80 A5 00 24 */	lwz r5, 0x24(r5)
lbl_8035C98C:
/* 8035C98C 003585EC  2C 05 00 00 */	cmpwi r5, 0
/* 8035C990 003585F0  40 82 FF A4 */	bne lbl_8035C934
/* 8035C994 003585F4  38 60 00 00 */	li r3, 0
/* 8035C998 003585F8  4E 80 00 20 */	blr

.global QEStartQuery
QEStartQuery:
/* 8035C99C 003585FC  94 21 FE D0 */	stwu r1, -0x130(r1)
/* 8035C9A0 00358600  7C 08 02 A6 */	mflr r0
/* 8035C9A4 00358604  90 01 01 34 */	stw r0, 0x134(r1)
/* 8035C9A8 00358608  38 00 00 02 */	li r0, 2
/* 8035C9AC 0035860C  93 E1 01 2C */	stw r31, 0x12c(r1)
/* 8035C9B0 00358610  7C 9F 23 78 */	mr r31, r4
/* 8035C9B4 00358614  93 C1 01 28 */	stw r30, 0x128(r1)
/* 8035C9B8 00358618  7C 7E 1B 78 */	mr r30, r3
/* 8035C9BC 0035861C  93 A1 01 24 */	stw r29, 0x124(r1)
/* 8035C9C0 00358620  3B A0 00 00 */	li r29, 0
/* 8035C9C4 00358624  98 01 00 11 */	stb r0, 0x11(r1)
/* 8035C9C8 00358628  4B FD C6 11 */	bl current_time
/* 8035C9CC 0035862C  88 9F 00 14 */	lbz r4, 0x14(r31)
/* 8035C9D0 00358630  90 7F 00 1C */	stw r3, 0x1c(r31)
/* 8035C9D4 00358634  54 80 06 B5 */	rlwinm. r0, r4, 0, 0x1a, 0x1a
/* 8035C9D8 00358638  40 82 01 DC */	bne lbl_8035CBB4
/* 8035C9DC 0035863C  80 1E 00 00 */	lwz r0, 0(r30)
/* 8035C9E0 00358640  2C 00 00 01 */	cmpwi r0, 1
/* 8035C9E4 00358644  40 82 01 3C */	bne lbl_8035CB20
/* 8035C9E8 00358648  54 80 06 31 */	rlwinm. r0, r4, 0, 0x18, 0x18
/* 8035C9EC 0035864C  41 82 00 38 */	beq lbl_8035CA24
/* 8035C9F0 00358650  38 80 00 FE */	li r4, 0xfe
/* 8035C9F4 00358654  38 C0 00 FD */	li r6, 0xfd
/* 8035C9F8 00358658  38 00 00 09 */	li r0, 9
/* 8035C9FC 0035865C  38 61 00 18 */	addi r3, r1, 0x18
/* 8035CA00 00358660  98 81 00 18 */	stb r4, 0x18(r1)
/* 8035CA04 00358664  38 9F 00 1C */	addi r4, r31, 0x1c
/* 8035CA08 00358668  38 A0 00 04 */	li r5, 4
/* 8035CA0C 0035866C  38 63 00 03 */	addi r3, r3, 3
/* 8035CA10 00358670  98 C1 00 19 */	stb r6, 0x19(r1)
/* 8035CA14 00358674  98 01 00 1A */	stb r0, 0x1a(r1)
/* 8035CA18 00358678  4B CA 75 E9 */	bl memcpy
/* 8035CA1C 0035867C  38 A0 00 07 */	li r5, 7
/* 8035CA20 00358680  48 00 01 3C */	b lbl_8035CB5C
lbl_8035CA24:
/* 8035CA24 00358684  80 7F 00 20 */	lwz r3, 0x20(r31)
/* 8035CA28 00358688  4B F9 A3 51 */	bl SOHtoNl
/* 8035CA2C 0035868C  38 E0 00 FE */	li r7, 0xfe
/* 8035CA30 00358690  38 C0 00 FD */	li r6, 0xfd
/* 8035CA34 00358694  38 00 00 00 */	li r0, 0
/* 8035CA38 00358698  3B A1 00 18 */	addi r29, r1, 0x18
/* 8035CA3C 0035869C  90 61 00 08 */	stw r3, 8(r1)
/* 8035CA40 003586A0  7F A3 EB 78 */	mr r3, r29
/* 8035CA44 003586A4  38 9F 00 1C */	addi r4, r31, 0x1c
/* 8035CA48 003586A8  38 A0 00 04 */	li r5, 4
/* 8035CA4C 003586AC  98 E1 00 18 */	stb r7, 0x18(r1)
/* 8035CA50 003586B0  38 63 00 03 */	addi r3, r3, 3
/* 8035CA54 003586B4  98 C1 00 19 */	stb r6, 0x19(r1)
/* 8035CA58 003586B8  98 01 00 1A */	stb r0, 0x1a(r1)
/* 8035CA5C 003586BC  4B CA 75 A5 */	bl memcpy
/* 8035CA60 003586C0  80 01 00 08 */	lwz r0, 8(r1)
/* 8035CA64 003586C4  38 C0 00 07 */	li r6, 7
/* 8035CA68 003586C8  2C 00 00 00 */	cmpwi r0, 0
/* 8035CA6C 003586CC  41 82 00 1C */	beq lbl_8035CA88
/* 8035CA70 003586D0  7F A3 EB 78 */	mr r3, r29
/* 8035CA74 003586D4  38 81 00 08 */	addi r4, r1, 8
/* 8035CA78 003586D8  38 A0 00 04 */	li r5, 4
/* 8035CA7C 003586DC  38 63 00 07 */	addi r3, r3, 7
/* 8035CA80 003586E0  4B CA 75 81 */	bl memcpy
/* 8035CA84 003586E4  38 C0 00 0B */	li r6, 0xb
lbl_8035CA88:
/* 8035CA88 003586E8  88 1F 00 14 */	lbz r0, 0x14(r31)
/* 8035CA8C 003586EC  54 00 07 7B */	rlwinm. r0, r0, 0, 0x1d, 0x1d
/* 8035CA90 003586F0  41 82 00 60 */	beq lbl_8035CAF0
/* 8035CA94 003586F4  80 1E 00 40 */	lwz r0, 0x40(r30)
/* 8035CA98 003586F8  38 61 00 18 */	addi r3, r1, 0x18
/* 8035CA9C 003586FC  38 A0 00 00 */	li r5, 0
/* 8035CAA0 00358700  7C 03 31 AE */	stbx r0, r3, r6
/* 8035CAA4 00358704  38 C6 00 01 */	addi r6, r6, 1
/* 8035CAA8 00358708  7C 63 32 14 */	add r3, r3, r6
/* 8035CAAC 0035870C  48 00 00 1C */	b lbl_8035CAC8
lbl_8035CAB0:
/* 8035CAB0 00358710  7C 9E 2A 14 */	add r4, r30, r5
/* 8035CAB4 00358714  38 A5 00 01 */	addi r5, r5, 1
/* 8035CAB8 00358718  88 04 00 2C */	lbz r0, 0x2c(r4)
/* 8035CABC 0035871C  38 C6 00 01 */	addi r6, r6, 1
/* 8035CAC0 00358720  98 03 00 00 */	stb r0, 0(r3)
/* 8035CAC4 00358724  38 63 00 01 */	addi r3, r3, 1
lbl_8035CAC8:
/* 8035CAC8 00358728  80 1E 00 40 */	lwz r0, 0x40(r30)
/* 8035CACC 0035872C  7C 05 00 00 */	cmpw r5, r0
/* 8035CAD0 00358730  41 80 FF E0 */	blt lbl_8035CAB0
/* 8035CAD4 00358734  38 61 00 18 */	addi r3, r1, 0x18
/* 8035CAD8 00358738  38 00 00 00 */	li r0, 0
/* 8035CADC 0035873C  7C 03 31 AE */	stbx r0, r3, r6
/* 8035CAE0 00358740  38 A6 00 02 */	addi r5, r6, 2
/* 8035CAE4 00358744  38 C6 00 01 */	addi r6, r6, 1
/* 8035CAE8 00358748  7C 03 31 AE */	stbx r0, r3, r6
/* 8035CAEC 0035874C  48 00 00 70 */	b lbl_8035CB5C
lbl_8035CAF0:
/* 8035CAF0 00358750  38 61 00 18 */	addi r3, r1, 0x18
/* 8035CAF4 00358754  38 80 00 FF */	li r4, 0xff
/* 8035CAF8 00358758  7C 83 31 AE */	stbx r4, r3, r6
/* 8035CAFC 0035875C  38 C6 00 01 */	addi r6, r6, 1
/* 8035CB00 00358760  38 00 00 01 */	li r0, 1
/* 8035CB04 00358764  7C 83 31 AE */	stbx r4, r3, r6
/* 8035CB08 00358768  38 C6 00 01 */	addi r6, r6, 1
/* 8035CB0C 0035876C  38 A6 00 02 */	addi r5, r6, 2
/* 8035CB10 00358770  7C 83 31 AE */	stbx r4, r3, r6
/* 8035CB14 00358774  38 C6 00 01 */	addi r6, r6, 1
/* 8035CB18 00358778  7C 03 31 AE */	stbx r0, r3, r6
/* 8035CB1C 0035877C  48 00 00 40 */	b lbl_8035CB5C
lbl_8035CB20:
/* 8035CB20 00358780  54 80 07 7B */	rlwinm. r0, r4, 0, 0x1d, 0x1d
/* 8035CB24 00358784  41 82 00 20 */	beq lbl_8035CB44
/* 8035CB28 00358788  3C 80 80 45 */	lis r4, lbl_8044C5B8@ha
/* 8035CB2C 0035878C  38 61 00 18 */	addi r3, r1, 0x18
/* 8035CB30 00358790  38 84 C5 B8 */	addi r4, r4, lbl_8044C5B8@l
/* 8035CB34 00358794  38 A0 00 0D */	li r5, 0xd
/* 8035CB38 00358798  4B CA 74 C9 */	bl memcpy
/* 8035CB3C 0035879C  38 A0 00 0D */	li r5, 0xd
/* 8035CB40 003587A0  48 00 00 1C */	b lbl_8035CB5C
lbl_8035CB44:
/* 8035CB44 003587A4  3C 80 80 45 */	lis r4, lbl_8044C5C8@ha
/* 8035CB48 003587A8  38 61 00 18 */	addi r3, r1, 0x18
/* 8035CB4C 003587AC  38 84 C5 C8 */	addi r4, r4, lbl_8044C5C8@l
/* 8035CB50 003587B0  38 A0 00 08 */	li r5, 8
/* 8035CB54 003587B4  4B CA 74 AD */	bl memcpy
/* 8035CB58 003587B8  38 A0 00 08 */	li r5, 8
lbl_8035CB5C:
/* 8035CB5C 003587BC  80 7F 00 00 */	lwz r3, 0(r31)
/* 8035CB60 003587C0  80 1E 00 28 */	lwz r0, 0x28(r30)
/* 8035CB64 003587C4  7C 03 00 40 */	cmplw r3, r0
/* 8035CB68 003587C8  40 82 00 24 */	bne lbl_8035CB8C
/* 8035CB6C 003587CC  88 1F 00 15 */	lbz r0, 0x15(r31)
/* 8035CB70 003587D0  54 00 07 BD */	rlwinm. r0, r0, 0, 0x1e, 0x1e
/* 8035CB74 003587D4  41 82 00 18 */	beq lbl_8035CB8C
/* 8035CB78 003587D8  80 1F 00 08 */	lwz r0, 8(r31)
/* 8035CB7C 003587DC  90 01 00 14 */	stw r0, 0x14(r1)
/* 8035CB80 003587E0  A0 1F 00 0C */	lhz r0, 0xc(r31)
/* 8035CB84 003587E4  B0 01 00 12 */	sth r0, 0x12(r1)
/* 8035CB88 003587E8  48 00 00 10 */	b lbl_8035CB98
lbl_8035CB8C:
/* 8035CB8C 003587EC  90 61 00 14 */	stw r3, 0x14(r1)
/* 8035CB90 003587F0  A0 1F 00 04 */	lhz r0, 4(r31)
/* 8035CB94 003587F4  B0 01 00 12 */	sth r0, 0x12(r1)
lbl_8035CB98:
/* 8035CB98 003587F8  80 7E 00 20 */	lwz r3, 0x20(r30)
/* 8035CB9C 003587FC  38 81 00 18 */	addi r4, r1, 0x18
/* 8035CBA0 00358800  38 E1 00 10 */	addi r7, r1, 0x10
/* 8035CBA4 00358804  38 C0 00 00 */	li r6, 0
/* 8035CBA8 00358808  39 00 00 08 */	li r8, 8
/* 8035CBAC 0035880C  4B FD B2 E9 */	bl sendto
/* 8035CBB0 00358810  3B A0 00 01 */	li r29, 1
lbl_8035CBB4:
/* 8035CBB4 00358814  2C 1D 00 00 */	cmpwi r29, 0
/* 8035CBB8 00358818  41 82 00 40 */	beq lbl_8035CBF8
/* 8035CBBC 0035881C  80 7E 00 0C */	lwz r3, 0xc(r30)
/* 8035CBC0 00358820  2C 03 00 00 */	cmpwi r3, 0
/* 8035CBC4 00358824  41 82 00 08 */	beq lbl_8035CBCC
/* 8035CBC8 00358828  93 E3 00 24 */	stw r31, 0x24(r3)
lbl_8035CBCC:
/* 8035CBCC 0035882C  93 FE 00 0C */	stw r31, 0xc(r30)
/* 8035CBD0 00358830  38 00 00 00 */	li r0, 0
/* 8035CBD4 00358834  90 1F 00 24 */	stw r0, 0x24(r31)
/* 8035CBD8 00358838  80 1E 00 08 */	lwz r0, 8(r30)
/* 8035CBDC 0035883C  2C 00 00 00 */	cmpwi r0, 0
/* 8035CBE0 00358840  40 82 00 08 */	bne lbl_8035CBE8
/* 8035CBE4 00358844  93 FE 00 08 */	stw r31, 8(r30)
lbl_8035CBE8:
/* 8035CBE8 00358848  80 7E 00 10 */	lwz r3, 0x10(r30)
/* 8035CBEC 0035884C  38 03 00 01 */	addi r0, r3, 1
/* 8035CBF0 00358850  90 1E 00 10 */	stw r0, 0x10(r30)
/* 8035CBF4 00358854  48 00 00 0C */	b lbl_8035CC00
lbl_8035CBF8:
/* 8035CBF8 00358858  38 00 00 00 */	li r0, 0
/* 8035CBFC 0035885C  90 1F 00 1C */	stw r0, 0x1c(r31)
lbl_8035CC00:
/* 8035CC00 00358860  80 01 01 34 */	lwz r0, 0x134(r1)
/* 8035CC04 00358864  83 E1 01 2C */	lwz r31, 0x12c(r1)
/* 8035CC08 00358868  83 C1 01 28 */	lwz r30, 0x128(r1)
/* 8035CC0C 0035886C  83 A1 01 24 */	lwz r29, 0x124(r1)
/* 8035CC10 00358870  7C 08 03 A6 */	mtlr r0
/* 8035CC14 00358874  38 21 01 30 */	addi r1, r1, 0x130
/* 8035CC18 00358878  4E 80 00 20 */	blr

.global SBQueryEngineInit
SBQueryEngineInit:
/* 8035CC1C 0035887C  94 21 FF E0 */	stwu r1, -0x20(r1)
/* 8035CC20 00358880  7C 08 02 A6 */	mflr r0
/* 8035CC24 00358884  90 01 00 24 */	stw r0, 0x24(r1)
/* 8035CC28 00358888  39 61 00 20 */	addi r11, r1, 0x20
/* 8035CC2C 0035888C  4B E6 A4 F9 */	bl _savegpr_26
/* 8035CC30 00358890  2C 06 00 00 */	cmpwi r6, 0
/* 8035CC34 00358894  7C 7A 1B 78 */	mr r26, r3
/* 8035CC38 00358898  7C 9B 23 78 */	mr r27, r4
/* 8035CC3C 0035889C  7C BC 2B 78 */	mr r28, r5
/* 8035CC40 003588A0  7C FD 3B 78 */	mr r29, r7
/* 8035CC44 003588A4  7D 1E 43 78 */	mr r30, r8
/* 8035CC48 003588A8  40 82 00 10 */	bne lbl_8035CC58
/* 8035CC4C 003588AC  80 0D B0 A8 */	lwz r0, lbl_80640368-_SDA_BASE_(r13)
/* 8035CC50 003588B0  2C 00 00 01 */	cmpwi r0, 1
/* 8035CC54 003588B4  40 82 00 50 */	bne lbl_8035CCA4
lbl_8035CC58:
/* 8035CC58 003588B8  4B FD C3 79 */	bl SocketStartUp
/* 8035CC5C 003588BC  3B E0 00 00 */	li r31, 0
/* 8035CC60 003588C0  93 9A 00 00 */	stw r28, 0(r26)
/* 8035CC64 003588C4  38 60 00 02 */	li r3, 2
/* 8035CC68 003588C8  38 80 00 02 */	li r4, 2
/* 8035CC6C 003588CC  93 7A 00 04 */	stw r27, 4(r26)
/* 8035CC70 003588D0  38 A0 00 11 */	li r5, 0x11
/* 8035CC74 003588D4  93 FA 00 40 */	stw r31, 0x40(r26)
/* 8035CC78 003588D8  93 BA 00 44 */	stw r29, 0x44(r26)
/* 8035CC7C 003588DC  93 DA 00 48 */	stw r30, 0x48(r26)
/* 8035CC80 003588E0  93 FA 00 28 */	stw r31, 0x28(r26)
/* 8035CC84 003588E4  4B FD AF 41 */	bl socket
/* 8035CC88 003588E8  90 7A 00 20 */	stw r3, 0x20(r26)
/* 8035CC8C 003588EC  93 FA 00 18 */	stw r31, 0x18(r26)
/* 8035CC90 003588F0  93 FA 00 14 */	stw r31, 0x14(r26)
/* 8035CC94 003588F4  93 FA 00 1C */	stw r31, 0x1c(r26)
/* 8035CC98 003588F8  93 FA 00 0C */	stw r31, 0xc(r26)
/* 8035CC9C 003588FC  93 FA 00 08 */	stw r31, 8(r26)
/* 8035CCA0 00358900  93 FA 00 10 */	stw r31, 0x10(r26)
lbl_8035CCA4:
/* 8035CCA4 00358904  39 61 00 20 */	addi r11, r1, 0x20
/* 8035CCA8 00358908  4B E6 A4 C9 */	bl _restgpr_26
/* 8035CCAC 0035890C  80 01 00 24 */	lwz r0, 0x24(r1)
/* 8035CCB0 00358910  7C 08 03 A6 */	mtlr r0
/* 8035CCB4 00358914  38 21 00 20 */	addi r1, r1, 0x20
/* 8035CCB8 00358918  4E 80 00 20 */	blr

.global SBQueryEngineSetPublicIP
SBQueryEngineSetPublicIP:
/* 8035CCBC 0035891C  90 83 00 28 */	stw r4, 0x28(r3)
/* 8035CCC0 00358920  4E 80 00 20 */	blr

.global SBEngineHaltUpdates
SBEngineHaltUpdates:
/* 8035CCC4 00358924  38 00 00 00 */	li r0, 0
/* 8035CCC8 00358928  90 03 00 18 */	stw r0, 0x18(r3)
/* 8035CCCC 0035892C  90 03 00 14 */	stw r0, 0x14(r3)
/* 8035CCD0 00358930  90 03 00 1C */	stw r0, 0x1c(r3)
/* 8035CCD4 00358934  90 03 00 0C */	stw r0, 0xc(r3)
/* 8035CCD8 00358938  90 03 00 08 */	stw r0, 8(r3)
/* 8035CCDC 0035893C  90 03 00 10 */	stw r0, 0x10(r3)
/* 8035CCE0 00358940  4E 80 00 20 */	blr

.global SBEngineCleanup
SBEngineCleanup:
/* 8035CCE4 00358944  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 8035CCE8 00358948  7C 08 02 A6 */	mflr r0
/* 8035CCEC 0035894C  90 01 00 14 */	stw r0, 0x14(r1)
/* 8035CCF0 00358950  93 E1 00 0C */	stw r31, 0xc(r1)
/* 8035CCF4 00358954  7C 7F 1B 78 */	mr r31, r3
/* 8035CCF8 00358958  80 63 00 20 */	lwz r3, 0x20(r3)
/* 8035CCFC 0035895C  4B FD AF 01 */	bl closesocket
/* 8035CD00 00358960  38 00 00 00 */	li r0, 0
/* 8035CD04 00358964  38 60 FF FF */	li r3, -1
/* 8035CD08 00358968  90 7F 00 20 */	stw r3, 0x20(r31)
/* 8035CD0C 0035896C  90 1F 00 18 */	stw r0, 0x18(r31)
/* 8035CD10 00358970  90 1F 00 14 */	stw r0, 0x14(r31)
/* 8035CD14 00358974  90 1F 00 1C */	stw r0, 0x1c(r31)
/* 8035CD18 00358978  90 1F 00 0C */	stw r0, 0xc(r31)
/* 8035CD1C 0035897C  90 1F 00 08 */	stw r0, 8(r31)
/* 8035CD20 00358980  90 1F 00 10 */	stw r0, 0x10(r31)
/* 8035CD24 00358984  83 E1 00 0C */	lwz r31, 0xc(r1)
/* 8035CD28 00358988  80 01 00 14 */	lwz r0, 0x14(r1)
/* 8035CD2C 0035898C  7C 08 03 A6 */	mtlr r0
/* 8035CD30 00358990  38 21 00 10 */	addi r1, r1, 0x10
/* 8035CD34 00358994  4E 80 00 20 */	blr

.global SBQueryEngineUpdateServer
SBQueryEngineUpdateServer:
/* 8035CD38 00358998  89 04 00 14 */	lbz r8, 0x14(r4)
/* 8035CD3C 0035899C  38 00 00 00 */	li r0, 0
/* 8035CD40 003589A0  2C 86 00 02 */	cmpwi cr1, r6, 2
/* 8035CD44 003589A4  98 04 00 28 */	stb r0, 0x28(r4)
/* 8035CD48 003589A8  71 08 00 43 */	andi. r8, r8, 0x43
/* 8035CD4C 003589AC  90 04 00 20 */	stw r0, 0x20(r4)
/* 8035CD50 003589B0  99 04 00 14 */	stb r8, 0x14(r4)
/* 8035CD54 003589B4  4D 86 00 20 */	beqlr cr1
/* 8035CD58 003589B8  2C 06 00 00 */	cmpwi r6, 0
/* 8035CD5C 003589BC  40 82 00 10 */	bne lbl_8035CD6C
/* 8035CD60 003589C0  61 00 00 04 */	ori r0, r8, 4
/* 8035CD64 003589C4  98 04 00 14 */	stb r0, 0x14(r4)
/* 8035CD68 003589C8  48 00 00 2C */	b lbl_8035CD94
lbl_8035CD6C:
/* 8035CD6C 003589CC  2C 06 00 01 */	cmpwi r6, 1
/* 8035CD70 003589D0  40 82 00 10 */	bne lbl_8035CD80
/* 8035CD74 003589D4  61 00 00 08 */	ori r0, r8, 8
/* 8035CD78 003589D8  98 04 00 14 */	stb r0, 0x14(r4)
/* 8035CD7C 003589DC  48 00 00 18 */	b lbl_8035CD94
lbl_8035CD80:
/* 8035CD80 003589E0  4C 86 00 20 */	bnelr cr1
/* 8035CD84 003589E4  61 00 00 20 */	ori r0, r8, 0x20
/* 8035CD88 003589E8  98 04 00 14 */	stb r0, 0x14(r4)
/* 8035CD8C 003589EC  48 00 00 08 */	b lbl_8035CD94
/* 8035CD90 003589F0  4E 80 00 20 */	blr
lbl_8035CD94:
/* 8035CD94 003589F4  2C 07 00 00 */	cmpwi r7, 0
/* 8035CD98 003589F8  41 82 00 18 */	beq lbl_8035CDB0
/* 8035CD9C 003589FC  28 06 00 01 */	cmplwi r6, 1
/* 8035CDA0 00358A00  41 81 00 10 */	bgt lbl_8035CDB0
/* 8035CDA4 00358A04  88 04 00 14 */	lbz r0, 0x14(r4)
/* 8035CDA8 00358A08  60 00 00 80 */	ori r0, r0, 0x80
/* 8035CDAC 00358A0C  98 04 00 14 */	stb r0, 0x14(r4)
lbl_8035CDB0:
/* 8035CDB0 00358A10  80 C3 00 10 */	lwz r6, 0x10(r3)
/* 8035CDB4 00358A14  80 03 00 04 */	lwz r0, 4(r3)
/* 8035CDB8 00358A18  7C 06 00 00 */	cmpw r6, r0
/* 8035CDBC 00358A1C  40 80 00 08 */	bge lbl_8035CDC4
/* 8035CDC0 00358A20  4B FF FB DC */	b QEStartQuery
lbl_8035CDC4:
/* 8035CDC4 00358A24  2C 05 00 00 */	cmpwi r5, 0
/* 8035CDC8 00358A28  41 82 00 30 */	beq lbl_8035CDF8
/* 8035CDCC 00358A2C  80 03 00 14 */	lwz r0, 0x14(r3)
/* 8035CDD0 00358A30  90 04 00 24 */	stw r0, 0x24(r4)
/* 8035CDD4 00358A34  80 03 00 18 */	lwz r0, 0x18(r3)
/* 8035CDD8 00358A38  90 83 00 14 */	stw r4, 0x14(r3)
/* 8035CDDC 00358A3C  2C 00 00 00 */	cmpwi r0, 0
/* 8035CDE0 00358A40  40 82 00 08 */	bne lbl_8035CDE8
/* 8035CDE4 00358A44  90 83 00 18 */	stw r4, 0x18(r3)
lbl_8035CDE8:
/* 8035CDE8 00358A48  80 83 00 1C */	lwz r4, 0x1c(r3)
/* 8035CDEC 00358A4C  38 04 00 01 */	addi r0, r4, 1
/* 8035CDF0 00358A50  90 03 00 1C */	stw r0, 0x1c(r3)
/* 8035CDF4 00358A54  4E 80 00 20 */	blr
lbl_8035CDF8:
/* 8035CDF8 00358A58  80 A3 00 18 */	lwz r5, 0x18(r3)
/* 8035CDFC 00358A5C  2C 05 00 00 */	cmpwi r5, 0
/* 8035CE00 00358A60  41 82 00 08 */	beq lbl_8035CE08
/* 8035CE04 00358A64  90 85 00 24 */	stw r4, 0x24(r5)
lbl_8035CE08:
/* 8035CE08 00358A68  90 83 00 18 */	stw r4, 0x18(r3)
/* 8035CE0C 00358A6C  38 00 00 00 */	li r0, 0
/* 8035CE10 00358A70  90 04 00 24 */	stw r0, 0x24(r4)
/* 8035CE14 00358A74  80 03 00 14 */	lwz r0, 0x14(r3)
/* 8035CE18 00358A78  2C 00 00 00 */	cmpwi r0, 0
/* 8035CE1C 00358A7C  40 82 00 08 */	bne lbl_8035CE24
/* 8035CE20 00358A80  90 83 00 14 */	stw r4, 0x14(r3)
lbl_8035CE24:
/* 8035CE24 00358A84  80 83 00 1C */	lwz r4, 0x1c(r3)
/* 8035CE28 00358A88  38 04 00 01 */	addi r0, r4, 1
/* 8035CE2C 00358A8C  90 03 00 1C */	stw r0, 0x1c(r3)
/* 8035CE30 00358A90  4E 80 00 20 */	blr

.global ParseSingleQR2Reply
ParseSingleQR2Reply:
/* 8035CE34 00358A94  94 21 FF D0 */	stwu r1, -0x30(r1)
/* 8035CE38 00358A98  7C 08 02 A6 */	mflr r0
/* 8035CE3C 00358A9C  90 01 00 34 */	stw r0, 0x34(r1)
/* 8035CE40 00358AA0  39 61 00 30 */	addi r11, r1, 0x30
/* 8035CE44 00358AA4  4B E6 A2 DD */	bl _savegpr_25
/* 8035CE48 00358AA8  88 05 00 00 */	lbz r0, 0(r5)
/* 8035CE4C 00358AAC  7C 7E 1B 78 */	mr r30, r3
/* 8035CE50 00358AB0  7C 9F 23 78 */	mr r31, r4
/* 8035CE54 00358AB4  7C 00 07 75 */	extsb. r0, r0
/* 8035CE58 00358AB8  41 82 00 0C */	beq lbl_8035CE64
/* 8035CE5C 00358ABC  2C 00 00 09 */	cmpwi r0, 9
/* 8035CE60 00358AC0  40 82 01 94 */	bne lbl_8035CFF4
lbl_8035CE64:
/* 8035CE64 00358AC4  88 64 00 14 */	lbz r3, 0x14(r4)
/* 8035CE68 00358AC8  3B 25 00 05 */	addi r25, r5, 5
/* 8035CE6C 00358ACC  3B 46 FF FB */	addi r26, r6, -5
/* 8035CE70 00358AD0  54 60 06 31 */	rlwinm. r0, r3, 0, 0x18, 0x18
/* 8035CE74 00358AD4  41 82 00 58 */	beq lbl_8035CECC
/* 8035CE78 00358AD8  54 60 06 7E */	clrlwi r0, r3, 0x19
/* 8035CE7C 00358ADC  2C 1A 00 00 */	cmpwi r26, 0
/* 8035CE80 00358AE0  98 04 00 14 */	stb r0, 0x14(r4)
/* 8035CE84 00358AE4  40 81 01 2C */	ble lbl_8035CFB0
/* 8035CE88 00358AE8  7F 23 CB 78 */	mr r3, r25
/* 8035CE8C 00358AEC  4B E7 38 81 */	bl atoi
/* 8035CE90 00358AF0  90 7F 00 20 */	stw r3, 0x20(r31)
/* 8035CE94 00358AF4  7F E4 FB 78 */	mr r4, r31
/* 8035CE98 00358AF8  38 7E 00 08 */	addi r3, r30, 8
/* 8035CE9C 00358AFC  4B FF FA 8D */	bl FIFORemove
/* 8035CEA0 00358B00  7F C3 F3 78 */	mr r3, r30
/* 8035CEA4 00358B04  7F E4 FB 78 */	mr r4, r31
/* 8035CEA8 00358B08  4B FF FA F5 */	bl QEStartQuery
/* 8035CEAC 00358B0C  81 9E 00 44 */	lwz r12, 0x44(r30)
/* 8035CEB0 00358B10  7F C3 F3 78 */	mr r3, r30
/* 8035CEB4 00358B14  7F E5 FB 78 */	mr r5, r31
/* 8035CEB8 00358B18  80 DE 00 48 */	lwz r6, 0x48(r30)
/* 8035CEBC 00358B1C  38 80 00 03 */	li r4, 3
/* 8035CEC0 00358B20  7D 89 03 A6 */	mtctr r12
/* 8035CEC4 00358B24  4E 80 04 21 */	bctrl
/* 8035CEC8 00358B28  48 00 01 2C */	b lbl_8035CFF4
lbl_8035CECC:
/* 8035CECC 00358B2C  54 60 07 7B */	rlwinm. r0, r3, 0, 0x1d, 0x1d
/* 8035CED0 00358B30  41 82 00 70 */	beq lbl_8035CF40
/* 8035CED4 00358B34  3F A0 80 45 */	lis r29, lbl_8044BB78@ha
/* 8035CED8 00358B38  3B 60 00 00 */	li r27, 0
/* 8035CEDC 00358B3C  3B BD BB 78 */	addi r29, r29, lbl_8044BB78@l
/* 8035CEE0 00358B40  48 00 00 44 */	b lbl_8035CF24
lbl_8035CEE4:
/* 8035CEE4 00358B44  7F 23 CB 78 */	mr r3, r25
/* 8035CEE8 00358B48  7F 44 D3 78 */	mr r4, r26
/* 8035CEEC 00358B4C  48 00 23 29 */	bl NTSLengthSB
/* 8035CEF0 00358B50  2C 03 00 00 */	cmpwi r3, 0
/* 8035CEF4 00358B54  7C 7C 1B 78 */	mr r28, r3
/* 8035CEF8 00358B58  41 80 00 38 */	blt lbl_8035CF30
/* 8035CEFC 00358B5C  7C 9E DA 14 */	add r4, r30, r27
/* 8035CF00 00358B60  7F E3 FB 78 */	mr r3, r31
/* 8035CF04 00358B64  88 04 00 2C */	lbz r0, 0x2c(r4)
/* 8035CF08 00358B68  7F 25 CB 78 */	mr r5, r25
/* 8035CF0C 00358B6C  54 00 10 3A */	slwi r0, r0, 2
/* 8035CF10 00358B70  7C 9D 00 2E */	lwzx r4, r29, r0
/* 8035CF14 00358B74  48 00 06 25 */	bl SBServerAddKeyValue
/* 8035CF18 00358B78  7F 39 E2 14 */	add r25, r25, r28
/* 8035CF1C 00358B7C  7F 5C D0 50 */	subf r26, r28, r26
/* 8035CF20 00358B80  3B 7B 00 01 */	addi r27, r27, 1
lbl_8035CF24:
/* 8035CF24 00358B84  80 1E 00 40 */	lwz r0, 0x40(r30)
/* 8035CF28 00358B88  7C 1B 00 00 */	cmpw r27, r0
/* 8035CF2C 00358B8C  41 80 FF B8 */	blt lbl_8035CEE4
lbl_8035CF30:
/* 8035CF30 00358B90  88 1F 00 14 */	lbz r0, 0x14(r31)
/* 8035CF34 00358B94  60 00 00 41 */	ori r0, r0, 0x41
/* 8035CF38 00358B98  98 1F 00 14 */	stb r0, 0x14(r31)
/* 8035CF3C 00358B9C  48 00 00 74 */	b lbl_8035CFB0
lbl_8035CF40:
/* 8035CF40 00358BA0  88 19 00 00 */	lbz r0, 0(r25)
/* 8035CF44 00358BA4  7C 00 07 75 */	extsb. r0, r0
/* 8035CF48 00358BA8  41 82 00 4C */	beq lbl_8035CF94
/* 8035CF4C 00358BAC  3C 60 80 45 */	lis r3, lbl_8044C5D4@ha
/* 8035CF50 00358BB0  7F 24 CB 78 */	mr r4, r25
/* 8035CF54 00358BB4  38 63 C5 D4 */	addi r3, r3, lbl_8044C5D4@l
/* 8035CF58 00358BB8  38 A0 00 08 */	li r5, 8
/* 8035CF5C 00358BBC  4B E7 16 0D */	bl strncmp
/* 8035CF60 00358BC0  2C 03 00 00 */	cmpwi r3, 0
/* 8035CF64 00358BC4  40 82 00 30 */	bne lbl_8035CF94
/* 8035CF68 00358BC8  7F E3 FB 78 */	mr r3, r31
/* 8035CF6C 00358BCC  7F 24 CB 78 */	mr r4, r25
/* 8035CF70 00358BD0  7F 45 D3 78 */	mr r5, r26
/* 8035CF74 00358BD4  48 00 0C C1 */	bl SBServerParseQR2FullKeysSplit
/* 8035CF78 00358BD8  88 1F 00 28 */	lbz r0, 0x28(r31)
/* 8035CF7C 00358BDC  28 00 00 FF */	cmplwi r0, 0xff
/* 8035CF80 00358BE0  40 82 00 74 */	bne lbl_8035CFF4
/* 8035CF84 00358BE4  88 1F 00 14 */	lbz r0, 0x14(r31)
/* 8035CF88 00358BE8  60 00 00 43 */	ori r0, r0, 0x43
/* 8035CF8C 00358BEC  98 1F 00 14 */	stb r0, 0x14(r31)
/* 8035CF90 00358BF0  48 00 00 20 */	b lbl_8035CFB0
lbl_8035CF94:
/* 8035CF94 00358BF4  7F E3 FB 78 */	mr r3, r31
/* 8035CF98 00358BF8  7F 24 CB 78 */	mr r4, r25
/* 8035CF9C 00358BFC  7F 45 D3 78 */	mr r5, r26
/* 8035CFA0 00358C00  48 00 0A B1 */	bl SBServerParseQR2FullKeysSingle
/* 8035CFA4 00358C04  88 1F 00 14 */	lbz r0, 0x14(r31)
/* 8035CFA8 00358C08  60 00 00 43 */	ori r0, r0, 0x43
/* 8035CFAC 00358C0C  98 1F 00 14 */	stb r0, 0x14(r31)
lbl_8035CFB0:
/* 8035CFB0 00358C10  88 1F 00 14 */	lbz r0, 0x14(r31)
/* 8035CFB4 00358C14  70 00 00 F3 */	andi. r0, r0, 0xf3
/* 8035CFB8 00358C18  98 1F 00 14 */	stb r0, 0x14(r31)
/* 8035CFBC 00358C1C  4B FD C0 1D */	bl current_time
/* 8035CFC0 00358C20  80 1F 00 1C */	lwz r0, 0x1c(r31)
/* 8035CFC4 00358C24  7F E4 FB 78 */	mr r4, r31
/* 8035CFC8 00358C28  7C 00 18 50 */	subf r0, r0, r3
/* 8035CFCC 00358C2C  38 7E 00 08 */	addi r3, r30, 8
/* 8035CFD0 00358C30  90 1F 00 1C */	stw r0, 0x1c(r31)
/* 8035CFD4 00358C34  4B FF F9 55 */	bl FIFORemove
/* 8035CFD8 00358C38  81 9E 00 44 */	lwz r12, 0x44(r30)
/* 8035CFDC 00358C3C  7F C3 F3 78 */	mr r3, r30
/* 8035CFE0 00358C40  7F E5 FB 78 */	mr r5, r31
/* 8035CFE4 00358C44  80 DE 00 48 */	lwz r6, 0x48(r30)
/* 8035CFE8 00358C48  38 80 00 00 */	li r4, 0
/* 8035CFEC 00358C4C  7D 89 03 A6 */	mtctr r12
/* 8035CFF0 00358C50  4E 80 04 21 */	bctrl
lbl_8035CFF4:
/* 8035CFF4 00358C54  39 61 00 30 */	addi r11, r1, 0x30
/* 8035CFF8 00358C58  4B E6 A1 75 */	bl _restgpr_25
/* 8035CFFC 00358C5C  80 01 00 34 */	lwz r0, 0x34(r1)
/* 8035D000 00358C60  7C 08 03 A6 */	mtlr r0
/* 8035D004 00358C64  38 21 00 30 */	addi r1, r1, 0x30
/* 8035D008 00358C68  4E 80 00 20 */	blr

.global ProcessIncomingReplies
ProcessIncomingReplies:
/* 8035D00C 00358C6C  94 21 F7 C0 */	stwu r1, -0x840(r1)
/* 8035D010 00358C70  7C 08 02 A6 */	mflr r0
/* 8035D014 00358C74  90 01 08 44 */	stw r0, 0x844(r1)
/* 8035D018 00358C78  39 61 08 40 */	addi r11, r1, 0x840
/* 8035D01C 00358C7C  4B E6 A1 05 */	bl _savegpr_25
/* 8035D020 00358C80  38 00 00 08 */	li r0, 8
/* 8035D024 00358C84  2C 04 00 00 */	cmpwi r4, 0
/* 8035D028 00358C88  90 01 00 08 */	stw r0, 8(r1)
/* 8035D02C 00358C8C  7C 7A 1B 78 */	mr r26, r3
/* 8035D030 00358C90  7C 9B 23 78 */	mr r27, r4
/* 8035D034 00358C94  3B 80 00 00 */	li r28, 0
/* 8035D038 00358C98  40 82 00 08 */	bne lbl_8035D040
/* 8035D03C 00358C9C  83 83 00 20 */	lwz r28, 0x20(r3)
lbl_8035D040:
/* 8035D040 00358CA0  3B E1 00 18 */	addi r31, r1, 0x18
/* 8035D044 00358CA4  3B C0 00 00 */	li r30, 0
/* 8035D048 00358CA8  48 00 01 78 */	b lbl_8035D1C0
lbl_8035D04C:
/* 8035D04C 00358CAC  7F 83 E3 78 */	mr r3, r28
/* 8035D050 00358CB0  38 81 00 18 */	addi r4, r1, 0x18
/* 8035D054 00358CB4  38 E1 00 10 */	addi r7, r1, 0x10
/* 8035D058 00358CB8  39 01 00 08 */	addi r8, r1, 8
/* 8035D05C 00358CBC  38 A0 07 FF */	li r5, 0x7ff
/* 8035D060 00358CC0  38 C0 00 00 */	li r6, 0
/* 8035D064 00358CC4  4B FD AD A1 */	bl recvfrom
/* 8035D068 00358CC8  2C 03 FF FF */	cmpwi r3, -1
/* 8035D06C 00358CCC  7C 66 1B 78 */	mr r6, r3
/* 8035D070 00358CD0  41 82 01 60 */	beq lbl_8035D1D0
/* 8035D074 00358CD4  7F DF 19 AE */	stbx r30, r31, r3
/* 8035D078 00358CD8  80 61 00 14 */	lwz r3, 0x14(r1)
/* 8035D07C 00358CDC  83 BA 00 08 */	lwz r29, 8(r26)
/* 8035D080 00358CE0  A0 81 00 12 */	lhz r4, 0x12(r1)
/* 8035D084 00358CE4  48 00 01 34 */	b lbl_8035D1B8
lbl_8035D088:
/* 8035D088 00358CE8  2C 1B 00 00 */	cmpwi r27, 0
/* 8035D08C 00358CEC  41 82 00 1C */	beq lbl_8035D0A8
/* 8035D090 00358CF0  88 1D 00 15 */	lbz r0, 0x15(r29)
/* 8035D094 00358CF4  54 00 07 39 */	rlwinm. r0, r0, 0, 0x1c, 0x1c
/* 8035D098 00358CF8  41 82 00 10 */	beq lbl_8035D0A8
/* 8035D09C 00358CFC  80 1D 00 10 */	lwz r0, 0x10(r29)
/* 8035D0A0 00358D00  7C 00 18 40 */	cmplw r0, r3
/* 8035D0A4 00358D04  41 82 00 54 */	beq lbl_8035D0F8
lbl_8035D0A8:
/* 8035D0A8 00358D08  80 BD 00 00 */	lwz r5, 0(r29)
/* 8035D0AC 00358D0C  7C 05 18 40 */	cmplw r5, r3
/* 8035D0B0 00358D10  40 82 00 18 */	bne lbl_8035D0C8
/* 8035D0B4 00358D14  A0 1D 00 04 */	lhz r0, 4(r29)
/* 8035D0B8 00358D18  7C 00 20 40 */	cmplw r0, r4
/* 8035D0BC 00358D1C  41 82 00 3C */	beq lbl_8035D0F8
/* 8035D0C0 00358D20  2C 1B 00 00 */	cmpwi r27, 0
/* 8035D0C4 00358D24  40 82 00 34 */	bne lbl_8035D0F8
lbl_8035D0C8:
/* 8035D0C8 00358D28  80 1A 00 28 */	lwz r0, 0x28(r26)
/* 8035D0CC 00358D2C  7C 05 00 40 */	cmplw r5, r0
/* 8035D0D0 00358D30  40 82 00 E4 */	bne lbl_8035D1B4
/* 8035D0D4 00358D34  88 1D 00 15 */	lbz r0, 0x15(r29)
/* 8035D0D8 00358D38  54 00 07 BD */	rlwinm. r0, r0, 0, 0x1e, 0x1e
/* 8035D0DC 00358D3C  41 82 00 D8 */	beq lbl_8035D1B4
/* 8035D0E0 00358D40  80 1D 00 08 */	lwz r0, 8(r29)
/* 8035D0E4 00358D44  7C 00 18 40 */	cmplw r0, r3
/* 8035D0E8 00358D48  40 82 00 CC */	bne lbl_8035D1B4
/* 8035D0EC 00358D4C  A0 1D 00 0C */	lhz r0, 0xc(r29)
/* 8035D0F0 00358D50  7C 00 20 40 */	cmplw r0, r4
/* 8035D0F4 00358D54  40 82 00 C0 */	bne lbl_8035D1B4
lbl_8035D0F8:
/* 8035D0F8 00358D58  2C 1B 00 00 */	cmpwi r27, 0
/* 8035D0FC 00358D5C  40 82 00 C4 */	bne lbl_8035D1C0
/* 8035D100 00358D60  80 1A 00 00 */	lwz r0, 0(r26)
/* 8035D104 00358D64  2C 00 00 01 */	cmpwi r0, 1
/* 8035D108 00358D68  40 82 00 18 */	bne lbl_8035D120
/* 8035D10C 00358D6C  7F 43 D3 78 */	mr r3, r26
/* 8035D110 00358D70  7F A4 EB 78 */	mr r4, r29
/* 8035D114 00358D74  38 A1 00 18 */	addi r5, r1, 0x18
/* 8035D118 00358D78  4B FF FD 1D */	bl ParseSingleQR2Reply
/* 8035D11C 00358D7C  48 00 00 A4 */	b lbl_8035D1C0
lbl_8035D120:
/* 8035D120 00358D80  38 61 00 18 */	addi r3, r1, 0x18
/* 8035D124 00358D84  38 8D 94 C8 */	addi r4, r13, lbl_8063E788-_SDA_BASE_
/* 8035D128 00358D88  4B E7 16 79 */	bl strstr
/* 8035D12C 00358D8C  7C 03 00 D0 */	neg r0, r3
/* 8035D130 00358D90  38 81 00 18 */	addi r4, r1, 0x18
/* 8035D134 00358D94  7C 00 1B 78 */	or r0, r0, r3
/* 8035D138 00358D98  7F A3 EB 78 */	mr r3, r29
/* 8035D13C 00358D9C  54 19 0F FE */	srwi r25, r0, 0x1f
/* 8035D140 00358DA0  48 00 07 55 */	bl SBServerParseKeyVals
/* 8035D144 00358DA4  2C 19 00 00 */	cmpwi r25, 0
/* 8035D148 00358DA8  41 82 00 78 */	beq lbl_8035D1C0
/* 8035D14C 00358DAC  88 7D 00 14 */	lbz r3, 0x14(r29)
/* 8035D150 00358DB0  54 60 07 7B */	rlwinm. r0, r3, 0, 0x1d, 0x1d
/* 8035D154 00358DB4  41 82 00 10 */	beq lbl_8035D164
/* 8035D158 00358DB8  60 60 00 41 */	ori r0, r3, 0x41
/* 8035D15C 00358DBC  98 1D 00 14 */	stb r0, 0x14(r29)
/* 8035D160 00358DC0  48 00 00 0C */	b lbl_8035D16C
lbl_8035D164:
/* 8035D164 00358DC4  60 60 00 42 */	ori r0, r3, 0x42
/* 8035D168 00358DC8  98 1D 00 14 */	stb r0, 0x14(r29)
lbl_8035D16C:
/* 8035D16C 00358DCC  88 1D 00 14 */	lbz r0, 0x14(r29)
/* 8035D170 00358DD0  70 00 00 F3 */	andi. r0, r0, 0xf3
/* 8035D174 00358DD4  98 1D 00 14 */	stb r0, 0x14(r29)
/* 8035D178 00358DD8  4B FD BE 61 */	bl current_time
/* 8035D17C 00358DDC  80 1D 00 1C */	lwz r0, 0x1c(r29)
/* 8035D180 00358DE0  7F A4 EB 78 */	mr r4, r29
/* 8035D184 00358DE4  7C 00 18 50 */	subf r0, r0, r3
/* 8035D188 00358DE8  38 7A 00 08 */	addi r3, r26, 8
/* 8035D18C 00358DEC  90 1D 00 1C */	stw r0, 0x1c(r29)
/* 8035D190 00358DF0  4B FF F7 99 */	bl FIFORemove
/* 8035D194 00358DF4  81 9A 00 44 */	lwz r12, 0x44(r26)
/* 8035D198 00358DF8  7F 43 D3 78 */	mr r3, r26
/* 8035D19C 00358DFC  7F A5 EB 78 */	mr r5, r29
/* 8035D1A0 00358E00  80 DA 00 48 */	lwz r6, 0x48(r26)
/* 8035D1A4 00358E04  38 80 00 00 */	li r4, 0
/* 8035D1A8 00358E08  7D 89 03 A6 */	mtctr r12
/* 8035D1AC 00358E0C  4E 80 04 21 */	bctrl
/* 8035D1B0 00358E10  48 00 00 10 */	b lbl_8035D1C0
lbl_8035D1B4:
/* 8035D1B4 00358E14  83 BD 00 24 */	lwz r29, 0x24(r29)
lbl_8035D1B8:
/* 8035D1B8 00358E18  2C 1D 00 00 */	cmpwi r29, 0
/* 8035D1BC 00358E1C  40 82 FE CC */	bne lbl_8035D088
lbl_8035D1C0:
/* 8035D1C0 00358E20  7F 83 E3 78 */	mr r3, r28
/* 8035D1C4 00358E24  4B FD B6 89 */	bl CanReceiveOnSocket
/* 8035D1C8 00358E28  2C 03 00 00 */	cmpwi r3, 0
/* 8035D1CC 00358E2C  40 82 FE 80 */	bne lbl_8035D04C
lbl_8035D1D0:
/* 8035D1D0 00358E30  39 61 08 40 */	addi r11, r1, 0x840
/* 8035D1D4 00358E34  4B E6 9F 99 */	bl _restgpr_25
/* 8035D1D8 00358E38  80 01 08 44 */	lwz r0, 0x844(r1)
/* 8035D1DC 00358E3C  7C 08 03 A6 */	mtlr r0
/* 8035D1E0 00358E40  38 21 08 40 */	addi r1, r1, 0x840
/* 8035D1E4 00358E44  4E 80 00 20 */	blr

.global SBQueryEngineThink
SBQueryEngineThink:
/* 8035D1E8 00358E48  94 21 FF E0 */	stwu r1, -0x20(r1)
/* 8035D1EC 00358E4C  7C 08 02 A6 */	mflr r0
/* 8035D1F0 00358E50  90 01 00 24 */	stw r0, 0x24(r1)
/* 8035D1F4 00358E54  93 E1 00 1C */	stw r31, 0x1c(r1)
/* 8035D1F8 00358E58  7C 7F 1B 78 */	mr r31, r3
/* 8035D1FC 00358E5C  93 C1 00 18 */	stw r30, 0x18(r1)
/* 8035D200 00358E60  93 A1 00 14 */	stw r29, 0x14(r1)
/* 8035D204 00358E64  93 81 00 10 */	stw r28, 0x10(r1)
/* 8035D208 00358E68  80 03 00 10 */	lwz r0, 0x10(r3)
/* 8035D20C 00358E6C  2C 00 00 00 */	cmpwi r0, 0
/* 8035D210 00358E70  41 82 01 34 */	beq lbl_8035D344
/* 8035D214 00358E74  38 80 00 00 */	li r4, 0
/* 8035D218 00358E78  4B FF FD F5 */	bl ProcessIncomingReplies
/* 8035D21C 00358E7C  4B FD BD BD */	bl current_time
/* 8035D220 00358E80  7C 7C 1B 78 */	mr r28, r3
/* 8035D224 00358E84  3B A0 09 C4 */	li r29, 0x9c4
/* 8035D228 00358E88  3B C0 00 00 */	li r30, 0
/* 8035D22C 00358E8C  48 00 00 80 */	b lbl_8035D2AC
lbl_8035D230:
/* 8035D230 00358E90  80 65 00 1C */	lwz r3, 0x1c(r5)
/* 8035D234 00358E94  38 03 09 C4 */	addi r0, r3, 0x9c4
/* 8035D238 00358E98  7C 1C 00 40 */	cmplw r28, r0
/* 8035D23C 00358E9C  40 81 00 7C */	ble lbl_8035D2B8
/* 8035D240 00358EA0  88 05 00 15 */	lbz r0, 0x15(r5)
/* 8035D244 00358EA4  7F E3 FB 78 */	mr r3, r31
/* 8035D248 00358EA8  38 80 00 01 */	li r4, 1
/* 8035D24C 00358EAC  60 00 00 10 */	ori r0, r0, 0x10
/* 8035D250 00358EB0  98 05 00 15 */	stb r0, 0x15(r5)
/* 8035D254 00358EB4  80 BF 00 08 */	lwz r5, 8(r31)
/* 8035D258 00358EB8  93 A5 00 1C */	stw r29, 0x1c(r5)
/* 8035D25C 00358EBC  80 BF 00 08 */	lwz r5, 8(r31)
/* 8035D260 00358EC0  88 05 00 15 */	lbz r0, 0x15(r5)
/* 8035D264 00358EC4  70 00 00 D3 */	andi. r0, r0, 0xd3
/* 8035D268 00358EC8  98 05 00 15 */	stb r0, 0x15(r5)
/* 8035D26C 00358ECC  81 9F 00 44 */	lwz r12, 0x44(r31)
/* 8035D270 00358ED0  80 BF 00 08 */	lwz r5, 8(r31)
/* 8035D274 00358ED4  80 DF 00 48 */	lwz r6, 0x48(r31)
/* 8035D278 00358ED8  7D 89 03 A6 */	mtctr r12
/* 8035D27C 00358EDC  4E 80 04 21 */	bctrl
/* 8035D280 00358EE0  80 7F 00 08 */	lwz r3, 8(r31)
/* 8035D284 00358EE4  2C 03 00 00 */	cmpwi r3, 0
/* 8035D288 00358EE8  41 82 00 24 */	beq lbl_8035D2AC
/* 8035D28C 00358EEC  80 03 00 24 */	lwz r0, 0x24(r3)
/* 8035D290 00358EF0  2C 00 00 00 */	cmpwi r0, 0
/* 8035D294 00358EF4  90 1F 00 08 */	stw r0, 8(r31)
/* 8035D298 00358EF8  40 82 00 08 */	bne lbl_8035D2A0
/* 8035D29C 00358EFC  93 DF 00 0C */	stw r30, 0xc(r31)
lbl_8035D2A0:
/* 8035D2A0 00358F00  80 7F 00 10 */	lwz r3, 0x10(r31)
/* 8035D2A4 00358F04  38 03 FF FF */	addi r0, r3, -1
/* 8035D2A8 00358F08  90 1F 00 10 */	stw r0, 0x10(r31)
lbl_8035D2AC:
/* 8035D2AC 00358F0C  80 BF 00 08 */	lwz r5, 8(r31)
/* 8035D2B0 00358F10  2C 05 00 00 */	cmpwi r5, 0
/* 8035D2B4 00358F14  40 82 FF 7C */	bne lbl_8035D230
lbl_8035D2B8:
/* 8035D2B8 00358F18  80 1F 00 1C */	lwz r0, 0x1c(r31)
/* 8035D2BC 00358F1C  2C 00 00 00 */	cmpwi r0, 0
/* 8035D2C0 00358F20  40 81 00 5C */	ble lbl_8035D31C
/* 8035D2C4 00358F24  3B C0 00 00 */	li r30, 0
/* 8035D2C8 00358F28  48 00 00 38 */	b lbl_8035D300
lbl_8035D2CC:
/* 8035D2CC 00358F2C  80 9F 00 14 */	lwz r4, 0x14(r31)
/* 8035D2D0 00358F30  2C 04 00 00 */	cmpwi r4, 0
/* 8035D2D4 00358F34  41 82 00 24 */	beq lbl_8035D2F8
/* 8035D2D8 00358F38  80 04 00 24 */	lwz r0, 0x24(r4)
/* 8035D2DC 00358F3C  2C 00 00 00 */	cmpwi r0, 0
/* 8035D2E0 00358F40  90 1F 00 14 */	stw r0, 0x14(r31)
/* 8035D2E4 00358F44  40 82 00 08 */	bne lbl_8035D2EC
/* 8035D2E8 00358F48  93 DF 00 18 */	stw r30, 0x18(r31)
lbl_8035D2EC:
/* 8035D2EC 00358F4C  80 7F 00 1C */	lwz r3, 0x1c(r31)
/* 8035D2F0 00358F50  38 03 FF FF */	addi r0, r3, -1
/* 8035D2F4 00358F54  90 1F 00 1C */	stw r0, 0x1c(r31)
lbl_8035D2F8:
/* 8035D2F8 00358F58  7F E3 FB 78 */	mr r3, r31
/* 8035D2FC 00358F5C  4B FF F6 A1 */	bl QEStartQuery
lbl_8035D300:
/* 8035D300 00358F60  80 7F 00 10 */	lwz r3, 0x10(r31)
/* 8035D304 00358F64  80 1F 00 04 */	lwz r0, 4(r31)
/* 8035D308 00358F68  7C 03 00 00 */	cmpw r3, r0
/* 8035D30C 00358F6C  40 80 00 10 */	bge lbl_8035D31C
/* 8035D310 00358F70  80 1F 00 1C */	lwz r0, 0x1c(r31)
/* 8035D314 00358F74  2C 00 00 00 */	cmpwi r0, 0
/* 8035D318 00358F78  41 81 FF B4 */	bgt lbl_8035D2CC
lbl_8035D31C:
/* 8035D31C 00358F7C  80 1F 00 10 */	lwz r0, 0x10(r31)
/* 8035D320 00358F80  2C 00 00 00 */	cmpwi r0, 0
/* 8035D324 00358F84  40 82 00 20 */	bne lbl_8035D344
/* 8035D328 00358F88  81 9F 00 44 */	lwz r12, 0x44(r31)
/* 8035D32C 00358F8C  7F E3 FB 78 */	mr r3, r31
/* 8035D330 00358F90  80 DF 00 48 */	lwz r6, 0x48(r31)
/* 8035D334 00358F94  38 80 00 02 */	li r4, 2
/* 8035D338 00358F98  38 A0 00 00 */	li r5, 0
/* 8035D33C 00358F9C  7D 89 03 A6 */	mtctr r12
/* 8035D340 00358FA0  4E 80 04 21 */	bctrl
lbl_8035D344:
/* 8035D344 00358FA4  80 01 00 24 */	lwz r0, 0x24(r1)
/* 8035D348 00358FA8  83 E1 00 1C */	lwz r31, 0x1c(r1)
/* 8035D34C 00358FAC  83 C1 00 18 */	lwz r30, 0x18(r1)
/* 8035D350 00358FB0  83 A1 00 14 */	lwz r29, 0x14(r1)
/* 8035D354 00358FB4  83 81 00 10 */	lwz r28, 0x10(r1)
/* 8035D358 00358FB8  7C 08 03 A6 */	mtlr r0
/* 8035D35C 00358FBC  38 21 00 20 */	addi r1, r1, 0x20
/* 8035D360 00358FC0  4E 80 00 20 */	blr

.global SBQueryEngineAddQueryKey
SBQueryEngineAddQueryKey:
/* 8035D364 00358FC4  80 C3 00 40 */	lwz r6, 0x40(r3)
/* 8035D368 00358FC8  2C 06 00 14 */	cmpwi r6, 0x14
/* 8035D36C 00358FCC  4C 80 00 20 */	bgelr
/* 8035D370 00358FD0  7C A3 32 14 */	add r5, r3, r6
/* 8035D374 00358FD4  38 06 00 01 */	addi r0, r6, 1
/* 8035D378 00358FD8  98 85 00 2C */	stb r4, 0x2c(r5)
/* 8035D37C 00358FDC  90 03 00 40 */	stw r0, 0x40(r3)
/* 8035D380 00358FE0  4E 80 00 20 */	blr

.global SBQueryEngineRemoveServerFromFIFOs
SBQueryEngineRemoveServerFromFIFOs:
/* 8035D384 00358FE4  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 8035D388 00358FE8  7C 08 02 A6 */	mflr r0
/* 8035D38C 00358FEC  90 01 00 14 */	stw r0, 0x14(r1)
/* 8035D390 00358FF0  93 E1 00 0C */	stw r31, 0xc(r1)
/* 8035D394 00358FF4  7C 9F 23 78 */	mr r31, r4
/* 8035D398 00358FF8  93 C1 00 08 */	stw r30, 8(r1)
/* 8035D39C 00358FFC  7C 7E 1B 78 */	mr r30, r3
/* 8035D3A0 00359000  38 63 00 08 */	addi r3, r3, 8
/* 8035D3A4 00359004  4B FF F5 85 */	bl FIFORemove
/* 8035D3A8 00359008  2C 03 00 00 */	cmpwi r3, 0
/* 8035D3AC 0035900C  40 82 00 10 */	bne lbl_8035D3BC
/* 8035D3B0 00359010  7F E4 FB 78 */	mr r4, r31
/* 8035D3B4 00359014  38 7E 00 14 */	addi r3, r30, 0x14
/* 8035D3B8 00359018  4B FF F5 71 */	bl FIFORemove
lbl_8035D3BC:
/* 8035D3BC 0035901C  80 01 00 14 */	lwz r0, 0x14(r1)
/* 8035D3C0 00359020  83 E1 00 0C */	lwz r31, 0xc(r1)
/* 8035D3C4 00359024  83 C1 00 08 */	lwz r30, 8(r1)
/* 8035D3C8 00359028  7C 08 03 A6 */	mtlr r0
/* 8035D3CC 0035902C  38 21 00 10 */	addi r1, r1, 0x10
/* 8035D3D0 00359030  4E 80 00 20 */	blr