[+] mqm base=0x7eb8895000
[patch] +489c70 got=52800d08 OK
[patch] +489c70 52800d08 → 52800008
[patch] +48a1b8 got=52800d1b OK
[patch] +48a1b8 52800d1b → 5280001b
[patch] +48a3ac got=52800d1b OK
[patch] +48a3ac 52800d1b → 5280001b
[patch] +48a890 got=52800d09 OK
[patch] +48a890 52800d09 → 52800009
[patch] ret0 +56dee4
[patch] ret0 +56e194
[patch] ret0 +5703a4
[+] stage JNI_Run
[+] stage core_48dbd0
[+] stage core_481160
[+] stage worker_482234
[+] DES_ecb accumulator
[+] crypto DES_ecb_encrypt
[+] crypto DES_ncbc_encrypt
[+] crypto EVP_DecryptUpdate
[+] crypto EVP_DecryptFinal
[+] crypto AES_decrypt
[+] DebugPrint @ 0x7eb8e06abc
[+] alloc hook malloc
[+] alloc hook calloc
[+] alloc hook realloc
[+] memcpy big hook
[+] memmove big hook
[+] fread hook
[+] read hook
[+] luaL_loadbufferx @ 0x7eb8a81400 (mqm+1ec400)
[+] luaL_loadfilex @ 0x7eb8a80ce4 (mqm+1ebce4)
[+] lua_load_inner @ 0x7eb8a7e05c (mqm+1e905c)
[+] const str_1e7b20 @ mqm+1e7b20
[+] const str_1e9400 @ mqm+1e9400
[+] const str_1e8110 @ mqm+1e8110
[+] const undump_1ed6c0 @ mqm+1ed6c0
[+] undump 1e8e00 @ mqm+1e8e00
[+] const lstr_1e6534 @ mqm+1e6534
[+] const lstr_1f7064 @ mqm+1f7064
[+] const lstr_1f6d04 @ mqm+1f6d04
[*] engine_v11 pid=27763 name=com.kzitouka.hpxxzsb:enginfloat
[*] 104 patches + crypto dump (deferred heavy hooks)
[+] JSONTokener guard
[+] JSONObject guard
[+] JSONArray guard
[+] Run hooks v17 count=3
[+] MqRunner.start hook
[+] wrote ENGINE_READY (java)
[Toast] 引擎已就绪，现在可以点运行
[*] v18 ready — loadbuffer + const/undump hooks + force Run
[+] ensureCfg len=1273
[InitHost] com.kzitouka.hpxxzsb
[+] InitHost
[+] com.cyjh.mobileanjian.ipc.interfaces.OnScriptMessageCallback.onTracePrint
[+] com.cyjh.mobileanjian.ipc.interfaces.OnScriptMessageCallback.onDebugMessage
[*] deferred hooks done — tap RUN now (v18 const pool)
[Toast] v18常量钩子就绪，可点运行
[InitElf] blocked a={"BaseURL":"http://auth1.mobileanjian.com/","PackageName":"com.kzitouka.hpxxzsb","PayAppId":"703CAD13-371E-435e-BF9E-F3333C1B4E67","ScriptType":true,"authDesKeys":["1bff00f5","caf7a1f0","7fed39f9","a1988775","964f8677","242678c5","b4af55a5","6619cb9d"],"id":"ad9f3ba2-9e16-42c4-acc2-60df1ecebfc0","keys":"a0f9baaeafb39fbea8b890bea2a8f9e180f9eab9bdbdebebbdeef9f7f9b8babdecbaeabdebf9f7f9ecbdbebfe8e2bde2f9f7f9baeae2e3e3ececeef9f7f9e2edefbde3edececf9f7f9e9efe9edece3b8eef9f7f9b9efbabdeeeebaeef9f7f9ededeae2b8b9e2bff986f7f9b9baa8be8ea9b7f9e1f9b3afafabe1f4f4baaeafb3eaf5b6b4b9b2b7bebab5b1b2bab5f5b8b4b6f4f9f7f9b4b7bf99baa8be8ea9b7f9e1f9b3afafabe1f4f4baaeafb3eaf5b6b4b9b2b7bebab5b1b2bab5f5b8b4b6f4f9f7f9a1b2abeaf9e1f9eaeae8e9ececeaedede3f9a6d1","AppId":366171,"AppInfo":"COBC41DkB9sFol1lVcsqrYAoenyc3ZI7xK8DLBhBPW3cF34m3xl6H/dll5w5Ed04e/JnVcOeO4UUZFuj/LHcCBcxpIJJSqAP","AppVersion":"1784260814","ClientTimestamp":1784282140,"DeviceCode":"01JG756CJ071","DeviceId":"85996cdf0a521ff5bb549562b6bb0d9b","IsRedFinger":0,"TemplateFileId":659,"TemplateVersion":"6.7.7","V":"81058250b7deb83d0"} b=d6c9aaeed6c9abd9c8cffed0cef3d8c9cfaadffdcfdcd0d0ccf1dccfc8c9d8d6c8ccf1eed6c9aaeed6cbead4c9cff6decddcdcd0cbf1dcd8c9aad0f4cfcfc8cdc0ddfdaaf8def6efcdd2d4f1c3f0fed5cfd2d0a8cdf0f2a8c0e0dcaacfa9d4defff1eedfc9abf6f4c0f4c0f6feccfee2cfaafdeccef7ead0cfdfdcc8d7f6eaf3d9f4dca8fedcd8f0d7e0dbe8d7dff9aac9c2fef0c9f3eee0f9aad4f6d4dcd0def8f1ededccdffed9c3f7eeabcbcdcce8f9ddd7e0c3f0c8fbcedfe2d5c9aaeaedc3f4c8edc0dfc8ddf9f0ccddf9a8c8aacbcfcccdcddffdd1d7c2d7abffd9eefbcddfd4d7c9c2ccead4cdf6abcccdccf2cedff2afc0dfd4aec0ddf6c3d1aaf6e8fff3a3caf8cff9eccfd2f6d8c3e0dcfbc0f6dccdf9dfcceff8a9f2dcd4f6feaec8d2ccddcfcff6dfcbccdcd8cbfdead8f8aafed8c9a9fecefeabf1a9c3a9c8d0c3f7c0ded1abf6e3d5ddfefbf9ddf2d0fbf6f9e8c8c2d4cfcdf6f2d1d6a9c3e8c9ddcfaefbdfd0ecfff6dfe3c9ddc0f5ccabf6a8d4dcd4fbfecdabf5d4a9d4e3ccdcfeddd9f1cbe2c0ceccdcfbdec0ddcba8fdeccfabf6aac3f0c8cdc3ced7e8f8ccccd6cbabccf1d7ccc0ddd5dfababcfcfc8f5cedfaae0c0cff6a9cbccf6d3cce0d0edfbdff6c2c8dedfe0cff4d8d0d4ddc8dcc0f4d3edd1a8e9d1f9ddeacad5dfe2e3fef7eeeecfaaeea9c9dcd4ddccddababfedfeae8f9cde2f6c9dcf1abf9f7eaf6c3ccd0affedcd4a8ffddd4cdc0f1d4d5fbcfcbecd4a9d4decfccdcdfd7a9f2f2d6a8eeaec9f7f5abcfd2fed7f9fdeadccbf6f2d8fee0cce9c8c2cfa9fff1d3e0f8f0dcedd4defeccc9f1abd8c3abd4d2f8a9f1e2cfa8c8cdd7f6d4f6ffced8cbd4d9a3aef8cceae9d6abf2c2c9f0f9aec8f1e2d2cbf6fefbfea9c0ced4e3a3e8d1a9eafbd9f4d0cbccf4cfe8d4cfeacfcbcdeedccbced4d0fff1d0ddc0dcf5aaf9f1f2f0f8aadfe3f8a8d4f7c9f7ccf4fecef6eacff1dcd7cbf7ababfff7e2edccdefed2c9f0fedeccf0c0ddccccf2ecc3e0f2edf9f7ccd4fbcfc3d1c3c2f6c9d5ddc8f0d7f6d0d4ccf0cceef8f7abccc3f7eac9c9ddf6d2ccd2ccaec9c2c8c8c9f6f6a8cdf1dfaffeaaead8cef1feecd7cde9aac0cdeaf1cef7d0d3f8f0d8d1d6e0dfaad1aaeacdcea8eedecfdcfedfd4edf5e2fef1e9aed7dcf2afd6a8feeafff4d0edd7decbeccfcdf9a9cff7d0dfcbcdabd2d7dec8d7c8c2d7a8c8a8eaa9c8aadcd8ccdcdccfcfdefefbc8f4fea8feddfeddd4d2f2efcfdedce0f8e0d8c8c9f1d0d8ceced8dfd9f1eef5fba8dcefc8aafde2cbccf6cff9f1d0ebd6a9dfedf9a8d0d6f9abcbaff9c2ccedcfcdcfaec0f0d4f2fba9c8d6f8a8a2a8fedcd4e2c9f7aaabd5cef6acd7f4f6d4d4f7afa9d1a8aff1fbdfe2d3cdddf2edffcff9d1c3f3e9e0c3ccd4f0f8a8dfa8f9f6f2aaccf1d4aefbd2d0ddc8cfd4c8cfcfd4d2d7ddcfaed4e0d8d9cfabc3afcea8f2ebfbf0ccc9cdded0f1d5dddcc3cdd9eed7f8cdede8d4d2cccecfaaaeecf9f1c8f1f8d2c0f2cccbeaaef8ccd0d7cddfc0dcc0abf6d7d7dde2cdcef4ccd8c8e0c0fbc9aafed2f9f0dcc8f9ccc0c9fef3a3afced2f6decfdecccbc8a8eac8d5dfd0a8fecbf5eed6c9aaeed6cfccd5c8d9d8c9cfaadffdcfdcd0d0ccf1dccfc8c9d8d6c8ccf1eed6c9aaeed6cbf5a7 c=d6c9aaeed6c9abd9c8cffed0cef3d8cbcccfd0d7
[MqRunner.start] v12
[+] set gg0.OooO0o0=true
[+] ensureCfg len=1273
[InitHost] com.kzitouka.hpxxzsb
[+] InitHost
[MqRunner.start] no Run in 1.5s → oneForce
========== oneForce start_fallback ==========
[+] ensureCfg len=1273
[InitHost] com.kzitouka.hpxxzsb
[+] InitHost
[force] lc=true uip=true cfg=true
[+] run start — skip full heap scan; wait fread/read of script.lc
[Java Run] enter v17 nargs=8 args=[/data/user/0/com.kzitouka.hpxxzsb/files/script.lc | /data/user/0/com.kzitouka.hpxxzsb/files/script.uip | /data/user/0/com.kzitouka.hpxxzsb/files/script.cfg | 4E2E8AE3-3CC7-4f52-A7A4-F535C75BE674 | 46a7921817c045299c08e2010e5d77b4 | KJRg38hilCvwRmPcaPTeYQC1KZagC3HOoBSmGQC0A7ygCORbUORZ5qAB7FO4... | 0 | 1784282144820]
[io] open /data/user/0/com.kzitouka.hpxxzsb/files/script.cfg → 0x58
[io] open /data/user/0/com.kzitouka.hpxxzsb/files/script.cfg → 0x58
[+] ensureCfg len=1273
[+] run start — skip full heap scan; wait fread/read of script.lc
[stage] ENTER JNI_Run
[UNDUMP] 1e8e00 ret=1
[UNDUMP] 1e8e00 ret=1
[UNDUMP] 1e8e00 ret=1
[UNDUMP] 1e8e00 ret=1
[CONST+] str_1e7b20 sc=8 len=137 /usr/local/share/lua/5.2/?.lua;/usr/local/share/lua/5.2/?/init.lua;/usr/local/lib/lua/5.2/?.lua;/usr/local/lib/lua/5.2/?
[CONST+] str_1e7b20 sc=4 len=68 /usr/local/lib/lua/5.2/?.so;/usr/local/lib/lua/5.2/loadall.so;./?.so
[UNDUMP] 1e8e00 ret=1
[UNDUMP] 1e8e00 ret=1
[UNDUMP] 1e8e00 ret=1
[UNDUMP] 1e8e00 ret=1
[UNDUMP] 1e8e00 ret=1
[UNDUMP] 1e8e00 ret=1
[UNDUMP] 1e8e00 ret=1
[UNDUMP] 1e8e00 ret=1
[UNDUMP] 1e8e00 ret=1
[CONST+] str_1e7b20 sc=4 len=41 /storage/emulated/0/com.kzitouka.hpxxzsb/
[io] open /data/user/0/com.kzitouka.hpxxzsb/files/script.lc → 0x58
[io] fopen /data/user/0/com.kzitouka.hpxxzsb/files/script.lc → 0x7fa74cb0b0
[LUA-LOAD] lua_load_inner sz=314346008 name= mode= inRun=true
[LUA-LOAD] lua_load_inner ret=0 name= consts=57/44
[UNDUMP] 1e8e00 ret=1
[UNDUMP] 1e8e00 ret=1
[UNDUMP] 1e8e00 ret=1
[UNDUMP] 1e8e00 ret=1
[CONST+] str_1e7b20 sc=3 len=8 FUNCTION
[UNDUMP] 1e8e00 ret=1
[UNDUMP] 1e8e00 ret=1
[LUA-LOAD] lua_load_inner sz=314346008 name=--require("LuaXML_Lib")

