From edfa4888c4d603bc941a5b892aa71313167350ca Mon Sep 17 00:00:00 2001 From: ragnarok-clanker Date: Thu, 5 Nov 2026 15:02:21 +0000 Subject: [PATCH] Decompile 2 functions in Source/Contents/UserData/AccountLinkedUserDataMgr.cpp Batch #12423 by Yommy: 0 byte-identical, 2 confirmed by peer review. - fn_03465 CAccountLinkedUserDataMgr::CompleteLoad: logic confirmed by peer review - fn_03468 CAccountLinkedUserDataMgr::Load: logic confirmed by peer review Peer-reviewed-by: KWDev, dori, cremane Accepted without human review: peers confirmed the logic ("same" ahead by at least 3, with 70% of the votes). --- .../UserData/AccountLinkedUserDataMgr.cpp | 22 +++++++++++-------- 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/Source/Contents/UserData/AccountLinkedUserDataMgr.cpp b/Source/Contents/UserData/AccountLinkedUserDataMgr.cpp index 9174622ff..cee8fbfb3 100644 --- a/Source/Contents/UserData/AccountLinkedUserDataMgr.cpp +++ b/Source/Contents/UserData/AccountLinkedUserDataMgr.cpp @@ -127,20 +127,25 @@ void CAccountLinkedUserDataMgr::CompleteLoad( Json::Value root; Json::Reader reader; if (reader.parse(response, root, true)) { - const int type = root["Type"].asInt(); - if (type == 1) { - LoadWhisperBlockList(root["data"]); - g_session.m_emotionHotkeys.Load(root["data"]); - g_userHotkeyMgr->LoadV2(*g_session.m_hotkeyScript, root["data"]); + const std::uint8_t typeSource[] = {0x43, 0x80, 0x3F, 0xDC, 0xFB}; + switch (root[DecryptText<0xC52FB5FBB94FF917ULL>(typeSource)].asInt()) { + case 1: { + const std::uint8_t whisperSource[] = {0xA1, 0xAC, 0xF3, 0x94, 0xA1}; + LoadWhisperBlockList(root[DecryptText<0x93E7A3A1F587CDC5ULL>(whisperSource)]); + const std::uint8_t emotionSource[] = {0x43, 0x60, 0x73, 0x0C, 0x03}; + g_session.m_emotionHotkeys.Load(root[DecryptText<0x2FF3C5036D070127ULL>(emotionSource)]); + const std::uint8_t hotkeySource[] = {0xD7, 0x06, 0xB7, 0x32, 0xF9}; + g_userHotkeyMgr->LoadV2(*g_session.m_hotkeyScript, root[DecryptText<0x17359BF953C367B3ULL>(hotkeySource)]); } - - if (type == 1 || type == 2) { + [[fallthrough]]; + case 2: g_whisperBlockMgr->m_tracking = true; g_userHotkeyMgr->m_loaded = true; this->m_accountId = accountId; this->m_accountName = accountName; this->m_loaded = true; g_session.m_emotionHotkeys.Save(g_session.m_aid, GetRenderSystemHolder()->system); + break; } } } @@ -217,6 +222,5 @@ void CAccountLinkedUserDataMgr::Load(std::uint32_t accountId, std::string accoun return; } - const std::string url = this->LoadUrl(); - g_asyncWorkMgr->LoadAccount(accountId, accountName, url); + g_asyncWorkMgr->LoadAccount(accountId, accountName, this->LoadUrl()); }