Mac STRING_GetStringLength: char* __fastcall (char* szDest ECX, char* szText EDX, uint32_t* pTotalLength)
ECX -> ESI = the destination in the packet buffer (strcpy target at 0x002cd174). EDX -> EDI = the source string (strlen 0x0030b420, then strcpy source). [EBP+8] = a pointer to the running packet length: it gets strlen+1 added and halts at line 0x26 if the result reaches 0x400. EAX returns szDest + strlen + 1 (the next write position). The caller NET_MCP_CLIENT_Send_0x02_CharCreate 0x002cd1ef sets ECX=LEA buffer, EDX=[EBP+8] (the name) and [ESP]=&length. It is the Mac twin of 0x0044a170 (Windows register args differ; the names here follow the Mac roles).
Changes 1, applied together
Set prototype
mac 0x002cd117signatureundefined STRING_GetStringLength(void)→char* STRING_GetStringLength(char* szDest, char* szText, uint32_t* pTotalLength)conventionunknown→__fastcall