; This file has been disassembled using luadec 2.0 standard by sztupy (http://luadec51.luaforge.net) ; Command line was: -dis StringExtensions.luac ; Name: ; Defined at line: 976470609 ; #Upvalues: 0 ; #Parameters: 0 ; Is_vararg: 2 ; Max Stack Size: 4 1 [-]: GETGLOBAL R0 K0 ; R0 := string 2 [-]: CLOSURE R1 0 ; R1 := closure(Function #1) 3 [-]: SETTABLE R0 K1 R1 ; R0["trim"] := R1 4 [-]: GETGLOBAL R0 K0 ; R0 := string 5 [-]: CLOSURE R1 1 ; R1 := closure(Function #2) 6 [-]: SETTABLE R0 K2 R1 ; R0["equals"] := R1 7 [-]: NEWTABLE R0 0 0 ; R0 := {} 8 [-]: GETGLOBAL R1 K0 ; R1 := string 9 [-]: CLOSURE R2 2 ; R2 := closure(Function #3) 10 [-]: MOVE R0 R0 ; R0 := R0 11 [-]: SETTABLE R1 K3 R2 ; R1["quote"] := R2 12 [-]: CLOSURE R1 3 ; R1 := closure(Function #4) 13 [-]: GETGLOBAL R2 K0 ; R2 := string 14 [-]: CLOSURE R3 4 ; R3 := closure(Function #5) 15 [-]: MOVE R0 R1 ; R0 := R1 16 [-]: SETTABLE R2 K4 R3 ; R2["unquote"] := R3 17 [-]: GETGLOBAL R2 K0 ; R2 := string 18 [-]: CLOSURE R3 5 ; R3 := closure(Function #6) 19 [-]: SETTABLE R2 K5 R3 ; R2["lastIndexOf"] := R3 20 [-]: GETGLOBAL R2 K0 ; R2 := string 21 [-]: CLOSURE R3 6 ; R3 := closure(Function #7) 22 [-]: SETTABLE R2 K6 R3 ; R2["split"] := R3 23 [-]: GETGLOBAL R2 K0 ; R2 := string 24 [-]: CLOSURE R3 7 ; R3 := closure(Function #8) 25 [-]: SETTABLE R2 K7 R3 ; R2["byteAtOffset"] := R3 26 [-]: RETURN R0 1 ; return ; Function #1: ; ; Name: ; Defined at line: 976470609 ; #Upvalues: 0 ; #Parameters: 1 ; Is_vararg: 0 ; Max Stack Size: 5 1 [-]: GETGLOBAL R1 K0 ; R1 := string 2 [-]: GETTABLE R1 R1 K1 ; R1 := R1["gsub"] 3 [-]: MOVE R2 R0 ; R2 := R0 4 [-]: LOADK R3 K2 ; R3 := "^%s*(.-)%s*$" 5 [-]: LOADK R4 K3 ; R4 := "%1" 6 [-]: CALL R1 4 2 ; R1 := R1(R2,R3,R4) 7 [-]: RETURN R1 2 ; return R1 8 [-]: RETURN R0 1 ; return ; Function #2: ; ; Name: ; Defined at line: 976470609 ; #Upvalues: 0 ; #Parameters: 2 ; Is_vararg: 0 ; Max Stack Size: 3 1 [-]: EQ 0 R0 R1 ; if R0 ~= R1 then PC := 6 2 [-]: JMP 6 ; PC := 6 3 [-]: LOADBOOL R2 1 0 ; R2 := true 4 [-]: RETURN R2 2 ; return R2 5 [-]: JMP 8 ; PC := 8 6 [-]: LOADBOOL R2 0 0 ; R2 := false 7 [-]: RETURN R2 2 ; return R2 8 [-]: RETURN R0 1 ; return ; Function #3: ; ; Name: ; Defined at line: 976470609 ; #Upvalues: 1 ; #Parameters: 1 ; Is_vararg: 0 ; Max Stack Size: 6 1 [-]: LOADK R1 K0 ; R1 := "\"" 2 [-]: SELF R2 R0 K1 ; R3 := R0; R2 := R0["gsub"] 3 [-]: LOADK R4 K2 ; R4 := "[%z\1-\31%\\%\"]" 4 [-]: CLOSURE R5 0 ; R5 := closure(Function #3.1) 5 [-]: GETUPVAL R0 U0 ; R0 := U0 6 [-]: CALL R2 4 2 ; R2 := R2(R3,R4,R5) 7 [-]: LOADK R3 K0 ; R3 := "\"" 8 [-]: CONCAT R1 R1 R3 ; R1 := R1 .. R2 .. R3 9 [-]: RETURN R1 2 ; return R1 10 [-]: RETURN R0 1 ; return ; Function #3.1: ; ; Name: ; Defined at line: 976470609 ; #Upvalues: 1 ; #Parameters: 1 ; Is_vararg: 0 ; Max Stack Size: 6 1 [-]: GETUPVAL R1 U0 ; R1 := U0 2 [-]: GETTABLE R1 R1 R0 ; R1 := R1[R0] 3 [-]: TEST R1 0 ; if not R1 then PC := 7 4 [-]: JMP 7 ; PC := 7 5 [-]: RETURN R1 2 ; return R1 6 [-]: JMP 21 ; PC := 21 7 [-]: LT 0 R0 K0 ; if R0 >= " " then PC := 17 8 [-]: JMP 17 ; PC := 17 9 [-]: GETGLOBAL R2 K1 ; R2 := string 10 [-]: GETTABLE R2 R2 K2 ; R2 := R2["format"] 11 [-]: LOADK R3 K3 ; R3 := "\\%03i" 12 [-]: SELF R4 R0 K4 ; R5 := R0; R4 := R0["byte"] 13 [-]: CALL R4 2 0 ; R4,... := R4(R5) 14 [-]: TAILCALL R2 0 0 ; R2,... := R2(R3,...) 15 [-]: RETURN R2 0 ; return R2,... 16 [-]: JMP 21 ; PC := 21 17 [-]: LOADK R2 K5 ; R2 := "\\" 18 [-]: MOVE R3 R0 ; R3 := R0 19 [-]: CONCAT R2 R2 R3 ; R2 := R2 .. R3 20 [-]: RETURN R2 2 ; return R2 21 [-]: RETURN R0 1 ; return ; Function #4: ; ; Name: ; Defined at line: 976470609 ; #Upvalues: 0 ; #Parameters: 2 ; Is_vararg: 0 ; Max Stack Size: 8 1 [-]: GETGLOBAL R2 K0 ; R2 := string 2 [-]: GETTABLE R2 R2 K1 ; R2 := R2["find"] 3 [-]: MOVE R3 R0 ; R3 := R0 4 [-]: LOADK R4 K2 ; R4 := "^%s*" 5 [-]: MOVE R5 R1 ; R5 := R1 6 [-]: CONCAT R4 R4 R5 ; R4 := R4 .. R5 7 [-]: CALL R2 3 2 ; R2 := R2(R3,R4) 8 [-]: TEST R2 0 ; if not R2 then PC := 27 9 [-]: JMP 27 ; PC := 27 10 [-]: GETGLOBAL R3 K0 ; R3 := string 11 [-]: GETTABLE R3 R3 K1 ; R3 := R3["find"] 12 [-]: MOVE R4 R0 ; R4 := R0 13 [-]: MOVE R5 R1 ; R5 := R1 14 [-]: LOADK R6 K3 ; R6 := "%s*$" 15 [-]: CONCAT R5 R5 R6 ; R5 := R5 .. R6 16 [-]: ADD R6 R2 K4 ; R6 := R2 + 1 17 [-]: CALL R3 4 2 ; R3 := R3(R4,R5,R6) 18 [-]: TEST R3 0 ; if not R3 then PC := 27 19 [-]: JMP 27 ; PC := 27 20 [-]: GETGLOBAL R4 K0 ; R4 := string 21 [-]: GETTABLE R4 R4 K5 ; R4 := R4["sub"] 22 [-]: MOVE R5 R0 ; R5 := R0 23 [-]: ADD R6 R2 K4 ; R6 := R2 + 1 24 [-]: SUB R7 R3 K4 ; R7 := R3 - 1 25 [-]: TAILCALL R4 4 0 ; R4,... := R4(R5,R6,R7) 26 [-]: RETURN R4 0 ; return R4,... 27 [-]: LOADNIL R3 R3 ; R3 := nil 28 [-]: RETURN R3 2 ; return R3 29 [-]: RETURN R0 1 ; return ; Function #5: ; ; Name: ; Defined at line: 976470609 ; #Upvalues: 1 ; #Parameters: 1 ; Is_vararg: 0 ; Max Stack Size: 5 1 [-]: GETUPVAL R1 U0 ; R1 := U0 2 [-]: MOVE R2 R0 ; R2 := R0 3 [-]: LOADK R3 K0 ; R3 := "\"" 4 [-]: CALL R1 3 2 ; R1 := R1(R2,R3) 5 [-]: TEST R1 1 ; if R1 then PC := 15 6 [-]: JMP 15 ; PC := 15 7 [-]: GETUPVAL R2 U0 ; R2 := U0 8 [-]: MOVE R3 R0 ; R3 := R0 9 [-]: LOADK R4 K1 ; R4 := "'" 10 [-]: CALL R2 3 2 ; R2 := R2(R3,R4) 11 [-]: MOVE R1 R2 ; R1 := R2 12 [-]: TEST R1 1 ; if R1 then PC := 15 13 [-]: JMP 15 ; PC := 15 14 [-]: MOVE R1 R0 ; R1 := R0 15 [-]: RETURN R1 2 ; return R1 16 [-]: RETURN R0 1 ; return ; Function #6: ; ; Name: ; Defined at line: 976470609 ; #Upvalues: 0 ; #Parameters: 2 ; Is_vararg: 0 ; Max Stack Size: 7 1 [-]: LOADK R2 K0 ; R2 := -1 2 [-]: GETGLOBAL R3 K1 ; R3 := string 3 [-]: GETTABLE R3 R3 K2 ; R3 := R3["find"] 4 [-]: MOVE R4 R0 ; R4 := R0 5 [-]: MOVE R5 R1 ; R5 := R1 6 [-]: ADD R6 R2 K3 ; R6 := R2 + 1 7 [-]: CALL R3 4 2 ; R3 := R3(R4,R5,R6) 8 [-]: TEST R3 0 ; if not R3 then PC := 16 9 [-]: JMP 16 ; PC := 16 10 [-]: LT 0 R2 R3 ; if R2 >= R3 then PC := 16 11 [-]: JMP 16 ; PC := 16 12 [-]: MOVE R2 R3 ; R2 := R3 13 [-]: JMP 2 ; PC := 2 14 [-]: JMP 16 ; PC := 16 15 [-]: JMP 2 ; PC := 2 16 [-]: LE 0 K4 R2 ; if 0 > R2 then PC := 20 17 [-]: JMP 20 ; PC := 20 18 [-]: RETURN R2 2 ; return R2 19 [-]: JMP 22 ; PC := 22 20 [-]: LOADNIL R3 R3 ; R3 := nil 21 [-]: RETURN R3 2 ; return R3 22 [-]: RETURN R0 1 ; return ; Function #7: ; ; Name: ; Defined at line: 976470609 ; #Upvalues: 0 ; #Parameters: 2 ; Is_vararg: 0 ; Max Stack Size: 12 1 [-]: GETGLOBAL R2 K0 ; R2 := string 2 [-]: GETTABLE R2 R2 K1 ; R2 := R2["find"] 3 [-]: MOVE R3 R0 ; R3 := R0 4 [-]: MOVE R4 R1 ; R4 := R1 5 [-]: CALL R2 3 2 ; R2 := R2(R3,R4) 6 [-]: EQ 0 R2 K2 ; if R2 ~= nil then PC := 12 7 [-]: JMP 12 ; PC := 12 8 [-]: NEWTABLE R2 1 0 ; R2 := {} 9 [-]: MOVE R3 R0 ; R3 := R0 10 [-]: SETLIST R2 1 1 ; R2[(1-1)*FPF+i] := R(2+i), 1 <= i <= 1 11 [-]: RETURN R2 2 ; return R2 12 [-]: NEWTABLE R2 0 0 ; R2 := {} 13 [-]: LOADK R3 K3 ; R3 := "(.-)" 14 [-]: MOVE R4 R1 ; R4 := R1 15 [-]: LOADK R5 K4 ; R5 := "()" 16 [-]: CONCAT R3 R3 R5 ; R3 := R3 .. R4 .. R5 17 [-]: LOADK R4 K5 ; R4 := 0 18 [-]: LOADNIL R5 R5 ; R5 := nil 19 [-]: GETGLOBAL R6 K0 ; R6 := string 20 [-]: GETTABLE R6 R6 K6 ; R6 := R6["gfind"] 21 [-]: MOVE R7 R0 ; R7 := R0 22 [-]: MOVE R8 R3 ; R8 := R3 23 [-]: CALL R6 3 4 ; R6,R7,R8 := R6(R7,R8) 24 [-]: JMP 28 ; PC := 28 25 [-]: ADD R4 R4 K7 ; R4 := R4 + 1 26 [-]: SETTABLE R2 R4 R9 ; R2[R4] := R9 27 [-]: MOVE R5 R10 ; R5 := R10 28 [-]: TFORLOOP R6 2 ; R9,R10 := R6(R7,R8); if R9 ~= nil then begin PC = 25; R8 := R9 end 29 [-]: JMP 25 ; PC := 25 30 [-]: ADD R6 R4 K7 ; R6 := R4 + 1 31 [-]: GETGLOBAL R7 K0 ; R7 := string 32 [-]: GETTABLE R7 R7 K8 ; R7 := R7["sub"] 33 [-]: MOVE R8 R0 ; R8 := R0 34 [-]: MOVE R9 R5 ; R9 := R5 35 [-]: CALL R7 3 2 ; R7 := R7(R8,R9) 36 [-]: SETTABLE R2 R6 R7 ; R2[R6] := R7 37 [-]: RETURN R2 2 ; return R2 38 [-]: RETURN R0 1 ; return ; Function #8: ; ; Name: ; Defined at line: 976470609 ; #Upvalues: 0 ; #Parameters: 2 ; Is_vararg: 0 ; Max Stack Size: 7 1 [-]: GETGLOBAL R2 K0 ; R2 := string 2 [-]: GETTABLE R2 R2 K1 ; R2 := R2["byte"] 3 [-]: GETGLOBAL R3 K0 ; R3 := string 4 [-]: GETTABLE R3 R3 K2 ; R3 := R3["sub"] 5 [-]: MOVE R4 R0 ; R4 := R0 6 [-]: MOVE R5 R1 ; R5 := R1 7 [-]: MOVE R6 R1 ; R6 := R1 8 [-]: CALL R3 4 0 ; R3,... := R3(R4,R5,R6) 9 [-]: TAILCALL R2 0 0 ; R2,... := R2(R3,...) 10 [-]: RETURN R2 0 ; return R2,... 11 [-]: RETURN R0 1 ; return