Zorya-NEO/test.lua

42 lines
3.3 KiB
Lua
Raw Normal View History

local s, t = string, table
local ss = s.sub
--------------------------------------------------------------------------------
local POS_BITS = 12
local LEN_BITS = 16 - POS_BITS
local POS_SIZE = 1 << POS_BITS
local LEN_SIZE = 1 << LEN_BITS
local LEN_MIN = 3
local function lzss_decompress(input)
local offset, output = 1, {}
local window = ''
while offset <= #input do
local flags = s.byte(input, offset)
offset = offset + 1
for i = 1, 8 do
local str = nil
if (flags & 1) ~= 0 and offset <= #input then
str = ss(input, offset, offset)
offset = offset + 1
elseif offset + 1 <= #input then
local tmp = s.unpack('>I2', input, offset)
offset = offset + 2
local pos = (tmp >> LEN_BITS) + 1
local len = (tmp & (LEN_SIZE - 1)) + LEN_MIN
str = ss(window, pos, pos + len - 1)
end
flags = flags >> 1
if str then
output[#output + 1] = str
window = ss(window .. str, -POS_SIZE)
end
end
end
return t.concat(output)
end
return print(lzss_decompress("<EFBFBD>local a=<3D>..._BIOS<4F>=\"Zorya <20>NEO\"_ZVSTR=\"2.0<01><>ER=@;_ZPwAT=GIT a9eec0\"<03>b={}b.li<6C>bsc=3;<3B>b.search<63><05>d0<06>;fun<75>ction kr<6B>equire(e<>)if c[e]<5D>then ret<65>urn <09>end;<3B>for f=1,<2C>#d do g<>=d[f] <09>g <20>\n\" <09>=g()\n{ <20> ! = ;c<>[\"thd\"]=M(u()'i<05><>j=1<0F>comp<6D>uter=<14><0F>u<EFBFBD>npack=C ~ ptable.C<>Vroutine<6E>@<18><0F>.cre<72>at<19>l8yie<69>l<0F>m8resu<73>m<19>n8stat<61>usgh.add<64>(o,ptq=a<>ssert(k(<28>p))i[#i+<2B>1]={o,q,<2C>{},0,\".+\"}i[q]=\"a<EFBFBD> r<05>sF.p<>ullSigna<6E>l<1F>utosle<6C>epet=mat<61>h.huge Wi<57>  <09>i <0C>[4]a,*<2A><t\rst$*<2A><>Ku=t-%<25>up<75>time( <09>u<<3C>0#r>0\rsu<EFBFBD>=0xv={s(<28>u)}if/<2F>1<EFBFBD>v^/<2F>r[#r\"<EFBFBD>vr<>v=r[1]Sr<53>emove(r,C1) !\nt3<EFBFBD>w6<1F>ruPw='<27>)<29><>+d%<25>.<2E>/pw1<77> n<>(*<2A>2])~=\"7<>ning`\n@_x,y=m<<3C>,C<>(w\"@<<3C>ot x<>\rserror<<3C>1<EFBFBD>]..\": \".<2E>.y5R <09>y==\"<EFBFBD>k=<3D>*<2A>6]=tr<74>uery:<3A>+(yp(<28>\"P*<2A>=y;3.100)}q6<71>)<29><>z,R<rz=de'ad\"+@QzC<7A>\n\"<EFBFBD>q[#q\"<EFBFBD>z;q<>[K<> M<>6i=q<>5<EFBFBD>#i/<2F> \" ki<6B>ll(fF<66>C<EFBFBD><1F>s<EFBFBD>ched_ 5#<23>i==jPMget<65>_th<1A>ds6iPK%<25>l(qEY!5hh1)e%<25>&<26><12> <06>bt6<74>@syst<73>em<11>l A6<41>A<EFBFBD>q!<21>)while<6C>7<EFBFBD> KBpa(pr<70>otectS<74>7<EFBFBD>C<EFBFBD>,o)o=o\"<EFBFBD>lkprc$B B<><0F>DI<44>E,z i<>n pairs(<28>_GcD[EN<45>;<3B>D._ENV=D<>jGjr&nil;<3B> <20>!<21>loade<64>\"<EFBFBD>=B o,\"t\",GD))5Ra( <20>_P<>(F,G)c[F<>]=GPKo#<06>(H_)d[#d\"<EFBFBD>Hr\ntAZ<EFBFBD>_<11>_]^()I]x<18>l^UA]xt1|t<14>onentB<>zB_zJ=fal<61>s<19>K6<4B>log(r<00>)zexy(W<7F>list(\"ocoemu\"[).~<7E>\"<0F>LpvM\" <20><>\"zyneof<EFBFBD>L<EFBFBD> <20><0F>NN.w<>s<EFBFBD>=<11>O6<4F>O.deObug_~<7E>Pz<50>:<3A><>s+box<6F><78> pȀ_<C880>t <09>P\rtfinvoke(P,<04><>g\",<2C>DPKO.b<> <20>r(QtQ=Q<>:gsub(\"-\",\"\",Dt<10>\" fQ,2 R=<3D>R.pr=<3D>.ch<63>ar(tonum<75>be<62><65>:<3A><>f,f?+1),16n3\nt<EFBFBD>R<EFBFBD><EFBFBD>V1fb`(S,9T<39><54>U,g<>x<EFBFBD>4<EFBFBD>S,\"V1\",T,<2C>FH@3U +\rdAg^5RR=U;bCU <07><><EFBFBD><EFBFBD><EFBFBD>F<EFBFBD><46>b(Ufa\"<EFBFBD><EFBFBD>7\n\"b<1A>k6<><36>,?\"close<EFBFBD>`E<><45><EFBFBD>d( copy(V,W)W=W<10><05>X={[V]=<3D>W<05>Y={V<05>Zo={W}bB#Y/<2F><> g<>Y4 c <09>ty<74>pe(z=1R=<3D>Zp4 it}`*aX[z\n<><E0B195><EFBFBD>2I'<27><>q;Y<>[#YM<59>Z[#Z6\"<EFBFBD>q;<3B><>=q5rR4ZZ504ZY5;Wr<57><72>Oro'\"z1\",Z<11>_<05>a0<61>G16<31><36>a0<61><30>admod<6F>(a2 <09>a1[aQ2\n<1A>s *_ g<>P'#_,<2C> E_ <0C><>,\rd<EFBFBD>s=g5<67>g<EFBFBD>:<3A><><EFBFBD>ere<72>pnp(D<>nK<6E>`oA<6F><41>q<EFBFBD>p)_<>[#_\"<EFBFBD>p<0F>g(#_<>>lkpPO<50>U<>V<16>opiQ<69>ZU<5A>jDAs5ha0R<30><52>3<>'<00>o<EFBFBD><6F><EFBFBD><EFBFBD><EFBFBD>Ϟ<EFBFBD><CF9E><0F>/<2F>_<EFBFBD><5F>o<EFBFBD><6F><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>4¾G5<47>x<78><7F>( roym<79><6D>U<EFBFBD>Datae<>a6=a5<61>1,<2C>36)<29><>4U<34><55>a<>7tT!<21><><EFBFBD>a6,<2C>\"open\",am7<6D>\")Ea3<61>!<21>T<EFBFBD><4.ex<65>s<18><>\nu<EFBFBD>?,\"<EFBFBD>C<EFBFBD><EFBFBD>5R<EFBFBD><EFBFBD>P<EFBFBD><EFBFBD>=a6<61>]a8h<38><68> <09>V<EFBFBD>$4)B<><42>\\27ZLS=<3D>V=a(<28><>5<EFBFBD><35>l<EFBFBD><6C>cz !M<11>x;xp Qp<11><><EFBFBD>]<5D><><EFBFBD>)<29><11><><EFBFBD><EFBFBD><EFBFBD>&\".zy2/v<><76>s/?<3F>a2 ?0<18><><EFBFBD>`<60><>8(<28>(<28><><EFBFBD><EFBFBD><EFBFBD>f<EFBFBD><66><EFBFBD><EFBFBD><EFBFBD>ǰt<C7B0><74><0F> /init<69><74><EFBFBD><EFBFBD><EFBFBD>o<EFBFBD>h@<40>o<EFBFBD>M<EFBFBD><4D>I2_Z<5F>LN<4C><4E><00><><EFBFBD>o<EFBFBD><6F><EFBFBD><EFBFBD>W0<57><30>^<5E><><EFBFBD><10><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\"<EFBFBD><EFBFBD><EFBFBD>_<EFBFBD><00><><EFBFBD><EFBFBD><EFBFBD>o<EFBFBD>d<EFBFBD><64><EFBFBD><EFBFBD><EFBFBD>5<EFBFBD><35><EFBFBD>9=<3D><>cfg.l<>u<EFBFBD><75>=f<>2=a0,<2C><><EFBFBD><EFBFBD>P<EFBFBD><50><EFBFBD><EFBFBD>m<EFBFBD><6D><EFBFBD>,_<>BOOTADDR<00>1cQ9_9_9<5F>8<EFBFBD><38>e:Xa9:@zy<7A>_<>:#<23><><EFBFBD>,ˇa)x=a<>a US\".tracCeb<08> a<08> x<>(<28>\n"), "=bios.lua")(lzss_decompress)