-2

How can I deobfuscate this code?

return(function(i,a,n)local k=string.char;local e=string.sub;local l=table.concat;local m=math.ldexp;local r=getfenv or function()return _ENV end;local o=select;local g=unpack or table.unpack;local j=tonumber;local function p(h)local b,c,d="","",{}local g=256;local f={}for a=0,g-1 do f[a]=k(a)end;local a=1;local function i()local b=j(e(h,a,a),36)a=a+1;local c=j(e(h,a,a+b-1),36)a=a+b;return c end;b=k(i())d[1]=b;while a<#h do local a=i()if f[a]then c=f[a]else c=b..e(b,1,1)end;f[g]=b..e(c,1,1)d[#d+1],b,g=c,c,g+1 end;return table.concat(d)end local a=(bit or bit32);local d=a and a.bxor or function(a,c)local b,d,e=1,0,10 while a>0 and c>0 do local e,f=a%2,c%2 if e~=f then d=d+b end a,c,b=(a-e)/2,(c-f)/2,b*2 end if a<c then a=c end while a>0 do local c=a%2 if c>0 then d=d+b end a,b=(a-c)/2,b*2 end return d end local function c(c,a,b)if b then local a=(c/2^(a-1))%2^((b-1)-(a-1)+1);return a-a%1;else local a=2^(a-1);return(c%(a+a)>=a)and 1 or 0;end;end;local a=1;local function b()local c,e,f,b=i(j,a,a+3);c=d(c,219)e=d(e,219)f=d(f,219)b=d(b,219)a=a+4;return(b*16777216)+(f*65536)+(e*256)+c;end;local function h()local b=d(i(j,a,a),219);a=a+1;return b;end;local function f()local c,b=i(j,a,a+2);c=d(c,219)b=d(b,219)a=a+2;return(b*256)+c;end;local function p()local d=b();local a=b();local e=1;local d=(c(a,1,20)*(2^32))+d;local b=c(a,21,31);local a=((-1)^c(a,32));if(b==0)then if(d==0)then return a*0;else b=1;e=0;end;elseif(b==2047)then return(d==0)and(a*(1/0))or(a*(0/0));end;return m(a,b-1023)*(e+(d/(2^52)));end;local m=b;local function q(b)local c;if(not b)then b=m();if(b==0)then return'';end;end;c=e(j,a,a+b-1);a=a+b;local b={}for a=1,#c do b[a]=k(d(i(e(c,a,a)),219))end return l(b);end;local a=b;local function m(...)return{...},o('#',...)end local function k()local j={};local i={};local a={};local l={[#{"1 + 1 = 111";{397;924;79;408};}]=i,[#{{872;304;136;960};"1 + 1 = 111";{552;749;880;501};}]=nil,[#{"1 + 1 = 111";{355;485;5;987};{433;30;991;664};"1 + 1 = 111";}]=a,[#{{614;792;330;18};}]=j,};local a=b()local d={}for c=1,a do local b=h();local a;if(b==3)then a=(h()~=0);elseif(b==1)then a=p();elseif(b==2)then a=q();end;d[c]=a;end;for i=1,b()do local a=h();if(c(a,1,1)==0)then local e=c(a,2,3);local g=c(a,4,6);local a={f(),f(),nil,nil};if(e==0)then a[3]=f();a[4]=f();elseif(e==1)then a[3]=b();elseif(e==2)then a[3]=b()-(2^16)elseif(e==3)then a[3]=b()-(2^16)a[4]=f();end;if(c(g,1,1)==1)then a[2]=d[a[2]]end if(c(g,2,2)==1)then a[3]=d[a[3]]end if(c(g,3,3)==1)then a[4]=d[a[4]]end j[i]=a;end end;l[3]=h();for a=1,b()do i[a-1]=k();end;return l;end;local function j(a,i,f)a=(a==true and k())or a;return(function(...)local e=a[1];local d=a[3];local l=a[2];local m=m local c=1;local h=-1;local q={};local p={...};local o=o('#',...)-1;local k={};local b={};for a=0,o do if(a>=d)then q[a-d]=p[a+1];else b[a]=p[a+#{"1 + 1 = 111";}];end;end;local a=o-d+1 local a;local d;while true do a=e[c];d=a[1];if d<=28 then if d<=13 then if d<=6 then if d<=2 then if d<=0 then b[a[2]]=i[a[3]];elseif d>1 then b[a[2]]=(a[3]~=0);else local g;local d;f[a[3]]=b[a[2]];c=c+1;a=e[c];b[a[2]]=f[a[3]];c=c+1;a=e[c];b[a[2]]();c=c+1;a=e[c];b[a[2]]=f[a[3]];c=c+1;a=e[c];b[a[2]]=b[a[3]][a[4]];c=c+1;a=e[c];b[a[2]]=b[a[3]][a[4]];c=c+1;a=e[c];b[a[2]]=b[a[3]][a[4]];c=c+1;a=e[c];d=a[2];g=b[a[3]];b[d+1]=g;b[d]=g[a[4]];end;elseif d<=4 then if d==3 then b[a[2]]=f[a[3]];else local f;local d;b[a[2]]=(a[3]~=0);c=c+1;a=e[c];d=a[2]b[d]=b[d](g(b,d+1,a[3]))c=c+1;a=e[c];d=a[2];f=b[a[3]];b[d+1]=f;b[d]=f[a[4]];c=c+1;a=e[c];b[a[2]]=b[a[3]];c=c+1;a=e[c];b[a[2]]=a[3];c=c+1;a=e[c];d=a[2]b[d]=b[d](g(b,d+1,a[3]))c=c+1;a=e[c];d=a[2];f=b[a[3]];b[d+1]=f;b[d]=f[a[4]];c=c+1;a=e[c];b[a[2]]=b[a[3]];c=c+1;a=e[c];b[a[2]]=a[3];end;elseif d==5 then local f;local d;b[a[2]][a[3]]=a[4];c=c+1;a=e[c];b[a[2]]=b[a[3]][a[4]];c=c+1;a=e[c];b[a[2]][a[3]]=b[a[4]];c=c+1;a=e[c];b[a[2]]=b[a[3]][a[4]];c=c+1;a=e[c];d=a[2];f=b[a[3]];b[d+1]=f;b[d]=f[a[4]];else b[a[2]]=a[3];end;elseif d<=9 then if d<=7 then if(b[a[2]]==a[4])then c=c+1;else c=a[3];end;elseif d==8 then b[a[2]]();else b[a[2]][a[3]]=b[a[4]];end;elseif d<=11 then if d>10 then i[a[3]]=b[a[2]];else local a=a[2]b[a]=b[a](g(b,a+1,h))end;elseif d>12 then local f;local d;d=a[2]b[d]=b[d](g(b,d+1,a[3]))c=c+1;a=e[c];d=a[2];f=b[a[3]];b[d+1]=f;b[d]=f[a[4]];c=c+1;a=e[c];b[a[2]]=b[a[3]];c=c+1;a=e[c];b[a[2]]=a[3];c=c+1;a=e[c];b[a[2]]=(a[3]~=0);else if(b[a[2]]~=a[4])then c=c+1;else c=a[3];end;end;elseif d<=20 then if d<=16 then if d<=14 then local f;local d;d=a[2]b[d]=b[d](g(b,d+1,a[3]))c=c+1;a=e[c];d=a[2];f=b[a[3]];b[d+1]=f;b[d]=f[a[4]];c=c+1;a=e[c];b[a[2]]=b[a[3]];c=c+1;a=e[c];b[a[2]]=a[3];c=c+1;a=e[c];d=a[2]b[d]=b[d](g(b,d+1,a[3]))elseif d==15 then f[a[3]]=b[a[2]];else f[a[3]]=b[a[2]];end;elseif d<=18 then if d>17 then local a=a[2]b[a]=b[a]()else i[a[3]]=b[a[2]];end;elseif d>19 then local c=a[2]b[c]=b[c](g(b,c+1,a[3]))else local h=l[a[3]];local g;local d={};g=n({},{__index=function(b,a)local a=d[a];return a[1][a[2]];end,__newindex=function(c,a,b)local a=d[a]a[1][a[2]]=b;end;});for f=1,a[4]do c=c+1;local a=e[c];if a[1]==27 then d[f-1]={b,a[3]};else d[f-1]={i,a[3]};end;k[#k+1]=d;end;b[a[2]]=j(h,g,f);end;elseif d<=24 then if d<=22 then if d==21 then local c=a[2]local d,a=m(b[c](g(b,c+1,a[3])))h=a+c-1 local a=0;for c=c,h do a=a+1;b[c]=d[a];end;else local c=a[2]local d,a=m(b[c](g(b,c+1,a[3])))h=a+c-1 local a=0;for c=c,h do a=a+1;b[c]=d[a];end;end;elseif d==23 then local c=a[2];local d=b[a[3]];b[c+1]=d;b[c]=d[a[4]];else b[a[2]]=a[3];end;elseif d<=26 then if d==25 then b[a[2]]=b[a[3]][a[4]];else c=a[3];end;elseif d>27 then if(b[a[2]]==a[4])then c=c+1;else c=a[3];end;else b[a[2]]=b[a[3]];end;elseif d<=43 then if d<=35 then if d<=31 then if d<=29 then local j;local l,k;local i;local d;b[a[2]]=f[a[3]];c=c+1;a=e[c];b[a[2]]=f[a[3]];c=c+1;a=e[c];d=a[2];i=b[a[3]];b[d+1]=i;b[d]=i[a[4]];c=c+1;a=e[c];b[a[2]]=a[3];c=c+1;a=e[c];b[a[2]]=(a[3]~=0);c=c+1;a=e[c];d=a[2]l,k=m(b[d](g(b,d+1,a[3])))h=k+d-1 j=0;for a=d,h do j=j+1;b[a]=l[j];end;c=c+1;a=e[c];d=a[2]b[d]=b[d](g(b,d+1,h))c=c+1;a=e[c];d=a[2]b[d]=b[d]()c=c+1;a=e[c];b[a[2]]=(a[3]~=0);c=c+1;a=e[c];d=a[2];i=b[a[3]];b[d+1]=i;b[d]=i[a[4]];elseif d==30 then b[a[2]][a[3]]=a[4];else local c=a[2];local d=b[a[3]];b[c+1]=d;b[c]=d[a[4]];end;elseif d<=33 then if d>32 then c=a[3];else b[a[2]][a[3]]=b[a[4]];end;elseif d>34 then b[a[2]]=f[a[3]];c=c+1;a=e[c];b[a[2]]=b[a[3]][a[4]];c=c+1;a=e[c];b[a[2]]=b[a[3]][a[4]];c=c+1;a=e[c];b[a[2]]=b[a[3]][a[4]];c=c+1;a=e[c];b[a[2]]=b[a[3]][a[4]];c=c+1;a=e[c];b[a[2]][a[3]]=a[4];c=c+1;a=e[c];do return end;else local c=a[2]b[c]=b[c](g(b,c+1,a[3]))end;elseif d<=39 then if d<=37 then if d>36 then local h=l[a[3]];local g;local d={};g=n({},{__index=function(b,a)local a=d[a];return a[1][a[2]];end,__newindex=function(c,a,b)local a=d[a]a[1][a[2]]=b;end;});for f=1,a[4]do c=c+1;local a=e[c];if a[1]==27 then d[f-1]={b,a[3]};else d[f-1]={i,a[3]};end;k[#k+1]=d;end;b[a[2]]=j(h,g,f);else b[a[2]]=b[a[3]];end;elseif d==38 then do return end;else local a=a[2]b[a]=b[a]()end;elseif d<=41 then if d==40 then local c=a[2]b[c](g(b,c+1,a[3]))else local c=a[2]local e={b[c](b[c+1])};local d=0;for a=c,a[4]do d=d+1;b[a]=e[d];end end;elseif d>42 then b[a[2]]=f[a[3]];else b[a[2]]=f[a[3]];c=c+1;a=e[c];b[a[2]]=b[a[3]][a[4]];c=c+1;a=e[c];b[a[2]]=b[a[3]][a[4]];c=c+1;a=e[c];b[a[2]]=b[a[3]][a[4]];c=c+1;a=e[c];b[a[2]]=b[a[3]][a[4]];c=c+1;a=e[c];b[a[2]][a[3]]=a[4];c=c+1;a=e[c];do return end;end;elseif d<=50 then if d<=46 then if d<=44 then local a=a[2]b[a](b[a+1])elseif d==45 then b[a[2]][a[3]]=a[4];else b[a[2]]=j(l[a[3]],nil,f);end;elseif d<=48 then if d==47 then local a=a[2]b[a](b[a+1])else do return end;end;elseif d>49 then b[a[2]]=j(l[a[3]],nil,f);else local a=a[2]b[a]=b[a](g(b,a+1,h))end;elseif d<=54 then if d<=52 then if d==51 then b[a[2]]=(a[3]~=0);else if(b[a[2]]~=a[4])then c=c+1;else c=a[3];end;end;elseif d==53 then local c=a[2]b[c](g(b,c+1,a[3]))else b[a[2]]=i[a[3]];end;elseif d<=56 then if d>55 then b[a[2]]=b[a[3]][a[4]];else local d;d=a[2]b[d](b[d+1])c=c+1;a=e[c];b[a[2]]=f[a[3]];c=c+1;a=e[c];b[a[2]]=a[3];c=c+1;a=e[c];d=a[2]b[d](b[d+1])c=c+1;a=e[c];b[a[2]]=(a[3]~=0);c=c+1;a=e[c];i[a[3]]=b[a[2]];end;elseif d>57 then local d=a[2]local e={b[d](b[d+1])};local c=0;for a=d,a[4]do c=c+1;b[a]=e[c];end else b[a[2]]();end;c=c+1;end;end);end;return j(true,{},r())();end)(string.byte,table.insert,setmetatable);
Luke100000
  • 1,395
  • 2
  • 6
  • 18
BRick
  • 1

1 Answers1

0

You can use online tools like https://beautifier.io for those things.
I remarked though that the long line is obstructing the website and it's a bit hard to find the buttons.
So I add what I got from the site, actually you shouldn't trust that code but create your own version.
Furthermore you should find the original not-minified script, because that includes likely variable names that are more useful than a,b,c. ... and also comments perhaps that help to understand or use the script.
To find the original script you could search for this in the searchengine of your choice (it's in the last line):

(string.byte, table.insert, setmetatable)

About this or resembling scripts people got already suspicious:

enter image description here

Here the whole script:

return (function(i, a, n) local k = string.char; local e = string.sub; local l = table.concat; local m = math.ldexp; local r = getfenv or
    function() return _ENV end; local o = select; local g = unpack or table.unpack; local j = tonumber; local
    function p(h) local b, c, d = "", "", {}
    local g = 256; local f = {}
    for a = 0, g - 1 do f[a] = k(a) end;
    local a = 1; local
    function i() local b = j(e(h, a, a), 36) a = a + 1; local c = j(e(h, a, a + b - 1), 36) a = a + b;
    return c end; b = k(i()) d[1] = b;
    while a < #h do local a = i() if f[a]
    then c = f[a]
    else c = b..e(b, 1, 1) end; f[g] = b..e(c, 1, 1) d[#d + 1], b, g = c, c, g + 1 end;
    return table.concat(d) end local a = (bit or bit32); local d = a and a.bxor or
    function(a, c) local b, d, e = 1, 0, 10
    while a > 0 and c > 0 do local e, f = a % 2, c % 2
    if
    e~ = f then d = d + b end a, c, b = (a - e) / 2, (c - f) / 2, b * 2 end
    if a < c then a = c end
    while a > 0 do local c = a % 2
    if
    c > 0 then d = d + b end a, b = (a - c) / 2, b * 2 end
    return d end local
    function c(c, a, b) if b then local a = (c / 2 ^ (a - 1)) % 2 ^ ((b - 1) - (a - 1) + 1);
    return a - a % 1;
    else local a = 2 ^ (a - 1);
    return (c % (a + a) >= a) and 1 or 0; end; end; local a = 1; local
    function b() local c, e, f, b = i(j, a, a + 3); c = d(c, 219) e = d(e, 219) f = d(f, 219) b = d(b, 219) a = a + 4;
    return (b * 16777216) + (f * 65536) + (e * 256) + c; end; local
    function h() local b = d(i(j, a, a), 219); a = a + 1;
    return b; end; local
    function f() local c, b = i(j, a, a + 2); c = d(c, 219) b = d(b, 219) a = a + 2;
    return (b * 256) + c; end; local
    function p() local d = b(); local a = b(); local e = 1; local d = (c(a, 1, 20) * (2 ^ 32)) + d; local b = c(a, 21, 31); local a = ((-1) ^ c(a, 32));
    if (b == 0) then
    if (d == 0) then
    return a * 0;
    else b = 1; e = 0; end; elseif(b == 2047) then
    return (d == 0) and(a * (1 / 0)) or(a * (0 / 0)); end;
    return m(a, b - 1023) * (e + (d / (2 ^ 52))); end; local m = b; local
    function q(b) local c;
    if (not b) then b = m();
    if (b == 0) then
    return ''; end; end; c = e(j, a, a + b - 1); a = a + b; local b = {}
    for a = 1, #c do b[a] = k(d(i(e(c, a, a)), 219)) end
    return l(b);
    end; local a = b; local
    function m(...) return {
        ...
    }, o('#', ...) end local
    function k() local j = {}; local i = {}; local a = {}; local l = {
        [# {
            "1 + 1 = 111"; {
                397;
                924;
                79;
                408
            };
        }] = i,
        [# {
            {
                872;
                304;
                136;
                960
            };
            "1 + 1 = 111"; {
                552;
                749;
                880;
                501
            };
        }] = nil,
        [# {
            "1 + 1 = 111"; {
                355;
                485;
                5;
                987
            }; {
                433;
                30;
                991;
                664
            };
            "1 + 1 = 111";
        }] = a,
        [# {
            {
                614;
                792;
                330;
                18
            };
        }] = j,
    }; local a = b() local d = {}
    for c = 1, a do local b = h();
    local a;
    if (b == 3) then a = (h() ~ = 0); elseif(b == 1) then a = p(); elseif(b == 2) then a = q(); end; d[c] = a; end;
    for i = 1, b() do local a = h();
    if (c(a, 1, 1) == 0) then local e = c(a, 2, 3); local g = c(a, 4, 6); local a = {
        f(),
        f(),
        nil,
        nil
    };
    if (e == 0) then a[3] = f(); a[4] = f(); elseif(e == 1) then a[3] = b(); elseif(e == 2) then a[3] = b() - (2 ^ 16) elseif(e == 3) then a[3] = b() - (2 ^ 16) a[4] = f(); end;
    if (c(g, 1, 1) == 1) then a[2] = d[a[2]] end
    if (c(g, 2, 2) == 1) then a[3] = d[a[3]] end
    if (c(g, 3, 3) == 1) then a[4] = d[a[4]] end j[i] = a; end end; l[3] = h();
    for a = 1, b() do i[a - 1] = k();
    end;
    return l; end; local
    function j(a, i, f) a = (a == true and k()) or a;
    return (function(...) local e = a[1]; local d = a[3]; local l = a[2]; local m = m local c = 1; local h = -1; local q = {}; local p = {
            ...
        }; local o = o('#', ...) - 1; local k = {}; local b = {};
        for a = 0, o do
            if (a >= d) then q[a - d] = p[a + 1];
            else b[a] = p[a + # {
                "1 + 1 = 111";
            }];
        end; end; local a = o - d + 1 local a; local d;
        while true do a = e[c];
        d = a[1];
        if d <= 28 then
        if d <= 13 then
        if d <= 6 then
        if d <= 2 then
        if d <= 0 then b[a[2]] = i[a[3]]; elseif d > 1 then b[a[2]] = (a[3] ~ = 0);
        else local g; local d; f[a[3]] = b[a[2]]; c = c + 1; a = e[c]; b[a[2]] = f[a[3]]; c = c + 1; a = e[c]; b[a[2]](); c = c + 1; a = e[c]; b[a[2]] = f[a[3]]; c = c + 1; a = e[c]; b[a[2]] = b[a[3]][a[4]]; c = c + 1; a = e[c]; b[a[2]] = b[a[3]][a[4]]; c = c + 1; a = e[c]; b[a[2]] = b[a[3]][a[4]]; c = c + 1; a = e[c]; d = a[2]; g = b[a[3]]; b[d + 1] = g; b[d] = g[a[4]]; end; elseif d <= 4 then
        if d == 3 then b[a[2]] = f[a[3]];
        else local f; local d; b[a[2]] = (a[3] ~ = 0); c = c + 1; a = e[c]; d = a[2] b[d] = b[d](g(b, d + 1, a[3])) c = c + 1; a = e[c]; d = a[2]; f = b[a[3]]; b[d + 1] = f; b[d] = f[a[4]]; c = c + 1; a = e[c]; b[a[2]] = b[a[3]]; c = c + 1; a = e[c]; b[a[2]] = a[3]; c = c + 1; a = e[c]; d = a[2] b[d] = b[d](g(b, d + 1, a[3])) c = c + 1; a = e[c]; d = a[2]; f = b[a[3]]; b[d + 1] = f; b[d] = f[a[4]]; c = c + 1; a = e[c]; b[a[2]] = b[a[3]]; c = c + 1; a = e[c]; b[a[2]] = a[3]; end; elseif d == 5 then local f; local d; b[a[2]][a[3]] = a[4]; c = c + 1; a = e[c]; b[a[2]] = b[a[3]][a[4]]; c = c + 1; a = e[c]; b[a[2]][a[3]] = b[a[4]]; c = c + 1; a = e[c]; b[a[2]] = b[a[3]][a[4]]; c = c + 1; a = e[c]; d = a[2]; f = b[a[3]]; b[d + 1] = f; b[d] = f[a[4]];
        else b[a[2]] = a[3]; end; elseif d <= 9 then
        if d <= 7 then
        if (b[a[2]] == a[4]) then c = c + 1;
        else c = a[3]; end; elseif d == 8 then b[a[2]]();
        else b[a[2]][a[3]] = b[a[4]]; end; elseif d <= 11 then
        if d > 10 then i[a[3]] = b[a[2]];
        else local a = a[2] b[a] = b[a](g(b, a + 1, h)) end; elseif d > 12 then local f; local d; d = a[2] b[d] = b[d](g(b, d + 1, a[3])) c = c + 1; a = e[c]; d = a[2]; f = b[a[3]]; b[d + 1] = f; b[d] = f[a[4]]; c = c + 1; a = e[c]; b[a[2]] = b[a[3]]; c = c + 1; a = e[c]; b[a[2]] = a[3]; c = c + 1; a = e[c]; b[a[2]] = (a[3] ~ = 0);
        else if (b[a[2]] ~ = a[4]) then c = c + 1;
        else c = a[3]; end; end; elseif d <= 20 then
        if d <= 16 then
        if d <= 14 then local f; local d; d = a[2] b[d] = b[d](g(b, d + 1, a[3])) c = c + 1; a = e[c]; d = a[2]; f = b[a[3]]; b[d + 1] = f; b[d] = f[a[4]]; c = c + 1; a = e[c]; b[a[2]] = b[a[3]]; c = c + 1; a = e[c]; b[a[2]] = a[3]; c = c + 1; a = e[c]; d = a[2] b[d] = b[d](g(b, d + 1, a[3])) elseif d == 15 then f[a[3]] = b[a[2]];
        else f[a[3]] = b[a[2]]; end; elseif d <= 18 then
        if d > 17 then local a = a[2] b[a] = b[a]()
        else i[a[3]] = b[a[2]]; end; elseif d > 19 then local c = a[2] b[c] = b[c](g(b, c + 1, a[3]))
        else local h = l[a[3]]; local g; local d = {}; g = n({}, {
            __index = function(b, a) local a = d[a];
            return a[1][a[2]];end,
            __newindex = function(c, a, b) local a = d[a] a[1][a[2]] = b;end;
        });
        for f = 1, a[4] do c = c + 1;
        local a = e[c];
        if a[1] == 27 then d[f - 1] = {
            b,
            a[3]
        };
        else d[f - 1] = {
            i,
            a[3]
        }; end; k[#k + 1] = d; end; b[a[2]] = j(h, g, f); end; elseif d <= 24 then
        if d <= 22 then
        if d == 21 then local c = a[2] local d, a = m(b[c](g(b, c + 1, a[3]))) h = a + c - 1 local a = 0;
        for c = c, h do a = a + 1;
        b[c] = d[a]; end;
        else local c = a[2] local d, a = m(b[c](g(b, c + 1, a[3]))) h = a + c - 1 local a = 0;
        for c = c, h do a = a + 1;
        b[c] = d[a]; end; end; elseif d == 23 then local c = a[2]; local d = b[a[3]]; b[c + 1] = d; b[c] = d[a[4]];
        else b[a[2]] = a[3]; end; elseif d <= 26 then
        if d == 25 then b[a[2]] = b[a[3]][a[4]];
        else c = a[3]; end; elseif d > 27 then
        if (b[a[2]] == a[4]) then c = c + 1;
        else c = a[3]; end;
        else b[a[2]] = b[a[3]]; end; elseif d <= 43 then
        if d <= 35 then
        if d <= 31 then
        if d <= 29 then local j; local l, k; local i; local d; b[a[2]] = f[a[3]]; c = c + 1; a = e[c]; b[a[2]] = f[a[3]]; c = c + 1; a = e[c]; d = a[2]; i = b[a[3]]; b[d + 1] = i; b[d] = i[a[4]]; c = c + 1; a = e[c]; b[a[2]] = a[3]; c = c + 1; a = e[c]; b[a[2]] = (a[3] ~ = 0); c = c + 1; a = e[c]; d = a[2] l, k = m(b[d](g(b, d + 1, a[3]))) h = k + d - 1 j = 0;
        for a = d, h do j = j + 1;
        b[a] = l[j]; end; c = c + 1; a = e[c]; d = a[2] b[d] = b[d](g(b, d + 1, h)) c = c + 1; a = e[c]; d = a[2] b[d] = b[d]() c = c + 1; a = e[c]; b[a[2]] = (a[3] ~ = 0); c = c + 1; a = e[c]; d = a[2]; i = b[a[3]]; b[d + 1] = i; b[d] = i[a[4]]; elseif d == 30 then b[a[2]][a[3]] = a[4];
        else local c = a[2]; local d = b[a[3]]; b[c + 1] = d; b[c] = d[a[4]]; end; elseif d <= 33 then
        if d > 32 then c = a[3];
        else b[a[2]][a[3]] = b[a[4]]; end; elseif d > 34 then b[a[2]] = f[a[3]]; c = c + 1; a = e[c]; b[a[2]] = b[a[3]][a[4]]; c = c + 1; a = e[c]; b[a[2]] = b[a[3]][a[4]]; c = c + 1; a = e[c]; b[a[2]] = b[a[3]][a[4]]; c = c + 1; a = e[c]; b[a[2]] = b[a[3]][a[4]]; c = c + 1; a = e[c]; b[a[2]][a[3]] = a[4]; c = c + 1; a = e[c]; do return end;
        else local c = a[2] b[c] = b[c](g(b, c + 1, a[3])) end; elseif d <= 39 then
        if d <= 37 then
        if d > 36 then local h = l[a[3]]; local g; local d = {}; g = n({}, {
            __index = function(b, a) local a = d[a];
            return a[1][a[2]];end,
            __newindex = function(c, a, b) local a = d[a] a[1][a[2]] = b;end;
        });
        for f = 1, a[4] do c = c + 1;
        local a = e[c];
        if a[1] == 27 then d[f - 1] = {
            b,
            a[3]
        };
        else d[f - 1] = {
            i,
            a[3]
        }; end; k[#k + 1] = d; end; b[a[2]] = j(h, g, f);
        else b[a[2]] = b[a[3]]; end; elseif d == 38 then do return end;
        else local a = a[2] b[a] = b[a]() end; elseif d <= 41 then
        if d == 40 then local c = a[2] b[c](g(b, c + 1, a[3]))
        else local c = a[2] local e = {
            b[c](b[c + 1])
        }; local d = 0;
        for a = c, a[4] do d = d + 1;
        b[a] = e[d]; end end; elseif d > 42 then b[a[2]] = f[a[3]];
        else b[a[2]] = f[a[3]]; c = c + 1; a = e[c]; b[a[2]] = b[a[3]][a[4]]; c = c + 1; a = e[c]; b[a[2]] = b[a[3]][a[4]]; c = c + 1; a = e[c]; b[a[2]] = b[a[3]][a[4]]; c = c + 1; a = e[c]; b[a[2]] = b[a[3]][a[4]]; c = c + 1; a = e[c]; b[a[2]][a[3]] = a[4]; c = c + 1; a = e[c]; do return end;
        end; elseif d <= 50 then
        if d <= 46 then
        if d <= 44 then local a = a[2] b[a](b[a + 1]) elseif d == 45 then b[a[2]][a[3]] = a[4];
        else b[a[2]] = j(l[a[3]], nil, f); end; elseif d <= 48 then
        if d == 47 then local a = a[2] b[a](b[a + 1])
        else
            do return end;
            end; elseif d > 49 then b[a[2]] = j(l[a[3]], nil, f);
        else local a = a[2] b[a] = b[a](g(b, a + 1, h)) end; elseif d <= 54 then
        if d <= 52 then
        if d == 51 then b[a[2]] = (a[3] ~ = 0);
        else if (b[a[2]] ~ = a[4]) then c = c + 1;
        else c = a[3]; end; end; elseif d == 53 then local c = a[2] b[c](g(b, c + 1, a[3]))
        else b[a[2]] = i[a[3]]; end; elseif d <= 56 then
        if d > 55 then b[a[2]] = b[a[3]][a[4]];
        else local d; d = a[2] b[d](b[d + 1]) c = c + 1; a = e[c]; b[a[2]] = f[a[3]]; c = c + 1; a = e[c]; b[a[2]] = a[3]; c = c + 1; a = e[c]; d = a[2] b[d](b[d + 1]) c = c + 1; a = e[c]; b[a[2]] = (a[3] ~ = 0); c = c + 1; a = e[c]; i[a[3]] = b[a[2]]; end; elseif d > 57 then local d = a[2] local e = {
            b[d](b[d + 1])
        }; local c = 0;
        for a = d, a[4] do c = c + 1;
        b[a] = e[c]; end
        else b[a[2]](); end; c = c + 1; end; end); end;
    return j(true, {}, r())(); end)(string.byte, table.insert, setmetatable);

One interesting page is showing that this or a resembling script (concerning the snippet I extracted above to search in searchengines) was used for obstruction already, read this forum thread about it:

https://devforum.roblox.com/t/ironbrew-de-obfuscation-is-it-possible/739114

David
  • 5,882
  • 3
  • 33
  • 44