first use https://deobfuscate.relative.im/ to get the initial code, then there is a tool called wakaru, and the logic is much clear now.
for example:
return (_0x5a593e) => {
if (_0x5a593e + "" == _0x1f7284) {
return window.mapDataLayoutBackup;
}
_0x1f7284 = _0x5a593e + "";
if (typeof _0x5a593e == "string") {
_0x5a593e = window.JSON.parse(_0x5a593e);
}
if (typeof _0x5a593e[0] == "number") {
_0x5a593e = window.JSON.parse(window.LZMA.decompress(_0x5a593e));
}
and
["_0xb010e1"]: async function (_0x2b8c61) {
await new window.Promise((_0x2731d0) => {
return window.setTimeout(_0x2731d0, 150);
});
let _0x14c2d2 = window.location.href.match(/modes\/(\w+)\/c/)[1];
let _0x6bd428 = (_0x3bbdc0) => {
let _0x54f3d9 = window.document.createDocumentFragment();
let _0x3c1c6b = window.document.createElement("div");
for (_0x3c1c6b.innerHTML = _0x3bbdc0; _0x3c1c6b.firstChild; ) {
_0x54f3d9.appendChild(_0x3c1c6b.firstChild);
}
window.document.body.insertBefore(
_0x54f3d9,
window.document.body.childNodes[0]
);
};