static int rewindReverse32(int v, int len) {
        v = ((v>>S[0])&B[0])|((v<<S[0])&~B[0]);
        v = ((v>>S[1])&B[1])|((v<<S[1])&~B[1]);
        v = ((v>>S[2])&B[2])|((v<<S[2])&~B[2]);
        v = ((v>>S[3])&B[3])|((v<<S[3])&~B[3]);
        v = ((v>>S[4])&B[4])|((v<<S[4])&~B[4]);
    
        //shift off low bits
        v >>= (32-len);
    
        return v;
    }
static int rewindReverse32(int v, int len) {
        v = ((v>>S[0])&B[0])|((v<<S[0])&~B[0]);
        v = ((v>>S[1])&B[1])|((v<<S[1])&~B[1]);
        v = ((v>>S[2])&B[2])|((v<<S[2])&~B[2]);
        v = ((v>>S[3])&B[3])|((v<<S[3])&~B[3]);
        v = ((v>>S[4])&B[4])|((v<<S[4])&~B[4]);
    
        
        v >>= (32-len);
    
        return v;
    }
static int rewindReverse32 ( int v , int len ) { v = ( ( v >> S [ 0 ] ) & B [ 0 ] ) | ( ( v << S [ 0 ] ) & ~ B [ 0 ] ) ; v = ( ( v >> S [ 1 ] ) & B [ 1 ] ) | ( ( v << S [ 1 ] ) & ~ B [ 1 ] ) ; v = ( ( v >> S [ 2 ] ) & B [ 2 ] ) | ( ( v << S [ 2 ] ) & ~ B [ 2 ] ) ; v = ( ( v >> S [ 3 ] ) & B [ 3 ] ) | ( ( v << S [ 3 ] ) & ~ B [ 3 ] ) ; v = ( ( v >> S [ 4 ] ) & B [ 4 ] ) | ( ( v << S [ 4 ] ) & ~ B [ 4 ] ) ; //shift off low bits v >>= ( 32 - len ) ; return v ; }
32 bit rewind and reverse
32 bit rewind and reverse