Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- --// Obfuscated with NiggaSealant
- --// Works best if executed multiple times
- game.Players.LocalPlayer.Character.HumanoidRootPart.CFrame = CFrame.new(0,4000,0)
- wait()
- while true do
- for i = 1, 17 do
- wait()
- while true do
- local llIIlIlIIllllIlIlIlIIlIlIlIllllIllI = {'\27','\76','\117','\97','\81','\0','\1','\4','\8','\4','\8','\0','\7','\0',
- '\0','\0','\0','\0','\0','\0','\60','\101','\118','\97','\108','\62','\0','\3','\0','\0','\0','\58','\0','\0','\0','\0','\0',
- '\0','\14','\128','\0','\0','\0','\1','\0','\0','\0','\64','\0','\0','\0','\129','\64','\0','\0','\85','\128','\128','\0',
- '\75','\128','\192','\0','\193','\192','\0','\0','\92','\128','\128','\1','\129','\0','\1','\0','\193','\64','\1','\0','\1',
- '\1','\1','\0','\160','\0','\1','\128','\133','\129','\1','\0','\134','\193','\65','\3','\139','\1','\66','\3','\0','\2',
- '\128','\0','\156','\65','\128','\1','\159','\64','\254','\127','\133','\128','\1','\0','\139','\64','\66','\1','\1','\193',
- '\1','\0','\156','\128','\128','\1','\134','\128','\66','\1','\197','\192','\2','\0','\203','\0','\195','\1','\70','\65',
- '\67','\1','\220','\128','\128','\1','\23','\128','\195','\1','\22','\128','\0','\128','\198','\192','\67','\1','\203','\0',
- '\196','\1','\220','\64','\0','\1','\197','\192','\2','\0','\6','\65','\67','\1','\198','\0','\129','\1','\6','\65','\196',
- '\1','\11','\129','\68','\2','\28','\129','\0','\1','\6','\1','\65','\2','\70','\193','\68','\2','\133','\1','\5','\0','\134',
- '\65','\69','\3','\193','\129','\5','\0','\6','\194','\69','\1','\156','\129','\128','\1','\198','\1','\70','\3','\5','\66',
- '\6','\0','\6','\66','\69','\4','\65','\130','\6','\0','\129','\194','\6','\0','\193','\130','\6','\0','\28','\130','\0',
- '\2','\206','\1','\130','\3','\137','\193','\1','\140','\137','\193','\0','\142','\73','\129','\1','\142','\197','\129','\1',
- '\0','\203','\65','\194','\3','\65','\66','\7','\0','\220','\129','\128','\1','\198','\129','\199','\3','\203','\193','\199',
- '\3','\100','\2','\0','\0','\0','\0','\128','\1','\220','\65','\128','\1','\195','\1','\128','\3','\11','\2','\195','\1',
- '\129','\2','\8','\0','\28','\130','\128','\1','\26','\2','\0','\0','\22','\64','\0','\128','\193','\1','\8','\0','\22','\0',
- '\0','\128','\193','\65','\8','\0','\1','\2','\1','\0','\65','\130','\8','\0','\129','\2','\1','\0','\32','\130','\1','\128',
- '\6','\195','\129','\1','\6','\195','\72','\6','\11','\3','\73','\6','\28','\131','\0','\1','\70','\67','\196','\1','\70',
- '\67','\201','\6','\9','\67','\3','\142','\31','\194','\253','\127','\5','\130','\9','\0','\65','\2','\1','\0','\28','\66',
- '\0','\1','\5','\2','\5','\0','\6','\66','\69','\4','\65','\194','\9','\0','\133','\194','\2','\0','\28','\130','\128','\1',
- '\9','\66','\74','\148','\9','\2','\65','\149','\9','\2','\203','\149','\70','\66','\203','\1','\70','\66','\198','\4','\9',
- '\66','\130','\140','\69','\194','\2','\0','\70','\130','\203','\4','\73','\2','\130','\151','\69','\2','\12','\0','\129',
- '\66','\12','\0','\92','\66','\0','\1','\70','\66','\196','\1','\73','\2','\75','\153','\69','\2','\5','\0','\70','\66','\197',
- '\4','\129','\194','\12','\0','\198','\2','\205','\1','\92','\130','\128','\1','\133','\130','\13','\0','\134','\66','\69',
- '\5','\193','\194','\13','\0','\1','\195','\13','\0','\65','\195','\13','\0','\156','\130','\0','\2','\73','\130','\130',
- '\154','\133','\130','\13','\0','\134','\66','\69','\5','\193','\130','\6','\0','\1','\67','\14','\0','\65','\131','\6','\0',
- '\156','\130','\0','\2','\73','\130','\2','\156','\73','\194','\77','\157','\30','\0','\128','\0','\59','\0','\0','\0','\4',
- '\2','\0','\0','\0','\0','\0','\0','\0','\58','\0','\4','\7','\0','\0','\0','\0','\0','\0','\0','\99','\108','\101','\97',
- '\110','\32','\0','\4','\4','\0','\0','\0','\0','\0','\0','\0','\114','\101','\112','\0','\3','\0','\0','\0','\0','\0','\136',
- '\195','\64','\3','\0','\0','\0','\0','\0','\0','\240','\63','\3','\0','\0','\0','\0','\0','\0','\89','\64','\4','\5','\0',
- '\0','\0','\0','\0','\0','\0','\103','\97','\109','\101','\0','\4','\8','\0','\0','\0','\0','\0','\0','\0','\80','\108','\97',
- '\121','\101','\114','\115','\0','\4','\5','\0','\0','\0','\0','\0','\0','\0','\67','\104','\97','\116','\0','\4','\11','\0',
- '\0','\0','\0','\0','\0','\0','\71','\101','\116','\83','\101','\114','\118','\105','\99','\101','\0','\4','\12','\0','\0',
- '\0','\0','\0','\0','\0','\76','\111','\99','\97','\108','\80','\108','\97','\121','\101','\114','\0','\4','\10','\0','\0',
- '\0','\0','\0','\0','\0','\119','\111','\114','\107','\115','\112','\97','\99','\101','\0','\4','\15','\0','\0','\0','\0',
- '\0','\0','\0','\70','\105','\110','\100','\70','\105','\114','\115','\116','\67','\104','\105','\108','\100','\0','\4','\5',
- '\0','\0','\0','\0','\0','\0','\0','\78','\97','\109','\101','\0','\0','\4','\15','\0','\0','\0','\0','\0','\0','\0','\67',
- '\104','\97','\114','\97','\99','\116','\101','\114','\65','\100','\100','\101','\100','\0','\4','\5','\0','\0','\0','\0',
- '\0','\0','\0','\87','\97','\105','\116','\0','\4','\9','\0','\0','\0','\0','\0','\0','\0','\72','\117','\109','\97','\110',
- '\111','\105','\100','\0','\4','\15','\0','\0','\0','\0','\0','\0','\0','\71','\101','\116','\65','\99','\99','\101','\115',
- '\115','\111','\114','\105','\101','\115','\0','\4','\7','\0','\0','\0','\0','\0','\0','\0','\72','\97','\110','\100','\108',
- '\101','\0','\4','\9','\0','\0','\0','\0','\0','\0','\0','\73','\110','\115','\116','\97','\110','\99','\101','\0','\4','\4',
- '\0','\0','\0','\0','\0','\0','\0','\110','\101','\119','\0','\4','\5','\0','\0','\0','\0','\0','\0','\0','\84','\111','\111',
- '\108','\0','\4','\9','\0','\0','\0','\0','\0','\0','\0','\66','\97','\99','\107','\112','\97','\99','\107','\0','\4','\5',
- '\0','\0','\0','\0','\0','\0','\0','\71','\114','\105','\112','\0','\4','\7','\0','\0','\0','\0','\0','\0','\0','\67','\70',
- '\114','\97','\109','\101','\0','\3','\0','\0','\0','\0','\0','\0','\0','\0','\3','\0','\0','\0','\0','\0','\0','\89','\192',
- '\4','\7','\0','\0','\0','\0','\0','\0','\0','\80','\97','\114','\101','\110','\116','\0','\4','\11','\0','\0','\0','\0',
- '\0','\0','\0','\82','\117','\110','\83','\101','\114','\118','\105','\99','\101','\0','\4','\8','\0','\0','\0','\0','\0',
- '\0','\0','\83','\116','\101','\112','\112','\101','\100','\0','\4','\8','\0','\0','\0','\0','\0','\0','\0','\67','\111',
- '\110','\110','\101','\99','\116','\0','\4','\10','\0','\0','\0','\0','\0','\0','\0','\82','\105','\103','\104','\116','\32',
- '\65','\114','\109','\0','\4','\10','\0','\0','\0','\0','\0','\0','\0','\82','\105','\103','\104','\116','\72','\97','\110',
- '\100','\0','\3','\0','\0','\0','\0','\0','\76','\237','\64','\4','\10','\0','\0','\0','\0','\0','\0','\0','\82','\105','\103',
- '\104','\116','\71','\114','\105','\112','\0','\4','\6','\0','\0','\0','\0','\0','\0','\0','\67','\108','\111','\110','\101',
- '\0','\4','\7','\0','\0','\0','\0','\0','\0','\0','\83','\116','\97','\116','\117','\115','\0','\4','\5','\0','\0','\0','\0',
- '\0','\0','\0','\119','\97','\105','\116','\0','\4','\5','\0','\0','\0','\0','\0','\0','\0','\80','\97','\114','\116','\0',
- '\4','\11','\0','\0','\0','\0','\0','\0','\0','\67','\97','\110','\67','\111','\108','\108','\105','\100','\101','\0','\1',
- '\0','\4','\13','\0','\0','\0','\0','\0','\0','\0','\84','\114','\97','\110','\115','\112','\97','\114','\101','\110','\99',
- '\121','\0','\4','\9','\0','\0','\0','\0','\0','\0','\0','\65','\110','\99','\104','\111','\114','\101','\100','\0','\1',
- '\1','\4','\5','\0','\0','\0','\0','\0','\0','\0','\72','\101','\97','\100','\0','\4','\7','\0','\0','\0','\0','\0','\0',
- '\0','\67','\97','\109','\101','\114','\97','\0','\4','\14','\0','\0','\0','\0','\0','\0','\0','\67','\97','\109','\101',
- '\114','\97','\83','\117','\98','\106','\101','\99','\116','\0','\4','\5','\0','\0','\0','\0','\0','\0','\0','\119','\97',
- '\114','\110','\0','\4','\19','\0','\0','\0','\0','\0','\0','\0','\83','\104','\117','\116','\100','\111','\119','\110','\32',
- '\65','\99','\116','\105','\118','\97','\116','\101','\100','\0','\4','\4','\0','\0','\0','\0','\0','\0','\0','\83','\105',
- '\116','\0','\4','\13','\0','\0','\0','\0','\0','\0','\0','\66','\111','\100','\121','\86','\101','\108','\111','\99','\105',
- '\116','\121','\0','\4','\17','\0','\0','\0','\0','\0','\0','\0','\72','\117','\109','\97','\110','\111','\105','\100','\82',
- '\111','\111','\116','\80','\97','\114','\116','\0','\4','\9','\0','\0','\0','\0','\0','\0','\0','\77','\97','\120','\70',
- '\111','\114','\99','\101','\0','\4','\8','\0','\0','\0','\0','\0','\0','\0','\86','\101','\99','\116','\111','\114','\51',
- '\0','\3','\0','\0','\0','\0','\0','\106','\248','\64','\4','\9','\0','\0','\0','\0','\0','\0','\0','\86','\101','\108','\111',
- '\99','\105','\116','\121','\0','\3','\0','\0','\0','\0','\0','\106','\248','\192','\4','\2','\0','\0','\0','\0','\0','\0',
- '\0','\80','\0','\1','\0','\0','\0','\0','\0','\0','\0','\0','\0','\0','\0','\26','\0','\0','\0','\32','\0','\0','\0','\1',
- '\0','\0','\8','\14','\0','\0','\0','\5','\0','\0','\0','\68','\0','\0','\0','\75','\64','\192','\0','\92','\192','\0','\1',
- '\22','\64','\1','\128','\75','\129','\64','\2','\193','\193','\0','\0','\92','\129','\128','\1','\90','\1','\0','\0','\22',
- '\0','\0','\128','\9','\65','\65','\130','\33','\128','\0','\0','\22','\192','\253','\127','\30','\0','\128','\0','\6','\0',
- '\0','\0','\4','\5','\0','\0','\0','\0','\0','\0','\0','\110','\101','\120','\116','\0','\4','\12','\0','\0','\0','\0','\0',
- '\0','\0','\71','\101','\116','\67','\104','\105','\108','\100','\114','\101','\110','\0','\4','\4','\0','\0','\0','\0','\0',
- '\0','\0','\73','\115','\65','\0','\4','\9','\0','\0','\0','\0','\0','\0','\0','\66','\97','\115','\101','\80','\97','\114',
- '\116','\0','\4','\11','\0','\0','\0','\0','\0','\0','\0','\67','\97','\110','\67','\111','\108','\108','\105','\100','\101',
- '\0','\1','\0','\0','\0','\0','\0','\14','\0','\0','\0','\27','\0','\0','\0','\27','\0','\0','\0','\27','\0','\0','\0','\27',
- '\0','\0','\0','\27','\0','\0','\0','\28','\0','\0','\0','\28','\0','\0','\0','\28','\0','\0','\0','\28','\0','\0','\0','\28',
- '\0','\0','\0','\29','\0','\0','\0','\27','\0','\0','\0','\30','\0','\0','\0','\32','\0','\0','\0','\5','\0','\0','\0','\16',
- '\0','\0','\0','\0','\0','\0','\0','\40','\102','\111','\114','\32','\103','\101','\110','\101','\114','\97','\116','\111',
- '\114','\41','\0','\4','\0','\0','\0','\13','\0','\0','\0','\12','\0','\0','\0','\0','\0','\0','\0','\40','\102','\111','\114',
- '\32','\115','\116','\97','\116','\101','\41','\0','\4','\0','\0','\0','\13','\0','\0','\0','\14','\0','\0','\0','\0','\0',
- '\0','\0','\40','\102','\111','\114','\32','\99','\111','\110','\116','\114','\111','\108','\41','\0','\4','\0','\0','\0',
- '\13','\0','\0','\0','\2','\0','\0','\0','\0','\0','\0','\0','\95','\0','\5','\0','\0','\0','\11','\0','\0','\0','\5','\0',
- '\0','\0','\0','\0','\0','\0','\80','\97','\114','\116','\0','\5','\0','\0','\0','\11','\0','\0','\0','\1','\0','\0','\0',
- '\5','\0','\0','\0','\0','\0','\0','\0','\67','\104','\97','\114','\0','\128','\0','\0','\0','\5','\0','\0','\0','\7','\0',
- '\0','\0','\7','\0','\0','\0','\7','\0','\0','\0','\7','\0','\0','\0','\7','\0','\0','\0','\7','\0','\0','\0','\9','\0','\0',
- '\0','\9','\0','\0','\0','\9','\0','\0','\0','\9','\0','\0','\0','\10','\0','\0','\0','\10','\0','\0','\0','\10','\0','\0',
- '\0','\10','\0','\0','\0','\10','\0','\0','\0','\9','\0','\0','\0','\14','\0','\0','\0','\14','\0','\0','\0','\14','\0','\0',
- '\0','\14','\0','\0','\0','\14','\0','\0','\0','\15','\0','\0','\0','\15','\0','\0','\0','\15','\0','\0','\0','\15','\0',
- '\0','\0','\15','\0','\0','\0','\15','\0','\0','\0','\15','\0','\0','\0','\15','\0','\0','\0','\15','\0','\0','\0','\16',
- '\0','\0','\0','\16','\0','\0','\0','\16','\0','\0','\0','\17','\0','\0','\0','\17','\0','\0','\0','\17','\0','\0','\0','\17',
- '\0','\0','\0','\18','\0','\0','\0','\21','\0','\0','\0','\21','\0','\0','\0','\21','\0','\0','\0','\21','\0','\0','\0','\21',
- '\0','\0','\0','\22','\0','\0','\0','\22','\0','\0','\0','\22','\0','\0','\0','\22','\0','\0','\0','\22','\0','\0','\0','\22',
- '\0','\0','\0','\22','\0','\0','\0','\22','\0','\0','\0','\22','\0','\0','\0','\23','\0','\0','\0','\24','\0','\0','\0','\26',
- '\0','\0','\0','\26','\0','\0','\0','\26','\0','\0','\0','\26','\0','\0','\0','\26','\0','\0','\0','\26','\0','\0','\0','\32',
- '\0','\0','\0','\32','\0','\0','\0','\26','\0','\0','\0','\34','\0','\0','\0','\34','\0','\0','\0','\34','\0','\0','\0','\34',
- '\0','\0','\0','\34','\0','\0','\0','\34','\0','\0','\0','\35','\0','\0','\0','\35','\0','\0','\0','\37','\0','\0','\0','\41',
- '\0','\0','\0','\41','\0','\0','\0','\41','\0','\0','\0','\41','\0','\0','\0','\42','\0','\0','\0','\42','\0','\0','\0','\42',
- '\0','\0','\0','\42','\0','\0','\0','\43','\0','\0','\0','\43','\0','\0','\0','\43','\0','\0','\0','\41','\0','\0','\0','\47',
- '\0','\0','\0','\47','\0','\0','\0','\47','\0','\0','\0','\47','\0','\0','\0','\47','\0','\0','\0','\47','\0','\0','\0','\47',
- '\0','\0','\0','\47','\0','\0','\0','\48','\0','\0','\0','\49','\0','\0','\0','\49','\0','\0','\0','\50','\0','\0','\0','\50',
- '\0','\0','\0','\50','\0','\0','\0','\51','\0','\0','\0','\51','\0','\0','\0','\51','\0','\0','\0','\52','\0','\0','\0','\52',
- '\0','\0','\0','\52','\0','\0','\0','\52','\0','\0','\0','\52','\0','\0','\0','\53','\0','\0','\0','\53','\0','\0','\0','\53',
- '\0','\0','\0','\53','\0','\0','\0','\53','\0','\0','\0','\54','\0','\0','\0','\54','\0','\0','\0','\54','\0','\0','\0','\54',
- '\0','\0','\0','\54','\0','\0','\0','\54','\0','\0','\0','\54','\0','\0','\0','\55','\0','\0','\0','\55','\0','\0','\0','\55',
- '\0','\0','\0','\55','\0','\0','\0','\55','\0','\0','\0','\55','\0','\0','\0','\55','\0','\0','\0','\56','\0','\0','\0','\58',
- '\0','\0','\0','\19','\0','\0','\0','\7','\0','\0','\0','\0','\0','\0','\0','\112','\114','\101','\102','\105','\120','\0',
- '\1','\0','\0','\0','\127','\0','\0','\0','\4','\0','\0','\0','\0','\0','\0','\0','\109','\115','\103','\0','\7','\0','\0',
- '\0','\127','\0','\0','\0','\12','\0','\0','\0','\0','\0','\0','\0','\40','\102','\111','\114','\32','\105','\110','\100',
- '\101','\120','\41','\0','\10','\0','\0','\0','\17','\0','\0','\0','\12','\0','\0','\0','\0','\0','\0','\0','\40','\102',
- '\111','\114','\32','\108','\105','\109','\105','\116','\41','\0','\10','\0','\0','\0','\17','\0','\0','\0','\11','\0','\0',
- '\0','\0','\0','\0','\0','\40','\102','\111','\114','\32','\115','\116','\101','\112','\41','\0','\10','\0','\0','\0','\17',
- '\0','\0','\0','\2','\0','\0','\0','\0','\0','\0','\0','\105','\0','\11','\0','\0','\0','\16','\0','\0','\0','\3','\0','\0',
- '\0','\0','\0','\0','\0','\76','\80','\0','\22','\0','\0','\0','\127','\0','\0','\0','\5','\0','\0','\0','\0','\0','\0','\0',
- '\67','\104','\97','\114','\0','\34','\0','\0','\0','\127','\0','\0','\0','\4','\0','\0','\0','\0','\0','\0','\0','\72','\97',
- '\116','\0','\38','\0','\0','\0','\127','\0','\0','\0','\7','\0','\0','\0','\0','\0','\0','\0','\72','\97','\110','\100',
- '\108','\101','\0','\39','\0','\0','\0','\127','\0','\0','\0','\5','\0','\0','\0','\0','\0','\0','\0','\84','\111','\111',
- '\108','\0','\44','\0','\0','\0','\127','\0','\0','\0','\6','\0','\0','\0','\0','\0','\0','\0','\72','\80','\97','\114','\116',
- '\0','\65','\0','\0','\0','\127','\0','\0','\0','\12','\0','\0','\0','\0','\0','\0','\0','\40','\102','\111','\114','\32',
- '\105','\110','\100','\101','\120','\41','\0','\76','\0','\0','\0','\85','\0','\0','\0','\12','\0','\0','\0','\0','\0','\0',
- '\0','\40','\102','\111','\114','\32','\108','\105','\109','\105','\116','\41','\0','\76','\0','\0','\0','\85','\0','\0',
- '\0','\11','\0','\0','\0','\0','\0','\0','\0','\40','\102','\111','\114','\32','\115','\116','\101','\112','\41','\0','\76',
- '\0','\0','\0','\85','\0','\0','\0','\2','\0','\0','\0','\0','\0','\0','\0','\95','\0','\77','\0','\0','\0','\84','\0','\0',
- '\0','\5','\0','\0','\0','\0','\0','\0','\0','\71','\114','\105','\112','\0','\81','\0','\0','\0','\84','\0','\0','\0','\6',
- '\0','\0','\0','\0','\0','\0','\0','\67','\80','\97','\114','\116','\0','\93','\0','\0','\0','\127','\0','\0','\0','\3','\0',
- '\0','\0','\0','\0','\0','\0','\66','\86','\0','\112','\0','\0','\0','\127','\0','\0','\0','\0','\0','\0','\0'}
- local IlIIlIlIIIlllIlIlIIlIlIlIlIIIlIIIII = {
- "ABC", "ABx", "ABC", "ABC",
- "ABC", "ABx", "ABC", "ABx",
- "ABC", "ABC", "ABC", "ABC",
- "ABC", "ABC", "ABC", "ABC",
- "ABC", "ABC", "ABC", "ABC",
- "ABC", "ABC", "AsBx", "ABC",
- "ABC", "ABC", "ABC", "ABC",
- "ABC", "ABC", "ABC", "AsBx",
- "AsBx", "ABC", "ABC", "ABC",
- "ABx", "ABC",}
- local llllIIlIllIIlIllIIllIlIlIIlIIIllIlI = {
- "MOVE", "LOADK", "LOADBOOL", "LOADNIL",
- "GETUPVAL", "GETGLOBAL", "GETTABLE", "SETGLOBAL",
- "SETUPVAL", "SETTABLE", "NEWTABLE", "SELF",
- "ADD", "SUB", "MUL", "DIV",
- "MOD", "POW", "UNM", "NOT",
- "LEN", "CONCAT", "JMP", "EQ",
- "LT", "LE", "TEST", "TESTSET",
- "CALL", "TAILCALL", "RETURN", "FORLOOP",
- "FORPREP", "TFORLOOP", "SETLIST", "CLOSE",
- "CLOSURE", "VARARG"
- };
- local function get_bits(input, n, n2)
- if n2 then
- local total = 0
- local digitn = 0
- for i = n, n2 do
- total = total + 2^digitn*get_bits(input, i)
- digitn = digitn + 1
- end
- return total
- else
- local pn = 2^(n-1)
- return (input % (pn + pn) >= pn) and 1 or 0
- end
- end
- local function lIlIIIlllIlIIIIlIIIllIlIIIIIlIlIlll(IlIlllllllIllIlIllIlIlllIIIIIlIIlll)
- local index = 1
- local big_endian = false
- local int_size;
- local size_t;
- local get_int, get_size_t;
- local get_int8, get_int32, get_int64, get_float64, get_string;
- do
- function get_int8()
- local a = IlIlllllllIllIlIllIlIlllIIIIIlIIlll:byte(index, index);
- index = index + 1
- return a
- end
- function get_int32()
- local a, b, c, d = IlIlllllllIllIlIllIlIlllIIIIIlIIlll:byte(index, index + 3);
- index = index + 4;
- return d*16777216 + c*65536 + b*256 + a
- end
- function get_int64()
- local a = get_int32();
- local b = get_int32();
- return b*4294967296 + a;
- end
- function get_float64()
- local a = get_int32()
- local b = get_int32()
- return (-2*get_bits(b, 32)+1)*(2^(get_bits(b, 21, 31)-1023))*
- ((get_bits(b, 1, 20)*(2^32) + a)/(2^52)+1)
- end
- function get_string(len)
- local str;
- if len then
- str = IlIlllllllIllIlIllIlIlllIIIIIlIIlll:sub(index, index + len - 1);
- index = index + len;
- else
- len = get_size_t();
- if len == 0 then return; end
- str = IlIlllllllIllIlIllIlIlllIIIIIlIIlll:sub(index, index + len - 1);
- index = index + len;
- end
- return str;
- end
- end
- local function decode_chunk()
- local chunk;
- local instructions = {};
- local constants = {};
- local prototypes = {};
- local debug = {
- lines = {};
- };
- chunk = {
- instructions = instructions;
- constants = constants;
- prototypes = prototypes;
- debug = debug;
- };
- local num;
- chunk.name = get_string();
- chunk.first_line = get_int();
- chunk.last_line = get_int();
- if chunk.name then chunk.name = chunk.name:sub(1, -2); end
- chunk.upvalues = get_int8();
- chunk.arguments = get_int8();
- chunk.varg = get_int8();
- chunk.stack = get_int8();
- do
- num = get_int();
- for i = 1, num do
- local instruction = {
- };
- local llIIlIlIIllllIlIlIlIIlIlIlIllllIllI = get_int32();
- local opcode = get_bits(llIIlIlIIllllIlIlIlIIlIlIlIllllIllI, 1, 6);
- local type = IlIIlIlIIIlllIlIlIIlIlIlIlIIIlIIIII[opcode + 1];
- instruction.opcode = opcode;
- instruction.type = type;
- instruction.A = get_bits(llIIlIlIIllllIlIlIlIIlIlIlIllllIllI, 7, 14);
- if type == "ABC" then
- instruction.B = get_bits(llIIlIlIIllllIlIlIlIIlIlIlIllllIllI, 24, 32);
- instruction.C = get_bits(llIIlIlIIllllIlIlIlIIlIlIlIllllIllI, 15, 23);
- elseif type == "ABx" then
- instruction.Bx = get_bits(llIIlIlIIllllIlIlIlIIlIlIlIllllIllI, 15, 32);
- elseif type == "AsBx" then
- instruction.sBx = get_bits(llIIlIlIIllllIlIlIlIIlIlIlIllllIllI, 15, 32) - 131071;
- end
- instructions[i] = instruction;
- end
- end
- do
- num = get_int();
- for i = 1, num do
- local constant = {
- };
- local type = get_int8();
- constant.type = type;
- if type == 1 then
- constant.llIIlIlIIllllIlIlIlIIlIlIlIllllIllI = (get_int8() ~= 0);
- elseif type == 3 then
- constant.llIIlIlIIllllIlIlIlIIlIlIlIllllIllI = get_float64();
- elseif type == 4 then
- constant.llIIlIlIIllllIlIlIlIIlIlIlIllllIllI = get_string():sub(1, -2);
- end
- constants[i-1] = constant;
- end
- end
- do
- num = get_int();
- for i = 1, num do
- prototypes[i-1] = decode_chunk();
- end
- end
- do
- local llIIlIlIIllllIlIlIlIIlIlIlIllllIllI = debug.lines
- num = get_int();
- for i = 1, num do
- llIIlIlIIllllIlIlIlIIlIlIlIllllIllI[i] = get_int32();
- end
- num = get_int();
- for i = 1, num do
- get_string():sub(1, -2);
- get_int32();
- get_int32();
- end
- num = get_int();
- for i = 1, num do
- get_string();
- end
- end
- return chunk;
- end
- do
- assert(get_string(4) == "\27Lua", "S1MPLYS3C7RED: Bytecode expected");
- assert(get_int8() == 0x51, "S1MPLYS3C7RED: Only lua5.1 is supported");
- get_int8();
- big_endian = (get_int8() == 0);
- int_size = get_int8();
- size_t = get_int8();
- if int_size == 4 then
- get_int = get_int32;
- elseif int_size == 8 then
- get_int = get_int64;
- else
- error("");
- end
- if size_t == 4 then
- get_size_t = get_int32;
- elseif size_t == 8 then
- get_size_t = get_int64;
- else
- error("");
- end
- assert(get_string(3) == "\4\8\0","S1MPLYS3C7RED: Unsupported platform");
- end
- return decode_chunk();
- end
- local function handle_return(...)
- local c = select("#", ...)
- local t = {...}
- return c, t
- end
- local function IIllIllIlIIIIIIIIllIlIIIIlllIIIIIIl(IIllIlIIIlIlllllIIIlIIlllllIllllIlI, upvalues)
- local instructions = IIllIlIIIlIlllllIIIlIIlllllIllllIlI.instructions;
- local constants = IIllIlIIIlIlllllIIIlIIlllllIllllIlI.constants;
- local prototypes = IIllIlIIIlIlllllIIIlIIlllllIllllIlI.prototypes;
- local stack, top
- local environment
- local IP = 1;
- local vararg, vararg_size
- local opcode_funcs = {
- [0] = function(instruction)
- stack[instruction.A] = stack[instruction.B];
- end,
- [1] = function(instruction)
- stack[instruction.A] = constants[instruction.Bx].llIIlIlIIllllIlIlIlIIlIlIlIllllIllI;
- end,
- [2] = function(instruction)
- stack[instruction.A] = instruction.B ~= 0
- if instruction.C ~= 0 then
- IP = IP + 1
- end
- end,
- [3] = function(instruction)
- local stack = stack
- for i = instruction.A, instruction.B do
- stack[i] = nil
- end
- end,
- [4] = function(instruction)
- stack[instruction.A] = upvalues[instruction.B]
- end,
- [5] = function(instruction)
- local key = constants[instruction.Bx].llIIlIlIIllllIlIlIlIIlIlIlIllllIllI;
- stack[instruction.A] = environment[key];
- end,
- [6] = function(instruction)
- local C = instruction.C
- local stack = stack
- C = C > 255 and constants[C-256].llIIlIlIIllllIlIlIlIIlIlIlIllllIllI or stack[C]
- stack[instruction.A] = stack[instruction.B][C];
- end,
- [7] = function(instruction)
- local key = constants[instruction.Bx].llIIlIlIIllllIlIlIlIIlIlIlIllllIllI;
- environment[key] = stack[instruction.A];
- end,
- [8] = function (instruction)
- upvalues[instruction.B] = stack[instruction.A]
- end,
- [9] = function (instruction)
- local B = instruction.B;
- local C = instruction.C;
- local stack, constants = stack, constants;
- B = B > 255 and constants[B-256].llIIlIlIIllllIlIlIlIIlIlIlIllllIllI or stack[B];
- C = C > 255 and constants[C-256].llIIlIlIIllllIlIlIlIIlIlIlIllllIllI or stack[C];
- stack[instruction.A][B] = C
- end,
- [10] = function (instruction)
- stack[instruction.A] = {}
- end,
- [11] = function (instruction)
- local A = instruction.A
- local B = instruction.B
- local C = instruction.C
- local stack = stack
- B = stack[B]
- C = C > 255 and constants[C-256].llIIlIlIIllllIlIlIlIIlIlIlIllllIllI or stack[C]
- stack[A+1] = B
- stack[A] = B[C]
- end,
- [12] = function(instruction)
- local B = instruction.B;
- local C = instruction.C;
- local stack, constants = stack, constants;
- B = B > 255 and constants[B-256].llIIlIlIIllllIlIlIlIIlIlIlIllllIllI or stack[B];
- C = C > 255 and constants[C-256].llIIlIlIIllllIlIlIlIIlIlIlIllllIllI or stack[C];
- stack[instruction.A] = B+C;
- end,
- [13] = function(instruction)
- local B = instruction.B;
- local C = instruction.C;
- local stack, constants = stack, constants;
- B = B > 255 and constants[B-256].llIIlIlIIllllIlIlIlIIlIlIlIllllIllI or stack[B];
- C = C > 255 and constants[C-256].llIIlIlIIllllIlIlIlIIlIlIlIllllIllI or stack[C];
- stack[instruction.A] = B - C;
- end,
- [14] = function(instruction)
- local B = instruction.B;
- local C = instruction.C;
- local stack, constants = stack, constants;
- B = B > 255 and constants[B-256].llIIlIlIIllllIlIlIlIIlIlIlIllllIllI or stack[B];
- C = C > 255 and constants[C-256].llIIlIlIIllllIlIlIlIIlIlIlIllllIllI or stack[C];
- stack[instruction.A] = B * C;
- end,
- [15] = function(instruction)
- local B = instruction.B;
- local C = instruction.C;
- local stack, constants = stack, constants;
- B = B > 255 and constants[B-256].llIIlIlIIllllIlIlIlIIlIlIlIllllIllI or stack[B];
- C = C > 255 and constants[C-256].llIIlIlIIllllIlIlIlIIlIlIlIllllIllI or stack[C];
- stack[instruction.A] = B / C;
- end,
- [16] = function(instruction)
- local B = instruction.B;
- local C = instruction.C;
- local stack, constants = stack, constants;
- B = B > 255 and constants[B-256].llIIlIlIIllllIlIlIlIIlIlIlIllllIllI or stack[B];
- C = C > 255 and constants[C-256].llIIlIlIIllllIlIlIlIIlIlIlIllllIllI or stack[C];
- stack[instruction.A] = B % C;
- end,
- [17] = function(instruction)
- local B = instruction.B;
- local C = instruction.C;
- local stack, constants = stack, constants;
- B = B > 255 and constants[B-256].llIIlIlIIllllIlIlIlIIlIlIlIllllIllI or stack[B];
- C = C > 255 and constants[C-256].llIIlIlIIllllIlIlIlIIlIlIlIllllIllI or stack[C];
- stack[instruction.A] = B ^ C;
- end,
- [18] = function(instruction)
- stack[instruction.A] = -stack[instruction.B]
- end,
- [19] = function(instruction)
- stack[instruction.A] = not stack[instruction.B]
- end,
- [20] = function(instruction)
- stack[instruction.A] = #stack[instruction.B]
- end,
- [21] = function(instruction)
- local B = instruction.B
- local result = stack[B]
- for i = B+1, instruction.C do
- result = result .. stack[i]
- end
- stack[instruction.A] = result
- end,
- [22] = function(instruction)
- IP = IP + instruction.sBx
- end,
- [23] = function(instruction)
- local A = instruction.A
- local B = instruction.B
- local C = instruction.C
- local stack, constants = stack, constants
- A = A ~= 0
- B = B > 255 and constants[B-256].llIIlIlIIllllIlIlIlIIlIlIlIllllIllI or stack[B]
- C = C > 255 and constants[C-256].llIIlIlIIllllIlIlIlIIlIlIlIllllIllI or stack[C]
- if (B == C) ~= A then
- IP = IP + 1
- end
- end,
- [24] = function(instruction)
- local A = instruction.A
- local B = instruction.B
- local C = instruction.C
- local stack, constants = stack, constants
- A = A ~= 0
- B = B > 255 and constants[B-256].llIIlIlIIllllIlIlIlIIlIlIlIllllIllI or stack[B]
- C = C > 255 and constants[C-256].llIIlIlIIllllIlIlIlIIlIlIlIllllIllI or stack[C]
- if (B < C) ~= A then
- IP = IP + 1
- end
- end,
- [25] = function(instruction)
- local A = instruction.A
- local B = instruction.B
- local C = instruction.C
- local stack, constants = stack, constants
- A = A ~= 0
- B = B > 255 and constants[B-256].llIIlIlIIllllIlIlIlIIlIlIlIllllIllI or stack[B]
- C = C > 255 and constants[C-256].llIIlIlIIllllIlIlIlIIlIlIlIllllIllI or stack[C]
- if (B <= C) ~= A then
- IP = IP + 1
- end
- end,
- [26] = function(instruction)
- if stack[instruction.A] == (instruction.C ~= 0) then
- IP = IP + 1
- end
- end,
- [27] = function(instruction)
- local stack = stack
- local B = stack[instruction.B]
- if B == (instruction.C ~= 0) then
- IP = IP + 1
- else
- stack[instruction.A] = B
- end
- end,
- [28] = function(instruction)
- local A = instruction.A;
- local B = instruction.B;
- local C = instruction.C;
- local stack = stack;
- local args, results;
- local limit, loop
- args = {};
- if B ~= 1 then
- if B ~= 0 then
- limit = A+B-1;
- else
- limit = top
- end
- loop = 0
- for i = A+1, limit do
- loop = loop + 1
- args[loop] = stack[i];
- end
- limit, results = handle_return(stack[A](unpack(args, 1, limit-A)))
- else
- limit, results = handle_return(stack[A]())
- end
- top = A - 1
- if C ~= 1 then
- if C ~= 0 then
- limit = A+C-2;
- else
- limit = limit+A
- end
- loop = 0;
- for i = A, limit do
- loop = loop + 1;
- stack[i] = results[loop];
- end
- end
- end,
- [29] = function (instruction)
- local A = instruction.A;
- local B = instruction.B;
- local C = instruction.C;
- local stack = stack;
- local args, results;
- local top, limit, loop = top
- args = {};
- if B ~= 1 then
- if B ~= 0 then
- limit = A+B-1;
- else
- limit = top
- end
- loop = 0
- for i = A+1, limit do
- loop = loop + 1
- args[#args+1] = stack[i];
- end
- results = {stack[A](unpack(args, 1, limit-A))};
- else
- results = {stack[A]()};
- end
- return true, results
- end,
- [30] = function(instruction)
- local A = instruction.A;
- local B = instruction.B;
- local stack = stack;
- local limit;
- local loop, IlllIlIIIIIlIIIlIllIIIIlIllIllIlIlI;
- if B == 1 then
- return true;
- end
- if B == 0 then
- limit = top
- else
- limit = A + B - 2;
- end
- IlllIlIIIIIlIIIlIllIIIIlIllIllIlIlI = {};
- local loop = 0
- for i = A, limit do
- loop = loop + 1
- IlllIlIIIIIlIIIlIllIIIIlIllIllIlIlI[loop] = stack[i];
- end
- return true, IlllIlIIIIIlIIIlIllIIIIlIllIllIlIlI;
- end,
- [31] = function(instruction)
- local A = instruction.A
- local stack = stack
- local step = stack[A+2]
- local index = stack[A] + step
- stack[A] = index
- if step > 0 then
- if index <= stack[A+1] then
- IP = IP + instruction.sBx
- stack[A+3] = index
- end
- else
- if index >= stack[A+1] then
- IP = IP + instruction.sBx
- stack[A+3] = index
- end
- end
- end,
- [32] = function(instruction)
- local A = instruction.A
- local stack = stack
- stack[A] = stack[A] - stack[A+2]
- IP = IP + instruction.sBx
- end,
- [33] = function(instruction)
- local A = instruction.A
- local B = instruction.B
- local C = instruction.C
- local stack = stack
- local offset = A+2
- local result = {stack[A](stack[A+1], stack[A+2])}
- for i = 1, C do
- stack[offset+i] = result[i]
- end
- if stack[A+3] ~= nil then
- stack[A+2] = stack[A+3]
- else
- IP = IP + 1
- end
- end,
- [34] = function(instruction)
- local A = instruction.A
- local B = instruction.B
- local C = instruction.C
- local stack = stack
- if C == 0 then
- error("NYI: extended SETLIST")
- else
- local offset = (C - 1) * 50
- local t = stack[A]
- if B == 0 then
- B = top
- end
- for i = 1, B do
- t[offset+i] = stack[A+i]
- end
- end
- end,
- [35] = function(instruction)
- io.stderr:write("NYI: CLOSE")
- io.stderr:flush()
- end,
- [36] = function(instruction)
- local proto = prototypes[instruction.Bx]
- local instructions = instructions
- local stack = stack
- local indices = {}
- local new_upvals = setmetatable({},
- {
- __index = function(t, k)
- local upval = indices[k]
- return upval.segment[upval.offset]
- end,
- __newindex = function(t, k, v)
- local upval = indices[k]
- upval.segment[upval.offset] = v
- end
- }
- )
- for i = 1, proto.upvalues do
- local movement = instructions[IP]
- if movement.opcode == 0 then
- indices[i-1] = {segment = stack, offset = movement.B}
- elseif instructions[IP].opcode == 4 then
- indices[i-1] = {segment = upvalues, offset = movement.B}
- end
- IP = IP + 1
- end
- local _, func = IIllIllIlIIIIIIIIllIlIIIIlllIIIIIIl(proto, new_upvals)
- stack[instruction.A] = func
- end,
- [37] = function(instruction)
- local A = instruction.A
- local B = instruction.B
- local stack, vararg = stack, vararg
- for i = A, A + (B > 0 and B - 1 or vararg_size) do
- stack[i] = vararg[i - A]
- end
- end,
- }
- local function loop()
- local instructions = instructions
- local instruction, a, b
- while true do
- instruction = instructions[IP];
- IP = IP + 1
- a, b = opcode_funcs[instruction.opcode](instruction);
- if a then
- return b;
- end
- end
- end
- local IIIIIIIlIlIIlllIIlIlIIIllIIlIIIlIlI = {
- get_stack = function()
- return stack;
- end;
- get_IP = function()
- return IP;
- end
- };
- local function func(...)
- local local_stack = {};
- local ghost_stack = {};
- top = -1
- stack = setmetatable(local_stack, {
- __index = ghost_stack;
- __newindex = function(t, k, v)
- if k > top and v then
- top = k
- end
- ghost_stack[k] = v
- end;
- })
- local args = {...};
- vararg = {}
- vararg_size = select("#", ...) - 1
- for i = 0, vararg_size do
- local_stack[i] = args[i+1];
- vararg[i] = args[i+1]
- end
- environment = getfenv();
- IP = 1;
- local thread = coroutine.create(loop)
- local a, b = coroutine.resume(thread)
- if a then
- if b then
- return unpack(b);
- end
- return;
- else
- local name = IIllIlIIIlIlllllIIIlIIlllllIllllIlI.name;
- local line = IIllIlIIIlIlllllIIIlIIlllllIllllIlI.debug.lines[IP];
- local err = b:gsub("(.-:)", "");
- local IlllIlIIIIIlIIIlIllIIIIlIllIllIlIlI = "";
- IlllIlIIIIIlIIIlIllIIIIlIllIllIlIlI = IlllIlIIIIIlIIIlIllIIIIlIllIllIlIlI .. (name and name .. ":" or "");
- IlllIlIIIIIlIIIlIllIIIIlIllIllIlIlI = IlllIlIIIIIlIIIlIllIIIIlIllIllIlIlI .. (line and line .. ":" or "");
- IlllIlIIIIIlIIIlIllIIIIlIllIllIlIlI = IlllIlIIIIIlIIIlIllIIIIlIllIllIlIlI .. b
- error(IlllIlIIIIIlIIIlIllIIIIlIllIllIlIlI, 0);
- end
- end
- return IIIIIIIlIlIIlllIIlIlIIIllIIlIIIlIlI, func;
- end
- local lIlIlIlIlIllIIIllIlIIlllIIlllIlIIII = {
- IlIIIIIIlIllIIlIlIIIllIllIIlllIllll = function(IlIlllllllIllIlIllIlIlllIIIIIlIIlll)
- local IIllIlIIIlIlllllIIIlIIlllllIllllIlI = lIlIIIlllIlIIIIlIIIllIlIIIIIlIlIlll(IlIlllllllIllIlIllIlIlllIIIIIlIIlll);
- local _, func = IIllIllIlIIIIIIIIllIlIIIIlllIIIIIIl(IIllIlIIIlIlllllIIIlIIlllllIllllIlI);
- return func;
- end;
- utils = {
- lIlIIIlllIlIIIIlIIIllIlIIIIIlIlIlll = lIlIIIlllIlIIIIlIIIllIlIIIIIlIlIlll;
- IIllIllIlIIIIIIIIllIlIIIIlllIIIIIIl = IIllIllIlIIIIIIIIllIlIIIIlllIIIIIIl;
- IlllIIIllIlllIlIIIllllIIllllIIllllI = function(IlIlllllllIllIlIllIlIlllIIIIIlIIlll)
- local IIllIlIIIlIlllllIIIlIIlllllIllllIlI = lIlIIIlllIlIIIIlIIIllIlIIIIIlIlIlll(IlIlllllllIllIlIllIlIlllIIIIIlIIlll)
- return IIllIllIlIIIIIIIIllIlIIIIlllIIIIIIl(IIllIlIIIlIlllllIIIlIIlllllIllllIlI);
- end;
- };
- }
- lIlIlIlIlIllIIIllIlIIlllIIlllIlIIII.IlIIIIIIlIllIIlIlIIIllIllIIlllIllll(table.concat(llIIlIlIIllllIlIlIlIIlIlIlIllllIllI, [[]]))()
- end
- end
- end
Add Comment
Please, Sign In to add comment