summaryrefslogtreecommitdiff
path: root/asm/GameSpy/sb_queryengine.s
diff options
context:
space:
mode:
Diffstat (limited to 'asm/GameSpy/sb_queryengine.s')
-rw-r--r--asm/GameSpy/sb_queryengine.s787
1 files changed, 787 insertions, 0 deletions
diff --git a/asm/GameSpy/sb_queryengine.s b/asm/GameSpy/sb_queryengine.s
new file mode 100644
index 0000000..59269b8
--- /dev/null
+++ b/asm/GameSpy/sb_queryengine.s
@@ -0,0 +1,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 func_802F6D78
+/* 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 func_801C7170
+/* 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 func_801D070C
+/* 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 func_8035F214
+/* 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 func_801CE568
+/* 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 func_801C716C
+/* 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 func_801CE7A0
+/* 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 func_801C716C
+/* 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