diff --git a/src/main.rs b/src/main.rs
index 2846a2db582db30d48d9bef86f23db2e12996922..62de53404b008746280cbab4df4ee30ca17cd044 100644
--- a/src/main.rs
+++ b/src/main.rs
@@ -1,3 +1,5 @@
+#![allow(dead_code)]
+
 static ABC: [u32; 4] = [0x9fdd9158,
                         0x85715808,
                         0xac73323a,
@@ -140,24 +142,72 @@ static CODED: [u32; 132] =
         0];
 
 
+///
+/// Count the number of zeroes
+///
+fn count_zero(num: u32) -> u32 {
 
-fn codgen() {
+    let mut count_zero = 0;
+    let mut count_one = 0;
 
+    for x in 0..32 {
+        if num % 2 == 0 {
+            count_zero += 1;
+        } else {
+            count_one += 1;
+        }
+        num << 1;
+    }
+    count_zero ^ count_one
 }
 
+///
+/// Modify the seed for decoding
+///
+fn codgen(seed: &mut u32) -> u32 {
+
+    let n: u32;
+    let (x, y): (u32, u32);
+
+    n = count_zero(*seed);
+
+    println!("Seed:\n{:b}", *seed);
+    // Inte OK än
+    x = seed.rotate_left(2);
+    println!("{:b}", x);
+
+    // Fungerade fint
+    y = *seed >> 6;
+
+    *seed = x ^ y ^ n;
+
+    (*seed) ^ 0x464b713e
+
+
+}
+
+///
+/// Decodes a string
+///
 fn decode(coded: &[u32], plain: &mut[u8], seed: &mut u32) -> u32 {
 
+
     let x = 3;
     x
+
 }
 
 fn main() {
     println!("Time to decode!");
 
-    let mut seed = 0x0e0657c1;
+    //let mut seed = 0x0e0657c1;
+    let mut seed = 0x3e944b9f;
 
-    decode(&CODED, &mut PLAIN, &mut seed);
+    //decode(&CODED, unsafe { &mut PLAIN }, &mut seed);
+    //
+    codgen(&mut seed);
 
+    println!("Ran codgen, new seed: {:x}", seed);
 
 }
 /*