local base = _G
local xml = xml
--module("xml")

-- symbolic name for tag index, this allows accessing the tag by var[xml.TAG]
TAG = 0

-- sets or returns tag of a LuaXML object
function xml.tag(var,tag)
  if base.type(var)~="table" then return end
  if base.type(tag)=="nil" then 
    return var[TAG]
  end
  var[TAG] = tag
end

-- creates a new LuaXML object either by setting the metatable of an existing Lua table or by setting its tag
function xml.new(arg)
  if base.type(arg)=="table" then 
    base.setmetatable(arg,{__index=xml, __tostring=xml.str})
	return arg
  end
  local var={}
  base.setmetatable(var,{__index=xml, __tostring=xml.str})
  if base.type(arg)=="string" then var[TAG]=arg end
  return var
end

-- appends a new subordinate LuaXML object to an existing one, optionally sets tag
function xml.append(var,tag)
  if base.type(var)~="table" then return end
  local newVar = xml.new(tag)
  var[#var+1] = newVar
  return newVar
end

-- converts any Lua var into an XML string
function xml.str(var,indent,tagValue)
  if base.type(var)=="nil" then return end
  local indent = indent or 0
  local indentStr=""
  for i = 1,indent do indentStr=indentStr.."  " end
  local tableStr=""
  
  if base.type(var)=="table" then
    local tag = var[0] or tagValue or base.type(var)
    local s = indentStr.."<"..tag
    for k,v in base.pairs(var) do -- attributes 
      if base.type(k)=="string" then
        if base.type(v)=="table" and k~="_M" then --  otherwise recursiveness imminent
          tableStr = tableStr..str(v,indent+1,k)
        else
          s = s.." "..k.."=\""..xml.encode(base.tostring(v)).."\""
        end
      end
    end
    if #var==0 and #tableStr==0 then
      s = s.." />\n"
    elseif #var==1 and base.type(var[1])~="table" and #tableStr==0 then -- single element
      s = s..">"..xml.encode(base.tostring(var[1])).."</"..tag..">\n"
    else
      s = s..">\n"
      for k,v in base.ipairs(var) do -- elements
        if base.type(v)=="string" then
          s = s..indentStr.."  "..xml.encode(v).." \n"
        else
          s = s..xml.str(v,indent+1)
        end
      end
      s=s..tableStr..indentStr.."</"..tag..">\n"
    end
    return s
  else
    local tag = base.type(var)
    return indentStr.."<"..tag.."> "..xml.encode(base.tostring(var)).." </"..tag..">\n"
  end
end


-- saves a Lua var as xml file
function xml.save(var,filename)
  if not var then return end
  if not filename or #filename==0 then return end
  local file = base.io.open(filename,"w")
  file:write("<?xml version=\"1.0\"?>\n<!-- file \"",filename, "\", generated by LuaXML -->\n\n")
  file:write(xml.str(var))
  base.io.close(file)
end


-- recursively parses a Lua table for a substatement fitting to the provided tag and attribute
function xml.find(var, tag, attributeKey,attributeValue)
  -- check input:
  if base.type(var)~="table" then return end
  if base.type(tag)=="string" and #tag==0 then tag=nil end
  if base.type(attributeKey)~="string" or #attributeKey==0 then attributeKey=nil end
  if base.type(attributeValue)=="string" and #attributeValue==0 then attributeValue=nil end
  -- compare this table:
  if tag~=nil then
    if var[0]==tag and ( attributeValue == nil or var[attributeKey]==attributeValue ) then
      base.setmetatable(var,{__index=xml, __tostring=xml.str})
      return var
    end
  else
    if attributeValue == nil or var[attributeKey]==attributeValue then
      base.setmetatable(var,{__index=xml, __tostring=xml.str})
      return var
    end
  end
  -- recursively parse subtags:
  for k,v in base.ipairs(var) do
    if base.type(v)=="table" then
      local ret = xml.find(v, tag, attributeKey,attributeValue)
      if ret ~= nil then return ret end
    end
  end
end
 mode= inRun=true
[LUA-LOAD] lua_load_inner ret=0 name=--require("LuaXML_Lib")

local base = _G
local xml = xml
--module("xml")

-- symbolic name for tag index, this allows accessing the tag by var[xml.TAG]
TAG = 0

-- sets or returns tag of a LuaXML object
function xml.tag(var,tag)
  if base.type(var)~="table" then return end
  if base.type(tag)=="nil" then 
    return var[TAG]
  end
  var[TAG] = tag
end

-- creates a new LuaXML object either by setting the metatable of an existing Lua table or by setting its tag
function xml.new(arg)
  if base.type(arg)=="table" then 
    base.setmetatable(arg,{__index=xml, __tostring=xml.str})
	return arg
  end
  local var={}
  base.setmetatable(var,{__index=xml, __tostring=xml.str})
  if base.type(arg)=="string" then var[TAG]=arg end
  return var
end

-- appends a new subordinate LuaXML object to an existing one, optionally sets tag
function xml.append(var,tag)
  if base.type(var)~="table" then return end
  local newVar = xml.new(tag)
  var[#var+1] = newVar
  return newVar
end

-- converts any Lua var into an XML string
function xml.str(var,indent,tagValue)
  if base.type(var)=="nil" then return end
  local indent = indent or 0
  local indentStr=""
  for i = 1,indent do indentStr=indentStr.."  " end
  local tableStr=""
  
  if base.type(var)=="table" then
    local tag = var[0] or tagValue or base.type(var)
    local s = indentStr.."<"..tag
    for k,v in base.pairs(var) do -- attributes 
      if base.type(k)=="string" then
        if base.type(v)=="table" and k~="_M" then --  otherwise recursiveness imminent
          tableStr = tableStr..str(v,indent+1,k)
        else
          s = s.." "..k.."=\""..xml.encode(base.tostring(v)).."\""
        end
      end
    end
    if #var==0 and #tableStr==0 then
      s = s.." />\n"
    elseif #var==1 and base.type(var[1])~="table" and #tableStr==0 then -- single element
      s = s..">"..xml.encode(base.tostring(var[1])).."</"..tag..">\n"
    else
      s = s..">\n"
      for k,v in base.ipairs(var) do -- elements
        if base.type(v)=="string" then
          s = s..indentStr.."  "..xml.encode(v).." \n"
        else
          s = s..xml.str(v,indent+1)
        end
      end
      s=s..tableStr..indentStr.."</"..tag..">\n"
    end
    return s
  else
    local tag = base.type(var)
    return indentStr.."<"..tag.."> "..xml.encode(base.tostring(var)).." </"..tag..">\n"
  end
end


-- saves a Lua var as xml file
function xml.save(var,filename)
  if not var then return end
  if not filename or #filename==0 then return end
  local file = base.io.open(filename,"w")
  file:write("<?xml version=\"1.0\"?>\n<!-- file \"",filename, "\", generated by LuaXML -->\n\n")
  file:write(xml.str(var))
  base.io.close(file)
end


-- recursively parses a Lua table for a substatement fitting to the provided tag and attribute
function xml.find(var, tag, attributeKey,attributeValue)
  -- check input:
  if base.type(var)~="table" then return end
  if base.type(tag)=="string" and #tag==0 then tag=nil end
  if base.type(attributeKey)~="string" or #attributeKey==0 then attributeKey=nil end
  if base.type(attributeValue)=="string" and #attributeValue==0 then attributeValue=nil end
  -- compare this table:
  if tag~=nil then
    if var[0]==tag and ( attributeValue == nil or var[attributeKey]==attributeValue ) then
      base.setmetatable(var,{__index=xml, __tostring=xml.str})
      return var
    end
  else
    if attributeValue == nil or var[attributeKey]==attributeValue then
      base.setmetatable(var,{__index=xml, __tostring=xml.str})
      return var
    end
  end
  -- recursively parse subtags:
  for k,v in base.ipairs(var) do
    if base.type(v)=="table" then
      local ret = xml.find(v, tag, attributeKey,attributeValue)
      if ret ~= nil then return ret end
    end
  end
end
 consts=139/120
[io] open /data/user/0/com.kzitouka.hpxxzsb/files/script.lc → 0x58
[io] fopen /data/user/0/com.kzitouka.hpxxzsb/files/script.lc → 0x7fa74cb0b0
[stage] ENTER worker_482234
[dump] memcpy_hi_7432 len=7432 sc=0.58
[dump] memcpy_hi_7736 len=7736 sc=0.61
[fread] big bytes=38400 #1
[dump] fread_raw_38400 len=38400 sc=0.40
[fread] head16=fd718b3dfa6738bb829169bc1a62423c
[dump] read_raw_50628 len=50628 sc=0.40
[fread] big bytes=53760 #2
[dump] fread_raw_53760 len=53760 sc=0.41
[fread] head16=18a0453e1ef878be265a553e9f3d3f3e
[dump] memcpy_hi_6736 len=6736 sc=1.00
[dump] read_raw_71396 len=71396 sc=0.40
[fread] big bytes=75264 #3
[dump] memcpy_hi_7408 len=7408 sc=1.00
[dump] fread_raw_75264 len=75264 sc=0.41
[fread] head16=f94653bc30b0cf3c8d3262bc1db815bd
[dump] read_raw_72516 len=72516 sc=0.42
[fread] big bytes=75264 #4
[dump] memcpy_hi_10064 len=10064 sc=0.94
[dump] fread_raw_75264 len=75264 sc=0.41
[fread] head16=a4d57d3e73bfb53dde1772be2946ec3d
[dump] memcpy_hi_9076 len=9076 sc=0.93
[dump] read_raw_71396 len=71396 sc=0.41
[fread] big bytes=75264 #5
[dump] memcpy_hi_8768 len=8768 sc=0.90
[dump] fread_raw_75264 len=75264 sc=0.40
[fread] head16=023175bae550a93b403b23bd90c9f93b
[fread] big bytes=33600 #6
[dump] fread_raw_33600 len=33600 sc=0.39
[fread] head16=cc45803ef3ea0b3d77b3cebda01a523b
[dump] read_raw_104772 len=104772 sc=0.40
[fread] big bytes=107520 #7
[dump] fread_raw_107520 len=107520 sc=0.41
[fread] head16=d54c59bdd68c77be91616f3d3abb853d
[dump] read_raw_149828 len=149828 sc=0.40
[fread] big bytes=153600 #8
[dump] fread_raw_153600 len=153600 sc=0.38
[fread] head16=29d5babbad9fd2bbb1ce4f3ceb05ab3a
[fread] big bytes=48000 #9
[dump] fread_raw_48000 len=48000 sc=0.38
[fread] head16=34fcdb3e59377d3d068132409d15433f
[dump] read_raw_151428 len=151428 sc=0.35
[fread] big bytes=153600 #10
[dump] fread_raw_153600 len=153600 sc=0.36
[fread] head16=ea0c13bd00000000dd41a5be628ea03d
[dump] read_raw_149828 len=149828 sc=0.38
[fread] big bytes=153600 #11
[dump] fread_raw_153600 len=153600 sc=0.39
[fread] head16=4bc59abd4e2796bba18831bd51f80dbc
[fread] big bytes=48000 #12
[dump] fread_raw_48000 len=48000 sc=0.37
[fread] head16=30024ebfe97c81be19987d3d223bd8be
[dump] read_raw_151428 len=151428 sc=0.38
[fread] big bytes=153600 #13
[dump] fread_raw_153600 len=153600 sc=0.39
[fread] head16=5a53413d000000005b2283bd921bf9be
[dump] read_raw_149828 len=149828 sc=0.40
[fread] big bytes=153600 #14
[dump] fread_raw_153600 len=153600 sc=0.42
[fread] head16=0bbf83bd82d3473d65462a3e5c4d65bd
[dump] read_raw_182148 len=182148 sc=0.40
[fread] big bytes=184320 #15
[dump] fread_raw_184320 len=184320 sc=0.40
[fread] head16=e88f04bdfdff47beafec85bddbe298bb
[fread] big bytes=21504 #16
[dump] fread_raw_21504 len=21504 sc=0.40
[fread] head16=a71f19be442808bdae17c23cc27e78be
[dump] read_raw_79236 len=79236 sc=0.42
[fread] big bytes=82944 #17
[dump] fread_raw_82944 len=82944 sc=0.41
[fread] head16=6699063e0a99b53d5e0d953dd71f20bd
[dump] read_raw_80132 len=80132 sc=0.40
[fread] big bytes=82944 #18
[dump] fread_raw_82944 len=82944 sc=0.41
[fread] head16=d6e4163e16b1253e8061343eaa8faabd
[dump] read_raw_80132 len=80132 sc=0.42
[fread] big bytes=82944 #19
[dump] fread_raw_82944 len=82944 sc=0.41
[fread] head16=08c73b3daf99aa3d92ad1a3eae302f3e
[dump] read_raw_80132 len=80132 sc=0.40
[fread] big bytes=82944 #20
[dump] fread_raw_82944 len=82944 sc=0.40
[fread] head16=5d45903dfbb6843db6ef0a3e5b1bc2bb
[dump] read_raw_80132 len=80132 sc=0.40
[fread] big bytes=82944 #21
[dump] fread_raw_82944 len=82944 sc=0.40
[fread] head16=dfaa2e38e19a3838fb5013387dcdf037
[fread] big bytes=32768 #22
[dump] fread_raw_32768 len=32768 sc=0.40
[fread] head16=f802673cec0409bce8629a3bdc1deb3c
[dump] read_raw_62984 len=62984 sc=0.40
[fread] big bytes=65536 #23
[dump] fread_raw_65536 len=65536 sc=0.40
[fread] head16=7e14f9bb043212bc5095bf3c9c859dba
[dump] read_raw_128520 len=128520 sc=0.39
[fread] big bytes=131072 #24
[dump] fread_raw_131072 len=131072 sc=0.41
[fread] head16=6d091c3de266fcbcb088f6baf885efbb
[fread] big bytes=25600 #25
[dump] fread_raw_25600 len=25600 sc=0.41
[fread] head16=29efda3f8b40353f54e8313f0bdc353f
[dump] read_raw_259076 len=259076 sc=0.39
[fread] big bytes=262144 #26
[dump] fread_raw_262144 len=262144 sc=0.39
[fread] head16=5a244ebcd5ac42bc1ef000bc69e90d3c
[fread] big bytes=25600 #27
[dump] fread_raw_25600 len=25600 sc=0.43
[fread] head16=6b7c1abe11aa373e0d822a3e8e00903d
[dump] read_raw_259076 len=259076 sc=0.39
[fread] big bytes=262144 #28
[dump] fread_raw_262144 len=262144 sc=0.38
[fread] head16=5d6c1fbd5181063e108d123e757c5a3c
[fread] big bytes=25600 #29
[dump] fread_raw_25600 len=25600 sc=0.42
[fread] head16=b50826be65e4503b6fe21dbda6bb1dbd
[dump] read_raw_259076 len=259076 sc=0.40
[fread] big bytes=262144 #30
[dump] fread_raw_262144 len=262144 sc=0.39
[fread] head16=52f715bcb1adb83d33165bbdfe9ed03c
[fread] big bytes=25600 #31
[dump] fread_raw_25600 len=25600 sc=0.40
[fread] head16=3665d6bd764bfbbbeedc00be7df971bd
[dump] read_raw_259076 len=259076 sc=0.40
[fread] big bytes=262144 #32
[dump] fread_raw_262144 len=262144 sc=0.39
[fread] head16=a94f1bbe8733c6bcaf4363bd4b6492bd
[fread] big bytes=25600 #33
[dump] fread_raw_25600 len=25600 sc=0.40
[fread] head16=b945933dac948cbdfe4ea7bab0e500be
[dump] read_raw_259076 len=259076 sc=0.38
[fread] big bytes=262144 #34
[dump] fread_raw_262144 len=262144 sc=0.41
[fread] head16=7a8aa4bb9f2a41bd189e763cd3e48fbd
[fread] big bytes=25600 #35
[dump] fread_raw_25600 len=25600 sc=0.45
[fread] head16=3593233d4c132cbe641b5a3e4309113e
[dump] read_raw_62468 len=62468 sc=0.39
[fread] big bytes=65536 #36
[dump] fread_raw_65536 len=65536 sc=0.29
[fread] head16=00000000000000000000000000000000
[dump] read_raw_61700 len=61700 sc=0.29
[fread] big bytes=65536 #37
[dump] fread_raw_65536 len=65536 sc=0.28
[fread] head16=0000000000887dbd781a003229ed943c
[dump] read_raw_521220 len=521220 sc=0.38
[fread] big bytes=524288 #38
[dump] fread_raw_524288 len=524288 sc=0.38
[fread] head16=a0d7c73e48db23be7971d3be4280ca3e
[fread] big bytes=51200 #39
[dump] fread_raw_51200 len=51200 sc=0.43
[fread] head16=e8674a3f528f303fe4b91b3f02821f3f
[dump] read_raw_260100 len=260100 sc=0.35
[fread] big bytes=262144 #40
[dump] fread_raw_262144 len=262144 sc=0.38
[fread] head16=4998cfbc1df668bb23d89a3dc65a1dbd
[dump] read_raw_258564 len=258564 sc=0.27
[fread] big bytes=262144 #41
[dump] fread_raw_262144 len=262144 sc=0.27
[fread] head16=9642f8bc29171fa83f90133800000000
[dump] read_raw_1046532 len=1046532 sc=0.38
[fread] big bytes=1048576 #42
[dump] fread_raw_1048576 len=1048576 sc=0.38
[fread] head16=d1494ebf54ddf63f99e301be144d89be
[dump] read_raw_1177604 len=1177604 sc=0.14
[fread] big bytes=1179648 #43
[dump] fread_raw_1179648 len=1179648 sc=0.13
[fread] head16=0000000000000000000000006eb72dbb
[fread] big bytes=30720 #44
[dump] fread_raw_30720 len=30720 sc=0.42
[fread] head16=9b5f35be40f42640d383a03fc5ebecbe
[dump] read_raw_170148 len=170148 sc=0.39
[fread] big bytes=172800 #45
[dump] fread_raw_172800 len=172800 sc=0.40
[fread] head16=95cb7bbe47277b3df8921a3d094dc83d
[dump] read_raw_54948 len=54948 sc=0.40
[fread] big bytes=57600 #46
[dump] fread_raw_57600 len=57600 sc=0.40
[fread] head16=dd401abd1fc01abc2e05fb3dfecce2bc
[dump] read_raw_112548 len=112548 sc=0.40
[fread] big bytes=115200 #47
[dump] fread_raw_115200 len=115200 sc=0.41
[fread] head16=f12f653d3cc52ebe45c8b53d66536d3d
[dump] read_raw_112068 len=112068 sc=0.43
[fread] big bytes=115200 #48
[dump] fread_raw_115200 len=115200 sc=0.41
[fread] head16=659822bd709ec5bc79115c3d339fd63b
[dump] read_raw_170148 len=170148 sc=0.40
[fread] big bytes=172800 #49
[dump] fread_raw_172800 len=172800 sc=0.42
[fread] head16=146a74bdd3ffa3bd92c2163d7d13883b
[dump] read_raw_54948 len=54948 sc=0.39
[fread] big bytes=57600 #50
[dump] fread_raw_57600 len=57600 sc=0.40
[fread] head16=3fc8a8bcd9b593bc77eadfbd122e1e3c
[dump] read_raw_112548 len=112548 sc=0.41
[fread] big bytes=115200 #51
[dump] fread_raw_115200 len=115200 sc=0.40
[fread] head16=8a5521bd6b165cbd2b2a3e3eadfcd3bd
[dump] read_raw_112068 len=112068 sc=0.41
[fread] big bytes=115200 #52
[dump] fread_raw_115200 len=115200 sc=0.41
[fread] head16=646093baba3af33cf76465bd56fd9d3c
[dump] read_raw_243108 len=243108 sc=0.35
[fread] big bytes=245760 #53
[dump] fread_raw_245760 len=245760 sc=0.33
[fread] head16=7bd87e3c45c216be3120b0bb803fb4bd
[dump] read_raw_2357252 len=2357252 sc=0.13
[fread] big bytes=2359296 #54
[dump] fread_raw_2359296 len=2359296 sc=0.13
[fread] head16=0000000000000000000000003e02343a
[dump] read_raw_1692164 len=1692164 sc=0.37
[fread] big bytes=1696000 #55
[dump] fread_raw_1696000 len=1696000 sc=0.35
[fread] head16=20b0e63f6e7e44bdf6339eba3fdf08be
[fread] big bytes=26500 #56
[dump] fread_raw_26500 len=26500 sc=0.35
[fread] head16=5609b63f46835ebea3d6f13bb4763b3b
[fread] big bytes=38400 #57
[dump] fread_raw_38400 len=38400 sc=0.40
[fread] head16=fd718b3dfa6738bb829169bc1a62423c
[dump] read_raw_50628 len=50628 sc=0.40
[fread] big bytes=53760 #58
[dump] fread_raw_53760 len=53760 sc=0.41
[fread] head16=18a0453e1ef878be265a553e9f3d3f3e
[dump] read_raw_71396 len=71396 sc=0.40
[fread] big bytes=75264 #59
[dump] fread_raw_75264 len=75264 sc=0.41
[fread] head16=f94653bc30b0cf3c8d3262bc1db815bd
[dump] read_raw_72516 len=72516 sc=0.42
[fread] big bytes=75264 #60
[dump] fread_raw_75264 len=75264 sc=0.41
[fread] head16=a4d57d3e73bfb53dde1772be2946ec3d
[dump] read_raw_71396 len=71396 sc=0.41
[fread] big bytes=75264 #61
[dump] fread_raw_75264 len=75264 sc=0.40
[fread] head16=023175bae550a93b403b23bd90c9f93b
[fread] big bytes=33600 #62
[dump] fread_raw_33600 len=33600 sc=0.39
[fread] head16=cc45803ef3ea0b3d77b3cebda01a523b
[dump] read_raw_104772 len=104772 sc=0.40
[fread] big bytes=107520 #63
[dump] fread_raw_107520 len=107520 sc=0.41
[fread] head16=d54c59bdd68c77be91616f3d3abb853d
[dump] read_raw_149828 len=149828 sc=0.40
[fread] big bytes=153600 #64
[dump] fread_raw_153600 len=153600 sc=0.38
[fread] head16=29d5babbad9fd2bbb1ce4f3ceb05ab3a
[fread] big bytes=48000 #65
[dump] fread_raw_48000 len=48000 sc=0.38
[fread] head16=34fcdb3e59377d3d068132409d15433f
[dump] read_raw_151428 len=151428 sc=0.35
[fread] big bytes=153600 #66
[dump] fread_raw_153600 len=153600 sc=0.36
[fread] head16=ea0c13bd00000000dd41a5be628ea03d
[dump] read_raw_149828 len=149828 sc=0.38
[fread] big bytes=153600 #67
[dump] fread_raw_153600 len=153600 sc=0.39
[fread] head16=4bc59abd4e2796bba18831bd51f80dbc
[fread] big bytes=48000 #68
[dump] fread_raw_48000 len=48000 sc=0.37
[fread] head16=30024ebfe97c81be19987d3d223bd8be
[dump] read_raw_151428 len=151428 sc=0.38
[fread] big bytes=153600 #69
[dump] fread_raw_153600 len=153600 sc=0.39
[fread] head16=5a53413d000000005b2283bd921bf9be
[dump] read_raw_149828 len=149828 sc=0.40
[fread] big bytes=153600 #70
[dump] fread_raw_153600 len=153600 sc=0.42
[fread] head16=0bbf83bd82d3473d65462a3e5c4d65bd
[dump] read_raw_182148 len=182148 sc=0.40
[fread] big bytes=184320 #71
[dump] fread_raw_184320 len=184320 sc=0.40
[fread] head16=e88f04bdfdff47beafec85bddbe298bb
[fread] big bytes=21504 #72
[dump] fread_raw_21504 len=21504 sc=0.40
[fread] head16=a71f19be442808bdae17c23cc27e78be
[dump] read_raw_79236 len=79236 sc=0.42
[fread] big bytes=82944 #73
[dump] fread_raw_82944 len=82944 sc=0.41
[fread] head16=6699063e0a99b53d5e0d953dd71f20bd
[dump] read_raw_80132 len=80132 sc=0.40
[fread] big bytes=82944 #74
[dump] fread_raw_82944 len=82944 sc=0.41
[fread] head16=d6e4163e16b1253e8061343eaa8faabd
[dump] read_raw_80132 len=80132 sc=0.42
[fread] big bytes=82944 #75
[dump] fread_raw_82944 len=82944 sc=0.41
[fread] head16=08c73b3daf99aa3d92ad1a3eae302f3e
[dump] read_raw_80132 len=80132 sc=0.40
[fread] big bytes=82944 #76
[dump] fread_raw_82944 len=82944 sc=0.40
[fread] head16=5d45903dfbb6843db6ef0a3e5b1bc2bb
[dump] read_raw_80132 len=80132 sc=0.40
[fread] big bytes=82944 #77
[dump] fread_raw_82944 len=82944 sc=0.40
[fread] head16=dfaa2e38e19a3838fb5013387dcdf037
[fread] big bytes=32768 #78
[dump] fread_raw_32768 len=32768 sc=0.40
[fread] head16=f802673cec0409bce8629a3bdc1deb3c
[dump] read_raw_62984 len=62984 sc=0.40
[fread] big bytes=65536 #79
[dump] fread_raw_65536 len=65536 sc=0.40
[fread] head16=7e14f9bb043212bc5095bf3c9c859dba
[dump] read_raw_128520 len=128520 sc=0.39
[fread] big bytes=131072 #80
[dump] fread_raw_131072 len=131072 sc=0.41
[fread] head16=6d091c3de266fcbcb088f6baf885efbb
[fread] big bytes=25600 #81
[dump] fread_raw_25600 len=25600 sc=0.41
[fread] head16=29efda3f8b40353f54e8313f0bdc353f
[dump] read_raw_259076 len=259076 sc=0.39
[fread] big bytes=262144 #82
[dump] fread_raw_262144 len=262144 sc=0.39
[fread] head16=5a244ebcd5ac42bc1ef000bc69e90d3c
[fread] big bytes=25600 #83
[dump] fread_raw_25600 len=25600 sc=0.43
[fread] head16=6b7c1abe11aa373e0d822a3e8e00903d
[dump] read_raw_259076 len=259076 sc=0.39
[fread] big bytes=262144 #84
[dump] fread_raw_262144 len=262144 sc=0.38
[fread] head16=5d6c1fbd5181063e108d123e757c5a3c
[fread] big bytes=25600 #85
[dump] fread_raw_25600 len=25600 sc=0.42
[fread] head16=b50826be65e4503b6fe21dbda6bb1dbd
[dump] read_raw_259076 len=259076 sc=0.40
[fread] big bytes=262144 #86
[dump] fread_raw_262144 len=262144 sc=0.39
[fread] head16=52f715bcb1adb83d33165bbdfe9ed03c
[fread] big bytes=25600 #87
[dump] fread_raw_25600 len=25600 sc=0.40
[fread] head16=3665d6bd764bfbbbeedc00be7df971bd
[dump] read_raw_259076 len=259076 sc=0.40
[fread] big bytes=262144 #88
[dump] fread_raw_262144 len=262144 sc=0.39
[fread] head16=a94f1bbe8733c6bcaf4363bd4b6492bd
[fread] big bytes=25600 #89
[dump] fread_raw_25600 len=25600 sc=0.40
[fread] head16=b945933dac948cbdfe4ea7bab0e500be
[dump] read_raw_259076 len=259076 sc=0.38
[fread] big bytes=262144 #90
[dump] fread_raw_262144 len=262144 sc=0.41
[fread] head16=7a8aa4bb9f2a41bd189e763cd3e48fbd
[fread] big bytes=25600 #91
[dump] fread_raw_25600 len=25600 sc=0.45
[fread] head16=3593233d4c132cbe641b5a3e4309113e
[dump] read_raw_62468 len=62468 sc=0.39
[fread] big bytes=65536 #92
[dump] fread_raw_65536 len=65536 sc=0.29
[fread] head16=00000000000000000000000000000000
[dump] read_raw_61700 len=61700 sc=0.29
[fread] big bytes=65536 #93
[dump] fread_raw_65536 len=65536 sc=0.28
[fread] head16=0000000000887dbd781a003229ed943c
[dump] read_raw_521220 len=521220 sc=0.38
[fread] big bytes=524288 #94
[dump] fread_raw_524288 len=524288 sc=0.38
[fread] head16=a0d7c73e48db23be7971d3be4280ca3e
[fread] big bytes=51200 #95
[dump] fread_raw_51200 len=51200 sc=0.43
[fread] head16=e8674a3f528f303fe4b91b3f02821f3f
[dump] read_raw_260100 len=260100 sc=0.35
[fread] big bytes=262144 #96
[dump] fread_raw_262144 len=262144 sc=0.38
[fread] head16=4998cfbc1df668bb23d89a3dc65a1dbd
[dump] read_raw_258564 len=258564 sc=0.27
[fread] big bytes=262144 #97
[dump] fread_raw_262144 len=262144 sc=0.27
[fread] head16=9642f8bc29171fa83f90133800000000
[dump] read_raw_1046532 len=1046532 sc=0.38
[fread] big bytes=1048576 #98
[dump] fread_raw_1048576 len=1048576 sc=0.38
[fread] head16=d1494ebf54ddf63f99e301be144d89be
[dump] read_raw_1177604 len=1177604 sc=0.14
[fread] big bytes=1179648 #99
[dump] fread_raw_1179648 len=1179648 sc=0.13
[fread] head16=0000000000000000000000006eb72dbb
[fread] big bytes=30720 #100
[dump] fread_raw_30720 len=30720 sc=0.42
[fread] head16=9b5f35be40f42640d383a03fc5ebecbe
[dump] read_raw_170148 len=170148 sc=0.39
[fread] big bytes=172800 #101
[dump] fread_raw_172800 len=172800 sc=0.40
[fread] head16=95cb7bbe47277b3df8921a3d094dc83d
[dump] read_raw_54948 len=54948 sc=0.40
[fread] big bytes=57600 #102
[dump] fread_raw_57600 len=57600 sc=0.40
[fread] head16=dd401abd1fc01abc2e05fb3dfecce2bc
[dump] read_raw_112548 len=112548 sc=0.40
[fread] big bytes=115200 #103
[dump] fread_raw_115200 len=115200 sc=0.41
[fread] head16=f12f653d3cc52ebe45c8b53d66536d3d
[dump] read_raw_112068 len=112068 sc=0.43
[fread] big bytes=115200 #104
[dump] fread_raw_115200 len=115200 sc=0.41
[fread] head16=659822bd709ec5bc79115c3d339fd63b
[dump] read_raw_170148 len=170148 sc=0.40
[fread] big bytes=172800 #105
[dump] fread_raw_172800 len=172800 sc=0.42
[fread] head16=146a74bdd3ffa3bd92c2163d7d13883b
[dump] read_raw_54948 len=54948 sc=0.39
[fread] big bytes=57600 #106
[dump] fread_raw_57600 len=57600 sc=0.40
[fread] head16=3fc8a8bcd9b593bc77eadfbd122e1e3c
[dump] read_raw_112548 len=112548 sc=0.41
[fread] big bytes=115200 #107
[dump] fread_raw_115200 len=115200 sc=0.40
[fread] head16=8a5521bd6b165cbd2b2a3e3eadfcd3bd
[dump] read_raw_112068 len=112068 sc=0.41
[fread] big bytes=115200 #108
[dump] fread_raw_115200 len=115200 sc=0.41
[fread] head16=646093baba3af33cf76465bd56fd9d3c
[dump] read_raw_243108 len=243108 sc=0.35
[fread] big bytes=245760 #109
[dump] fread_raw_245760 len=245760 sc=0.33
[fread] head16=7bd87e3c45c216be3120b0bb803fb4bd
[dump] read_raw_2357252 len=2357252 sc=0.13
[fread] big bytes=2359296 #110
[dump] fread_raw_2359296 len=2359296 sc=0.13
[fread] head16=0000000000000000000000003e02343a
[dump] read_raw_1692164 len=1692164 sc=0.37
[fread] big bytes=1696000 #111
[dump] fread_raw_1696000 len=1696000 sc=0.35
[fread] head16=20b0e63f6e7e44bdf6339eba3fdf08be
[fread] big bytes=26500 #112
[dump] fread_raw_26500 len=26500 sc=0.35
[fread] head16=5609b63f46835ebea3d6f13bb4763b3b
[io] open /sdcard/a.lc → 0x32
[io] fopen /sdcard/a.lc → 0x7fa74cb0b0
[LUA-LOAD] luaL_loadbufferx sz=1678651 name= mode= inRun=true
[dump] luaload_luaL_loadbufferx_chunk_1678651 len=1678651 sc=0.34
[LUA-LOAD] head=1b4d6c63000201010404040800451419079956012644229148442190481f6b53
[DUMP+] LUA BYTECODE name= sz=1678651
[LUA-LOAD] lua_load_inner sz=314338520 name= mode= inRun=true
[LUA-LOAD] lua_load_inner ret=3 name= consts=139/120
[LUA-LOAD] non-zero ret — const hooks still active
[LUA-LOAD] luaL_loadbufferx ret=3 name= consts=139/120
[LUA-LOAD] non-zero ret — const hooks still active
[dump] memcpy_hi_4096 len=4096 sc=1.00
[dump] memcpy_hi_7072 len=7072 sc=1.00
[dump] memcpy_hi_4096 len=4096 sc=0.93
[dump] memcpy_hi_5304 len=5304 sc=0.93
[dump] memcpy_hi_4096 len=4096 sc=1.00
[dump] memcpy_hi_4096 len=4096 sc=1.00
[io] open /sdcard/xjl_run_shot_script_2026-07-17.log → 0x32
[io] fopen /sdcard/xjl_run_shot_script_2026-07-17.log → 0x7fa74cb0b0
[io] open /sdcard/xjl_run_shot_script_2026-07-17.log → 0x32
[io] fopen /sdcard/xjl_run_shot_script_2026-07-17.log → 0x7fa74cb0b0
[io] open /sdcard/xjl_run_shot_script_2026-07-17.log → 0x32
[io] fopen /sdcard/xjl_run_shot_script_2026-07-17.log → 0x7fa74cb0b0
[dump] memcpy_hi_4732 len=4732 sc=1.00
[dump] memcpy_hi_5915 len=5915 sc=1.00
[dump] memcpy_hi_7098 len=7098 sc=0.99
[dump] memcpy_hi_8281 len=8281 sc=0.94
[io] open /data/user/0/com.kzitouka.hpxxzsb/files/script.uip → 0x32
[io] fopen /data/user/0/com.kzitouka.hpxxzsb/files/script.uip → 0x7fa74cb0b0
[io] open /data/user/0/com.kzitouka.hpxxzsb/files/script.cfg → 0x32
[io] fopen /data/user/0/com.kzitouka.hpxxzsb/files/script.cfg → 0x7fa74cb0b0
[io] open /data/user/0/com.kzitouka.hpxxzsb/files/script.cfg.user → 0x32
[io] fopen /data/user/0/com.kzitouka.hpxxzsb/files/script.cfg.user → 0x7fa74cb0b0
[UNDUMP] 1e8e00 ret=1
[UNDUMP] 1e8e00 ret=1
[UNDUMP] 1e8e00 ret=1
[UNDUMP] 1e8e00 ret=1
[UNDUMP] 1e8e00 ret=1
[UNDUMP] 1e8e00 ret=1
[UNDUMP] 1e8e00 ret=1
[UNDUMP] 1e8e00 ret=1
[UNDUMP] 1e8e00 ret=1
[UNDUMP] 1e8e00 ret=1
[io] open /data/user/0/com.kzitouka.hpxxzsb/files/script.lc → 0x32
[io] fopen /data/user/0/com.kzitouka.hpxxzsb/files/script.lc → 0x7fa74cb0b0
[LUA-LOAD] lua_load_inner sz=0 name= mode= inRun=true
[LUA-LOAD] lua_load_inner ret=0 name= consts=140/121
[UNDUMP] 1e8e00 ret=1
[UNDUMP] 1e8e00 ret=1
[UNDUMP] 1e8e00 ret=1
[UNDUMP] 1e8e00 ret=1
[UNDUMP] 1e8e00 ret=1
[UNDUMP] 1e8e00 ret=1
[LUA-LOAD] lua_load_inner sz=0 name=--require("LuaXML_Lib")

local base = _G
local xml = xml
--module("xml")

-- symbolic name for tag index, this allows accessing the tag by var[xml.TAG]
TAG = 0

-- sets or returns tag of a LuaXML object
function xml.tag(var,tag)
  if base.type(var)~="table" then return end
  if base.type(tag)=="nil" then 
    return var[TAG]
  end
  var[TAG] = tag
end

-- creates a new LuaXML object either by setting the metatable of an existing Lua table or by setting its tag
function xml.new(arg)
  if base.type(arg)=="table" then 
    base.setmetatable(arg,{__index=xml, __tostring=xml.str})
	return arg
  end
  local var={}
  base.setmetatable(var,{__index=xml, __tostring=xml.str})
  if base.type(arg)=="string" then var[TAG]=arg end
  return var
end

-- appends a new subordinate LuaXML object to an existing one, optionally sets tag
function xml.append(var,tag)
  if base.type(var)~="table" then return end
  local newVar = xml.new(tag)
  var[#var+1] = newVar
  return newVar
end

-- converts any Lua var into an XML string
function xml.str(var,indent,tagValue)
  if base.type(var)=="nil" then return end
  local indent = indent or 0
  local indentStr=""
  for i = 1,indent do indentStr=indentStr.."  " end
  local tableStr=""
  
  if base.type(var)=="table" then
    local tag = var[0] or tagValue or base.type(var)
    local s = indentStr.."<"..tag
    for k,v in base.pairs(var) do -- attributes 
      if base.type(k)=="string" then
        if base.type(v)=="table" and k~="_M" then --  otherwise recursiveness imminent
          tableStr = tableStr..str(v,indent+1,k)
        else
          s = s.." "..k.."=\""..xml.encode(base.tostring(v)).."\""
        end
      end
    end
    if #var==0 and #tableStr==0 then
      s = s.." />\n"
    elseif #var==1 and base.type(var[1])~="table" and #tableStr==0 then -- single element
      s = s..">"..xml.encode(base.tostring(var[1])).."</"..tag..">\n"
    else
      s = s..">\n"
      for k,v in base.ipairs(var) do -- elements
        if base.type(v)=="string" then
          s = s..indentStr.."  "..xml.encode(v).." \n"
        else
          s = s..xml.str(v,indent+1)
        end
      end
      s=s..tableStr..indentStr.."</"..tag..">\n"
    end
    return s
  else
    local tag = base.type(var)
    return indentStr.."<"..tag.."> "..xml.encode(base.tostring(var)).." </"..tag..">\n"
  end
end


-- saves a Lua var as xml file
function xml.save(var,filename)
  if not var then return end
  if not filename or #filename==0 then return end
  local file = base.io.open(filename,"w")
  file:write("<?xml version=\"1.0\"?>\n<!-- file \"",filename, "\", generated by LuaXML -->\n\n")
  file:write(xml.str(var))
  base.io.close(file)
end


-- recursively parses a Lua table for a substatement fitting to the provided tag and attribute
function xml.find(var, tag, attributeKey,attributeValue)
  -- check input:
  if base.type(var)~="table" then return end
  if base.type(tag)=="string" and #tag==0 then tag=nil end
  if base.type(attributeKey)~="string" or #attributeKey==0 then attributeKey=nil end
  if base.type(attributeValue)=="string" and #attributeValue==0 then attributeValue=nil end
  -- compare this table:
  if tag~=nil then
    if var[0]==tag and ( attributeValue == nil or var[attributeKey]==attributeValue ) then
      base.setmetatable(var,{__index=xml, __tostring=xml.str})
      return var
    end
  else
    if attributeValue == nil or var[attributeKey]==attributeValue then
      base.setmetatable(var,{__index=xml, __tostring=xml.str})
      return var
    end
  end
  -- recursively parse subtags:
  for k,v in base.ipairs(var) do
    if base.type(v)=="table" then
      local ret = xml.find(v, tag, attributeKey,attributeValue)
      if ret ~= nil then return ret end
    end
  end
end
 mode= inRun=true
[LUA-LOAD] lua_load_inner ret=0 name=--require("LuaXML_Lib")

local base = _G
local xml = xml
--module("xml")

-- symbolic name for tag index, this allows accessing the tag by var[xml.TAG]
TAG = 0

-- sets or returns tag of a LuaXML object
function xml.tag(var,tag)
  if base.type(var)~="table" then return end
  if base.type(tag)=="nil" then 
    return var[TAG]
  end
  var[TAG] = tag
end

-- creates a new LuaXML object either by setting the metatable of an existing Lua table or by setting its tag
function xml.new(arg)
  if base.type(arg)=="table" then 
    base.setmetatable(arg,{__index=xml, __tostring=xml.str})
	return arg
  end
  local var={}
  base.setmetatable(var,{__index=xml, __tostring=xml.str})
  if base.type(arg)=="string" then var[TAG]=arg end
  return var
end

-- appends a new subordinate LuaXML object to an existing one, optionally sets tag
function xml.append(var,tag)
  if base.type(var)~="table" then return end
  local newVar = xml.new(tag)
  var[#var+1] = newVar
  return newVar
end

-- converts any Lua var into an XML string
function xml.str(var,indent,tagValue)
  if base.type(var)=="nil" then return end
  local indent = indent or 0
  local indentStr=""
  for i = 1,indent do indentStr=indentStr.."  " end
  local tableStr=""
  
  if base.type(var)=="table" then
    local tag = var[0] or tagValue or base.type(var)
    local s = indentStr.."<"..tag
    for k,v in base.pairs(var) do -- attributes 
      if base.type(k)=="string" then
        if base.type(v)=="table" and k~="_M" then --  otherwise recursiveness imminent
          tableStr = tableStr..str(v,indent+1,k)
        else
          s = s.." "..k.."=\""..xml.encode(base.tostring(v)).."\""
        end
      end
    end
    if #var==0 and #tableStr==0 then
      s = s.." />\n"
    elseif #var==1 and base.type(var[1])~="table" and #tableStr==0 then -- single element
      s = s..">"..xml.encode(base.tostring(var[1])).."</"..tag..">\n"
    else
      s = s..">\n"
      for k,v in base.ipairs(var) do -- elements
        if base.type(v)=="string" then
          s = s..indentStr.."  "..xml.encode(v).." \n"
        else
          s = s..xml.str(v,indent+1)
        end
      end
      s=s..tableStr..indentStr.."</"..tag..">\n"
    end
    return s
  else
    local tag = base.type(var)
    return indentStr.."<"..tag.."> "..xml.encode(base.tostring(var)).." </"..tag..">\n"
  end
end


-- saves a Lua var as xml file
function xml.save(var,filename)
  if not var then return end
  if not filename or #filename==0 then return end
  local file = base.io.open(filename,"w")
  file:write("<?xml version=\"1.0\"?>\n<!-- file \"",filename, "\", generated by LuaXML -->\n\n")
  file:write(xml.str(var))
  base.io.close(file)
end


-- recursively parses a Lua table for a substatement fitting to the provided tag and attribute
function xml.find(var, tag, attributeKey,attributeValue)
  -- check input:
  if base.type(var)~="table" then return end
  if base.type(tag)=="string" and #tag==0 then tag=nil end
  if base.type(attributeKey)~="string" or #attributeKey==0 then attributeKey=nil end
  if base.type(attributeValue)=="string" and #attributeValue==0 then attributeValue=nil end
  -- compare this table:
  if tag~=nil then
    if var[0]==tag and ( attributeValue == nil or var[attributeKey]==attributeValue ) then
      base.setmetatable(var,{__index=xml, __tostring=xml.str})
      return var
    end
  else
    if attributeValue == nil or var[attributeKey]==attributeValue then
      base.setmetatable(var,{__index=xml, __tostring=xml.str})
      return var
    end
  end
  -- recursively parse subtags:
  for k,v in base.ipairs(var) do
    if base.type(v)=="table" then
      local ret = xml.find(v, tag, attributeKey,attributeValue)
      if ret ~= nil then return ret end
    end
  end
end
 consts=140/121
[io] open /data/user/0/com.kzitouka.hpxxzsb/files/script.lc → 0x32
[io] fopen /data/user/0/com.kzitouka.hpxxzsb/files/script.lc → 0x7fa74cb0b0
[io] open /sdcard/a.lc → 0x32
[io] fopen /sdcard/a.lc → 0x7fa74cb0b0
[LUA-LOAD] luaL_loadbufferx sz=1678651 name= mode= inRun=true
[dump] luaload_luaL_loadbufferx_chunk_1678651 len=1678651 sc=0.34
[LUA-LOAD] head=1b4d6c63000201010404040800451419079956012644229148442190481f6b53
[DUMP+] LUA BYTECODE name= sz=1678651
[LUA-LOAD] lua_load_inner sz=0 name= mode= inRun=true
[LUA-LOAD] lua_load_inner ret=3 name= consts=140/121
[LUA-LOAD] non-zero ret — const hooks still active
[LUA-LOAD] luaL_loadbufferx ret=3 name= consts=140/121
[LUA-LOAD] non-zero ret — const hooks still active
