#ifndef SHITTIFY_H
#define SHITTIFY_H


#if (CLSIZE == 64)
//void shittify(uint16 *X){
//	X[0] = EndianSwapa(X[0].s49e38d27c16b05af);
//	X[1] = EndianSwapa(X[1].s49e38d27c16b05af);


//	X[0] = X[0].s49e38d27c16b05af;
//	X[0] = EndianSwapa(X[0]);
//	X[1] = X[1].s49e38d27c16b05af;
//	X[1] = EndianSwapa(X[1]);
//	uint16 T = X[0].s49e38d27c16b05af;
//	X[0] = EndianSwapa(T);
//	T = X[1].s49e38d27c16b05af;
//	X[1] = EndianSwapa(T);
//}

//void unshittify(uint16 *X){
//	X[0] = EndianSwapa(X[0].sc9630da741eb852f);
//	X[1] = EndianSwapa(X[1].sc9630da741eb852f);

//    uint16 T = X[0].sc9630da741eb852f;
//    X[0] = EndianSwapa(T);
//    T = X[1].sc9630da741eb852f;
//    X[1] = EndianSwapa(T);
//}
#else

void shittify(uint8 *X){
	uint8 Ta, Tb;
	Ta.s0 = X[0].s4;
	Ta.s1 = X[1].s1;
	Ta.s2 = X[1].s6;
	Ta.s3 = X[0].s3;
	Ta.s4 = X[1].s0;
	Ta.s5 = X[1].s5;
	Ta.s6 = X[0].s2;
	Ta.s7 = X[0].s7;
	Tb.s0 = X[1].s4;
	Tb.s1 = X[0].s1;
	Tb.s2 = X[0].s6;
	Tb.s3 = X[1].s3;
	Tb.s4 = X[0].s0;
	Tb.s5 = X[0].s5;
	Tb.s6 = X[1].s2;
	Tb.s7 = X[1].s7;
	X[0] = EndianSwapa(Ta);
	X[1] = EndianSwapa(Tb);
	Ta.s0 = X[2].s4;
	Ta.s1 = X[3].s1;
	Ta.s2 = X[3].s6;
	Ta.s3 = X[2].s3;
	Ta.s4 = X[3].s0;
	Ta.s5 = X[3].s5;
	Ta.s6 = X[2].s2;
	Ta.s7 = X[2].s7;
	Tb.s0 = X[3].s4;
	Tb.s1 = X[2].s1;
	Tb.s2 = X[2].s6;
	Tb.s3 = X[3].s3;
	Tb.s4 = X[2].s0;
	Tb.s5 = X[2].s5;
	Tb.s6 = X[3].s2;
	Tb.s7 = X[3].s7;
	X[2] = EndianSwapa(Ta);
	X[3] = EndianSwapa(Tb);
}

void unshittify(uint8 *X){
	uint8 Ta, Tb;
    Ta.s0 = X[1].s4;
    Ta.s1 = X[1].s1;
    Ta.s2 = X[0].s6;
    Ta.s3 = X[0].s3;
    Ta.s4 = X[0].s0;
    Ta.s5 = X[1].s5;
    Ta.s6 = X[1].s2;
    Ta.s7 = X[0].s7;
    Tb.s0 = X[0].s4;
    Tb.s1 = X[0].s1;
    Tb.s2 = X[1].s6;
    Tb.s3 = X[1].s3;
    Tb.s4 = X[1].s0;
    Tb.s5 = X[0].s5;
    Tb.s6 = X[0].s2;
    Tb.s7 = X[1].s7;
    X[0] = EndianSwapa(Ta);
    X[1] = EndianSwapa(Tb);
    Ta.s0 = X[3].s4;
    Ta.s1 = X[3].s1;
    Ta.s2 = X[2].s6;
    Ta.s3 = X[2].s3;
    Ta.s4 = X[2].s0;
    Ta.s5 = X[3].s5;
    Ta.s6 = X[3].s2;
    Ta.s7 = X[2].s7;
    Tb.s0 = X[2].s4;
    Tb.s1 = X[2].s1;
    Tb.s2 = X[3].s6;
    Tb.s3 = X[3].s3;
    Tb.s4 = X[3].s0;
    Tb.s5 = X[2].s5;
    Tb.s6 = X[2].s2;
    Tb.s7 = X[3].s7;
    X[2] = EndianSwapa(Ta);
    X[3] = EndianSwapa(Tb);
}

#endif



#endif