fromByteBuffer(b){
        let amount = b.readInt64()
        let precision = b.readUint8()
        let amount_string = ""
        let symbol = ""

        if(precision >= 16)
        {
            // NAI Case
            let b_copy = b.copy(b.offset - 1, b.offset + 3)
            let nai = new Buffer.from(b_copy.toBinary(), "binary").readInt32()
            nai = nai / 32
            symbol = "@@" + nai.toString().padStart(8, '0') + damm_checksum_8digit(nai).to_String()
            precision = precision % 16
            b.skip(3)
            amount_string = fromImpliedDecimal(amount,precision)
        }
        else
        {
            // Legacy Case
            let b_copy = b.copy(b.offset, b.offset + 7)
            symbol = new Buffer.from(b_copy.toBinary(), "binary").toString().replace(/\x00/g, "")
            b.skip(7)
            // "1.000 STEEM" always written with full precision
            amount_string = fromImpliedDecimal(amount, precision)
        }

        return amount_string + " " + symbol
    }
Asset symbols contain the following information

 4 bit PRECISION
 4 bit RESERVED
 CHAR[6] up to 6 upper case alpha numeric ascii characters,
 char = \0  null terminated

 It is treated as a uint64_t for all internal operations, but
 is easily converted to something that can be displayed.

 Legacy serialization of assets
 0000pppp aaaaaaaa bbbbbbbb cccccccc dddddddd eeeeeeee ffffffff 00000000
 Symbol = abcdef

 NAI serialization of assets
 aaa1pppp bbbbbbbb cccccccc dddddddd
 NAI = (MSB to LSB) dddddddd cccccccc bbbbbbbb aaa

 NAI internal storage of legacy assets