From 34192c9a8dd21240225a7447f24381802b610f9a Mon Sep 17 00:00:00 2001 From: Nomura Date: Thu, 31 Aug 2023 21:35:47 +0200 Subject: [PATCH] Label functions from libdwcgsserverbrowsing.a --- .../serverbrowsing/asm/include/sb_crypt.inc | 6 +- .../asm/include/sb_queryengine.inc | 32 +- .../serverbrowsing/asm/include/sb_server.inc | 30 +- .../asm/include/sb_serverbrowsing.inc | 50 +- .../asm/include/sb_serverlist.inc | 128 ++-- .../libraries/serverbrowsing/asm/sb_crypt.s | 36 +- .../serverbrowsing/asm/sb_queryengine.s | 174 +++--- .../libraries/serverbrowsing/asm/sb_server.s | 238 ++++---- .../serverbrowsing/asm/sb_serverbrowsing.s | 86 +-- .../serverbrowsing/asm/sb_serverlist.s | 572 +++++++++--------- 10 files changed, 676 insertions(+), 676 deletions(-) diff --git a/subprojects/gamespy/libraries/serverbrowsing/asm/include/sb_crypt.inc b/subprojects/gamespy/libraries/serverbrowsing/asm/include/sb_crypt.inc index 33b38ba989..986872cf53 100644 --- a/subprojects/gamespy/libraries/serverbrowsing/asm/include/sb_crypt.inc +++ b/subprojects/gamespy/libraries/serverbrowsing/asm/include/sb_crypt.inc @@ -1,4 +1,4 @@ .public _u32_div_f -.public ov4_021FD500 -.public ov4_021FD5B4 -.public ov4_021FD6C4 +.public keyrand +.public GOAHashInit +.public GOADecryptByte diff --git a/subprojects/gamespy/libraries/serverbrowsing/asm/include/sb_queryengine.inc b/subprojects/gamespy/libraries/serverbrowsing/asm/include/sb_queryengine.inc index 3175a3e4d8..c956dbc5f6 100644 --- a/subprojects/gamespy/libraries/serverbrowsing/asm/include/sb_queryengine.inc +++ b/subprojects/gamespy/libraries/serverbrowsing/asm/include/sb_queryengine.inc @@ -6,19 +6,19 @@ .public closesocket .public recvfrom .public sendto -.public ov4_021FD7CC -.public ov4_021FD800 -.public ov4_021FD828 -.public ov4_021FD85C -.public ov4_021FD8C8 -.public ov4_021FD8DC -.public ov4_021FDBFC -.public ov4_021FDCFC -.public ov4_021FDD94 -.public ov4_021FDD9C -.public ov4_021FDF30 -.public ov4_021FDFC0 -.public ov4_021FE1A8 -.public ov4_021FE49C -.public ov4_021FE51C -.public ov4_021FF4AC +.public FIFOAddRear +.public FIFOAddFront +.public FIFOGetFirst +.public FIFORemove +.public FIFOClear +.public QEStartQuery +.public ParseSingleQR2Reply +.public ParseSingleGOAReply +.public ParseSingleICMPReply +.public ProcessIncomingReplies +.public TimeoutOldQueries +.public QueueNextQueries +.public SBServerAddKeyValue +.public SBServerParseKeyVals +.public SBServerParseQR2FullKeys +.public NTSLengthSB diff --git a/subprojects/gamespy/libraries/serverbrowsing/asm/include/sb_server.inc b/subprojects/gamespy/libraries/serverbrowsing/asm/include/sb_server.inc index 5101c2a731..da29f5de7a 100644 --- a/subprojects/gamespy/libraries/serverbrowsing/asm/include/sb_server.inc +++ b/subprojects/gamespy/libraries/serverbrowsing/asm/include/sb_server.inc @@ -13,18 +13,18 @@ .public TableCount .public TableEnter .public TableLookup -.public ov4_021FE0AC -.public ov4_021FE0BC -.public ov4_021FE0D0 -.public ov4_021FE1A8 -.public ov4_021FE220 -.public ov4_021FE3D8 -.public ov4_021FE438 -.public ov4_021FE6F4 -.public ov4_021FE74C -.public ov4_021FE770 -.public ov4_021FE780 -.public ov4_021FE794 -.public ov4_021FF3C0 -.public ov4_021FF430 -.public ov4_021FF4AC +.public RefStringHash +.public RefStringCompare +.public RefStringFree +.public SBServerAddKeyValue +.public SBServerGetStringValueA +.public CheckValidKey +.public mytok +.public StringHash +.public KeyValFree +.public KeyValHashKey +.public KeyValCompareKey +.public SBServerGetPing +.public SBRefStr +.public SBReleaseStr +.public NTSLengthSB diff --git a/subprojects/gamespy/libraries/serverbrowsing/asm/include/sb_serverbrowsing.inc b/subprojects/gamespy/libraries/serverbrowsing/asm/include/sb_serverbrowsing.inc index 3c158eb778..9efefc7adc 100644 --- a/subprojects/gamespy/libraries/serverbrowsing/asm/include/sb_serverbrowsing.inc +++ b/subprojects/gamespy/libraries/serverbrowsing/asm/include/sb_serverbrowsing.inc @@ -5,29 +5,29 @@ .public ArrayLength .public msleep .public inet_addr -.public ov4_021FDABC -.public ov4_021FDB30 -.public ov4_021FDB38 -.public ov4_021FDB54 -.public ov4_021FDB80 -.public ov4_021FE000 -.public ov4_021FE060 -.public ov4_021FE080 -.public ov4_021FE890 -.public ov4_021FEA48 -.public ov4_021FEBE0 +.public SBQueryEngineInit +.public SBQueryEngineSetPublicIP +.public SBEngineHaltUpdates +.public SBEngineCleanup +.public SBQueryEngineUpdateServer +.public SBQueryEngineThink +.public SBQueryEngineAddQueryKey +.public SBQueryEngineRemoveServerFromFIFOs +.public ListCallback +.public EngineCallback +.public ServerBrowserBeginUpdate2 .public ServerBrowserThink -.public ov4_021FEE28 -.public ov4_021FF0CC -.public ov4_021FF180 -.public ov4_021FF278 -.public ov4_021FF2C4 -.public ov4_021FF2D4 -.public ov4_021FF340 -.public ov4_021FF4DC -.public ov4_021FFAC8 -.public ov4_021FFDE0 -.public ov4_021FFE44 -.public ov4_022011B4 -.public ov4_022012DC -.public ov4_022014B8 +.public ServerBrowserHalt +.public SBServerListSort +.public SBServerListFindServer +.public SBServerListRemoveAt +.public SBServerListCount +.public SBServerListNth +.public SBServerListClear +.public SBServerListInit +.public SBServerListConnectAndQuery +.public SBServerListDisconnect +.public SBServerListCleanup +.public SBSendMessageToServer +.public SBSendNatNegotiateCookieToServer +.public SBListThink diff --git a/subprojects/gamespy/libraries/serverbrowsing/asm/include/sb_serverlist.inc b/subprojects/gamespy/libraries/serverbrowsing/asm/include/sb_serverlist.inc index 8add36b70c..fe0c4a9658 100644 --- a/subprojects/gamespy/libraries/serverbrowsing/asm/include/sb_serverlist.inc +++ b/subprojects/gamespy/libraries/serverbrowsing/asm/include/sb_serverlist.inc @@ -40,71 +40,71 @@ .public recvfrom .public send .public inet_addr -.public ov4_021FD5FC -.public ov4_021FD790 -.public ov4_021FE0E0 -.public ov4_021FE144 -.public ov4_021FE184 -.public ov4_021FE1A8 +.public GOACryptInit +.public GOADecrypt +.public SBRefStrHash +.public SBRefStrHashCleanup +.public SBServerFree +.public SBServerAddKeyValue .public SBServerAddIntKeyValue -.public ov4_021FE220 +.public SBServerGetStringValueA .public SBServerGetIntValueA -.public ov4_021FE31C +.public SBServerGetFloatValueA .public SBServerGetPublicInetAddress -.public ov4_021FE37C -.public ov4_021FE3C8 -.public ov4_021FE3D0 -.public ov4_021FE79C -.public ov4_021FE848 -.public ov4_021FE850 -.public ov4_021FE85C -.public ov4_021FE864 -.public ov4_021FE86C -.public ov4_021FE874 -.public ov4_021FEEC8 -.public ov4_021FEF24 -.public ov4_021FEFFC -.public ov4_021FF064 -.public ov4_021FF144 -.public ov4_021FF1D4 -.public ov4_021FF244 -.public ov4_021FF278 -.public ov4_021FF2D4 -.public ov4_021FF2E8 -.public ov4_021FF340 -.public ov4_021FF398 -.public ov4_021FF3C0 -.public ov4_021FF430 -.public ov4_021FF4AC -.public ov4_021FF608 -.public ov4_021FF6C4 -.public ov4_021FF71C -.public ov4_021FF848 -.public ov4_021FF898 -.public ov4_021FF8BC -.public ov4_021FF910 -.public ov4_021FF944 -.public ov4_021FFA30 -.public ov4_021FFAC8 -.public ov4_021FFD38 -.public ov4_021FFD7C -.public ov4_021FFDE0 -.public ov4_021FFE7C -.public ov4_021FFF1C -.public ov4_021FFF48 -.public ov4_021FFFCC -.public ov4_022000C8 -.public ov4_02200138 -.public ov4_02200404 -.public ov4_02200534 -.public ov4_0220053C -.public ov4_02200968 -.public ov4_02200A44 -.public ov4_02200C00 -.public ov4_02200D84 -.public ov4_02200E10 -.public ov4_02200F08 -.public ov4_022010CC -.public ov4_022011B4 -.public ov4_02201394 +.public SBServerGetPublicQueryPortNBO +.public SBServerSetNext +.public SBServerGetNext +.public SBAllocServer +.public SBServerSetFlags +.public SBServerSetPrivateAddr +.public SBServerSetICMPIP +.public SBServerSetState +.public SBServerGetState +.public SBIsNullServer +.public IntKeyCompare +.public FloatKeyCompare +.public StrCaseKeyCompare +.public StrNoCaseKeyCompare +.public SBServerListAppendServer +.public SBServerListFindServerByIP +.public AddServerToDeadlist +.public SBServerListRemoveAt +.public SBServerListNth +.public SBFreeDeadList +.public SBServerListClear +.public SBAllocateServerList +.public SBRefStr +.public SBReleaseStr +.public NTSLengthSB +.public ErrorDisconnect +.public StringHash +.public ServerListConnect +.public BufferAddNTS +.public BufferAddByte +.public BufferAddInt +.public BufferAddData +.public SetupListChallenge +.public SendWithRetry +.public SBServerListConnectAndQuery +.public FreePopularValues +.public FreeKeyList +.public SBServerListDisconnect +.public InitCryptKey +.public ServerSizeForFlags +.public FullRulesPresent +.public AllKeysPresent +.public ParseServerIPPort +.public ParseServer +.public IncomingListParseServer +.public SBSetLastListErrorPtr +.public ProcessMainListData +.public ProcessPushKeyList +.public ProcessPlayerSearch +.public ProcessMaploop +.public ProcessDeleteServer +.public ProcessPushServer +.public ProcessAdHocData +.public ProcessIncomingData +.public SBSendMessageToServer +.public ProcessLanData .public SOC_GetHostByName diff --git a/subprojects/gamespy/libraries/serverbrowsing/asm/sb_crypt.s b/subprojects/gamespy/libraries/serverbrowsing/asm/sb_crypt.s index 38152e519d..f1779fc642 100644 --- a/subprojects/gamespy/libraries/serverbrowsing/asm/sb_crypt.s +++ b/subprojects/gamespy/libraries/serverbrowsing/asm/sb_crypt.s @@ -6,8 +6,8 @@ .text - arm_func_start ov4_021FD500 -ov4_021FD500: ; 0x021FD500 + arm_func_start keyrand +keyrand: ; 0x021FD500 stmfd sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} ldr r7, [sp, #0x28] ldr r6, [sp, #0x2c] @@ -57,10 +57,10 @@ _021FD5A4: bhi _021FD544 and r0, r0, #0xff ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} - arm_func_end ov4_021FD500 + arm_func_end keyrand - arm_func_start ov4_021FD5B4 -ov4_021FD5B4: ; 0x021FD5B4 + arm_func_start GOAHashInit +GOAHashInit: ; 0x021FD5B4 mov r1, #1 strb r1, [r0, #0x100] mov r1, #3 @@ -80,10 +80,10 @@ _021FD5E4: sub r2, r2, #1 blt _021FD5E4 bx lr - arm_func_end ov4_021FD5B4 + arm_func_end GOAHashInit - arm_func_start ov4_021FD5FC -ov4_021FD5FC: ; 0x021FD5FC + arm_func_start GOACryptInit +GOACryptInit: ; 0x021FD5FC stmfd sp!, {r3, r4, r5, r6, r7, r8, sb, lr} sub sp, sp, #0x10 mov r7, r2 @@ -91,7 +91,7 @@ ov4_021FD5FC: ; 0x021FD5FC mov r8, r1 cmp r7, #1 bhs _021FD624 - bl ov4_021FD5B4 + bl GOAHashInit add sp, sp, #0x10 ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, pc} _021FD624: @@ -114,7 +114,7 @@ _021FD650: mov r2, r8 mov r3, r7 str r4, [sp, #4] - bl ov4_021FD500 + bl keyrand ldrb r2, [sb, r6] ldrb r1, [sb, r0] strb r1, [sb, r6] @@ -137,10 +137,10 @@ _021FD650: str r0, [sp, #0xc] add sp, sp, #0x10 ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, pc} - arm_func_end ov4_021FD5FC + arm_func_end GOACryptInit - arm_func_start ov4_021FD6C4 -ov4_021FD6C4: ; 0x021FD6C4 + arm_func_start GOADecryptByte +GOADecryptByte: ; 0x021FD6C4 stmfd sp!, {r4, lr} ldrb r4, [r0, #0x100] add r2, r4, #1 @@ -192,10 +192,10 @@ ov4_021FD6C4: ; 0x021FD6C4 strb r1, [r0, #0x104] ldrb r0, [r0, #0x103] ldmia sp!, {r4, pc} - arm_func_end ov4_021FD6C4 + arm_func_end GOADecryptByte - arm_func_start ov4_021FD790 -ov4_021FD790: ; 0x021FD790 + arm_func_start GOADecrypt +GOADecrypt: ; 0x021FD790 stmfd sp!, {r3, r4, r5, r6, r7, lr} mov r5, r2 mov r7, r0 @@ -206,10 +206,10 @@ ov4_021FD790: ; 0x021FD790 _021FD7AC: ldrb r1, [r6, r4] mov r0, r7 - bl ov4_021FD6C4 + bl GOADecryptByte strb r0, [r6, r4] add r4, r4, #1 cmp r4, r5 blt _021FD7AC ldmia sp!, {r3, r4, r5, r6, r7, pc} - arm_func_end ov4_021FD790 \ No newline at end of file + arm_func_end GOADecrypt \ No newline at end of file diff --git a/subprojects/gamespy/libraries/serverbrowsing/asm/sb_queryengine.s b/subprojects/gamespy/libraries/serverbrowsing/asm/sb_queryengine.s index 0bb9c4bdfe..98122b3bff 100644 --- a/subprojects/gamespy/libraries/serverbrowsing/asm/sb_queryengine.s +++ b/subprojects/gamespy/libraries/serverbrowsing/asm/sb_queryengine.s @@ -7,8 +7,8 @@ .text - arm_func_start ov4_021FD7CC -ov4_021FD7CC: ; 0x021FD7CC + arm_func_start FIFOAddRear +FIFOAddRear: ; 0x021FD7CC ldr r2, [r0, #4] cmp r2, #0 strne r1, [r2, #0x20] @@ -22,10 +22,10 @@ ov4_021FD7CC: ; 0x021FD7CC add r1, r1, #1 str r1, [r0, #8] bx lr - arm_func_end ov4_021FD7CC + arm_func_end FIFOAddRear - arm_func_start ov4_021FD800 -ov4_021FD800: ; 0x021FD800 + arm_func_start FIFOAddFront +FIFOAddFront: ; 0x021FD800 ldr r2, [r0, #0] str r2, [r1, #0x20] str r1, [r0, #0] @@ -36,10 +36,10 @@ ov4_021FD800: ; 0x021FD800 add r1, r1, #1 str r1, [r0, #8] bx lr - arm_func_end ov4_021FD800 + arm_func_end FIFOAddFront - arm_func_start ov4_021FD828 -ov4_021FD828: ; 0x021FD828 + arm_func_start FIFOGetFirst +FIFOGetFirst: ; 0x021FD828 ldr r2, [r0, #0] cmp r2, #0 beq _021FD854 @@ -54,10 +54,10 @@ ov4_021FD828: ; 0x021FD828 _021FD854: mov r0, r2 bx lr - arm_func_end ov4_021FD828 + arm_func_end FIFOGetFirst - arm_func_start ov4_021FD85C -ov4_021FD85C: ; 0x021FD85C + arm_func_start FIFORemove +FIFORemove: ; 0x021FD85C ldr r2, [r0, #0] mov r3, #0 cmp r2, #0 @@ -88,25 +88,25 @@ _021FD8B0: _021FD8C0: mov r0, #0 bx lr - arm_func_end ov4_021FD85C + arm_func_end FIFORemove - arm_func_start ov4_021FD8C8 -ov4_021FD8C8: ; 0x021FD8C8 + arm_func_start FIFOClear +FIFOClear: ; 0x021FD8C8 mov r1, #0 str r1, [r0, #4] str r1, [r0, #0] str r1, [r0, #8] bx lr - arm_func_end ov4_021FD8C8 + arm_func_end FIFOClear - arm_func_start ov4_021FD8DC -ov4_021FD8DC: ; 0x021FD8DC + arm_func_start QEStartQuery +QEStartQuery: ; 0x021FD8DC stmfd sp!, {r3, r4, r5, lr} sub sp, sp, #0x110 mov r5, r0 mov r4, r1 add r0, r5, #8 - bl ov4_021FD7CC + bl FIFOAddRear bl current_time str r0, [r4, #0x1c] mov r0, #2 @@ -232,10 +232,10 @@ _021FDA8C: ; .align 2, 0 _021FDAB4: .word Unk_ov4_02219F30 _021FDAB8: .word Unk_ov4_02219F40 - arm_func_end ov4_021FD8DC + arm_func_end QEStartQuery - arm_func_start ov4_021FDABC -ov4_021FDABC: ; 0x021FDABC + arm_func_start SBQueryEngineInit +SBQueryEngineInit: ; 0x021FDABC stmfd sp!, {r4, r5, r6, lr} mov r6, r0 mov r5, r1 @@ -261,33 +261,33 @@ _021FDAE4: bl socket str r0, [r6, #0x20] add r0, r6, #0x14 - bl ov4_021FD8C8 + bl FIFOClear add r0, r6, #8 - bl ov4_021FD8C8 + bl FIFOClear ldmia sp!, {r4, r5, r6, pc} ; .align 2, 0 _021FDB2C: .word Unk_ov4_0221AE50 - arm_func_end ov4_021FDABC + arm_func_end SBQueryEngineInit - arm_func_start ov4_021FDB30 -ov4_021FDB30: ; 0x021FDB30 + arm_func_start SBQueryEngineSetPublicIP +SBQueryEngineSetPublicIP: ; 0x021FDB30 str r1, [r0, #0x28] bx lr - arm_func_end ov4_021FDB30 + arm_func_end SBQueryEngineSetPublicIP - arm_func_start ov4_021FDB38 -ov4_021FDB38: ; 0x021FDB38 + arm_func_start SBEngineHaltUpdates +SBEngineHaltUpdates: ; 0x021FDB38 stmfd sp!, {r4, lr} mov r4, r0 add r0, r4, #0x14 - bl ov4_021FD8C8 + bl FIFOClear add r0, r4, #8 - bl ov4_021FD8C8 + bl FIFOClear ldmia sp!, {r4, pc} - arm_func_end ov4_021FDB38 + arm_func_end SBEngineHaltUpdates - arm_func_start ov4_021FDB54 -ov4_021FDB54: ; 0x021FDB54 + arm_func_start SBEngineCleanup +SBEngineCleanup: ; 0x021FDB54 stmfd sp!, {r4, lr} mov r4, r0 ldr r0, [r4, #0x20] @@ -295,14 +295,14 @@ ov4_021FDB54: ; 0x021FDB54 mvn r1, #0 add r0, r4, #0x14 str r1, [r4, #0x20] - bl ov4_021FD8C8 + bl FIFOClear add r0, r4, #8 - bl ov4_021FD8C8 + bl FIFOClear ldmia sp!, {r4, pc} - arm_func_end ov4_021FDB54 + arm_func_end SBEngineCleanup - arm_func_start ov4_021FDB80 -ov4_021FDB80: ; 0x021FDB80 + arm_func_start SBQueryEngineUpdateServer +SBQueryEngineUpdateServer: ; 0x021FDB80 stmfd sp!, {r3, lr} ldrb ip, [r1, #0x14] cmp r3, #0 @@ -328,21 +328,21 @@ _021FDBC8: ldr r3, [r0, #4] cmp ip, r3 bge _021FDBE0 - bl ov4_021FD8DC + bl QEStartQuery ldmia sp!, {r3, pc} _021FDBE0: cmp r2, #0 add r0, r0, #0x14 beq _021FDBF4 - bl ov4_021FD800 + bl FIFOAddFront ldmia sp!, {r3, pc} _021FDBF4: - bl ov4_021FD7CC + bl FIFOAddRear ldmia sp!, {r3, pc} - arm_func_end ov4_021FDB80 + arm_func_end SBQueryEngineUpdateServer - arm_func_start ov4_021FDBFC -ov4_021FDBFC: ; 0x021FDBFC + arm_func_start ParseSingleQR2Reply +ParseSingleQR2Reply: ; 0x021FDBFC stmfd sp!, {r4, r5, r6, r7, r8, sb, sl, lr} mov r8, r2 ldrsb r2, [r8] @@ -364,7 +364,7 @@ ov4_021FDBFC: ; 0x021FDBFC _021FDC44: mov r0, r8 mov r1, r7 - bl ov4_021FF4AC + bl NTSLengthSB movs r5, r0 bmi _021FDC88 add r0, sl, r6 @@ -372,7 +372,7 @@ _021FDC44: mov r0, sb mov r2, r8 ldr r1, [r4, r1, lsl #2] - bl ov4_021FE1A8 + bl SBServerAddKeyValue ldr r0, [sl, #0x40] add r6, r6, #1 cmp r6, r0 @@ -388,7 +388,7 @@ _021FDC98: mov r0, sb mov r1, r8 mov r2, r7 - bl ov4_021FE51C + bl SBServerParseQR2FullKeys ldrb r0, [sb, #0x14] orr r0, r0, #0x43 strb r0, [sb, #0x14] @@ -402,7 +402,7 @@ _021FDCB4: sub r0, r0, r2 str r0, [sb, #0x1c] add r0, sl, #8 - bl ov4_021FD85C + bl FIFORemove ldr r3, [sl, #0x48] ldr r4, [sl, #0x44] mov r0, sl @@ -412,10 +412,10 @@ _021FDCB4: ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, pc} ; .align 2, 0 _021FDCF8: .word Unk_ov4_02219B38 - arm_func_end ov4_021FDBFC + arm_func_end ParseSingleQR2Reply - arm_func_start ov4_021FDCFC -ov4_021FDCFC: ; 0x021FDCFC + arm_func_start ParseSingleGOAReply +ParseSingleGOAReply: ; 0x021FDCFC stmfd sp!, {r3, r4, r5, r6, r7, lr} mov r4, r1 mov r7, r2 @@ -428,7 +428,7 @@ ov4_021FDCFC: ; 0x021FDCFC moveq r6, #0 mov r0, r4 mov r1, r7 - bl ov4_021FE49C + bl SBServerParseKeyVals cmp r6, #0 ldmeqia sp!, {r3, r4, r5, r6, r7, pc} ldrb r0, [r4, #0x14] @@ -445,7 +445,7 @@ ov4_021FDCFC: ; 0x021FDCFC sub r0, r0, r2 str r0, [r4, #0x1c] add r0, r5, #8 - bl ov4_021FD85C + bl FIFORemove ldr r3, [r5, #0x48] ldr ip, [r5, #0x44] mov r0, r5 @@ -455,16 +455,16 @@ ov4_021FDCFC: ; 0x021FDCFC ldmia sp!, {r3, r4, r5, r6, r7, pc} ; .align 2, 0 _021FDD90: .word Unk_ov4_02219F4C - arm_func_end ov4_021FDCFC + arm_func_end ParseSingleGOAReply - arm_func_start ov4_021FDD94 -ov4_021FDD94: ; 0x021FDD94 + arm_func_start ParseSingleICMPReply +ParseSingleICMPReply: ; 0x021FDD94 mov r0, #1 bx lr - arm_func_end ov4_021FDD94 + arm_func_end ParseSingleICMPReply - arm_func_start ov4_021FDD9C -ov4_021FDD9C: ; 0x021FDD9C + arm_func_start ProcessIncomingReplies +ProcessIncomingReplies: ; 0x021FDD9C stmfd sp!, {r4, r5, r6, r7, r8, sb, lr} sub sp, sp, #0x14 sub sp, sp, #0x800 @@ -543,7 +543,7 @@ _021FDEA8: mov r1, r6 mov r2, r4 mov r3, r5 - bl ov4_021FDD94 + bl ParseSingleICMPReply cmp r0, #0 bne _021FDF10 b _021FDF04 @@ -555,12 +555,12 @@ _021FDED0: bne _021FDEF4 mov r1, r6 mov r3, r5 - bl ov4_021FDBFC + bl ParseSingleQR2Reply b _021FDF10 _021FDEF4: mov r1, r6 mov r3, r5 - bl ov4_021FDCFC + bl ParseSingleGOAReply b _021FDF10 _021FDF04: ldr r6, [r6, #0x20] @@ -576,10 +576,10 @@ _021FDF10: ldmia sp!, {r4, r5, r6, r7, r8, sb, pc} ; .align 2, 0 _021FDF2C: .word 0x000007FF - arm_func_end ov4_021FDD9C + arm_func_end ProcessIncomingReplies - arm_func_start ov4_021FDF30 -ov4_021FDF30: ; 0x021FDF30 + arm_func_start TimeoutOldQueries +TimeoutOldQueries: ; 0x021FDF30 stmfd sp!, {r3, r4, r5, r6, r7, lr} mov r6, r0 bl current_time @@ -611,26 +611,26 @@ _021FDF54: ldr ip, [r6, #0x44] blx ip add r0, r6, #8 - bl ov4_021FD828 + bl FIFOGetFirst ldr r3, [r6, #8] cmp r3, #0 bne _021FDF54 ldmia sp!, {r3, r4, r5, r6, r7, pc} ; .align 2, 0 _021FDFBC: .word 0x000009C4 - arm_func_end ov4_021FDF30 + arm_func_end TimeoutOldQueries - arm_func_start ov4_021FDFC0 -ov4_021FDFC0: ; 0x021FDFC0 + arm_func_start QueueNextQueries +QueueNextQueries: ; 0x021FDFC0 stmfd sp!, {r4, lr} mov r4, r0 b _021FDFE0 _021FDFCC: add r0, r4, #0x14 - bl ov4_021FD828 + bl FIFOGetFirst mov r1, r0 mov r0, r4 - bl ov4_021FD8DC + bl QEStartQuery _021FDFE0: ldr r1, [r4, #0x10] ldr r0, [r4, #4] @@ -640,24 +640,24 @@ _021FDFE0: cmp r0, #0 bgt _021FDFCC ldmia sp!, {r4, pc} - arm_func_end ov4_021FDFC0 + arm_func_end QueueNextQueries - arm_func_start ov4_021FE000 -ov4_021FE000: ; 0x021FE000 + arm_func_start SBQueryEngineThink +SBQueryEngineThink: ; 0x021FE000 stmfd sp!, {r4, lr} mov r4, r0 ldr r1, [r4, #0x10] cmp r1, #0 ldmeqia sp!, {r4, pc} mov r1, #0 - bl ov4_021FDD9C + bl ProcessIncomingReplies mov r0, r4 - bl ov4_021FDF30 + bl TimeoutOldQueries ldr r0, [r4, #0x1c] cmp r0, #0 ble _021FE038 mov r0, r4 - bl ov4_021FDFC0 + bl QueueNextQueries _021FE038: ldr r0, [r4, #0x10] cmp r0, #0 @@ -669,10 +669,10 @@ _021FE038: mov r2, #0 blx ip ldmia sp!, {r4, pc} - arm_func_end ov4_021FE000 + arm_func_end SBQueryEngineThink - arm_func_start ov4_021FE060 -ov4_021FE060: ; 0x021FE060 + arm_func_start SBQueryEngineAddQueryKey +SBQueryEngineAddQueryKey: ; 0x021FE060 ldr r3, [r0, #0x40] cmp r3, #0x14 bxge lr @@ -681,22 +681,22 @@ ov4_021FE060: ; 0x021FE060 add r0, r0, r3 strb r1, [r0, #0x2c] bx lr - arm_func_end ov4_021FE060 + arm_func_end SBQueryEngineAddQueryKey - arm_func_start ov4_021FE080 -ov4_021FE080: ; 0x021FE080 + arm_func_start SBQueryEngineRemoveServerFromFIFOs +SBQueryEngineRemoveServerFromFIFOs: ; 0x021FE080 stmfd sp!, {r3, r4, r5, lr} mov r5, r0 add r0, r5, #8 mov r4, r1 - bl ov4_021FD85C + bl FIFORemove cmp r0, #0 ldmneia sp!, {r3, r4, r5, pc} mov r1, r4 add r0, r5, #0x14 - bl ov4_021FD85C + bl FIFORemove ldmia sp!, {r3, r4, r5, pc} - arm_func_end ov4_021FE080 + arm_func_end SBQueryEngineRemoveServerFromFIFOs .data diff --git a/subprojects/gamespy/libraries/serverbrowsing/asm/sb_server.s b/subprojects/gamespy/libraries/serverbrowsing/asm/sb_server.s index 3a9dff4c35..0387abbff1 100644 --- a/subprojects/gamespy/libraries/serverbrowsing/asm/sb_server.s +++ b/subprojects/gamespy/libraries/serverbrowsing/asm/sb_server.s @@ -6,46 +6,46 @@ .text - arm_func_start ov4_021FE0AC -ov4_021FE0AC: ; 0x021FE0AC - ldr ip, _021FE0B8 ; =ov4_021FE6F4 + arm_func_start RefStringHash +RefStringHash: ; 0x021FE0AC + ldr ip, _021FE0B8 ; =StringHash ldr r0, [r0, #0] bx ip ; .align 2, 0 -_021FE0B8: .word ov4_021FE6F4 - arm_func_end ov4_021FE0AC +_021FE0B8: .word StringHash + arm_func_end RefStringHash - arm_func_start ov4_021FE0BC -ov4_021FE0BC: ; 0x021FE0BC + arm_func_start RefStringCompare +RefStringCompare: ; 0x021FE0BC ldr ip, _021FE0CC ; =strcasecmp ldr r0, [r0, #0] ldr r1, [r1, #0] bx ip ; .align 2, 0 _021FE0CC: .word strcasecmp - arm_func_end ov4_021FE0BC + arm_func_end RefStringCompare - arm_func_start ov4_021FE0D0 -ov4_021FE0D0: ; 0x021FE0D0 + arm_func_start RefStringFree +RefStringFree: ; 0x021FE0D0 ldr ip, _021FE0DC ; =DWCi_GsFree ldr r0, [r0, #0] bx ip ; .align 2, 0 _021FE0DC: .word DWCi_GsFree - arm_func_end ov4_021FE0D0 + arm_func_end RefStringFree - arm_func_start ov4_021FE0E0 -ov4_021FE0E0: ; 0x021FE0E0 + arm_func_start SBRefStrHash +SBRefStrHash: ; 0x021FE0E0 stmfd sp!, {r3, lr} sub sp, sp, #8 ldr r0, _021FE134 ; =0x0221B750 ldr r0, [r0, #8] cmp r0, #0 bne _021FE124 - ldr r0, _021FE138 ; =ov4_021FE0BC - ldr ip, _021FE13C ; =ov4_021FE0D0 + ldr r0, _021FE138 ; =RefStringCompare + ldr ip, _021FE13C ; =RefStringFree str r0, [sp] - ldr r3, _021FE140 ; =ov4_021FE0AC + ldr r3, _021FE140 ; =RefStringHash mov r0, #8 mov r1, #0x64 mov r2, #2 @@ -60,13 +60,13 @@ _021FE124: ldmia sp!, {r3, pc} ; .align 2, 0 _021FE134: .word Unk_ov4_0221B750 -_021FE138: .word ov4_021FE0BC -_021FE13C: .word ov4_021FE0D0 -_021FE140: .word ov4_021FE0AC - arm_func_end ov4_021FE0E0 +_021FE138: .word RefStringCompare +_021FE13C: .word RefStringFree +_021FE140: .word RefStringHash + arm_func_end SBRefStrHash - arm_func_start ov4_021FE144 -ov4_021FE144: ; 0x021FE144 + arm_func_start SBRefStrHashCleanup +SBRefStrHashCleanup: ; 0x021FE144 stmfd sp!, {r3, lr} ldr r0, _021FE180 ; =0x0221B750 ldr r0, [r0, #8] @@ -84,10 +84,10 @@ ov4_021FE144: ; 0x021FE144 ldmia sp!, {r3, pc} ; .align 2, 0 _021FE180: .word Unk_ov4_0221B750 - arm_func_end ov4_021FE144 + arm_func_end SBRefStrHashCleanup - arm_func_start ov4_021FE184 -ov4_021FE184: ; 0x021FE184 + arm_func_start SBServerFree +SBServerFree: ; 0x021FE184 stmfd sp!, {r4, lr} ldr r4, [r0, #0] ldr r0, [r4, #0x18] @@ -97,27 +97,27 @@ ov4_021FE184: ; 0x021FE184 str r1, [r4, #0x18] bl DWCi_GsFree ldmia sp!, {r4, pc} - arm_func_end ov4_021FE184 + arm_func_end SBServerFree - arm_func_start ov4_021FE1A8 -ov4_021FE1A8: ; 0x021FE1A8 + arm_func_start SBServerAddKeyValue +SBServerAddKeyValue: ; 0x021FE1A8 stmfd sp!, {r3, r4, r5, lr} sub sp, sp, #8 mov r5, r0 mov r4, r2 mov r0, #0 - bl ov4_021FF3C0 + bl SBRefStr str r0, [sp] mov r1, r4 mov r0, #0 - bl ov4_021FF3C0 + bl SBRefStr str r0, [sp, #4] ldr r0, [r5, #0x18] add r1, sp, #0 bl TableEnter add sp, sp, #8 ldmia sp!, {r3, r4, r5, pc} - arm_func_end ov4_021FE1A8 + arm_func_end SBServerAddKeyValue arm_func_start SBServerAddIntKeyValue SBServerAddIntKeyValue: ; 0x021FE1E8 @@ -131,15 +131,15 @@ SBServerAddIntKeyValue: ; 0x021FE1E8 add r2, sp, #0 mov r0, r5 mov r1, r4 - bl ov4_021FE1A8 + bl SBServerAddKeyValue add sp, sp, #0x14 ldmia sp!, {r4, r5, pc} ; .align 2, 0 _021FE21C: .word Unk_ov4_02219F7C arm_func_end SBServerAddIntKeyValue - arm_func_start ov4_021FE220 -ov4_021FE220: ; 0x021FE220 + arm_func_start SBServerGetStringValueA +SBServerGetStringValueA: ; 0x021FE220 stmfd sp!, {r4, r5, r6, lr} sub sp, sp, #8 movs r6, r0 @@ -169,7 +169,7 @@ _021FE24C: _021FE280: .word Unk_ov4_02219F80 _021FE284: .word Unk_ov4_02219F88 _021FE288: .word Unk_ov4_02219F64 - arm_func_end ov4_021FE220 + arm_func_end SBServerGetStringValueA arm_func_start SBServerGetIntValueA SBServerGetIntValueA: ; 0x021FE28C @@ -183,12 +183,12 @@ SBServerGetIntValueA: ; 0x021FE28C cmp r0, #0 mov r0, r6 bne _021FE2BC - bl ov4_021FE794 + bl SBServerGetPing ldmia sp!, {r4, r5, r6, pc} _021FE2BC: mov r1, r5 mov r2, #0 - bl ov4_021FE220 + bl SBServerGetStringValueA cmp r0, #0 beq _021FE304 ldrb r2, [r0] @@ -218,13 +218,13 @@ _021FE314: .word Unk_ov4_02219F94 _021FE318: .word 0x020FE864 arm_func_end SBServerGetIntValueA - arm_func_start ov4_021FE31C -ov4_021FE31C: ; 0x021FE31C + arm_func_start SBServerGetFloatValueA +SBServerGetFloatValueA: ; 0x021FE31C stmfd sp!, {r3, r4, r5, lr} mov r5, r2 mov r2, #0 mov r4, r3 - bl ov4_021FE220 + bl SBServerGetStringValueA cmp r0, #0 beq _021FE344 bl atof @@ -234,7 +234,7 @@ _021FE344: mov r0, r5 mov r1, r4 ldmia sp!, {r3, r4, r5, pc} - arm_func_end ov4_021FE31C + arm_func_end SBServerGetFloatValueA arm_func_start SBServerGetPublicInetAddress SBServerGetPublicInetAddress: ; 0x021FE350 @@ -255,11 +255,11 @@ SBServerGetPublicQueryPort: ; 0x021FE358 bx lr arm_func_end SBServerGetPublicQueryPort - arm_func_start ov4_021FE37C -ov4_021FE37C: ; 0x021FE37C + arm_func_start SBServerGetPublicQueryPortNBO +SBServerGetPublicQueryPortNBO: ; 0x021FE37C ldrh r0, [r0, #4] bx lr - arm_func_end ov4_021FE37C + arm_func_end SBServerGetPublicQueryPortNBO arm_func_start SBServerHasPrivateAddress SBServerHasPrivateAddress: ; 0x021FE384 @@ -290,20 +290,20 @@ SBServerGetPrivateQueryPort: ; 0x021FE3A4 bx lr arm_func_end SBServerGetPrivateQueryPort - arm_func_start ov4_021FE3C8 -ov4_021FE3C8: ; 0x021FE3C8 + arm_func_start SBServerSetNext +SBServerSetNext: ; 0x021FE3C8 str r1, [r0, #0x20] bx lr - arm_func_end ov4_021FE3C8 + arm_func_end SBServerSetNext - arm_func_start ov4_021FE3D0 -ov4_021FE3D0: ; 0x021FE3D0 + arm_func_start SBServerGetNext +SBServerGetNext: ; 0x021FE3D0 ldr r0, [r0, #0x20] bx lr - arm_func_end ov4_021FE3D0 + arm_func_end SBServerGetNext - arm_func_start ov4_021FE3D8 -ov4_021FE3D8: ; 0x021FE3D8 + arm_func_start CheckValidKey +CheckValidKey: ; 0x021FE3D8 stmfd sp!, {r4, r5, r6, lr} sub sp, sp, #8 ldr r1, _021FE434 ; =0x02215C30 @@ -330,10 +330,10 @@ _021FE400: ldmia sp!, {r4, r5, r6, pc} ; .align 2, 0 _021FE434: .word Unk_ov4_02215C30 - arm_func_end ov4_021FE3D8 + arm_func_end CheckValidKey - arm_func_start ov4_021FE438 -ov4_021FE438: ; 0x021FE438 + arm_func_start mytok +mytok: ; 0x021FE438 cmp r0, #0 ldrne r2, _021FE498 ; =0x0221B750 strne r0, [r2] @@ -362,15 +362,15 @@ _021FE45C: bx lr ; .align 2, 0 _021FE498: .word Unk_ov4_0221B750 - arm_func_end ov4_021FE438 + arm_func_end mytok - arm_func_start ov4_021FE49C -ov4_021FE49C: ; 0x021FE49C + arm_func_start SBServerParseKeyVals +SBServerParseKeyVals: ; 0x021FE49C stmfd sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} mov sl, r0 add r0, r1, #1 mov r1, #0x5c - bl ov4_021FE438 + bl mytok movs r8, r0 ldmeqia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} mov r4, #0 @@ -381,30 +381,30 @@ ov4_021FE49C: ; 0x021FE49C _021FE4CC: mov r0, r7 mov r1, r6 - bl ov4_021FE438 + bl mytok movs sb, r0 mov r0, r8 moveq sb, r5 - bl ov4_021FE3D8 + bl CheckValidKey cmp r0, #0 beq _021FE500 mov r0, sl mov r1, r8 mov r2, sb - bl ov4_021FE1A8 + bl SBServerAddKeyValue _021FE500: mov r0, r4 mov r1, fp - bl ov4_021FE438 + bl mytok movs r8, r0 bne _021FE4CC ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} ; .align 2, 0 _021FE518: .word Unk_ov4_02219F9C - arm_func_end ov4_021FE49C + arm_func_end SBServerParseKeyVals - arm_func_start ov4_021FE51C -ov4_021FE51C: ; 0x021FE51C + arm_func_start SBServerParseQR2FullKeys +SBServerParseQR2FullKeys: ; 0x021FE51C stmfd sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr} sub sp, sp, #0x8c mov sl, r1 @@ -416,7 +416,7 @@ ov4_021FE51C: ; 0x021FE51C _021FE53C: mov r0, sl mov r1, sb - bl ov4_021FF4AC + bl NTSLengthSB cmp r0, #0 addlt sp, sp, #0x8c ldmltia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc} @@ -425,7 +425,7 @@ _021FE53C: add sl, sl, r0 mov r0, sl mov r1, sb - bl ov4_021FF4AC + bl NTSLengthSB cmp r0, #0 addlt sp, sp, #0x8c ldmltia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc} @@ -434,7 +434,7 @@ _021FE53C: add sl, sl, r0 sub sb, sb, r0 mov r0, fp - bl ov4_021FE1A8 + bl SBServerAddKeyValue ldrsb r0, [sl] cmp r0, #0 bne _021FE53C @@ -469,7 +469,7 @@ _021FE5AC: _021FE604: mov r0, sl mov r1, sb - bl ov4_021FF4AC + bl NTSLengthSB cmp r0, #0 addlt sp, sp, #0x8c ldmltia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc} @@ -496,7 +496,7 @@ _021FE654: _021FE664: mov r0, sl mov r1, sb - bl ov4_021FF4AC + bl NTSLengthSB movs r4, r0 addmi sp, sp, #0x8c ldmmiia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc} @@ -508,7 +508,7 @@ _021FE664: mov r0, fp add r1, sp, #0xa mov r2, sl - bl ov4_021FE1A8 + bl SBServerAddKeyValue mov r0, r8 add sl, sl, r4 sub sb, sb, r4 @@ -533,10 +533,10 @@ _021FE6D4: ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc} ; .align 2, 0 _021FE6F0: .word Unk_ov4_02219FA0 - arm_func_end ov4_021FE51C + arm_func_end SBServerParseQR2FullKeys - arm_func_start ov4_021FE6F4 -ov4_021FE6F4: ; 0x021FE6F4 + arm_func_start StringHash +StringHash: ; 0x021FE6F4 stmfd sp!, {r3, lr} ldrsb lr, [r0] mov ip, #0 @@ -563,48 +563,48 @@ _021FE734: ; .align 2, 0 _021FE744: .word __lower_mapC _021FE748: .word 0x9CCF9319 - arm_func_end ov4_021FE6F4 + arm_func_end StringHash - arm_func_start ov4_021FE74C -ov4_021FE74C: ; 0x021FE74C + arm_func_start KeyValFree +KeyValFree: ; 0x021FE74C stmfd sp!, {r4, lr} mov r4, r0 ldr r1, [r4, #0] mov r0, #0 - bl ov4_021FF430 + bl SBReleaseStr ldr r1, [r4, #4] mov r0, #0 - bl ov4_021FF430 + bl SBReleaseStr ldmia sp!, {r4, pc} - arm_func_end ov4_021FE74C + arm_func_end KeyValFree - arm_func_start ov4_021FE770 -ov4_021FE770: ; 0x021FE770 - ldr ip, _021FE77C ; =ov4_021FE6F4 + arm_func_start KeyValHashKey +KeyValHashKey: ; 0x021FE770 + ldr ip, _021FE77C ; =StringHash ldr r0, [r0, #0] bx ip ; .align 2, 0 -_021FE77C: .word ov4_021FE6F4 - arm_func_end ov4_021FE770 +_021FE77C: .word StringHash + arm_func_end KeyValHashKey - arm_func_start ov4_021FE780 -ov4_021FE780: ; 0x021FE780 + arm_func_start KeyValCompareKey +KeyValCompareKey: ; 0x021FE780 ldr ip, _021FE790 ; =strcasecmp ldr r0, [r0, #0] ldr r1, [r1, #0] bx ip ; .align 2, 0 _021FE790: .word strcasecmp - arm_func_end ov4_021FE780 + arm_func_end KeyValCompareKey - arm_func_start ov4_021FE794 -ov4_021FE794: ; 0x021FE794 + arm_func_start SBServerGetPing +SBServerGetPing: ; 0x021FE794 ldr r0, [r0, #0x1c] bx lr - arm_func_end ov4_021FE794 + arm_func_end SBServerGetPing - arm_func_start ov4_021FE79C -ov4_021FE79C: ; 0x021FE79C + arm_func_start SBAllocServer +SBAllocServer: ; 0x021FE79C stmfd sp!, {r4, r5, r6, lr} sub sp, sp, #8 mov r0, #0x24 @@ -615,11 +615,11 @@ ov4_021FE79C: ; 0x021FE79C addeq sp, sp, #8 moveq r0, #0 ldmeqia sp!, {r4, r5, r6, pc} - ldr r1, _021FE83C ; =ov4_021FE780 - ldr ip, _021FE840 ; =ov4_021FE74C + ldr r1, _021FE83C ; =KeyValCompareKey + ldr ip, _021FE840 ; =KeyValFree str r1, [sp] mov r0, #8 - ldr r3, _021FE844 ; =ov4_021FE770 + ldr r3, _021FE844 ; =KeyValHashKey mov r1, r0 mov r2, #4 str ip, [sp, #4] @@ -647,44 +647,44 @@ _021FE808: add sp, sp, #8 ldmia sp!, {r4, r5, r6, pc} ; .align 2, 0 -_021FE83C: .word ov4_021FE780 -_021FE840: .word ov4_021FE74C -_021FE844: .word ov4_021FE770 - arm_func_end ov4_021FE79C +_021FE83C: .word KeyValCompareKey +_021FE840: .word KeyValFree +_021FE844: .word KeyValHashKey + arm_func_end SBAllocServer - arm_func_start ov4_021FE848 -ov4_021FE848: ; 0x021FE848 + arm_func_start SBServerSetFlags +SBServerSetFlags: ; 0x021FE848 strb r1, [r0, #0x15] bx lr - arm_func_end ov4_021FE848 + arm_func_end SBServerSetFlags - arm_func_start ov4_021FE850 -ov4_021FE850: ; 0x021FE850 + arm_func_start SBServerSetPrivateAddr +SBServerSetPrivateAddr: ; 0x021FE850 str r1, [r0, #8] strh r2, [r0, #0xc] bx lr - arm_func_end ov4_021FE850 + arm_func_end SBServerSetPrivateAddr - arm_func_start ov4_021FE85C -ov4_021FE85C: ; 0x021FE85C + arm_func_start SBServerSetICMPIP +SBServerSetICMPIP: ; 0x021FE85C str r1, [r0, #0x10] bx lr - arm_func_end ov4_021FE85C + arm_func_end SBServerSetICMPIP - arm_func_start ov4_021FE864 -ov4_021FE864: ; 0x021FE864 + arm_func_start SBServerSetState +SBServerSetState: ; 0x021FE864 strb r1, [r0, #0x14] bx lr - arm_func_end ov4_021FE864 + arm_func_end SBServerSetState - arm_func_start ov4_021FE86C -ov4_021FE86C: ; 0x021FE86C + arm_func_start SBServerGetState +SBServerGetState: ; 0x021FE86C ldrb r0, [r0, #0x14] bx lr - arm_func_end ov4_021FE86C + arm_func_end SBServerGetState - arm_func_start ov4_021FE874 -ov4_021FE874: ; 0x021FE874 + arm_func_start SBIsNullServer +SBIsNullServer: ; 0x021FE874 ldr r1, _021FE88C ; =0x0221B750 ldr r1, [r1, #4] cmp r0, r1 @@ -693,7 +693,7 @@ ov4_021FE874: ; 0x021FE874 bx lr ; .align 2, 0 _021FE88C: .word Unk_ov4_0221B750 - arm_func_end ov4_021FE874 + arm_func_end SBIsNullServer .rodata diff --git a/subprojects/gamespy/libraries/serverbrowsing/asm/sb_serverbrowsing.s b/subprojects/gamespy/libraries/serverbrowsing/asm/sb_serverbrowsing.s index 908c0f9fa3..6db04d4984 100644 --- a/subprojects/gamespy/libraries/serverbrowsing/asm/sb_serverbrowsing.s +++ b/subprojects/gamespy/libraries/serverbrowsing/asm/sb_serverbrowsing.s @@ -8,8 +8,8 @@ .text - arm_func_start ov4_021FE890 -ov4_021FE890: ; 0x021FE890 + arm_func_start ListCallback +ListCallback: ; 0x021FE890 stmfd sp!, {r4, r5, r6, lr} mov r6, r0 mov r5, r2 @@ -57,7 +57,7 @@ _021FE92C: mov r0, r4 mov r1, r5 mov r2, #0 - bl ov4_021FDB80 + bl SBQueryEngineUpdateServer b _021FEA14 _021FE940: ldrb r0, [r5, #0x14] @@ -80,7 +80,7 @@ _021FE974: beq _021FE98C mov r0, r4 mov r1, r5 - bl ov4_021FE080 + bl SBQueryEngineRemoveServerFromFIFOs _021FE98C: ldr r3, [r4, #0x634] ldr ip, [r4, #0x630] @@ -93,7 +93,7 @@ _021FE9A8: ldr r1, [r4, #0x620] cmp r1, #0 beq _021FE9B8 - bl ov4_021FFDE0 + bl SBServerListDisconnect _021FE9B8: ldr r0, [r6, #4] bl ArrayLength @@ -119,7 +119,7 @@ _021FE9EC: _021FEA08: ldr r1, [r4, #0x4ec] mov r0, r4 - bl ov4_021FDB30 + bl SBQueryEngineSetPublicIP _021FEA14: cmp r5, #0 ldmeqia sp!, {r4, r5, r6, pc} @@ -134,10 +134,10 @@ _021FEA14: moveq r0, #0 streq r0, [r4, #0x628] ldmia sp!, {r4, r5, r6, pc} - arm_func_end ov4_021FE890 + arm_func_end ListCallback - arm_func_start ov4_021FEA48 -ov4_021FEA48: ; 0x021FEA48 + arm_func_start EngineCallback +EngineCallback: ; 0x021FEA48 stmfd sp!, {r3, r4, r5, lr} mov r5, r2 mov r4, r3 @@ -182,7 +182,7 @@ _021FEAB4: moveq r0, #0 streq r0, [r4, #0x628] ldmia sp!, {r3, r4, r5, pc} - arm_func_end ov4_021FEA48 + arm_func_end EngineCallback arm_func_start ServerBrowserNewA ServerBrowserNewA: ; 0x021FEAE8 @@ -216,7 +216,7 @@ _021FEB24: str r0, [r4, #0x624] ldr r1, [sp, #0x30] str r5, [sp] - ldr r0, _021FEBB4 ; =ov4_021FE890 + ldr r0, _021FEBB4 ; =ListCallback str r1, [sp, #4] str r0, [sp, #8] mov r1, r8 @@ -224,23 +224,23 @@ _021FEB24: mov r3, r6 add r0, r4, #0x4c str r4, [sp, #0xc] - bl ov4_021FF4DC - ldr r0, _021FEBB8 ; =ov4_021FEA48 + bl SBServerListInit + ldr r0, _021FEBB8 ; =EngineCallback ldr r1, [sp, #0x28] str r0, [sp] ldr r2, [sp, #0x2c] ldr r3, [sp, #0x30] mov r0, r4 str r4, [sp, #4] - bl ov4_021FDABC + bl SBQueryEngineInit mov r0, r4 add sp, sp, #0x10 ldmia sp!, {r4, r5, r6, r7, r8, pc} ; .align 2, 0 _021FEBAC: .word Unk_ov4_0221AE50 _021FEBB0: .word 0x00000638 -_021FEBB4: .word ov4_021FE890 -_021FEBB8: .word ov4_021FEA48 +_021FEBB4: .word ListCallback +_021FEBB8: .word EngineCallback arm_func_end ServerBrowserNewA arm_func_start ServerBrowserFree @@ -248,16 +248,16 @@ ServerBrowserFree: ; 0x021FEBBC stmfd sp!, {r4, lr} mov r4, r0 add r0, r4, #0x4c - bl ov4_021FFE44 + bl SBServerListCleanup mov r0, r4 - bl ov4_021FDB54 + bl SBEngineCleanup mov r0, r4 bl DWCi_GsFree ldmia sp!, {r4, pc} arm_func_end ServerBrowserFree - arm_func_start ov4_021FEBE0 -ov4_021FEBE0: ; 0x021FEBE0 + arm_func_start ServerBrowserBeginUpdate2 +ServerBrowserBeginUpdate2: ; 0x021FEBE0 stmfd sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} sub sp, sp, #0x108 ldr r8, [sp, #0x130] @@ -299,7 +299,7 @@ _021FEC40: add r5, r5, r0 ldrb r1, [sb, r6] mov r0, sl - bl ov4_021FE060 + bl SBQueryEngineAddQueryKey add r6, r6, #1 cmp r6, r8 blt _021FEC40 @@ -310,7 +310,7 @@ _021FEC8C: add r1, sp, #8 add r0, sl, #0x4c str r4, [sp] - bl ov4_021FFAC8 + bl SBServerListConnectAndQuery cmp r0, #0 addne sp, sp, #0x108 ldmneia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} @@ -340,7 +340,7 @@ _021FECDC: ; .align 2, 0 _021FED08: .word Unk_ov4_02219B38 _021FED0C: .word Unk_ov4_02219FA8 - arm_func_end ov4_021FEBE0 + arm_func_end ServerBrowserBeginUpdate2 arm_func_start ServerBrowserLimitUpdateA ServerBrowserLimitUpdateA: ; 0x021FED10 @@ -354,7 +354,7 @@ ServerBrowserLimitUpdateA: ; 0x021FED10 ldr ip, [sp, #0x20] str lr, [sp, #8] str ip, [sp, #0xc] - bl ov4_021FEBE0 + bl ServerBrowserBeginUpdate2 add sp, sp, #0x10 ldmia sp!, {r3, pc} arm_func_end ServerBrowserLimitUpdateA @@ -380,7 +380,7 @@ ServerBrowserSendMessageToServerA: ; 0x021FED44 mov r3, r4 add r0, r5, #0x4c mov r2, r2, lsr #0x10 - bl ov4_022011B4 + bl SBSendMessageToServer add sp, sp, #4 ldmia sp!, {r3, r4, r5, r6, pc} arm_func_end ServerBrowserSendMessageToServerA @@ -403,7 +403,7 @@ ServerBrowserSendNatNegotiateCookieToServerA: ; 0x021FED9C mov r3, r4 add r0, r5, #0x4c mov r2, r2, lsr #0x10 - bl ov4_022012DC + bl SBSendNatNegotiateCookieToServer ldmia sp!, {r4, r5, r6, pc} arm_func_end ServerBrowserSendNatNegotiateCookieToServerA @@ -412,13 +412,13 @@ ServerBrowserRemoveServer: ; 0x021FEDE4 stmfd sp!, {r4, lr} mov r4, r0 add r0, r4, #0x4c - bl ov4_021FF180 + bl SBServerListFindServer mov r1, r0 mvn r0, #0 cmp r1, r0 ldmeqia sp!, {r4, pc} add r0, r4, #0x4c - bl ov4_021FF278 + bl SBServerListRemoveAt ldmia sp!, {r4, pc} arm_func_end ServerBrowserRemoveServer @@ -426,30 +426,30 @@ ServerBrowserRemoveServer: ; 0x021FEDE4 ServerBrowserThink: ; 0x021FEE10 stmfd sp!, {r4, lr} mov r4, r0 - bl ov4_021FE000 + bl SBQueryEngineThink add r0, r4, #0x4c - bl ov4_022014B8 + bl SBListThink ldmia sp!, {r4, pc} arm_func_end ServerBrowserThink - arm_func_start ov4_021FEE28 -ov4_021FEE28: ; 0x021FEE28 + arm_func_start ServerBrowserHalt +ServerBrowserHalt: ; 0x021FEE28 stmfd sp!, {r4, lr} mov r4, r0 add r0, r4, #0x4c - bl ov4_021FFDE0 + bl SBServerListDisconnect mov r0, r4 - bl ov4_021FDB38 + bl SBEngineHaltUpdates ldmia sp!, {r4, pc} - arm_func_end ov4_021FEE28 + arm_func_end ServerBrowserHalt arm_func_start ServerBrowserClear ServerBrowserClear: ; 0x021FEE44 stmfd sp!, {r4, lr} mov r4, r0 - bl ov4_021FEE28 + bl ServerBrowserHalt add r0, r4, #0x4c - bl ov4_021FF340 + bl SBServerListClear ldmia sp!, {r4, pc} arm_func_end ServerBrowserClear @@ -472,29 +472,29 @@ ServerBrowserState: ; 0x021FEE5C arm_func_start ServerBrowserGetServer ServerBrowserGetServer: ; 0x021FEE90 - ldr ip, _021FEE9C ; =ov4_021FF2D4 + ldr ip, _021FEE9C ; =SBServerListNth add r0, r0, #0x4c bx ip ; .align 2, 0 -_021FEE9C: .word ov4_021FF2D4 +_021FEE9C: .word SBServerListNth arm_func_end ServerBrowserGetServer arm_func_start ServerBrowserCount ServerBrowserCount: ; 0x021FEEA0 - ldr ip, _021FEEAC ; =ov4_021FF2C4 + ldr ip, _021FEEAC ; =SBServerListCount add r0, r0, #0x4c bx ip ; .align 2, 0 -_021FEEAC: .word ov4_021FF2C4 +_021FEEAC: .word SBServerListCount arm_func_end ServerBrowserCount arm_func_start ServerBrowserSortA ServerBrowserSortA: ; 0x021FEEB0 - ldr ip, _021FEEBC ; =ov4_021FF0CC + ldr ip, _021FEEBC ; =SBServerListSort add r0, r0, #0x4c bx ip ; .align 2, 0 -_021FEEBC: .word ov4_021FF0CC +_021FEEBC: .word SBServerListSort arm_func_end ServerBrowserSortA arm_func_start ServerBrowserGetMyPublicIPAddr diff --git a/subprojects/gamespy/libraries/serverbrowsing/asm/sb_serverlist.s b/subprojects/gamespy/libraries/serverbrowsing/asm/sb_serverlist.s index c7cacd1d8e..306afec024 100644 --- a/subprojects/gamespy/libraries/serverbrowsing/asm/sb_serverlist.s +++ b/subprojects/gamespy/libraries/serverbrowsing/asm/sb_serverlist.s @@ -8,8 +8,8 @@ .text - arm_func_start ov4_021FEEC8 -ov4_021FEEC8: ; 0x021FEEC8 + arm_func_start IntKeyCompare +IntKeyCompare: ; 0x021FEEC8 stmfd sp!, {r3, r4, r5, lr} ldr r2, _021FEF20 ; =0x0221B75C ldr r0, [r0, #0] @@ -34,10 +34,10 @@ ov4_021FEEC8: ; 0x021FEEC8 ldmia sp!, {r3, r4, r5, pc} ; .align 2, 0 _021FEF20: .word Unk_ov4_0221B75C - arm_func_end ov4_021FEEC8 + arm_func_end IntKeyCompare - arm_func_start ov4_021FEF24 -ov4_021FEF24: ; 0x021FEF24 + arm_func_start FloatKeyCompare +FloatKeyCompare: ; 0x021FEF24 stmfd sp!, {r4, r5, r6, lr} ldr r3, _021FEFF8 ; =0x0221B75C mov r2, #0 @@ -46,7 +46,7 @@ ov4_021FEF24: ; 0x021FEF24 ldr r0, [r0, #0] ldr r1, [r3, #0x498] mov r3, r2 - bl ov4_021FE31C + bl SBServerGetFloatValueA ldr r3, _021FEFF8 ; =0x0221B75C mov r2, #0 mov r4, r0 @@ -55,7 +55,7 @@ ov4_021FEF24: ; 0x021FEF24 ldr r1, [r0, #0x498] mov r0, r5 mov r3, r2 - bl ov4_021FE31C + bl SBServerGetFloatValueA mov r2, r0 mov r3, r1 mov r0, r4 @@ -94,10 +94,10 @@ _021FEFB8: ldmia sp!, {r4, r5, r6, pc} ; .align 2, 0 _021FEFF8: .word Unk_ov4_0221B75C - arm_func_end ov4_021FEF24 + arm_func_end FloatKeyCompare - arm_func_start ov4_021FEFFC -ov4_021FEFFC: ; 0x021FEFFC + arm_func_start StrCaseKeyCompare +StrCaseKeyCompare: ; 0x021FEFFC stmfd sp!, {r3, r4, r5, lr} ldr r2, _021FF05C ; =0x0221B75C mov r5, r1 @@ -105,14 +105,14 @@ ov4_021FEFFC: ; 0x021FEFFC ldr r0, [r0, #0] ldr r1, [r1, #0x498] ldr r2, _021FF060 ; =0x0221A038 - bl ov4_021FE220 + bl SBServerGetStringValueA ldr r1, _021FF05C ; =0x0221B75C mov r4, r0 ldr r1, [r1, #0] ldr r0, [r5, #0] ldr r1, [r1, #0x498] ldr r2, _021FF060 ; =0x0221A038 - bl ov4_021FE220 + bl SBServerGetStringValueA mov r1, r0 mov r0, r4 bl strcmp @@ -125,10 +125,10 @@ ov4_021FEFFC: ; 0x021FEFFC ; .align 2, 0 _021FF05C: .word Unk_ov4_0221B75C _021FF060: .word Unk_ov4_0221A038 - arm_func_end ov4_021FEFFC + arm_func_end StrCaseKeyCompare - arm_func_start ov4_021FF064 -ov4_021FF064: ; 0x021FF064 + arm_func_start StrNoCaseKeyCompare +StrNoCaseKeyCompare: ; 0x021FF064 stmfd sp!, {r3, r4, r5, lr} ldr r2, _021FF0C4 ; =0x0221B75C mov r5, r1 @@ -136,14 +136,14 @@ ov4_021FF064: ; 0x021FF064 ldr r0, [r0, #0] ldr r1, [r1, #0x498] ldr r2, _021FF0C8 ; =0x0221A038 - bl ov4_021FE220 + bl SBServerGetStringValueA ldr r1, _021FF0C4 ; =0x0221B75C mov r4, r0 ldr r1, [r1, #0] ldr r0, [r5, #0] ldr r1, [r1, #0x498] ldr r2, _021FF0C8 ; =0x0221A038 - bl ov4_021FE220 + bl SBServerGetStringValueA mov r1, r0 mov r0, r4 bl strcasecmp @@ -156,10 +156,10 @@ ov4_021FF064: ; 0x021FF064 ; .align 2, 0 _021FF0C4: .word Unk_ov4_0221B75C _021FF0C8: .word Unk_ov4_0221A038 - arm_func_end ov4_021FF064 + arm_func_end StrNoCaseKeyCompare - arm_func_start ov4_021FF0CC -ov4_021FF0CC: ; 0x021FF0CC + arm_func_start SBServerListSort +SBServerListSort: ; 0x021FF0CC cmp r3, #3 addls pc, pc, r3, lsl #2 b _021FF108 @@ -169,19 +169,19 @@ _021FF0D8: ; jump table b _021FF0F8 ; case 2 b _021FF100 ; case 3 _021FF0E8: - ldr r3, _021FF12C ; =ov4_021FEEC8 + ldr r3, _021FF12C ; =IntKeyCompare b _021FF10C _021FF0F0: - ldr r3, _021FF130 ; =ov4_021FEF24 + ldr r3, _021FF130 ; =FloatKeyCompare b _021FF10C _021FF0F8: - ldr r3, _021FF134 ; =ov4_021FEFFC + ldr r3, _021FF134 ; =StrCaseKeyCompare b _021FF10C _021FF100: - ldr r3, _021FF138 ; =ov4_021FF064 + ldr r3, _021FF138 ; =StrNoCaseKeyCompare b _021FF10C _021FF108: - ldr r3, _021FF138 ; =ov4_021FF064 + ldr r3, _021FF138 ; =StrNoCaseKeyCompare _021FF10C: str r2, [r0, #0x498] str r1, [r0, #0x49c] @@ -192,16 +192,16 @@ _021FF10C: ldr r0, [r0, #4] bx ip ; .align 2, 0 -_021FF12C: .word ov4_021FEEC8 -_021FF130: .word ov4_021FEF24 -_021FF134: .word ov4_021FEFFC -_021FF138: .word ov4_021FF064 +_021FF12C: .word IntKeyCompare +_021FF130: .word FloatKeyCompare +_021FF134: .word StrCaseKeyCompare +_021FF138: .word StrNoCaseKeyCompare _021FF13C: .word Unk_ov4_0221B75C _021FF140: .word ArraySort - arm_func_end ov4_021FF0CC + arm_func_end SBServerListSort - arm_func_start ov4_021FF144 -ov4_021FF144: ; 0x021FF144 + arm_func_start SBServerListAppendServer +SBServerListAppendServer: ; 0x021FF144 stmfd sp!, {r0, r1, r2, r3} stmfd sp!, {r4, lr} mov r4, r0 @@ -217,10 +217,10 @@ ov4_021FF144: ; 0x021FF144 ldmia sp!, {r4, lr} add sp, sp, #0x10 bx lr - arm_func_end ov4_021FF144 + arm_func_end SBServerListAppendServer - arm_func_start ov4_021FF180 -ov4_021FF180: ; 0x021FF180 + arm_func_start SBServerListFindServer +SBServerListFindServer: ; 0x021FF180 stmfd sp!, {r3, r4, r5, r6, r7, lr} mov r7, r0 ldr r0, [r7, #4] @@ -244,10 +244,10 @@ _021FF1A4: _021FF1CC: mvn r0, #0 ldmia sp!, {r3, r4, r5, r6, r7, pc} - arm_func_end ov4_021FF180 + arm_func_end SBServerListFindServer - arm_func_start ov4_021FF1D4 -ov4_021FF1D4: ; 0x021FF1D4 + arm_func_start SBServerListFindServerByIP +SBServerListFindServerByIP: ; 0x021FF1D4 stmfd sp!, {r3, r4, r5, r6, r7, r8, sb, lr} mov sb, r0 ldr r0, [sb, #4] @@ -268,7 +268,7 @@ _021FF1FC: cmp r8, r0 bne _021FF230 mov r0, r5 - bl ov4_021FE37C + bl SBServerGetPublicQueryPortNBO cmp r7, r0 moveq r0, r6 ldmeqia sp!, {r3, r4, r5, r6, r7, r8, sb, pc} @@ -279,10 +279,10 @@ _021FF230: _021FF23C: mvn r0, #0 ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, pc} - arm_func_end ov4_021FF1D4 + arm_func_end SBServerListFindServerByIP - arm_func_start ov4_021FF244 -ov4_021FF244: ; 0x021FF244 + arm_func_start AddServerToDeadlist +AddServerToDeadlist: ; 0x021FF244 stmfd sp!, {r3, r4, r5, lr} mov r5, r0 mov r4, r1 @@ -291,17 +291,17 @@ ov4_021FF244: ; 0x021FF244 cmp r1, #0 bne _021FF26C mov r1, #0 - bl ov4_021FE3C8 + bl SBServerSetNext b _021FF270 _021FF26C: - bl ov4_021FE3C8 + bl SBServerSetNext _021FF270: str r4, [r5, #0x5d0] ldmia sp!, {r3, r4, r5, pc} - arm_func_end ov4_021FF244 + arm_func_end AddServerToDeadlist - arm_func_start ov4_021FF278 -ov4_021FF278: ; 0x021FF278 + arm_func_start SBServerListRemoveAt +SBServerListRemoveAt: ; 0x021FF278 stmfd sp!, {r4, r5, r6, lr} mov r6, r0 ldr r0, [r6, #4] @@ -319,30 +319,30 @@ ov4_021FF278: ; 0x021FF278 bl ArrayDeleteAt mov r0, r6 mov r1, r4 - bl ov4_021FF244 + bl AddServerToDeadlist ldmia sp!, {r4, r5, r6, pc} - arm_func_end ov4_021FF278 + arm_func_end SBServerListRemoveAt - arm_func_start ov4_021FF2C4 -ov4_021FF2C4: ; 0x021FF2C4 + arm_func_start SBServerListCount +SBServerListCount: ; 0x021FF2C4 ldr ip, _021FF2D0 ; =ArrayLength ldr r0, [r0, #4] bx ip ; .align 2, 0 _021FF2D0: .word ArrayLength - arm_func_end ov4_021FF2C4 + arm_func_end SBServerListCount - arm_func_start ov4_021FF2D4 -ov4_021FF2D4: ; 0x021FF2D4 + arm_func_start SBServerListNth +SBServerListNth: ; 0x021FF2D4 stmfd sp!, {r3, lr} ldr r0, [r0, #4] bl ArrayNth ldr r0, [r0, #0] ldmia sp!, {r3, pc} - arm_func_end ov4_021FF2D4 + arm_func_end SBServerListNth - arm_func_start ov4_021FF2E8 -ov4_021FF2E8: ; 0x021FF2E8 + arm_func_start SBFreeDeadList +SBFreeDeadList: ; 0x021FF2E8 stmfd sp!, {r3, r4, r5, r6, lr} sub sp, sp, #4 mov r6, r0 @@ -355,10 +355,10 @@ ov4_021FF2E8: ; 0x021FF2E8 add r4, sp, #0 _021FF310: mov r0, r5 - bl ov4_021FE3D0 + bl SBServerGetNext mov r5, r0 mov r0, r4 - bl ov4_021FE184 + bl SBServerFree str r5, [sp] cmp r5, #0 bne _021FF310 @@ -367,10 +367,10 @@ _021FF330: str r0, [r6, #0x5d0] add sp, sp, #4 ldmia sp!, {r3, r4, r5, r6, pc} - arm_func_end ov4_021FF2E8 + arm_func_end SBFreeDeadList - arm_func_start ov4_021FF340 -ov4_021FF340: ; 0x021FF340 + arm_func_start SBServerListClear +SBServerListClear: ; 0x021FF340 stmfd sp!, {r4, r5, r6, lr} mov r6, r0 ldr r0, [r6, #4] @@ -385,7 +385,7 @@ _021FF360: bl ArrayNth ldr r1, [r0, #0] mov r0, r6 - bl ov4_021FF244 + bl AddServerToDeadlist add r4, r4, #1 cmp r4, r5 blt _021FF360 @@ -393,12 +393,12 @@ _021FF384: ldr r0, [r6, #4] bl ArrayClear mov r0, r6 - bl ov4_021FF2E8 + bl SBFreeDeadList ldmia sp!, {r4, r5, r6, pc} - arm_func_end ov4_021FF340 + arm_func_end SBServerListClear - arm_func_start ov4_021FF398 -ov4_021FF398: ; 0x021FF398 + arm_func_start SBAllocateServerList +SBAllocateServerList: ; 0x021FF398 stmfd sp!, {r4, lr} mov r4, r0 mov r0, #4 @@ -409,16 +409,16 @@ ov4_021FF398: ; 0x021FF398 mov r0, #0 str r0, [r4, #0x5d0] ldmia sp!, {r4, pc} - arm_func_end ov4_021FF398 + arm_func_end SBAllocateServerList - arm_func_start ov4_021FF3C0 -ov4_021FF3C0: ; 0x021FF3C0 + arm_func_start SBRefStr +SBRefStr: ; 0x021FF3C0 stmfd sp!, {r3, r4, r5, lr} sub sp, sp, #8 mov r4, r1 mov r5, r0 str r4, [sp] - bl ov4_021FE0E0 + bl SBRefStrHash add r1, sp, #0 bl TableLookup cmp r0, #0 @@ -436,21 +436,21 @@ _021FF400: mov r1, #1 mov r0, r5 str r1, [sp, #4] - bl ov4_021FE0E0 + bl SBRefStrHash add r1, sp, #0 bl TableEnter ldr r0, [sp] add sp, sp, #8 ldmia sp!, {r3, r4, r5, pc} - arm_func_end ov4_021FF3C0 + arm_func_end SBRefStr - arm_func_start ov4_021FF430 -ov4_021FF430: ; 0x021FF430 + arm_func_start SBReleaseStr +SBReleaseStr: ; 0x021FF430 stmfd sp!, {r3, r4, r5, lr} sub sp, sp, #8 mov r5, r0 str r1, [sp] - bl ov4_021FE0E0 + bl SBRefStrHash add r1, sp, #0 bl TableLookup movs r4, r0 @@ -470,7 +470,7 @@ _021FF468: str r0, [r4, #4] ldmneia sp!, {r3, r4, r5, pc} mov r0, r5 - bl ov4_021FE0E0 + bl SBRefStrHash add r1, sp, #0 bl TableRemove add sp, sp, #8 @@ -479,10 +479,10 @@ _021FF468: _021FF4A0: .word Unk_ov4_0221A03C _021FF4A4: .word Unk_ov4_0221A048 _021FF4A8: .word Unk_ov4_02219FB0 - arm_func_end ov4_021FF430 + arm_func_end SBReleaseStr - arm_func_start ov4_021FF4AC -ov4_021FF4AC: ; 0x021FF4AC + arm_func_start NTSLengthSB +NTSLengthSB: ; 0x021FF4AC cmp r1, #0 mov r3, #0 ble _021FF4D4 @@ -497,10 +497,10 @@ _021FF4B8: _021FF4D4: mvn r0, #0 bx lr - arm_func_end ov4_021FF4AC + arm_func_end NTSLengthSB - arm_func_start ov4_021FF4DC -ov4_021FF4DC: ; 0x021FF4DC + arm_func_start SBServerListInit +SBServerListInit: ; 0x021FF4DC stmfd sp!, {r3, r4, r5, r6, r7, lr} movs r7, r0 mov r6, r1 @@ -524,9 +524,9 @@ _021FF524: mov r1, #1 mov r0, r7 str r1, [r7, #0] - bl ov4_021FF398 + bl SBAllocateServerList mov r0, r7 - bl ov4_021FE0E0 + bl SBRefStrHash mov r1, r6 add r0, r7, #0xc bl strcpy @@ -565,7 +565,7 @@ _021FF58C: str r3, [r7, #0x4a4] mov r0, r7 str r2, [r7, #0x4b8] - bl ov4_02200534 + bl SBSetLastListErrorPtr mov r0, #0 str r0, [r7, #0x5cc] bl current_time @@ -580,10 +580,10 @@ _021FF5F8: .word Unk_ov4_0221AE50 _021FF5FC: .word Unk_ov4_0221A068 _021FF600: .word 0x00000132 _021FF604: .word Unk_ov4_0221A038 - arm_func_end ov4_021FF4DC + arm_func_end SBServerListInit - arm_func_start ov4_021FF608 -ov4_021FF608: ; 0x021FF608 + arm_func_start ErrorDisconnect +ErrorDisconnect: ; 0x021FF608 stmfd sp!, {r3, r4, r5, r6, r7, lr} mov r4, r0 ldr r5, [r4, #0x80] @@ -611,7 +611,7 @@ ov4_021FF608: ; 0x021FF608 mov r1, r0 mov r0, r4 add r1, r5, r1 - bl ov4_02200534 + bl SBSetLastListErrorPtr ldr r0, _021FF6C0 ; =0x0221B754 ldr r3, [r4, #0x494] ldr r2, [r0, #0] @@ -628,15 +628,15 @@ _021FF694: mov r1, #4 blx ip mov r0, r4 - bl ov4_021FFDE0 + bl SBServerListDisconnect ldmia sp!, {r3, r4, r5, r6, r7, pc} ; .align 2, 0 _021FF6BC: .word Unk_ov4_02219FAC _021FF6C0: .word Unk_ov4_0221B754 - arm_func_end ov4_021FF608 + arm_func_end ErrorDisconnect - arm_func_start ov4_021FF6C4 -ov4_021FF6C4: ; 0x021FF6C4 + arm_func_start StringHash +StringHash: ; 0x021FF6C4 stmfd sp!, {r3, lr} ldrsb lr, [r0] mov ip, #0 @@ -663,16 +663,16 @@ _021FF704: ; .align 2, 0 _021FF714: .word __lower_mapC _021FF718: .word 0x9CCF9319 - arm_func_end ov4_021FF6C4 + arm_func_end StringHash - arm_func_start ov4_021FF71C -ov4_021FF71C: ; 0x021FF71C + arm_func_start ServerListConnect +ServerListConnect: ; 0x021FF71C stmfd sp!, {r4, lr} sub sp, sp, #0x88 mov r4, r0 add r0, r4, #0xc mov r1, #0x14 - bl ov4_021FF6C4 + bl StringHash ldr r1, _021FF83C ; =0x0221B75C mov r3, r0 ldr r1, [r1, #4] @@ -747,10 +747,10 @@ _021FF804: _021FF83C: .word Unk_ov4_0221B75C _021FF840: .word Unk_ov4_0221A07C _021FF844: .word 0x0000EE70 - arm_func_end ov4_021FF71C + arm_func_end ServerListConnect - arm_func_start ov4_021FF848 -ov4_021FF848: ; 0x021FF848 + arm_func_start BufferAddNTS +BufferAddNTS: ; 0x021FF848 stmfd sp!, {r3, r4, r5, r6, r7, lr} movs r7, r1 ldreq r7, _021FF894 ; =0x0221A038 @@ -772,10 +772,10 @@ ov4_021FF848: ; 0x021FF848 ldmia sp!, {r3, r4, r5, r6, r7, pc} ; .align 2, 0 _021FF894: .word Unk_ov4_0221A038 - arm_func_end ov4_021FF848 + arm_func_end BufferAddNTS - arm_func_start ov4_021FF898 -ov4_021FF898: ; 0x021FF898 + arm_func_start BufferAddByte +BufferAddByte: ; 0x021FF898 ldr r3, [r0, #0] strb r1, [r3] ldr r1, [r2, #0] @@ -785,10 +785,10 @@ ov4_021FF898: ; 0x021FF898 add r1, r1, #1 str r1, [r0, #0] bx lr - arm_func_end ov4_021FF898 + arm_func_end BufferAddByte - arm_func_start ov4_021FF8BC -ov4_021FF8BC: ; 0x021FF8BC + arm_func_start BufferAddInt +BufferAddInt: ; 0x021FF8BC stmfd sp!, {r0, r1, r2, r3} stmfd sp!, {r3, lr} add ip, sp, #0xc @@ -810,10 +810,10 @@ ov4_021FF8BC: ; 0x021FF8BC ldmia sp!, {r3, lr} add sp, sp, #0x10 bx lr - arm_func_end ov4_021FF8BC + arm_func_end BufferAddInt - arm_func_start ov4_021FF910 -ov4_021FF910: ; 0x021FF910 + arm_func_start BufferAddData +BufferAddData: ; 0x021FF910 stmfd sp!, {r4, r5, r6, lr} mov r6, r0 ldr r0, [r6, #0] @@ -827,10 +827,10 @@ ov4_021FF910: ; 0x021FF910 add r0, r0, r5 str r0, [r6, #0] ldmia sp!, {r4, r5, r6, pc} - arm_func_end ov4_021FF910 + arm_func_end BufferAddData - arm_func_start ov4_021FF944 -ov4_021FF944: ; 0x021FF944 + arm_func_start SetupListChallenge +SetupListChallenge: ; 0x021FF944 stmfd sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} mov sl, r0 bl rand @@ -895,10 +895,10 @@ _021FFA1C: ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} ; .align 2, 0 _021FFA2C: .word 0x2C0B02C1 - arm_func_end ov4_021FF944 + arm_func_end SetupListChallenge - arm_func_start ov4_021FFA30 -ov4_021FFA30: ; 0x021FFA30 + arm_func_start SendWithRetry +SendWithRetry: ; 0x021FFA30 stmfd sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} mov sl, r0 mov sb, r1 @@ -919,17 +919,17 @@ _021FFA4C: cmp r7, #0 blt _021FFAB8 mov r0, sl - bl ov4_021FFDE0 + bl SBServerListDisconnect mov r1, #0 mov r2, r1 mov r0, sl mov r3, fp str r2, [sp] - bl ov4_021FFAC8 + bl SBServerListConnectAndQuery movs r4, r0 beq _021FFAB0 mov r0, sl - bl ov4_021FF608 + bl ErrorDisconnect mov r0, r4 ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} _021FFAB0: @@ -940,10 +940,10 @@ _021FFAB8: movle r0, #3 movgt r0, #0 ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} - arm_func_end ov4_021FFA30 + arm_func_end SendWithRetry - arm_func_start ov4_021FFAC8 -ov4_021FFAC8: ; 0x021FFAC8 + arm_func_start SBServerListConnectAndQuery +SBServerListConnectAndQuery: ; 0x021FFAC8 stmfd sp!, {r4, r5, r6, r7, lr} sub sp, sp, #0x30c mov r5, r0 @@ -976,13 +976,13 @@ _021FFB00: movhi r0, #6 ldmhiia sp!, {r4, r5, r6, r7, pc} mov r0, r5 - bl ov4_021FF71C + bl ServerListConnect cmp r0, #0 addne sp, sp, #0x30c ldmneia sp!, {r4, r5, r6, r7, pc} mov r0, r5 str r4, [r5, #0x5c4] - bl ov4_021FF944 + bl SetupListChallenge add r3, sp, #0xe mov ip, #2 add r0, sp, #4 @@ -990,40 +990,40 @@ _021FFB00: mov r1, #0 str ip, [sp, #8] str r3, [sp, #4] - bl ov4_021FF898 + bl BufferAddByte add r0, sp, #4 add r2, sp, #8 mov r1, #1 - bl ov4_021FF898 + bl BufferAddByte add r0, sp, #4 mov r1, #3 add r2, sp, #8 - bl ov4_021FF898 + bl BufferAddByte ldr r1, [r5, #0x4b8] add r0, sp, #4 add r2, sp, #8 - bl ov4_021FF8BC + bl BufferAddInt add r0, sp, #4 add r1, r5, #0xc add r2, sp, #8 - bl ov4_021FF848 + bl BufferAddNTS add r0, sp, #4 add r1, r5, #0x30 add r2, sp, #8 - bl ov4_021FF848 + bl BufferAddNTS add r0, sp, #4 add r1, r5, #0x74 mov r2, #8 add r3, sp, #8 - bl ov4_021FF910 + bl BufferAddData mov r1, r6 add r0, sp, #4 add r2, sp, #8 - bl ov4_021FF848 + bl BufferAddNTS mov r1, r7 add r0, sp, #4 add r2, sp, #8 - bl ov4_021FF848 + bl BufferAddNTS mov r1, r4, lsl #0x18 and ip, r1, #0xff000000 mov r1, r4, lsl #8 @@ -1037,14 +1037,14 @@ _021FFB00: add r0, sp, #4 orr r1, ip, r1 add r2, sp, #8 - bl ov4_021FF8BC + bl BufferAddInt ldr r0, [r5, #0x5c4] tst r0, #8 beq _021FFC58 ldr r1, [r5, #0x4a4] add r0, sp, #4 add r2, sp, #8 - bl ov4_021FF8BC + bl BufferAddInt _021FFC58: ldr r0, [r5, #0x5c4] tst r0, #0x80 @@ -1052,7 +1052,7 @@ _021FFC58: ldr r1, [sp, #0x320] add r0, sp, #4 add r2, sp, #8 - bl ov4_021FF8BC + bl BufferAddInt _021FFC74: ldr r2, [sp, #8] add r4, sp, #0 @@ -1075,7 +1075,7 @@ _021FFC74: cmp r0, #0 bgt _021FFCD8 mov r0, r5 - bl ov4_021FFDE0 + bl SBServerListDisconnect add sp, sp, #0x30c mov r0, #3 ldmia sp!, {r4, r5, r6, r7, pc} @@ -1106,10 +1106,10 @@ _021FFD28: .word Unk_ov4_0221A048 _021FFD2C: .word Unk_ov4_0221A01C _021FFD30: .word 0x0000020A _021FFD34: .word Unk_ov4_0221A038 - arm_func_end ov4_021FFAC8 + arm_func_end SBServerListConnectAndQuery - arm_func_start ov4_021FFD38 -ov4_021FFD38: ; 0x021FFD38 + arm_func_start FreePopularValues +FreePopularValues: ; 0x021FFD38 stmfd sp!, {r3, r4, r5, lr} mov r5, r0 ldr r0, [r5, #0x480] @@ -1120,7 +1120,7 @@ _021FFD50: add r0, r5, r4, lsl #2 ldr r1, [r0, #0x84] mov r0, r5 - bl ov4_021FF430 + bl SBReleaseStr ldr r0, [r5, #0x480] add r4, r4, #1 cmp r4, r0 @@ -1129,10 +1129,10 @@ _021FFD70: mov r0, #0 str r0, [r5, #0x480] ldmia sp!, {r3, r4, r5, pc} - arm_func_end ov4_021FFD38 + arm_func_end FreePopularValues - arm_func_start ov4_021FFD7C -ov4_021FFD7C: ; 0x021FFD7C + arm_func_start FreeKeyList +FreeKeyList: ; 0x021FFD7C stmfd sp!, {r3, r4, r5, lr} mov r5, r0 ldr r0, [r5, #8] @@ -1148,7 +1148,7 @@ _021FFDA0: bl ArrayNth ldr r1, [r0, #0] mov r0, r5 - bl ov4_021FF430 + bl SBReleaseStr ldr r0, [r5, #8] add r4, r4, #1 bl ArrayLength @@ -1160,10 +1160,10 @@ _021FFDCC: mov r0, #0 str r0, [r5, #8] ldmia sp!, {r3, r4, r5, pc} - arm_func_end ov4_021FFD7C + arm_func_end FreeKeyList - arm_func_start ov4_021FFDE0 -ov4_021FFDE0: ; 0x021FFDE0 + arm_func_start SBServerListDisconnect +SBServerListDisconnect: ; 0x021FFDE0 stmfd sp!, {r4, lr} mov r4, r0 ldr r0, [r4, #0x7c] @@ -1185,23 +1185,23 @@ _021FFE18: str r1, [r4, #0x4b0] mov r1, #1 str r1, [r4, #0] - bl ov4_021FFD7C + bl FreeKeyList mvn r1, #0 mov r0, r4 str r1, [r4, #0x484] - bl ov4_021FFD38 + bl FreePopularValues ldmia sp!, {r4, pc} - arm_func_end ov4_021FFDE0 + arm_func_end SBServerListDisconnect - arm_func_start ov4_021FFE44 -ov4_021FFE44: ; 0x021FFE44 + arm_func_start SBServerListCleanup +SBServerListCleanup: ; 0x021FFE44 stmfd sp!, {r4, lr} mov r4, r0 - bl ov4_021FFDE0 + bl SBServerListDisconnect mov r0, r4 - bl ov4_021FF340 + bl SBServerListClear mov r0, r4 - bl ov4_021FE144 + bl SBRefStrHashCleanup ldr r0, [r4, #4] cmp r0, #0 beq _021FFE70 @@ -1210,10 +1210,10 @@ _021FFE70: mov r0, #0 str r0, [r4, #4] ldmia sp!, {r4, pc} - arm_func_end ov4_021FFE44 + arm_func_end SBServerListCleanup - arm_func_start ov4_021FFE7C -ov4_021FFE7C: ; 0x021FFE7C + arm_func_start InitCryptKey +InitCryptKey: ; 0x021FFE7C stmfd sp!, {r3, r4, r5, r6, r7, r8, sb, lr} mov sb, r0 mov r7, r2 @@ -1254,12 +1254,12 @@ _021FFF04: add r0, r0, #0x400 add r1, sb, #0x74 mov r2, #8 - bl ov4_021FD5FC + bl GOACryptInit ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, pc} - arm_func_end ov4_021FFE7C + arm_func_end InitCryptKey - arm_func_start ov4_021FFF1C -ov4_021FFF1C: ; 0x021FFF1C + arm_func_start ServerSizeForFlags +ServerSizeForFlags: ; 0x021FFF1C mov r1, #5 tst r0, #2 addne r1, r1, #4 @@ -1271,10 +1271,10 @@ ov4_021FFF1C: ; 0x021FFF1C addne r1, r1, #2 mov r0, r1 bx lr - arm_func_end ov4_021FFF1C + arm_func_end ServerSizeForFlags - arm_func_start ov4_021FFF48 -ov4_021FFF48: ; 0x021FFF48 + arm_func_start FullRulesPresent +FullRulesPresent: ; 0x021FFF48 stmfd sp!, {r3, r4, r5, lr} mov r5, r0 mov r4, r1 @@ -1282,7 +1282,7 @@ ov4_021FFF48: ; 0x021FFF48 _021FFF58: mov r0, r5 mov r1, r4 - bl ov4_021FF4AC + bl NTSLengthSB cmp r0, #0 movlt r0, #0 ldmltia sp!, {r3, r4, r5, pc} @@ -1290,7 +1290,7 @@ _021FFF58: add r5, r5, r0 mov r0, r5 mov r1, r4 - bl ov4_021FF4AC + bl NTSLengthSB cmp r0, #0 movlt r0, #0 ldmltia sp!, {r3, r4, r5, pc} @@ -1311,10 +1311,10 @@ _021FFFAC: moveq r0, #1 movne r0, #0 ldmia sp!, {r3, r4, r5, pc} - arm_func_end ov4_021FFF48 + arm_func_end FullRulesPresent - arm_func_start ov4_021FFFCC -ov4_021FFFCC: ; 0x021FFFCC + arm_func_start AllKeysPresent +AllKeysPresent: ; 0x021FFFCC stmfd sp!, {r3, r4, r5, r6, r7, r8, sb, lr} mov r8, r0 ldr r0, [r8, #8] @@ -1356,7 +1356,7 @@ _0220003C: bne _02200098 mov r0, r7 mov r1, r6 - bl ov4_021FF4AC + bl NTSLengthSB cmp r0, sb moveq r0, #0 ldmeqia sp!, {r3, r4, r5, r6, r7, r8, sb, pc} @@ -1386,10 +1386,10 @@ _022000B8: .word Unk_ov4_0221A0B8 _022000BC: .word Unk_ov4_0221A048 _022000C0: .word Unk_ov4_02219FD0 _022000C4: .word 0x00000317 - arm_func_end ov4_021FFFCC + arm_func_end AllKeysPresent - arm_func_start ov4_022000C8 -ov4_022000C8: ; 0x022000C8 + arm_func_start ParseServerIPPort +ParseServerIPPort: ; 0x022000C8 stmfd sp!, {r4, lr} cmp r2, #5 ldmltia sp!, {r4, pc} @@ -1419,10 +1419,10 @@ _02200124: ldr r0, [sp, #8] strh r1, [r0] ldmia sp!, {r4, pc} - arm_func_end ov4_022000C8 + arm_func_end ParseServerIPPort - arm_func_start ov4_02200138 -ov4_02200138: ; 0x02200138 + arm_func_start ParseServer +ParseServer: ; 0x02200138 stmfd sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} sub sp, sp, #0x10 mov r8, r2 @@ -1435,7 +1435,7 @@ ov4_02200138: ; 0x02200138 mov r1, r2 str r7, [sp, #4] ldr r6, [sp, #0x38] - bl ov4_021FE848 + bl SBServerSetFlags ldr r0, [sp] sub r7, r7, #5 tst r0, #0x10 @@ -1475,7 +1475,7 @@ _022001F4: ldrh r2, [sp, #8] ldr r1, [sp, #0xc] mov r0, sb - bl ov4_021FE850 + bl SBServerSetPrivateAddr ldr r0, [sp] tst r0, #8 beq _02200248 @@ -1492,7 +1492,7 @@ _022001F4: strb r2, [r3, #2] strb r1, [r3, #3] ldr r1, [sp, #0xc] - bl ov4_021FE85C + bl SBServerSetICMPIP _02200248: ldr r0, [sp] tst r0, #0x40 @@ -1553,7 +1553,7 @@ _02200300: ldr r1, [r1, #0] mov r0, sb mov r2, r8 - bl ov4_021FE1A8 + bl SBServerAddKeyValue mov r0, r8 bl strlen add r0, r0, #1 @@ -1565,18 +1565,18 @@ _02200340: ldr r1, [r1, #0] ldr r2, [r0, #0x84] mov r0, sb - bl ov4_021FE1A8 + bl SBServerAddKeyValue _02200354: add r5, r5, #1 cmp r5, r4 blt _02200270 _02200360: mov r0, sb - bl ov4_021FE86C + bl SBServerGetState orr r1, r0, #1 mov r0, sb and r1, r1, #0xff - bl ov4_021FE864 + bl SBServerSetState _02200378: ldr r0, [sp] tst r0, #0x80 @@ -1592,7 +1592,7 @@ _02200388: mov r1, r4 mov r2, r8 sub r7, r7, r3 - bl ov4_021FE1A8 + bl SBServerAddKeyValue mov r0, r8 bl strlen add r0, r0, #1 @@ -1607,20 +1607,20 @@ _022003C4: _022003D8: mov r0, sb sub r7, r7, #1 - bl ov4_021FE86C + bl SBServerGetState orr r1, r0, #2 mov r0, sb and r1, r1, #0xff - bl ov4_021FE864 + bl SBServerSetState _022003F4: ldr r0, [sp, #4] sub r0, r0, r7 add sp, sp, #0x10 ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} - arm_func_end ov4_02200138 + arm_func_end ParseServer - arm_func_start ov4_02200404 -ov4_02200404: ; 0x02200404 + arm_func_start IncomingListParseServer +IncomingListParseServer: ; 0x02200404 stmfd sp!, {r3, r4, r5, r6, r7, r8, lr} sub sp, sp, #0xc mov r4, r2 @@ -1632,7 +1632,7 @@ ov4_02200404: ; 0x02200404 ldmltia sp!, {r3, r4, r5, r6, r7, r8, pc} ldrb r8, [r5] mov r0, r8 - bl ov4_021FFF1C + bl ServerSizeForFlags mov r7, r0 cmp r4, r7 addlt sp, sp, #0xc @@ -1643,7 +1643,7 @@ ov4_02200404: ; 0x02200404 mov r0, r6 add r1, r5, r7 sub r2, r4, r7 - bl ov4_021FFFCC + bl AllKeysPresent cmp r0, #0 addeq sp, sp, #0xc moveq r0, #0 @@ -1653,7 +1653,7 @@ _02200470: beq _02200494 add r0, r5, r7 sub r1, r4, r7 - bl ov4_021FFF48 + bl FullRulesPresent cmp r0, #0 addeq sp, sp, #0xc moveq r0, #0 @@ -1673,13 +1673,13 @@ _02200494: mov r1, r5 mov r2, r4 str r7, [sp] - bl ov4_022000C8 + bl ParseServerIPPort ldrh r2, [sp, #4] ldr r1, [sp, #8] mov r0, r6 - bl ov4_021FE79C + bl SBAllocServer mov r7, r0 - bl ov4_021FE874 + bl SBIsNullServer cmp r0, #0 addne sp, sp, #0xc mvnne r0, #1 @@ -1690,26 +1690,26 @@ _02200494: mov r2, r5 mov r3, r4 str ip, [sp] - bl ov4_02200138 + bl ParseServer mov r4, r0 mov r0, r6 mov r1, r7 - bl ov4_021FF144 + bl SBServerListAppendServer mov r0, r4 add sp, sp, #0xc ldmia sp!, {r3, r4, r5, r6, r7, r8, pc} ; .align 2, 0 _02200530: .word Unk_ov4_0221A0BC - arm_func_end ov4_02200404 + arm_func_end IncomingListParseServer - arm_func_start ov4_02200534 -ov4_02200534: ; 0x02200534 + arm_func_start SBSetLastListErrorPtr +SBSetLastListErrorPtr: ; 0x02200534 str r1, [r0, #0x4ac] bx lr - arm_func_end ov4_02200534 + arm_func_end SBSetLastListErrorPtr - arm_func_start ov4_0220053C -ov4_0220053C: ; 0x0220053C + arm_func_start ProcessMainListData +ProcessMainListData: ; 0x0220053C stmfd sp!, {r3, r4, r5, r6, r7, r8, sb, lr} sub sp, sp, #8 mov r7, r0 @@ -1740,7 +1740,7 @@ _02200574: cmp r6, r4 blt _022008FC add r1, r5, r3 - bl ov4_021FFE7C + bl InitCryptKey add r5, r5, r4 sub r6, r6, r4 add r0, r7, #0xbc @@ -1749,7 +1749,7 @@ _02200574: mov r2, r6 add r0, r0, #0x400 str r3, [r7, #0x5c8] - bl ov4_021FD790 + bl GOADecrypt _022005D4: cmp r6, #6 blt _022008FC @@ -1779,13 +1779,13 @@ _022005D4: bne _02200688 add r0, r5, #6 sub r1, r6, #6 - bl ov4_021FF4AC + bl NTSLengthSB mvn r1, #0 cmp r0, r1 beq _022008FC mov r0, r7 add r1, r5, #6 - bl ov4_02200534 + bl SBSetLastListErrorPtr ldr r0, _02200950 ; =0x0221B754 ldr r3, [r7, #0x494] ldr r2, [r0, #0] @@ -1850,7 +1850,7 @@ _02200738: blt _0220079C add r0, r5, #1 sub r1, r6, #1 - bl ov4_021FF4AC + bl NTSLengthSB mov sb, r0 cmp sb, r4 beq _0220079C @@ -1858,7 +1858,7 @@ _02200738: mov r0, r7 add r1, r5, #1 str r2, [sp, #4] - bl ov4_021FF3C0 + bl SBRefStr str r0, [sp] ldr r0, [r7, #8] mov r1, r8 @@ -1902,13 +1902,13 @@ _022007EC: _02200800: mov r0, r5 mov r1, r6 - bl ov4_021FF4AC + bl NTSLengthSB mov r4, r0 cmp r4, r8 beq _02200854 mov r0, r7 mov r1, r5 - bl ov4_021FF3C0 + bl SBRefStr ldr r1, [r7, #0x480] add r5, r5, r4 mov r2, r1 @@ -1938,7 +1938,7 @@ _02200880: mov r0, r7 mov r1, r5 mov r2, r6 - bl ov4_02200404 + bl IncomingListParseServer cmp r0, r8 addeq sp, sp, #8 moveq r0, #5 @@ -1998,10 +1998,10 @@ _02200958: .word Unk_ov4_0221A0C4 _0220095C: .word Unk_ov4_0221A048 _02200960: .word Unk_ov4_0221A008 _02200964: .word 0x000004AF - arm_func_end ov4_0220053C + arm_func_end ProcessMainListData - arm_func_start ov4_02200968 -ov4_02200968: ; 0x02200968 + arm_func_start ProcessPushKeyList +ProcessPushKeyList: ; 0x02200968 stmfd sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} sub sp, sp, #8 mov sl, r0 @@ -2012,7 +2012,7 @@ ov4_02200968: ; 0x02200968 sub r8, r8, #1 ldrb r7, [sb], #1 beq _02200994 - bl ov4_021FFD7C + bl FreeKeyList _02200994: mov r1, r7 mov r0, #8 @@ -2035,7 +2035,7 @@ _022009CC: ldmltia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} add r0, sb, #1 sub r1, r8, #1 - bl ov4_021FF4AC + bl NTSLengthSB mov r5, r0 cmp r5, r4 addeq sp, sp, #8 @@ -2045,7 +2045,7 @@ _022009CC: mov r0, sl add r1, sb, #1 str r2, [sp, #4] - bl ov4_021FF3C0 + bl SBRefStr str r0, [sp] ldr r0, [sl, #8] mov r1, fp @@ -2060,10 +2060,10 @@ _02200A38: mov r0, #0 add sp, sp, #8 ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} - arm_func_end ov4_02200968 + arm_func_end ProcessPushKeyList - arm_func_start ov4_02200A44 -ov4_02200A44: ; 0x02200A44 + arm_func_start ProcessPlayerSearch +ProcessPlayerSearch: ; 0x02200A44 stmfd sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr} sub sp, sp, #0x24 mov r8, r2 @@ -2089,7 +2089,7 @@ _02200A98: mov r0, sb mov r1, r8 str sb, [sp, #0x10] - bl ov4_021FF4AC + bl NTSLengthSB cmp r0, r4 addeq sp, sp, #0x24 moveq r0, #4 @@ -2138,7 +2138,7 @@ _02200A98: orr r2, r3, r2 orr r2, r5, r2 str r2, [sp, #0x1c] - bl ov4_021FF4AC + bl NTSLengthSB mov r5, r0 cmp r5, r4 addeq sp, sp, #0x24 @@ -2178,10 +2178,10 @@ _02200BF4: mov r0, #0 add sp, sp, #0x24 ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc} - arm_func_end ov4_02200A44 + arm_func_end ProcessPlayerSearch - arm_func_start ov4_02200C00 -ov4_02200C00: ; 0x02200C00 + arm_func_start ProcessMaploop +ProcessMaploop: ; 0x02200C00 stmfd sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr} sub sp, sp, #0x54 mov r8, r2 @@ -2207,7 +2207,7 @@ ov4_02200C00: ; 0x02200C00 strb r3, [r4] strb r2, [r4, #1] ldrh r2, [sp, #8] - bl ov4_021FF1D4 + bl SBServerListFindServerByIP mov r1, r0 mvn r0, #0 cmp r1, r0 @@ -2215,7 +2215,7 @@ ov4_02200C00: ; 0x02200C00 moveq r0, #0 ldmeqia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc} mov r0, sl - bl ov4_021FF2D4 + bl SBServerListNth ldrb r2, [sb, #6] ldrb r1, [sb, #7] add r3, sp, #0x10 @@ -2251,7 +2251,7 @@ _02200D00: blt _02200D40 mov r0, sb mov r1, r8 - bl ov4_021FF4AC + bl NTSLengthSB cmp r0, r4 addeq sp, sp, #0x54 moveq r0, #4 @@ -2282,10 +2282,10 @@ _02200D40: mov r0, #0 add sp, sp, #0x54 ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc} - arm_func_end ov4_02200C00 + arm_func_end ProcessMaploop - arm_func_start ov4_02200D84 -ov4_02200D84: ; 0x02200D84 + arm_func_start ProcessDeleteServer +ProcessDeleteServer: ; 0x02200D84 stmfd sp!, {r4, lr} sub sp, sp, #8 cmp r2, #6 @@ -2309,7 +2309,7 @@ ov4_02200D84: ; 0x02200D84 strb r3, [ip] strb r2, [ip, #1] ldrh r2, [sp] - bl ov4_021FF1D4 + bl SBServerListFindServerByIP mov r1, r0 mvn r0, #0 cmp r1, r0 @@ -2317,14 +2317,14 @@ ov4_02200D84: ; 0x02200D84 moveq r0, #0 ldmeqia sp!, {r4, pc} mov r0, r4 - bl ov4_021FF278 + bl SBServerListRemoveAt mov r0, #0 add sp, sp, #8 ldmia sp!, {r4, pc} - arm_func_end ov4_02200D84 + arm_func_end ProcessDeleteServer - arm_func_start ov4_02200E10 -ov4_02200E10: ; 0x02200E10 + arm_func_start ProcessPushServer +ProcessPushServer: ; 0x02200E10 stmfd sp!, {r3, r4, r5, r6, r7, r8, lr} sub sp, sp, #0xc mov r6, r2 @@ -2337,11 +2337,11 @@ ov4_02200E10: ; 0x02200E10 add r4, sp, #4 add r3, sp, #8 str r4, [sp] - bl ov4_022000C8 + bl ParseServerIPPort ldrh r2, [sp, #4] ldr r1, [sp, #8] mov r0, r8 - bl ov4_021FF1D4 + bl SBServerListFindServerByIP mov r5, r0 mvn r0, #0 cmp r5, r0 @@ -2349,9 +2349,9 @@ ov4_02200E10: ; 0x02200E10 ldrh r2, [sp, #4] ldr r1, [sp, #8] mov r0, r8 - bl ov4_021FE79C + bl SBAllocServer mov r4, r0 - bl ov4_021FE874 + bl SBIsNullServer cmp r0, #0 beq _02200EA0 add sp, sp, #0xc @@ -2360,7 +2360,7 @@ ov4_02200E10: ; 0x02200E10 _02200E90: mov r0, r8 mov r1, r5 - bl ov4_021FF2D4 + bl SBServerListNth mov r4, r0 _02200EA0: mov ip, #0 @@ -2369,7 +2369,7 @@ _02200EA0: mov r2, r7 mov r3, r6 str ip, [sp] - bl ov4_02200138 + bl ParseServer cmp r0, #0 addlt sp, sp, #0xc movlt r0, #4 @@ -2379,7 +2379,7 @@ _02200EA0: bne _02200EE4 mov r0, r8 mov r1, r4 - bl ov4_021FF144 + bl SBServerListAppendServer _02200EE4: ldr r3, [r8, #0x494] ldr r5, [r8, #0x488] @@ -2390,10 +2390,10 @@ _02200EE4: mov r0, #0 add sp, sp, #0xc ldmia sp!, {r3, r4, r5, r6, r7, r8, pc} - arm_func_end ov4_02200E10 + arm_func_end ProcessPushServer - arm_func_start ov4_02200F08 -ov4_02200F08: ; 0x02200F08 + arm_func_start ProcessAdHocData +ProcessAdHocData: ; 0x02200F08 stmfd sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} mov sb, r0 ldr r0, [sb, #0x80] @@ -2444,14 +2444,14 @@ _02200FB8: mov r0, sb add r1, r1, #3 sub r2, r2, #3 - bl ov4_02200968 + bl ProcessPushKeyList mov r8, r0 b _02201048 _02200FD0: mov r0, sb add r1, r1, #3 sub r2, r2, #3 - bl ov4_02200E10 + bl ProcessPushServer mov r8, r0 b _02201048 _02200FE8: @@ -2466,21 +2466,21 @@ _02201004: mov r0, sb add r1, r1, #3 sub r2, r2, #3 - bl ov4_02200D84 + bl ProcessDeleteServer mov r8, r0 b _02201048 _0220101C: mov r0, sb add r1, r1, #3 sub r2, r2, #3 - bl ov4_02200C00 + bl ProcessMaploop mov r8, r0 b _02201048 _02201034: mov r0, sb add r1, r1, #3 sub r2, r2, #3 - bl ov4_02200A44 + bl ProcessPlayerSearch mov r8, r0 _02201048: ldrh r0, [sp] @@ -2512,7 +2512,7 @@ _022010A4: cmp r8, #0 beq _022010B4 mov r0, sb - bl ov4_021FF608 + bl ErrorDisconnect _022010B4: mov r0, r8 ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} @@ -2521,10 +2521,10 @@ _022010BC: .word Unk_ov4_0221A0D0 _022010C0: .word Unk_ov4_0221A048 _022010C4: .word Unk_ov4_02219FF4 _022010C8: .word 0x000005B4 - arm_func_end ov4_02200F08 + arm_func_end ProcessAdHocData - arm_func_start ov4_022010CC -ov4_022010CC: ; 0x022010CC + arm_func_start ProcessIncomingData +ProcessIncomingData: ; 0x022010CC stmfd sp!, {r4, r5, r6, lr} mov r6, r0 ldr r0, [r6, #0x4b0] @@ -2543,7 +2543,7 @@ ov4_022010CC: ; 0x022010CC cmp r1, #1 bhi _02201120 mov r0, r6 - bl ov4_021FF608 + bl ErrorDisconnect mov r0, #3 ldmia sp!, {r4, r5, r6, pc} _02201120: @@ -2564,13 +2564,13 @@ _02201148: add r0, r0, #0x400 add r1, r1, r5 sub r2, r2, r5 - bl ov4_021FD790 + bl GOADecrypt _02201164: ldr r0, [r6, #0] cmp r0, #3 bne _0220117C mov r0, r6 - bl ov4_0220053C + bl ProcessMainListData mov r4, r0 _0220117C: cmp r4, #0 @@ -2583,15 +2583,15 @@ _0220117C: cmp r0, #0 ble _022011AC mov r0, r6 - bl ov4_02200F08 + bl ProcessAdHocData ldmia sp!, {r4, r5, r6, pc} _022011AC: mov r0, #0 ldmia sp!, {r4, r5, r6, pc} - arm_func_end ov4_022010CC + arm_func_end ProcessIncomingData - arm_func_start ov4_022011B4 -ov4_022011B4: ; 0x022011B4 + arm_func_start SBSendMessageToServer +SBSendMessageToServer: ; 0x022011B4 stmfd sp!, {r0, r1, r2, r3} stmfd sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} sub sp, sp, #0x18 @@ -2604,7 +2604,7 @@ ov4_022011B4: ; 0x022011B4 mov r2, r1 mov r3, #2 str r1, [sp] - bl ov4_021FFAC8 + bl SBServerListConnectAndQuery _022011E8: ldr r0, [r5, #0] cmp r0, #1 @@ -2649,7 +2649,7 @@ _022011E8: strb r6, [sl, #3] strb ip, [lr] strb r3, [lr, #1] - bl ov4_021FFA30 + bl SendWithRetry cmp r0, #0 addne sp, sp, #0x18 ldmneia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} @@ -2667,10 +2667,10 @@ _022011E8: ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} add sp, sp, #0x10 bx lr - arm_func_end ov4_022011B4 + arm_func_end SBSendMessageToServer - arm_func_start ov4_022012DC -ov4_022012DC: ; 0x022012DC + arm_func_start SBSendNatNegotiateCookieToServer +SBSendNatNegotiateCookieToServer: ; 0x022012DC stmfd sp!, {r0, r1, r2, r3} stmfd sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} sub sp, sp, #0x10 @@ -2712,15 +2712,15 @@ ov4_022012DC: ; 0x022012DC strb r7, [ip, #3] mov r4, #0xa str r4, [sp] - bl ov4_022011B4 + bl SBSendMessageToServer add sp, sp, #0x10 ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} add sp, sp, #0x10 bx lr - arm_func_end ov4_022012DC + arm_func_end SBSendNatNegotiateCookieToServer - arm_func_start ov4_02201394 -ov4_02201394: ; 0x02201394 + arm_func_start ProcessLanData +ProcessLanData: ; 0x02201394 stmfd sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} sub sp, sp, #0x5f0 mov r1, #8 @@ -2749,25 +2749,25 @@ _022013D0: ldrh r2, [sp, #0xe] ldr r1, [sp, #0x10] mov r0, sl - bl ov4_021FF1D4 + bl SBServerListFindServerByIP cmp r0, r4 bne _0220144C ldrh r2, [sp, #0xe] ldr r1, [sp, #0x10] mov r0, sl - bl ov4_021FE79C + bl SBAllocServer mov r5, r0 - bl ov4_021FE874 + bl SBIsNullServer cmp r0, #0 addne sp, sp, #0x5f0 movne r0, #5 ldmneia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} mov r0, r5 mov r1, #0x11 - bl ov4_021FE848 + bl SBServerSetFlags mov r0, sl mov r1, r5 - bl ov4_021FF144 + bl SBServerListAppendServer _0220144C: ldr r0, [sl, #0x4b0] bl CanReceiveOnSocket @@ -2799,13 +2799,13 @@ _022014A4: ; .align 2, 0 _022014B0: .word 0x000005DB _022014B4: .word Unk_ov4_0221B754 - arm_func_end ov4_02201394 + arm_func_end ProcessLanData - arm_func_start ov4_022014B8 -ov4_022014B8: ; 0x022014B8 + arm_func_start SBListThink +SBListThink: ; 0x022014B8 stmfd sp!, {r4, lr} mov r4, r0 - bl ov4_021FF2E8 + bl SBFreeDeadList ldr r0, [r4, #0] cmp r0, #3 addls pc, pc, r0, lsl #2 @@ -2817,16 +2817,16 @@ _022014D4: ; jump table b _022014E4 ; case 3 _022014E4: mov r0, r4 - bl ov4_022010CC + bl ProcessIncomingData ldmia sp!, {r4, pc} _022014F0: mov r0, r4 - bl ov4_02201394 + bl ProcessLanData ldmia sp!, {r4, pc} _022014FC: mov r0, #0 ldmia sp!, {r4, pc} - arm_func_end ov4_022014B8 + arm_func_end SBListThink .data