IndexTable(byte[] src, int crc, byte[] digest) {
	try {
	    ((IndexTable) this).checksum = Class59_Sub1.getChecksum(5126, src.length, src);
            if(!Client.skipUpdate) {
                if (crc != ((IndexTable) this).checksum)
                  throw new RuntimeException();
                if (digest != null) {
                    if (digest.length != 64)
                        throw new RuntimeException();
                    tableDigest = Class348_Sub1_Sub2.getWhirlpoolDigest(src, 0, src.length);
                    for (int i_28_ = 0; (i_28_ ^ 0xffffffff) > -65; i_28_++) {
                        if ((digest[i_28_] ^ 0xffffffff) != (tableDigest[i_28_] ^ 0xffffffff))
                            throw new RuntimeException();
                    }
                }
            }
	    initialize(src);
	} catch (RuntimeException runtimeexception) {
	    throw Class348_Sub17.method2929(runtimeexception,
					    ("vw.<init>("
					     + (src != null ? "{...}" : "null")
					     + ',' + crc + ','
					     + (digest != null ? "{...}"
						: "null")
					     + ')'));
	}
    }