class EndianUtils {

    public static long readSwappedUnsignedInteger(final byte[] data, final int offset) {
        final long low = ( ( ( data[ offset + 0 ] & 0xff ) << 0 ) +
                     ( ( data[ offset + 1 ] & 0xff ) << 8 ) +
                     ( ( data[ offset + 2 ] & 0xff ) << 16 ) );

        final long high = data[ offset + 3 ] & 0xff;

        return (high << 24) + (0xffffffffL & low); 
    }

    public  EndianUtils();

}