Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- local var0 = assert
- local var1 = select
- local var2 = tonumber
- local var3 = unpack
- local var4 = pcall
- local var5 = setfenv
- local var6 = setmetatable
- local var7 = type
- local var8 = getfenv
- local var9 = tostring
- local var10 = error
- local var11 = string.sub
- local var12 = string.byte
- local var13 = string.char
- local var14 = string.rep
- local var15 = string.gsub
- local var16 = string.match
- local var17 = 1.0
- local var18 = { }
- local var19 = 1.0
- local function vm_run(var21, var75)
- local var20
- var21 = string.gsub(string.sub(var21, 5.0), "..", function (var22)
- if (string.byte(var22, 2.0) == 71.0) then
- var20 = tonumber(string.sub(var22, 1.0, 1.0))
- return ""
- else
- local var23 = string.char(tonumber(var22, 16.0))
- if var20 then
- local var24 = string.rep(var23, var20)
- var20 = nil
- return var24
- else
- return var23
- end
- end
- end
- )
- local function get_byte()
- local var25 = string.byte(var21, var19, var19)
- var19 = (var19 + 1.0)
- return var25
- end
- local function get_dword()
- local var26, var27, var28, var29 = string.byte(var21, var19, (var19 + 3.0))
- var19 = (var19 + 4.0)
- return ((((var29 * 1.6777216E7) + (var28 * 65536.0)) + (var27 * 256.0)) + var26)
- end
- local function get_bits(var34, var33, var30)
- if var30 then
- local var31, var32 = 0.0, 0.0
- for var35 = var33, var30 do
- var31 = (var31 + ((2.0 ^ var32) * get_bits(var34, var35)))
- var32 = (var32 + 1.0)
- end
- return var31
- else
- local var36 = (2.0 ^ (var33 - 1.0))
- return (((var36 <= (var34 % (var36 + var36))) and 1.0) or 0.0)
- end
- end
- local function get_float64()
- local var37, var38 = get_dword(), get_dword()
- if ((var37 == 0.0) and (var38 == 0.0)) then
- return 0.0
- end
- return ((((-2.0 * get_bits(var38, 32.0)) + 1.0) * (2.0 ^ (get_bits(var38, 21.0, 31.0) - 1023.0))) * ((((get_bits(var38, 1.0, 20.0) * 4.294967296E9) + var37) / 4.503599627370496E15) + 1.0))
- end
- local function get_instruction(var42)
- local var39 = { string.byte(var21, var19, (var19 + 3.0)) }
- var19 = (var19 + 4.0)
- local var40 = { nil, nil, nil, nil, nil, nil, nil, nil }
- for var41 = 1.0, 8.0 do
- var40[var41] = get_bits(var42, var41)
- end
- local var43 = ""
- for var47 = 1.0, 4.0 do
- local var44, var45 = 0.0, 0.0
- for var48 = 1.0, 8.0 do
- local var46 = get_bits(var39[var47], var48)
- if (var40[var48] == 1.0) then
- var46 = (((var46 == 1.0) and 0.0) or 1.0)
- end
- var44 = (var44 + ((2.0 ^ var45) * var46))
- var45 = (var45 + 1.0)
- end
- var43 = (var43 .. var43.char(var44))
- end
- local var49, var50, var51, var52 = string.byte(var43, 1.0, 4.0)
- return ((((var52 * 1.6777216E7) + (var51 * 65536.0)) + (var50 * 256.0)) + var49)
- end
- local function get_string(var56)
- local var53 = get_dword()
- var19 = (var19 + var53)
- local var54 = { nil, nil, nil, nil, nil, nil, nil, nil }
- for var55 = 1.0, 8.0 do
- var54[var55] = get_bits(var56, var55)
- end
- local var57 = ""
- for var61 = 1.0, var53 do
- local var58, var59 = 0.0, 0.0
- for var62 = 1.0, 8.0 do
- local var60 = get_bits(string.byte(var21, (((var19 - var53) + var61) - 1.0)), var62)
- if (var54[var62] == 1.0) then
- var60 = (((var60 == 1.0) and 0.0) or 1.0)
- end
- var58 = (var58 + ((2.0 ^ var59) * var60))
- var59 = (var59 + 1.0)
- end
- var57 = (var57 .. var57.char(var58))
- end
- return var57
- end
- local var63 = get_byte()
- local var64 = get_byte()
- local function decode_chunk()
- local var65 = { [72954.0] = { }, [66314.0] = { }, [27462.0] = { }, [71906.0] = { } }
- get_byte()
- local var66 = (get_dword() - 133703.0)
- for var69 = var17, var66 do
- local var67 = { }
- local var68 = get_instruction(var64)
- var67[109731.0] = get_bits(var68, 27.0, 32.0)
- var67[33794.0] = get_bits(var68, 1.0, 9.0)
- var67[10795.0] = get_bits(var68, 10.0, 18.0)
- var67[4075.0] = get_bits(var68, 19.0, 26.0)
- var67[103007.0] = get_bits(var68, 1.0, 18.0)
- var67[47774.0] = get_bits(var68, 1.0, 18.0)
- var65[71906.0][var69] = var67
- end
- var65[35853.0] = get_byte()
- get_dword()
- get_byte()
- var65[47888.0] = get_byte()
- get_dword()
- local var66 = (get_dword() - 133707.0)
- for var72 = var17, var66 do
- local var70 = { }
- local var71 = get_byte()
- if (var71 == 167.0) then
- var70[85265.0] = get_string(var63)
- end
- if (var71 == 110.0) then
- var70[85265.0] = get_float64()
- end
- if (var71 == 18.0) then
- var70[85265.0] = false
- end
- if (var71 == 251.0) then
- var70[85265.0] = get_dword()
- end
- if (var71 == 17.0) then
- var70[85265.0] = true
- end
- if (var71 == 240.0) then
- var70[85265.0] = get_float64()
- end
- if (var71 == 218.0) then
- var70[85265.0] = get_string(120.0)
- end
- if (var71 == 219.0) then
- var70[85265.0] = get_byte()
- end
- if (var71 == 131.0) then
- var70[85265.0] = get_dword()
- end
- var65[66314.0][(var72 - var17)] = var70
- end
- get_dword()
- get_dword()
- get_byte()
- get_byte()
- local var66 = get_dword()
- for var73 = var17, var66 do
- var65[72954.0][(var73 - var17)] = decode_chunk()
- end
- var65[34709.0] = get_byte()
- local var66 = get_dword()
- for var74 = var17, var66 do
- var65[27462.0][var74] = get_dword()
- end
- return var65
- end
- local function create_wrapper(cache, environment, upvalues)
- local var76, var77 = 15.0, -1.0
- local var78 = cache[71906.0]
- local constants = setmetatable({ }, { [__index] = function (test6lIlIll1l11IlilllIlI1i, var82)
- local var81 = cache[66314.0][var82]
- if (string.sub(type(var81[85265.0]), 1.0, 1.0) == "s") then
- return { [85265.0] = string.sub(var81[85265.0], 3.0) }
- end
- return var81
- end
- })
- local var83 = 34709.0
- local var84 = cache[72954.0]
- local var85 = 85265.0
- local var86 = cache[47888.0]
- local var87 = 109731.0
- local var88 = cache[27462.0]
- local var89 = 33794.0
- local function vm_run_func(...)
- local var90 = 0.0
- local stack = { }
- local var92 = 1.0
- local var93 = { }
- local var94 = { }
- local var95 = 1.0
- local environment = getfenv()
- local var97 = { ... }
- local varargsz = (#var97 - 1.0)
- for var99 = 0.0, varargsz do
- if (var99 < var86) then
- stack[var99] = var97[(var99 + 1.0)]
- end
- end
- local function handle_return(...)
- local var100 = select("#", ...)
- local var101 = { ... }
- return var100, var101
- end
- local sbx_bias = 131071.0
- local vm_opcode_handler_table
- local vm_handler_table = { function (var106, test6lIll11illiIlIiI1Ill1I, test6iii1iil1IIiilIliIli, test6lIllil1llIiil11Iii1l1)
- local var105 = var106[103007.0]
- local var107 = var106[4075.0]
- local var108 = var106[33794.0]
- local var109 = (var106[103007.0] - sbx_bias)
- local var110 = var106[10795.0]
- stack[var107] = { unpack(var18, 1.0, (((var108 == 0.0) and 895.0) or var108)) }
- end
- , nil, nil, function (var112, test6lIll11illiIlIiI1Ill1I, test6iii1iil1IIiilIliIli)
- local var111 = (var112[103007.0] - sbx_bias)
- local var113 = var112[33794.0]
- local var114 = var112[10795.0]
- local var115 = var112[4075.0]
- local var116 = var112[103007.0]
- if (var113 > 255.0) then
- var113 = constants[(var113 - 256.0)][var85]
- else
- var113 = stack[var113]
- end
- if (var114 > 255.0) then
- var114 = constants[(var114 - 256.0)][var85]
- else
- var114 = stack[var114]
- end
- stack[var115] = (var113 % var114)
- end
- , nil, nil, function (var118, test6lIll11illiIlIiI1Ill1I)
- local var117 = var118[4075.0]
- local var119 = var118[10795.0]
- local var120 = var118[33794.0]
- local var121 = var118[103007.0]
- local var122 = (var118[103007.0] - sbx_bias)
- if (var120 > 255.0) then
- var120 = constants[(var120 - 256.0)][var85]
- else
- var120 = stack[var120]
- end
- if (var119 > 255.0) then
- var119 = constants[(var119 - 256.0)][var85]
- else
- var119 = stack[var119]
- end
- stack[var117][var120] = var119
- end
- , function (var124)
- local var123 = (var124[103007.0] - sbx_bias)
- local var125 = var124[10795.0]
- local var126 = var124[4075.0]
- local var127 = var124[33794.0]
- local var128 = var124[103007.0]
- if (var127 > 255.0) then
- var127 = constants[(var127 - 256.0)][var85]
- else
- var127 = stack[var127]
- end
- if (var125 > 255.0) then
- var125 = constants[(var125 - 256.0)][var85]
- else
- var125 = stack[var125]
- end
- stack[var126] = (var127 + var125)
- end
- , nil, nil, nil, nil, function (var130, test6lIll11illiIlIiI1Ill1I)
- local var129 = (var130[103007.0] - sbx_bias)
- local var131 = var130[103007.0]
- local var132 = var130[10795.0]
- local var133 = var130[33794.0]
- local var134 = var130[4075.0]
- upvalues[var133] = stack[var134]
- end
- , nil, nil, nil, nil, nil, function (var137, test6lIll11illiIlIiI1Ill1I, test6iii1iil1IIiilIliIli)
- local var136 = var137[10795.0]
- local var138 = var137[103007.0]
- local var139 = var137[4075.0]
- local var140 = (var137[103007.0] - sbx_bias)
- local var141 = var137[33794.0]
- stack[var139] = assert(tonumber(stack[var139]), "`for` initial value must be a number")
- stack[(var139 + 1.0)] = assert(tonumber(stack[(var139 + 1.0)]), "`for` limit value must be a number")
- stack[(var139 + 2.0)] = assert(tonumber(stack[(var139 + 2.0)]), "`for` step value must be a number")
- stack[var139] = (stack[var139] - stack[(var139 + 2.0)])
- var92 = (var92 + var140)
- end
- , nil }
- vm_handler_table[6.0] = function (var143, test6lIll11illiIlIiI1Ill1I)
- local var142 = var143[103007.0]
- local var144 = (var143[103007.0] - sbx_bias)
- local var145 = var143[33794.0]
- local var146 = var143[10795.0]
- local var147 = var143[4075.0]
- local var148 = var84[var142]
- local var149 = { }
- if (var148[var83] > 0.0) then
- do
- local var150 = { }
- var149 = setmetatable({ }, { [__index] = function (test6lIlIll1l11IlilllIlI1i, var152)
- local var151 = var150[var152]
- return var151[1.0][var151[2.0]]
- end
- , [__newindex] = function (test6lIlIll1l11IlilllIlI1i, var154, var155)
- local var153 = var150[var154]
- var153[1.0][var153[2.0]] = var155
- end
- })
- for var157 = 1.0, var148[var83] do
- local var156 = var78[var92]
- if (var156[var87] == var76) then
- var150[(var157 - 1.0)] = { stack, var156[var89] }
- elseif (var156[var87] == var77) then
- var150[(var157 - 1.0)] = { upvalues, var156[var89] }
- end
- var92 = (var92 + 1.0)
- end
- var93[(#var93 + 1.0)] = var150
- end
- end
- local var158 = create_wrapper(var148, environment, var149)
- stack[var147] = var158
- end
- vm_handler_table[20.0] = function (var160, test6lIll11illiIlIiI1Ill1I, test6iii1iil1IIiilIliIli, test6lIllil1llIiil11Iii1l1)
- local var159 = var160[4075.0]
- local var161 = (var160[103007.0] - sbx_bias)
- local var162 = var160[103007.0]
- local var163 = var160[33794.0]
- local var164 = var160[10795.0]
- if (var164 == 19.0) then
- return vm_opcode_handler_table[14.0]({ [4075.0] = ((var159 - 182.0) % 256.0), [33794.0] = ((var163 - 182.0) % 256.0), [103007.0] = 0.0 })
- end
- stack[var159] = stack[var163]
- end
- vm_handler_table[0.0] = function (var166, test6lIll11illiIlIiI1Ill1I, test6iii1iil1IIiilIliIli)
- local var165 = var166[10795.0]
- local var167 = var166[103007.0]
- local var168 = (var166[103007.0] - sbx_bias)
- local var169 = var166[4075.0]
- local var170 = var166[33794.0]
- local var171
- if (var167 == 100000.0) then
- var171 = stack[251.0]
- else
- var171 = constants[var167][var85]
- end
- stack[var169] = environment[var171]
- end
- vm_handler_table[17.0] = function (var173, test6lIll11illiIlIiI1Ill1I, test6iii1iil1IIiilIliIli)
- local var172 = var173[33794.0]
- local var174 = var173[10795.0]
- local var175 = var173[103007.0]
- local var176 = (var173[103007.0] - sbx_bias)
- local var177 = var173[4075.0]
- if (var174 == 36.0) then
- return vm_opcode_handler_table[16.0]({ [4075.0] = ((var177 - 60.0) % 256.0), [33794.0] = ((var172 - 60.0) % 256.0), [103007.0] = 0.0 })
- end
- stack[var177] = not stack[var172]
- end
- vm_handler_table[16.0] = function (var179, test6lIll11illiIlIiI1Ill1I, test6iii1iil1IIiilIliIli)
- local var178 = var179[33794.0]
- local var180 = var179[10795.0]
- local var181 = (var179[103007.0] - sbx_bias)
- local var182 = var179[103007.0]
- local var183 = var179[4075.0]
- local var184 = stack[var178]
- for var185 = (var178 + 1.0), var180 do
- var184 = (var184 .. stack[var185])
- end
- stack[var183] = var184
- end
- vm_handler_table[18.0] = function (var187, test6lIll11illiIlIiI1Ill1I, test6iii1iil1IIiilIliIli)
- local var186 = var187[103007.0]
- local var188 = var187[33794.0]
- local var189 = (var187[103007.0] - sbx_bias)
- local var190 = var187[10795.0]
- local var191 = var187[4075.0]
- local var192 = stack[(var191 + 2.0)]
- local var193 = (stack[var191] + var192)
- stack[var191] = var193
- if (var192 > 0.0) then
- if (var193 <= stack[(var191 + 1.0)]) then
- var92 = (var92 + var189)
- stack[(var191 + 3.0)] = var193
- end
- elseif (var193 >= stack[(var191 + 1.0)]) then
- var92 = (var92 + var189)
- stack[(var191 + 3.0)] = var193
- end
- end
- vm_handler_table[5.0] = function (var195, test6lIll11illiIlIiI1Ill1I)
- local var194 = var195[33794.0]
- local var196 = (var195[103007.0] - sbx_bias)
- local var197 = var195[103007.0]
- local var198 = var195[4075.0]
- local var199 = var195[10795.0]
- for var200 = var198, var194 do
- stack[var200] = nil
- end
- end
- vm_handler_table[2.0] = function (var202, test6lIll11illiIlIiI1Ill1I)
- local var201 = (var202[103007.0] - sbx_bias)
- local var203 = var202[4075.0]
- local var204 = var202[103007.0]
- local var205 = var202[10795.0]
- local var206 = var202[33794.0]
- if (stack[var203] == (var205 == 0.0)) then
- var92 = (var92 + 1.0)
- end
- end
- vm_handler_table[15.0] = function (var208, test6lIll11illiIlIiI1Ill1I)
- local var207 = var208[33794.0]
- local var209 = (var208[103007.0] - sbx_bias)
- local var210 = var208[103007.0]
- local var211 = var208[10795.0]
- local var212 = var208[4075.0]
- stack[var212] = constants[var210][var85]
- end
- vm_handler_table[11.0] = function (var214, test6lIll11illiIlIiI1Ill1I)
- local var213 = var214[103007.0]
- local var215 = var214[33794.0]
- local var216 = var214[10795.0]
- local var217 = (var214[103007.0] - sbx_bias)
- local var218 = var214[4075.0]
- if (var215 == 1.0) then
- return true
- end
- local var219 = ((var218 + var215) - 2.0)
- if (var215 == 0.0) then
- var219 = var90
- end
- return true, var218, var219
- end
- vm_handler_table[10.0] = function (var221, test6lIll11illiIlIiI1Ill1I, test6iii1iil1IIiilIliIli, test6lIllil1llIiil11Iii1l1)
- local var220 = var221[4075.0]
- local var222 = (var221[103007.0] - sbx_bias)
- local var223 = var221[103007.0]
- local var224 = var221[33794.0]
- local var225 = var221[10795.0]
- local var226, var227, var228
- if (var224 ~= 1.0) then
- if (var224 ~= 0.0) then
- var227 = ((var220 + var224) - 1.0)
- else
- var227 = var90
- end
- var227, var226 = handle_return(stack[var220](unpack(stack, (var220 + 1.0), var227)))
- else
- var227, var226 = handle_return(stack[var220]())
- end
- if (var225 ~= 1.0) then
- if (var225 ~= 0.0) then
- var227 = ((var220 + var225) - 2.0)
- else
- var227 = (var227 + var220)
- end
- var228 = 0.0
- for var229 = var220, var227 do
- var228 = (var228 + 1.0)
- stack[var229] = var226[var228]
- end
- end
- var90 = (var227 - 1.0)
- end
- vm_handler_table[14.0] = function (var231)
- local var230 = var231[33794.0]
- local var232 = var231[4075.0]
- local var233 = var231[103007.0]
- local var234 = (var231[103007.0] - sbx_bias)
- local var235 = var231[10795.0]
- local var236 = (((var230 > 0.0) and (var230 - 1.0)) or (varargsz - var86))
- if (var236 < 0.0) then
- var236 = -1.0
- end
- for var237 = var232, (var232 + var236) do
- stack[var237] = var97[((var86 + (var237 - var232)) + 1.0)]
- end
- var90 = (var232 + var236)
- end
- vm_handler_table[12.0] = function (var239, test6lIll11illiIlIiI1Ill1I, test6iii1iil1IIiilIliIli)
- local var238 = var239[10795.0]
- local var240 = var239[103007.0]
- local var241 = (var239[103007.0] - sbx_bias)
- local var242 = var239[33794.0]
- local var243 = var239[4075.0]
- var92 = (var92 + var241)
- end
- vm_handler_table[9.0] = function (var245, test6lIll11illiIlIiI1Ill1I, test6iii1iil1IIiilIliIli)
- local var244 = var245[103007.0]
- local var246 = var245[33794.0]
- local var247 = var245[4075.0]
- local var248 = var245[10795.0]
- local var249 = (var245[103007.0] - sbx_bias)
- if (var246 > 255.0) then
- var246 = constants[(var246 - 256.0)][var85]
- else
- var246 = stack[var246]
- end
- if (var248 > 255.0) then
- var248 = constants[(var248 - 256.0)][var85]
- else
- var248 = stack[var248]
- end
- stack[var247] = (var246 / var248)
- end
- vm_handler_table[3.0] = function (var251, test6lIll11illiIlIiI1Ill1I)
- local var250 = var251[10795.0]
- local var252 = var251[4075.0]
- local var253 = var251[103007.0]
- local var254 = var251[33794.0]
- local var255 = (var251[103007.0] - sbx_bias)
- local var256
- if (var253 == 100000.0) then
- var256 = stack[251.0]
- else
- var256 = constants[var253][var85]
- end
- environment[var256] = stack[var252]
- end
- vm_opcode_handler_table = { vm_handler_table[2.0], vm_handler_table[0.0], vm_handler_table[19.0], vm_handler_table[1.0], vm_handler_table[5.0], vm_handler_table[3.0], vm_handler_table[16.0], vm_handler_table[14.0], vm_handler_table[15.0], vm_handler_table[17.0], vm_handler_table[6.0], vm_handler_table[12.0], vm_handler_table[10.0], vm_handler_table[11.0], vm_handler_table[4.0], vm_handler_table[20.0], vm_handler_table[18.0], vm_handler_table[9.0], vm_handler_table[13.0], vm_handler_table[8.0], vm_handler_table[7.0] }
- local function func11()
- while true do
- local var257 = var78[var92]
- var92 = (var92 + 1.0)
- local var258, var259, var260 = vm_opcode_handler_table[(var257[109731.0] + 1.0)](var257)
- if var258 then
- return var259, var260
- end
- end
- end
- local var261, var262, var263 = pcall(func11)
- if var261 then
- if var262 then
- return unpack(stack, var262, var263)
- end
- else
- local var264 = string.gsub(("Luraph Script:" .. ((var88[(var92 - 1.0)] or "") .. (": " .. tostring(var262)))), "[^:]+:%d*: ", function (var265)
- if not string.match(var265, "Luraph Script:%d") then
- return ""
- end
- end
- )
- error(var264, 0.0)
- end
- end
- setfenv(vm_run_func, var266)
- return vm_run_func
- end
- local var267 = decode_chunk()
- return create_wrapper(var267, var75)
- end
- vm_run("LPH|46E72D4E0A02002GE7E5CBE62GE7CF3GE7CF3GE7F33GE7E3E62GE7D73GE7D3000D3B467FFE00E4FE55294C0A0200F05G00E4944065DA3261B57BC72BAF8B013G00EF790A0200F0E7E5CB2GE7EFE3DBAF1BC32GE7E5CB64E6EFF72GE5EFD7E2E7EFE3FDE7E5CB2GE7EFE3FFE7E5CBE7EDE7ABF2E7EDA72GE7EFC7E5E7EBC7E4E7F7C7E3E7EDEFDAAFEFC2A6AFEBC22G18E6CBE3E72GC7E1F7E3FF1E18EEA7E2E7EFE30E18E6CB0018E6CBE6E7E5CB3GE7CF3GE7E33GE7C7E6E7E3C72GE7EFC7E5E7EBC7E4E7F7C70F18EEEF0118E6CBDAAF1BC32GE7E5CBC9E6EFF72GE5EFD750C13FD9FF3119CA093702A1090B35CF9E9253DED4FC21E74D7F67EB681B19F907FF87E36B568CAC0450FEB7096D4B731D37003BFA8F7C520A0200F08G00A7083G002G4628272B237C66F06G002440F06G00F03FA7033G002G466AA7073G002G4636342F2832A7023G002G461ED09A4C9B683C423B825G00289G002G000D9G002G000D3G000E9G006G00063G00053G00093G00093G00093G00093G000A3G000A7G000A3G000A3G00093G000D9G009G005G00013G00033G00053G00053G00053G00057G000E9G002G000E3G000E8G00", getfenv())
Advertisement
Add Comment
Please, Sign In to add comment