Meliodas0_0

Lua obfucator s3d3

Mar 5th, 2020
46
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. local a = math.floor
  2. local b = table.concat
  3. local c = string.char
  4. local d = string.sub
  5. local e = function(f, g)
  6.     return f * 2 ^ g
  7. end
  8. local h = function(f, g)
  9.     return math.floor(f / 2 ^ g)
  10. end
  11. local i = function(f, j, g)
  12.     local k = h(f, j)
  13.     return k % 2 ^ g
  14. end
  15. local l = function(f)
  16.     local g = 1
  17.     while f > 1 do
  18.         f = h(f, 1)
  19.         g = g + 1
  20.     end
  21.     return g
  22. end
  23. local function m(n, o)
  24.     local p = math.max(l(n), l(o))
  25.     local q = {}
  26.     for r = 0, p - 1 do
  27.         q[p - r] = i(n, r, 1) ~= i(o, r, 1) and 1 or 0
  28.     end
  29.     return tonumber(b(q, ""), 2)
  30. end
  31. local function s(t)
  32.     return t:lower() == t and ("a"):byte() or ("A"):byte()
  33. end
  34. local function u(v, w)
  35.     return v:gsub(
  36.         "%a",
  37.         function(t)
  38.             local x = s(t)
  39.             return string.char((t:byte() - x + w) % 26 + x)
  40.         end
  41.     )
  42. end
  43. local function y(z)
  44.     if type(z) ~= "string" then
  45.         return z
  46.     end
  47.     return u(z, -13)
  48. end
  49. local function D(E, F)
  50.     return c(m(E, F))
  51. end
  52. local function G(H, r, I)
  53.     if I then
  54.         local J = 0
  55.         local K = 0
  56.         for L = r, I do
  57.             J = J + 2 ^ K * G(H, L)
  58.             K = K + 1
  59.         end
  60.         return J
  61.     else
  62.         local M = 2 ^ (r - 1)
  63.         return H % (M + M) >= M and 1 or 0
  64.     end
  65. end
  66. local function N(O)
  67.     local j = 1
  68.     local P = false
  69.     local Q
  70.     local R
  71.     local S, T, U, V, W
  72.     do
  73.         function S()
  74.             local X = O:byte(j, j)
  75.             j = j + 1
  76.             return X
  77.         end
  78.         function T()
  79.             local X, Y, Z, _ = O:byte(j, j + 3)
  80.             j = j + 4
  81.             return _ * 16777216 + Z * 65536 + Y * 256 + X
  82.         end
  83.         function U()
  84.             local X = T()
  85.             local Y = T()
  86.             return Y * 4294967296 + X
  87.         end
  88.         function V()
  89.             local X = T()
  90.             local Y = T()
  91.             return (-2 * G(Y, 32) + 1) * 2 ^ (G(Y, 21, 31) - 1023) * ((G(Y, 1, 20) * 2 ^ 32 + X) / 2 ^ 52 + 1)
  92.         end
  93.         function W(a0)
  94.             local v
  95.             if a0 then
  96.                 v = O:sub(j, j + a0 - 1)
  97.                 j = j + a0
  98.             else
  99.                 a0 = T()
  100.                 if a0 == 0 then
  101.                     return
  102.                 end
  103.                 v = O:sub(j, j + a0 - 1)
  104.                 j = j + a0
  105.             end
  106.             return v
  107.         end
  108.     end
  109.     local function a1(a2)
  110.         local a3
  111.         local a4 = {}
  112.         local a5 = {}
  113.         local a6 = {}
  114.         a3 = {instructions = a4, constants = a5, prototypes = a6}
  115.         local a7
  116.         a3.upvalues = S()
  117.         do
  118.             a7 = T()
  119.             for L = 1, a7 do
  120.                 local a8 = {}
  121.                 a8.opcode = S()
  122.                 local type = S()
  123.                 local a9 = T()
  124.                 a8.A = G(a9, 1, 7)
  125.                 if type == 1 then
  126.                     a8.B = G(a9, 8, 16)
  127.                     a8.C = G(a9, 17, 25)
  128.                 elseif type == 2 then
  129.                     a8.Bx = G(a9, 8, 26)
  130.                 elseif type == 3 then
  131.                     a8.sBx = G(a9, 8, 26) - 131071
  132.                 end
  133.                 a4[L] = a8
  134.             end
  135.         end
  136.         do
  137.             a7 = T()
  138.             for L = 1, a7 do
  139.                 local aa
  140.                 local type = S()
  141.                 if type == 1 then
  142.                     aa = S() ~= 0
  143.                 elseif type == 3 then
  144.                     aa = V()
  145.                 elseif type == 4 then
  146.                     aa = W():sub(1, -2)
  147.                 end
  148.                 a5[L - 1] = aa
  149.             end
  150.         end
  151.         do
  152.             a7 = T()
  153.             for L = 1, a7 do
  154.                 a6[L - 1] = a1(true)
  155.             end
  156.         end
  157.         return a3
  158.     end
  159.     return a1()
  160. end
  161. local function ab(...)
  162.     local Z = select("#", ...)
  163.     local ac = {...}
  164.     return Z, ac
  165. end
  166. local ad =
  167.     b(
  168.     {
  169.         D(683, 706),
  170.         D(290, 332),
  171.         D(202, 185),
  172.         D(165, 209),
  173.         D(157, 239),
  174.         D(287, 362),
  175.         D(199, 164),
  176.         D(182, 194),
  177.         D(501, 412),
  178.         D(259, 364),
  179.         D(154, 244),
  180.         D(282, 361)
  181.     }
  182. )
  183. local ae =
  184.     b(
  185.     {
  186.         D(838, 805),
  187.         D(841, 806),
  188.         D(506, 404),
  189.         D(303, 348),
  190.         D(844, 824),
  191.         D(882, 787),
  192.         D(862, 816),
  193.         D(487, 403),
  194.         D(342, 293)
  195.     }
  196. )
  197. local af =
  198.     b(
  199.     {
  200.         D(639, 527),
  201.         D(715, 697),
  202.         D(688, 735),
  203.         D(145, 229),
  204.         D(886, 793),
  205.         D(590, 570),
  206.         D(58, 67),
  207.         D(530, 610),
  208.         D(954, 991),
  209.         D(644, 759)
  210.     }
  211. )
  212. local ag = b({D(652, 739), D(726, 678), D(795, 888), D(350, 305), D(560, 596), D(200, 173)})
  213. local function ah(ai, aj)
  214.     local a4 = ai[ad]
  215.     local a5 = ai[ae]
  216.     local a6 = ai[af]
  217.     local ak, al
  218.     local am
  219.     local an = 1
  220.     local ao, ap
  221.     local function aq()
  222.         local a4 = a4
  223.         local a8, X, Y
  224.         while true do
  225.             a8 = a4[an]
  226.             an = an + 1
  227.             if a8[ag] == 3 then
  228.                 ak[a8.A] = y(a5[a8.Bx])
  229.             elseif a8[ag] == 97 then
  230.                 ak[a8.A] = am[y(a5[a8.Bx])]
  231.             elseif a8[ag] == 20 then
  232.                 ak[a8.A] = ak[a8.B]
  233.             elseif a8[ag] == 25 then
  234.                 A = a8.A
  235.                 B = a8.B
  236.                 C = a8.C
  237.                 local ar, as
  238.                 local at, aq
  239.                 ar = {}
  240.                 if B ~= 1 then
  241.                     if B ~= 0 then
  242.                         at = A + B - 1
  243.                     else
  244.                         at = al
  245.                     end
  246.                     aq = 0
  247.                     for L = A + 1, at do
  248.                         aq = aq + 1
  249.                         ar[aq] = ak[L]
  250.                     end
  251.                     at, as = ab(ak[A](unpack(ar, 1, at - A)))
  252.                 else
  253.                     at, as = ab(ak[A]())
  254.                 end
  255.                 al = A - 1
  256.                 if C ~= 1 then
  257.                     if C ~= 0 then
  258.                         at = A + C - 2
  259.                     else
  260.                         at = at + A
  261.                     end
  262.                     aq = 0
  263.                     for L = A, at do
  264.                         aq = aq + 1
  265.                         ak[L] = as[aq]
  266.                     end
  267.                 end
  268.             elseif a8[ag] == 77 then
  269.                 B = a8.B
  270.                 local au = ak[B]
  271.                 for L = B + 1, a8.C do
  272.                     au = au .. ak[L]
  273.                 end
  274.                 ak[a8.A] = au
  275.             elseif a8[ag] == 78 then
  276.                 C = a8.C
  277.                 C = C > 255 and y(a5[C - 256]) or ak[C]
  278.                 ak[a8.A] = ak[a8.B][C]
  279.             elseif a8[ag] == 32 then
  280.                 A = a8.A
  281.                 ak[A] = ak[A] - ak[A + 2]
  282.                 an = an + a8.sBx
  283.             elseif a8[ag] == 60 then
  284.                 local av = a6[a8.Bx]
  285.                 local a4 = a4
  286.                 local aw = {}
  287.                 local ax =
  288.                     setmetatable(
  289.                     {},
  290.                     {__index = function(ac, ay)
  291.                             local az = aw[ay]
  292.                             return az.segment[az.offset]
  293.                         end, __newindex = function(ac, ay, aA)
  294.                             local az = aw[ay]
  295.                             az.segment[az.offset] = aA
  296.                         end}
  297.                 )
  298.                 for L = 1, av.upvalues do
  299.                     local aB = a4[an]
  300.                     if aB[ag] == 20 then
  301.                         aw[L - 1] = {segment = ak, offset = aB.B}
  302.                     elseif a4[an][ag] == 0 then
  303.                         aw[L - 1] = {segment = aj, offset = aB.B}
  304.                     end
  305.                     an = an + 1
  306.                 end
  307.                 local aC = ah(av, ax)
  308.                 ak[a8.A] = aC
  309.             elseif a8[ag] == 65 then
  310.                 A = a8.A
  311.                 local aD = ak[A + 2]
  312.                 local j = ak[A] + aD
  313.                 ak[A] = j
  314.                 if aD > 0 then
  315.                     if j <= ak[A + 1] then
  316.                         an = an + a8.sBx
  317.                         ak[A + 3] = j
  318.                     end
  319.                 else
  320.                     if j >= ak[A + 1] then
  321.                         an = an + a8.sBx
  322.                         ak[A + 3] = j
  323.                     end
  324.                 end
  325.             elseif a8[ag] == 81 then
  326.                 B = a8.B
  327.                 C = a8.C
  328.                 B = B > 255 and y(a5[B - 256]) or ak[B]
  329.                 C = C > 255 and y(a5[C - 256]) or ak[C]
  330.                 ak[a8.A] = B - C
  331.             elseif a8[ag] == 54 then
  332.                 ak[a8.A] = {}
  333.             elseif a8[ag] == 48 then
  334.                 B = a8.B
  335.                 C = a8.C
  336.                 B = B > 255 and y(a5[B - 256]) or ak[B]
  337.                 C = C > 255 and y(a5[C - 256]) or ak[C]
  338.                 ak[a8.A][B] = C
  339.             elseif a8[ag] == 11 then
  340.                 A = a8.A
  341.                 B = a8.B
  342.                 local at
  343.                 local aq, aE
  344.                 if B == 1 then
  345.                     return true
  346.                 end
  347.                 if B == 0 then
  348.                     at = al
  349.                 else
  350.                     at = A + B - 2
  351.                 end
  352.                 aE = {}
  353.                 local aq = 0
  354.                 for L = A, at do
  355.                     aq = aq + 1
  356.                     aE[aq] = ak[L]
  357.                 end
  358.                 return true, aE
  359.             elseif a8[ag] == 56 then
  360.                 ak[a8.A] = a8.B ~= 0
  361.                 if a8.C ~= 0 then
  362.                     an = an + 1
  363.                 end
  364.             elseif a8[ag] == 22 then
  365.                 local A = ak[a8.A]
  366.                 if not (not A) == (a8.C == 0) then
  367.                     an = an + 1
  368.                 end
  369.             elseif a8[ag] == 33 then
  370.                 an = an + a8.sBx
  371.             end
  372.         end
  373.     end
  374.     local function aC(...)
  375.         local aF = {}
  376.         local aG = {}
  377.         al = -1
  378.         ak =
  379.             setmetatable(
  380.             aF,
  381.             {__index = aG, __newindex = function(ac, ay, aA)
  382.                     if ay > al and aA then
  383.                         al = ay
  384.                     end
  385.                     aG[ay] = aA
  386.                 end}
  387.         )
  388.         local ar = {...}
  389.         ao = {}
  390.         ap = select("#", ...) - 1
  391.         for L = 0, ap do
  392.             aF[L] = ar[L + 1]
  393.             ao[L] = ar[L + 1]
  394.         end
  395.         am = getfenv()
  396.         an = 1
  397.         local aH = coroutine.create(aq)
  398.         local aI, X, Y = coroutine.resume(aH)
  399.         if aI then
  400.             if Y then
  401.                 return unpack(Y)
  402.             end
  403.             return
  404.         else
  405.             local aJ = X:gsub("(.-:)", "")
  406.             error(aJ, 0)
  407.         end
  408.     end
  409.     return aC
  410. end
  411. return ah(
  412.     N(
  413.         "\0\98\0\0\0\3\2\0\0\0\0\97\2\129\0\0\0\3\2\2\1\0\0\97\2\131\1\0\0\20\1\4\0\0\0\25\1\3\1\2\0\77\1\2\1\3\0\25\1\1\1\1\0\97\2\129\0\0\0\3\2\2\2\0\0\25\1\1\1\1\0\97\2\129\2\0\0\78\1\129\0\6\1\25\1\129\0\2\0\20\1\130\0\0\0\3\2\131\3\0\0\20\1\4\0\0\0\3\2\133\3\0\0\32\3\131\0\0\1\60\2\7\0\0\0\25\1\135\0\1\0\65\3\3\254\255\0\97\2\131\0\0\0\3\2\4\4\0\0\97\2\133\2\0\0\78\1\133\2\6\1\25\1\133\0\2\0\81\1\133\2\1\0\3\2\134\4\0\0\77\1\133\2\6\0\25\1\131\1\1\0\97\2\131\0\0\0\3\2\4\5\0\0\25\1\3\1\1\0\97\2\131\2\0\0\78\1\131\1\6\1\25\1\131\0\2\0\20\1\129\1\0\0\54\1\3\0\0\0\3\2\132\3\0\0\20\1\5\0\0\0\3\2\134\3\0\0\32\3\4\4\0\1\97\2\136\1\0\0\20\1\137\3\0\0\25\1\8\1\2\0\3\2\137\5\0\0\97\2\138\1\0\0\20\1\139\3\0\0\25\1\10\1\2\0\77\1\137\4\10\0\48\1\3\4\9\0\65\3\132\250\255\0\97\2\132\0\0\0\3\2\5\4\0\0\97\2\134\2\0\0\78\1\6\3\6\1\25\1\134\0\2\0\81\1\6\3\1\0\3\2\135\4\0\0\77\1\6\3\7\0\25\1\132\1\1\0\97\2\132\0\0\0\3\2\5\6\0\0\25\1\4\1\1\0\97\2\132\2\0\0\78\1\4\2\6\1\25\1\132\0\2\0\20\1\1\2\0\0\3\2\132\3\0\0\20\1\5\0\0\0\3\2\134\3\0\0\32\3\4\2\0\1\97\2\136\1\0\0\20\1\137\3\0\0\25\1\8\1\2\0\78\1\136\1\8\0\48\1\131\131\8\0\65\3\132\252\255\0\97\2\132\0\0\0\3\2\5\4\0\0\97\2\134\2\0\0\78\1\6\3\6\1\25\1\134\0\2\0\81\1\6\3\1\0\3\2\135\4\0\0\77\1\6\3\7\0\25\1\132\1\1\0\97\2\132\0\0\0\3\2\133\6\0\0\97\2\134\2\0\0\78\1\6\3\6\1\25\1\134\0\2\0\81\1\6\3\2\0\3\2\135\4\0\0\77\1\6\3\7\0\25\1\132\1\1\0\11\1\128\0\0\0\14\0\0\0\3\0\0\0\0\0\106\248\64\4\6\0\0\0cevag\0\4\13\0\0\0Vgrengvbaf: \0\4\9\0\0\0gbfgevat\0\4\17\0\0\0PYBFHER grfgvat.\0\4\3\0\0\0bf\0\4\6\0\0\0pybpx\0\3\0\0\0\0\0\0\240\63\4\6\0\0\0Gvzr:\0\4\2\0\0\0f\0\4\18\0\0\0FRGGNOYR grfgvat.\0\4\12\0\0\0RCVP TNZRE \0\4\18\0\0\0TRGGNOYR grfgvat.\0\4\12\0\0\0Gbgny Gvzr:\0\1\0\0\0\0\7\0\0\0\56\1\0\0\0\0\22\1\0\0\0\0\33\3\0\1\0\1\97\2\0\0\0\0\3\2\129\0\0\0\25\1\0\1\1\0\11\1\128\0\0\0\2\0\0\0\4\6\0\0\0cevag\0\4\11\0\0\0Url tnzre.\0\0\0\0\0"
  414.     )
  415. )()
RAW Paste Data