| 
				
			 | 
			
			 | 
			@@ -20,7 +20,7 @@ | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
  | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			namespace codedweller { | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
  | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			unsigned char MANGLER::ChaosDriver(void) {          // Return the current | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			unsigned char Mangler::ChaosDriver(void) {          // Return the current | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			  return Fill[Fill[Position]^Fill[Position^0xff]];  // chaos engine output | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			  }                                                 // value. | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
  | 
		
		
	
	
		
			
			| 
				
			 | 
			
			 | 
			@@ -32,7 +32,7 @@ unsigned char MANGLER::ChaosDriver(void) {          // Return the current | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			// value of Position and determining the final output value and the Position | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			// value itself is used to add complexity to the output. | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
  | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			unsigned char MANGLER::Rotate(unsigned char i) {   // Bitwise rotates i | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			unsigned char Mangler::Rotate(unsigned char i) {   // Bitwise rotates i | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			  return ( | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    (i & 0x80)?                                    // This operation is | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			      (i<<1)+1:                                    // described without | 
		
		
	
	
		
			
			| 
				
			 | 
			
			 | 
			@@ -40,7 +40,7 @@ unsigned char MANGLER::Rotate(unsigned char i) {   // Bitwise rotates i | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    ); | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			  } | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
  | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			void MANGLER::ChaosDriver(unsigned char i) {    // Drives chaos engine. | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			void Mangler::ChaosDriver(unsigned char i) {    // Drives chaos engine. | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
  | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			  // First we move our mixing position in the fill buffer forward. | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
  | 
		
		
	
	
		
			
			| 
				
			 | 
			
			 | 
			@@ -86,21 +86,21 @@ void MANGLER::ChaosDriver(unsigned char i) {    // Drives chaos engine. | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			// same state with the same fill data characteristics or else the two | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			// chaotic systems evolve to further divergent states. | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
  | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			unsigned char MANGLER::Encrypt(unsigned char i) { | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			unsigned char Mangler::Encrypt(unsigned char i) { | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			   unsigned char g = ChaosDriver() ^ i;         // Take the output of the | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			   ChaosDriver(g);                              // chaos engine and use it | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			   return g;                                    // to moduleate the input. | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			   }                                            // Then drive the engine | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			                                                // with the encrypted data. | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
  | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			unsigned char MANGLER::Decrypt(unsigned char i) { | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			unsigned char Mangler::Decrypt(unsigned char i) { | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			   unsigned char g = ChaosDriver() ^ i;         // Take the output of the | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			   ChaosDriver(i);                              // chaos engine and use it | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			   return g;                                    // to demodulate the input. | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			   }                                            // then drive the engine | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			                                                // with the original input. | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
  | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			MANGLER::MANGLER(void) : Position(0) {          // The default constructor sets | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			Mangler::Mangler(void) : Position(0) {          // The default constructor sets | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			   for(unsigned int c = 0;c<256;c++)            // the key to the root primary | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			      Fill[c]=(unsigned char) c;                // value and Position to 0. | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			   } |