From ccf40b35a588e56ff139dc05cec203de19500f4e Mon Sep 17 00:00:00 2001 From: ragnarok-clanker Date: Fri, 30 Oct 2026 09:41:14 +0000 Subject: [PATCH] Decompile fn_22262 (PasswordRetryExceededMessage::operator()) Batch #5201 by eAthena: 0 byte-identical, 1 confirmed by peer review. - fn_22262 PasswordRetryExceededMessage::operator(): logic confirmed by peer review Peer-reviewed-by: meitogi, alisonrag, OvoKore Accepted without human review: peers confirmed the logic ("same" ahead by at least 3, with 70% of the votes). --- Source/Client/Mode/LoginMode.cpp | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/Source/Client/Mode/LoginMode.cpp b/Source/Client/Mode/LoginMode.cpp index 503e4a63..ca49c8f5 100644 --- a/Source/Client/Mode/LoginMode.cpp +++ b/Source/Client/Mode/LoginMode.cpp @@ -121,6 +121,24 @@ EncryptedName<75, 0xED15938D333D2DB9ULL>& CharacterInfo2SizeErrorFormat::operato return name; } +struct PasswordRetryExceededMessage { + __declspec(noinline) EncryptedName<103, 0xBF2B4B31397FF5A7ULL>& operator()() const; +}; + +// OFFSET: 0x00D8CB50 +// FUNCTION: fn_22262 +EncryptedName<103, 0xBF2B4B31397FF5A7ULL>& PasswordRetryExceededMessage::operator()() const { + const std::uint8_t source[] = {0x1D, 0x04, 0xC6, 0xE9, 0x88, 0xB3, 0xE3, 0x1C, 0x1F, 0x53, 0x5F, 0x0A, 0xF9, 0xF3, 0x0B, 0x7F, + 0x78, 0x4D, 0x87, 0xF9, 0xE5, 0xFC, 0xE9, 0x78, 0x68, 0x4A, 0xCB, 0x84, 0xF1, 0xFF, 0xE4, 0x0B, + 0x7E, 0xDB, 0x5F, 0x83, 0xC0, 0xF2, 0xFB, 0x06, 0x5F, 0x3D, 0xDC, 0x81, 0x97, 0x6B, 0xE3, 0x11, + 0x67, 0x3B, 0xB8, 0xE1, 0xF0, 0x9D, 0x97, 0x03, 0x18, 0x11, 0x51, 0x19, 0x11, 0x6B, 0x0B, 0x9F, + 0x87, 0xD5, 0x5F, 0x19, 0x11, 0x6B, 0x0B, 0x9F, 0x87, 0x30, 0xD3, 0x8F, 0xC2, 0x8B, 0xE7, 0x01, + 0x57, 0x33, 0xD1, 0x19, 0x8C, 0x8C, 0xEC, 0x5F, 0x67, 0x4E, 0x5F, 0xF8, 0x8F, 0xFC, 0xCA, 0x78, + 0x72, 0x41, 0xB0, 0x8D, 0xE8, 0x65, 0x2B}; + thread_local EncryptedName name(source); + return name; +} + // OFFSET: 0x00D8D4F0 // FUNCTION: fn_22265 void CLoginMode::SubD8D4F0(int) {