int genSecretBit(){
    unsigned char sum = 0;
    unsigned char sum2 = 0;
    unsigned char sum3 = 0;
    char a, b, c, d, e, f, g, h;
    char a2, b2, c2, d2, e2, f2, g2, h2;
    char a3, b3, c3, d3, e3, f3, g3, h3;
    unsigned char key27, key28, key29, key30, key31, key31bis;


    long long int n = 0;

    // First block
    for (a='A'; a<'Z'; a++) {
        printf("%c - %lld\n", a, n);
    for (b='A'; b<'Z'; b++) {
    for (c='A'; c<'Z'; c++) {
    for (d='A'; d<'Z'; d++) {
    for (e='A'; e<'Z'; e++) {
    for (f='B'; f<'Z'; f+=2) {
    for (g='A'; g<'Y'; g+=2) {
    for (h='B'; h<'Z'; h+=2) {
        sum = ((h & 1) << 7) + 
              ((g & 1) << 6) +
              ((f & 1) << 5) +
              ((e & 1) << 4) +
              ((d & 1) << 3) +
              ((c & 1) << 2) +
              ((b & 1) << 1) +
              (a & 1);
        if (sum >= 'A' && sum <= 'Z') {
            key27 = ((a+b+c+d+e+f+g+h)%26)+65;


    // Second block
    for (a2='A'; a2<'Z'; a2++) {
    for (b2='A'; b2<'Z'; b2++) {
    for (c2='A'; c2<'Z'; c2++) {
    for (d2='A'; d2<'Z'; d2++) {
    for (e2='A'; e2<'Z'; e2++) {
    for (f2='B'; f2<'Z'; f2+=2) {
    for (g2='A'; g2<'Y'; g2+=2) {
    for (h2='B'; h2<'Z'; h2+=2) {
        sum2 = ((h2 & 1) << 7) + 
              ((g2 & 1) << 6) +
              ((f2 & 1) << 5) +
              ((e2 & 1) << 4) +
              ((d2 & 1) << 3) +
              ((c2 & 1) << 2) +
              ((b2 & 1) << 1) +
               (a2 & 1);
        if (sum2 >= 'A' && sum2 <= 'Z') {
            key28 = ((a2+b2+c2+d2+e2+f2+g2+h2)%26)+65;

    
            
    // Third block
    for (a3='A'; a3<'Z'; a3++) {
    for (b3='A'; b3<'Z'; b3++) {
    for (c3='A'; c3<'Z'; c3++) {
    for (d3='A'; d3<'Z'; d3++) {
    for (e3='A'; e3<'Z'; e3++) {
    for (f3='B'; f3<'Z'; f3+=2) {
    for (g3='A'; g3<'Y'; g3+=2) {
    for (h3='B'; h3<'Z'; h3+=2) {
        sum3 = ((h3 & 1) << 7) + 
              ((g3 & 1) << 6) +
              ((f3 & 1) << 5) +
              ((e3 & 1) << 4) +
              ((d3 & 1) << 3) +
              ((c3 & 1) << 2) +
              ((b3 & 1) << 1) +
               (a3 & 1);
        if (sum3 >= 'A' && sum3 <= 'Z') {
            key29 = ((a3+b3+c3+d3+e3+f3+g3+h3)%26)+65;
            key30 = ((key28+key29+key27)%26)+65;

            key31 = sum+sum2+sum3+a+b+c+d+e+f+g+h+a2+b2+c2+d2+e2+f2+g2+h2+a3+b3+c3+d3+e3+f3+g3+h3+key27+key28+key29+key30;
            key31bis = sum+sum2+sum3+a+b+c+d+e+f+g+h+a2+b2+c2+d2+e2+f2+g2+h2+a3+b3+c3+d3+e3+f3+g3+h3+key27+key28+key29+key30+key31;
            //printf("%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c\n", sum, sum2, sum3, a,b,c,d,e,f,g,h, a2,b2,c2,d2,e2,f2,g2,h2 , a3,b3,c3,d3,e3,f3,g3,h3, key27, key28, key29, key30, key31);
            if (key31 == key31bis) {
                printf("KEY FOUND: %c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c\n", sum, sum2, sum3, a,b,c,d,e,f,g,h, a2,b2,c2,d2,e2,f2,g2,h2 , a3,b3,c3,d3,e3,f3,g3,h3, key27, key28, key29, key30, key31);
            }

        }}}}}}}}}



        }}}}}}}}}



        }}}}}}}}}
}



int main(int argc, char *argv[]) {
    char key = "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA";
    genSecretBit();

}
    

