rendered paste body-- LUA 5.1 Decompilation Experimental Application-- Original code:local t = {1,2,3}for k,v in pairs(t) do print(k,v) while k do repeat print "v" until not v print "k" end print "e"endprint(#t)-- Disassembled code:--[[ Begin Chunk Header LUA Version 5.1 (official build) Following types are little endian: int - 4 bytes, size_t - 4 bytes, Instruction - 4 bytes lua_Number - 8 byte floating point End Chunk Header ]]--[[ Begin Function_358A88 Header Main chunk of @test.lua 0 formal parameters, is vararg 0 upvalues initial stack size of 9: #0 't' (for PC 5 to 32) #1 '(for generator)' (for PC 8 to 29) #2 '(for state)' (for PC 8 to 29) #3 '(for control)' (for PC 8 to 29) #4 'k' (for PC 9 to 27) #5 'v' (for PC 9 to 27) 8 constants: #0 1.000000 #1 2.000000 #2 3.000000 #3 "pairs" #4 "print" #5 "v" #6 "k" #7 "e" 0 closures End Function_358A88 Header ]]PC[0](1) NEWTABLE(0,3,0) -- R(0) := { arrays = 3 , hashes = 0 }PC[1](1) LOADK(1,0) -- R(1) := 1.000000PC[2](1) LOADK(2,1) -- R(2) := 2.000000PC[3](1) LOADK(3,2) -- R(3) := 3.000000PC[4](1) SETLIST(0,3,1) -- R(0)[1] = R(1) ... R(0)[3] = R(3)PC[5](2) GETGLOBAL(1,3) -- R(1) := GLOBAL("pairs")PC[6](2) MOVE(2,0) -- R(2) := R(0)PC[7](2) CALL(1,2,4) -- R(1), R(2), R(3) := R(1)(R(2))PC[8](2) JMP(18) -- GOTO 27PC[9](3) GETGLOBAL(6,4) -- R(6) := GLOBAL("print")PC[10](3) MOVE(7,4) -- R(7) := R(4)PC[11](3) MOVE(8,5) -- R(8) := R(5)PC[12](3) CALL(6,3,1) -- R(6)(R(7), R(8))PC[13](4) TEST(4,0) -- GOTO 15 IF R(4)PC[14](4) JMP(9) -- GOTO 24PC[15](6) GETGLOBAL(6,4) -- R(6) := GLOBAL("print")PC[16](6) LOADK(7,5) -- R(7) := "v"PC[17](6) CALL(6,2,1) -- R(6)(R(7))PC[18](7) TEST(5,1) -- GOTO 20 IF not R(5)PC[19](7) JMP(-5) -- GOTO 15PC[20](8) GETGLOBAL(6,4) -- R(6) := GLOBAL("print")PC[21](8) LOADK(7,6) -- R(7) := "k"PC[22](8) CALL(6,2,1) -- R(6)(R(7))PC[23](8) JMP(-11) -- GOTO 13PC[24](15) GETGLOBAL(6,4) -- R(6) := GLOBAL("print")PC[25](15) LOADK(7,7) -- R(7) := "e"PC[26](15) CALL(6,2,1) -- R(6)(R(7))PC[27](2) TFORLOOP(1,2) -- R(4), R(5) := R(1)(R(2),R(3)) -- R(3) := R(4) IF R(4) ELSE GOTO 29PC[28](15) JMP(-20) -- GOTO 9PC[29](17) GETGLOBAL(1,4) -- R(1) := GLOBAL("print")PC[30](17) LEN(2,0) -- R(2) := length of R(0)PC[31](17) CALL(1,2,1) -- R(1)(R(2))PC[32](17) RETURN(0,1) -- RETURN-- Decompiled code:local tlocal _for_generator_local _for_state_local _for_control_local klocal vlocal reg_6local reg_7local reg_8t = {} -- array size = 3 , hashes size = 0_for_generator_ = 1.000000_for_state_ = 2.000000_for_control_ = 3.000000t[1] = _for_generator_t[2] = _for_state_t[3] = _for_control__for_generator_ = pairs_for_state_ = t_for_generator_, _for_state_, _for_control_ = _for_generator_(_for_state_)-- gotofor k, v in _for_generator_, _for_state_, _for_control_ reg_6 = print reg_7 = k reg_8 = v reg_6(reg_7, reg_8) while k do -- goto repeat reg_6 = print reg_7 = "v" reg_6(reg_7) until not v -- goto reg_6 = print reg_7 = "k" reg_6(reg_7) -- goto end reg_6 = print reg_7 = "e" reg_6(reg_7)end-- goto_for_generator_ = print_for_state_ = #t_for_generator_(_for_state_)return