local function _get_byte8(data, i)
local a, b, c, d, e, f, g, h = strbyte(data, i, i + 7)
local low = bor(a, lshift(b, 8), lshift(c, 16), lshift(d, 24)), i + 4
local high = bor(e, lshift(f, 8), lshift(g, 16), lshift(h, 24)), i + 4
return low + high * 4294967296, i + 8
end