Advertisement
Guest User

Untitled

a guest
Feb 19th, 2017
635
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 63.54 KB | None | 0 0
  1.  
  2. int keyEncrypt(char key[], char string[])
  3. {
  4.     int lengthOf_subdivision = 0;
  5.     int numbOf_subdivision = 0;
  6.  
  7.     unsigned int alea = 0;
  8.  
  9.     int v = 0;
  10.     unsigned int w = 0;
  11.     int x = 0;
  12.     int y = 0;
  13.     int z = 0;
  14.  
  15.     int mod = 0;
  16.  
  17.     ////////////////////// Variables servant dans la génération de nombre aléatoire //////////////////////
  18.  
  19.     int bb = 0;
  20.     int zz = 1;
  21.  
  22.     ////////////////////// Variables servant dans la génération de nombre aléatoire //////////////////////
  23.  
  24.     ////////////////////// Création de la subtitBox //////////////////////
  25.  
  26.     char verifBox[62][62][3] = { 0 };
  27.     char subtitBox[62][62][3] = { 0 };
  28.  
  29.     char string_temp2[3] = { 0 };
  30.  
  31.     char backup = 0;
  32.  
  33.     int alea1 = 0;
  34.     int alea2 = 0;
  35.  
  36.     _Bool loop = 1;
  37.     _Bool toBreak = 0;
  38.  
  39.     ////////////////////// Création de la subtitBox //////////////////////
  40.  
  41.     /////////////////// Variables du tri-di shaker /////////////////////
  42.  
  43.     int z_dim = 0;
  44.     int y_dim = 0;
  45.     int x_dim = 0;
  46.     int mod_3 = 0;
  47.  
  48.     char ****stringMatrix = NULL;
  49.     char *stringToEncrypt = NULL;
  50.  
  51.     /////////////////// Variables du tri-di shaker /////////////////////
  52.  
  53.     ////// Initialisation du tableau de int servant aux randoms... /////
  54.  
  55.     int keyLength = strlen(key);
  56.     int hash2Length;
  57.     int hashFinalLength;
  58.  
  59.     int i = 0;
  60.  
  61.     unsigned char hash[512] = { 0 };
  62.     unsigned char hash2[512] = { 0 };
  63.     unsigned char hashFinal[512] = { 0 };
  64.     char stringTemp[4] = { 0 };
  65.  
  66.     int numbTab[128] = { 0 };
  67.  
  68.     mbedtls_sha512(key, keyLength, hash, 0);
  69.     for (i = 0; i < 512; i++)
  70.     {
  71.         nullString(hash2, 512);
  72.  
  73.         SHA512_binToHex(hash, hash2, 0);
  74.         sprintf(hash2, "%s", tri_dimensionnalShaker(hash2, key[0], key[keyLength - 1], key[keyLength / 2], 0));
  75.  
  76.         subtitChar(hash2, 128, '\0', '³');
  77.         stringAdd(hash2, key);
  78.         subtitChar(hash2, 128, '\0', 'Í');
  79.  
  80.         sprintf(hash2, "%s", tri_dimensionnalShaker(hash2, key[0], key[keyLength - 1], key[keyLength / 2], 0));
  81.  
  82.         subtitChar(hash2, 128, '\0', 'A');
  83.         stringXOR(hash2, key);
  84.         subtitChar(hash2, 128, '\0', 'Ò');
  85.  
  86.         nullString(hash, 512);
  87.  
  88.         mbedtls_sha512(hash2, strlen(hash2), hash, 0);
  89.     }
  90.     mbedtls_sha512(hash, strlen(hash), hash, 0);
  91.  
  92.     SHA512_binToHex(hash, hashFinal, 1);
  93.     subtitChar(hashFinal, strlen(hashFinal), ' ', '0');
  94.     stringXOR(hashFinal, key);
  95.     if (keyLength < 128)
  96.     {
  97.         for (i = 0; i < 128; i++)
  98.             numbTab[i] = hashFinal[i] + key[i%keyLength] * 16;
  99.     }
  100.     else if (keyLength == 128)
  101.     {
  102.         for (i = 0; i < 128; i++)
  103.             numbTab[i] = hashFinal[i] + key[i] * 16;
  104.     }
  105.     else
  106.     {
  107.         for (i = 0; i < keyLength; i++)
  108.             numbTab[i] = hashFinal[i % 128] += key[i] * 24;
  109.     }
  110.     ////// Initialisation du tableau de int servant aux randoms... /////
  111.  
  112.     int temp = 0;
  113.     char string_temp[15] = { 0 };
  114.  
  115.     unsigned char caractersInitial[] = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
  116.     char caracters[63] = { 0 };
  117.  
  118.     char braille_tab[][9] =
  119.     {
  120.         /*  0 */    /* A */ "..  .. ",
  121.         /*  1 */    /* B */ "  .....",
  122.         /*  2 */    /* C */ " . . . ",
  123.         /*  3 */    /* D */ " .. ...",
  124.         /*  4 */    /* E */ ".... ..",
  125.         /*  5 */    /* F */ ".   .. ",
  126.         /*  6 */    /* G */ " .  . .",
  127.         /*  7 */    /* H */ ". .   .",
  128.         /*  8 */    /* I */ "  .   .",
  129.         /*  9 */    /* J */ "  .    ",
  130.         /* 10 */    /* K */ "...    ",
  131.         /* 11 */    /* L */ " ....  ",
  132.         /* 12 */    /* M */ ". .. . ",
  133.         /* 13 */    /* N */ ". ..  .",
  134.         /* 14 */    /* O */ "...... ",
  135.         /* 15 */    /* P */ " ..  . ",
  136.         /* 16 */    /* Q */ "... .  ",
  137.         /* 17 */    /* R */ "..     ",
  138.         /* 18 */    /* S */ " .    .",
  139.         /* 19 */    /* T */ "   .  .",
  140.         /* 20 */    /* U */ ". ... .",
  141.         /* 21 */    /* V */ " ......",
  142.         /* 22 */    /* W */ ".  .. .",
  143.         /* 23 */    /* X */ "... . .",
  144.         /* 24 */    /* Y */ "..  .  ",
  145.         /* 25 */    /* Z */ " . . ..",
  146.  
  147.         /* 26 */    /* a */ " . ... ",
  148.         /* 27 */    /* b */ "... ...",
  149.         /* 28 */    /* c */ ". . . .",
  150.         /* 29 */    /* d */ " . .   ",
  151.         /* 30 */    /* e */ " ... . ",
  152.         /* 31 */    /* f */ " ...   ",
  153.         /* 32 */    /* g */ ". .  . ",
  154.         /* 33 */    /* h */ ".. ....",
  155.         /* 34 */    /* i */ ".... . ",
  156.         /* 35 */    /* j */ ". .....",
  157.         /* 36 */    /* k */ "...   .",
  158.         /* 37 */    /* l */ ".  .   ",
  159.         /* 38 */    /* m */ "      .",
  160.         /* 39 */    /* n */ "  .  . ",
  161.         /* 40 */    /* o */ " ...  .",
  162.         /* 41 */    /* p */ "   ....",
  163.         /* 42 */    /* q */ ".. .  .",
  164.         /* 43 */    /* r */ ".   .  ",
  165.         /* 44 */    /* s */ "  ..  .",
  166.         /* 45 */    /* t */ "   .. .",
  167.         /* 46 */    /* u */ " .. .  ",
  168.         /* 47 */    /* v */ " . .  .",
  169.         /* 48 */    /* w */ "   .   ",
  170.         /* 49 */    /* x */ " .... .",
  171.         /* 50 */    /* y */ "    . .",
  172.         /* 51 */    /* z */ ".    . ",
  173.  
  174.         /* 52 */    /* 0 */ " . ....",
  175.         /* 53 */    /* 1 */ " . .. .",
  176.         /* 54 */    /* 2 */ "    ...",
  177.         /* 55 */    /* 3 */ " ..    ",
  178.         /* 56 */    /* 4 */ ".  .  .",
  179.         /* 57 */    /* 5 */ ".     .",
  180.         /* 58 */    /* 6 */ " .  ...",
  181.         /* 59 */    /* 7 */ ".. ... ",
  182.         /* 60 */    /* 8 */ "...  . ",
  183.         /* 61 */    /* 9 */ "   . ..",
  184.  
  185.         /* 62 */    /* ! */ " .. . .",
  186.         /* 63 */    /* " */ ".   ...",
  187.         /* 64 */    /* # */ " .  .. ",
  188.         /* 65 */    /* $ */ " ..... ",
  189.         /* 66 */    /* % */ "....  .",
  190.         /* 67 */    /* & */ ".. ..  ",
  191.         /* 68 */    /* ( */ "   ..  ",
  192.         /* 69 */    /* ) */ ".  ..  ",
  193.         /* 70 */    /* * */ "  . .  ",
  194.         /* 71 */    /* + */ ".  ... ",
  195.         /* 72 */    /* , */ ".....  ",
  196.         /* 73 */    /* - */ ". . ...",
  197.         /* 74 */    /* . */ ". ..   ",
  198.         /* 75 */    /* / */ ". .  ..",
  199.         /* 76 */    /* : */ "    .  ",
  200.         /* 77 */    /* ; */ ".. . . ",
  201.         /* 78 */    /* < */ ". .. ..",
  202.         /* 79 */    /* = */ " ..   .",
  203.         /* 80 */    /* > */ ".   . .",
  204.         /* 81 */    /* ? */ "  . ...",
  205.         /* 82 */    /* @ */ ".......",
  206.         /* 83 */    /* [ */ "  ..   ",
  207.         /* 84 */    /* ] */ "..  ...",
  208.         /* 85 */    /* ^ */ "..   . ",
  209.         /* 86 */    /* _ */ " .. .. ",
  210.         /* 87 */    /* ` */ "   . ..",
  211.         /* 88 */    /* { */ ". ...  ",
  212.         /* 89 */    /* | */ "..    .",
  213.         /* 90 */    /* } */ "     ..",
  214.         /* 91 */    /* ~ */ "  ... .",
  215.         /* 92 */    /*   */ "..   ..",
  216.         /* 93 */    /* ' */ ".. .. ."
  217.     };
  218.  
  219.     char morse_tab[][9] =
  220.     {
  221.         /*  0 */    /* A */ "...--..-",
  222.         /*  1 */    /* B */ "....-...",
  223.         /*  2 */    /* C */ "-.",
  224.         /*  3 */    /* D */ "--...",
  225.         /*  4 */    /* E */ "....--..",
  226.         /*  5 */    /* F */ "...--",
  227.         /*  6 */    /* G */ ".......-",
  228.         /*  7 */    /* H */ "....",
  229.         /*  8 */    /* I */ "......--",
  230.         /*  9 */    /* J */ "...-",
  231.         /* 10 */    /* K */ "....--.-",
  232.         /* 11 */    /* L */ "...-....",
  233.         /* 12 */    /* M */ ".-.",
  234.         /* 13 */    /* N */ "-----",
  235.         /* 14 */    /* O */ "....-.--",
  236.         /* 15 */    /* P */ ".....---",
  237.         /* 16 */    /* Q */ "....---.",
  238.         /* 17 */    /* R */ "---",
  239.         /* 18 */    /* S */ "........",
  240.         /* 19 */    /* T */ ".--",
  241.         /* 20 */    /* U */ "----.",
  242.         /* 21 */    /* V */ "--..",
  243.         /* 22 */    /* W */ "...-..--",
  244.         /* 23 */    /* X */ "-.--",
  245.         /* 24 */    /* Y */ "-...",
  246.         /* 25 */    /* Z */ ".----",
  247.  
  248.         /* 26 */    /* a */ ".--.",
  249.         /* 27 */    /* b */ "-.-",
  250.         /* 28 */    /* c */ ".....-.-",
  251.         /* 29 */    /* d */ ".",
  252.         /* 30 */    /* e */ "....----",
  253.         /* 31 */    /* f */ "--.",
  254.         /* 32 */    /* g */ "..-.",
  255.         /* 33 */    /* h */ "-....",
  256.         /* 34 */    /* i */ "...--...",
  257.         /* 35 */    /* j */ "....-.-.",
  258.         /* 36 */    /* k */ "-",
  259.         /* 37 */    /* l */ "-..",
  260.         /* 38 */    /* m */ "-.-.",
  261.         /* 39 */    /* n */ "......-.",
  262.         /* 40 */    /* o */ "...-.---",
  263.         /* 41 */    /* p */ "...-.--.",
  264.         /* 42 */    /* q */ ".....--.",
  265.         /* 43 */    /* r */ ".....-..",
  266.         /* 44 */    /* s */ "...-...-",
  267.         /* 45 */    /* t */ "---..",
  268.         /* 46 */    /* u */ ".....",
  269.         /* 47 */    /* v */ ".-",
  270.         /* 48 */    /* w */ "..",
  271.         /* 49 */    /* x */ "..---",
  272.         /* 50 */    /* y */ "--",
  273.         /* 51 */    /* z */ "...-..-.",
  274.  
  275.         /* 52 */    /* 0 */ ".-..",
  276.         /* 53 */    /* 1 */ "-..-",
  277.         /* 54 */    /* 2 */ "....-",
  278.         /* 55 */    /* 3 */ "...-.-..",
  279.         /* 56 */    /* 4 */ "--.-",
  280.         /* 57 */    /* 5 */ ".---",
  281.         /* 58 */    /* 6 */ "...",
  282.         /* 59 */    /* 7 */ "...-.-.-",
  283.         /* 60 */    /* 8 */ "....-..-",
  284.         /* 61 */    /* 9 */ "..-",
  285.  
  286.         /* 62 */    /* ! */ "..------",
  287.         /* 63 */    /* " */ "-...-",
  288.         /* 64 */    /* # */ "--..--..",
  289.         /* 65 */    /* $ */ "..---..-",
  290.         /* 66 */    /* % */ "-------.",
  291.         /* 67 */    /* & */ "--.-..-.",
  292.         /* 68 */    /* ( */ "..--..-.",
  293.         /* 69 */    /* ) */ "-.-.--..",
  294.         /* 70 */    /* * */ ".-.-..-.",
  295.         /* 71 */    /* + */ ".-....--",
  296.         /* 72 */    /* , */ ".-...-..",
  297.         /* 73 */    /* - */ ".--.-.--",
  298.         /* 74 */    /* . */ "......",
  299.         /* 75 */    /* / */ "------",
  300.         /* 76 */    /* : */ "-.-..-.-",
  301.         /* 77 */    /* ; */ "..-.-.",
  302.         /* 78 */    /* < */ ".--.-.",
  303.         /* 79 */    /* = */ "..--..--",
  304.         /* 80 */    /* > */    ".-.--..-",
  305.         /* 81 */    /* ? */ ".---.",
  306.         /* 82 */    /* @ */ ".-.-",
  307.         /* 83 */    /* [ */ ".--....-",
  308.         /* 84 */    /* ] */ "-.-..--.",
  309.         /* 85 */    /* ^ */ ".--.-.-.",
  310.         /* 86 */    /* _ */ "..--...-",
  311.         /* 87 */    /* ` */ "-.-.-.-.",
  312.         /* 88 */    /* { */ "..-..-..",
  313.         /* 89 */    /* | */ ".-..-.-.",
  314.         /* 90 */    /* } */ "..---...",
  315.         /* 91 */    /* ~ */ "-..---.-",
  316.         /* 92 */    /*   */ ".-.-.-..",
  317.         /* 93 */    /* ' */ "-.----.-",
  318.     };
  319.     //Partagé
  320.     char hexa_prefix[13] = { 0 };
  321.     char morse_prefix[13] = { 0 };
  322.     char braille_prefix[13] = { 0 };
  323.     char ternaire_prefix[14] = { 0 };
  324.     char senaire_prefix[14] = { 0 };
  325.     //Partagé
  326.  
  327.     //Partagé
  328.     char morse_length_1[9] = { 0 };
  329.     char morse_length_2[10] = { 0 };
  330.     char morse_length_3[10] = { 0 };
  331.     char morse_length_4[10] = { 0 };
  332.     char morse_length_5[10] = { 0 };
  333.     char morse_length_6[10] = { 0 };
  334.     char morse_length_8[10] = { 0 };
  335.     //Partagé
  336.  
  337.     //Partagé
  338.     char hexa_0[4] = { 0 };
  339.     char hexa_1[4] = { 0 };
  340.     char hexa_2[4] = { 0 };
  341.     char hexa_3[4] = { 0 };
  342.     char hexa_4[4] = { 0 };
  343.     char hexa_5[4] = { 0 };
  344.     char hexa_6[4] = { 0 };
  345.     char hexa_7[4] = { 0 };
  346.     char hexa_8[4] = { 0 };
  347.     char hexa_9[4] = { 0 };
  348.     char hexa_A[4] = { 0 };
  349.     char hexa_B[4] = { 0 };
  350.     char hexa_C[4] = { 0 };
  351.     char hexa_D[4] = { 0 };
  352.     char hexa_E[4] = { 0 };
  353.     char hexa_F[4] = { 0 };
  354.     char hexa_space[15] = { 0 };
  355.     //Partagé
  356.  
  357.     //Partagé
  358.     char morse_short[32] = { 0 };    //Caractères représentant les "courts" du morse
  359.     char morse_long[32] = { 0 };    //Caractères représentant les "longs" du morse
  360.     //Partagé
  361.  
  362.     //Partagé
  363.     char braille_dot[32] = { 0 };
  364.     char braille_void[32] = { 0 };
  365.     //Partagé
  366.  
  367.     //Ensemble mais ne coûte pas de caractère
  368.     char morse_final[9] = { 0 };
  369.     char hexa_temp[9] = { 0 };
  370.     char braille_final[8] = { 0 };
  371.     char ternaire_final[9] = { 0 };
  372.     char senaire_final[9] = { 0 };
  373.     //Ensemble mais ne coûte pas de caractère
  374.  
  375.     char *stringToCopy = NULL;
  376.  
  377.     if (strlen(string) >= 8)
  378.     {
  379.         x_dim = y_dim = z_dim = identifyTriDiShaker_Size(string);
  380.  
  381.         stringToEncrypt = malloc(sizeof(char*)* 2 + sizeof(char*)*z_dim*y_dim*x_dim);
  382.         if (stringToEncrypt == NULL)
  383.         {
  384.             centerText("Pas assez de RAM pour allouer stringToEncrypt", CONS_L, 15, 0);
  385.  
  386.             Sleep(10000);
  387.             exit(1);
  388.         }
  389.         else
  390.             sprintf(stringToEncrypt, "%s", tri_dimensionnalShaker(string, numbTab[69], numbTab[79], numbTab[0], 0));
  391.  
  392.         stringToCopy = malloc((sizeof(char*)* 8 * z_dim*y_dim*x_dim) + 29 * sizeof(char*));
  393.         if (stringToCopy == NULL)
  394.         {
  395.             centerText("Pas assez de RAM pour allouer stringToCopy", CONS_L, 15, 0);
  396.  
  397.             Sleep(10000);
  398.             exit(1);
  399.         }
  400.         else
  401.             nullString(stringToCopy, 8 * z_dim*y_dim*x_dim + 29);
  402.     }
  403.     else
  404.     {
  405.         string_random(string, 59, 59, 0);
  406.  
  407.         stringToEncrypt = malloc(sizeof(char*)*(strlen(string) + 1));
  408.         if (stringToEncrypt == NULL)
  409.         {
  410.             centerText("Pas assez de RAM pour allouer stringToEncrypt", CONS_L, 15, 0);
  411.  
  412.             Sleep(10000);
  413.             exit(1);
  414.         }
  415.         else
  416.         {
  417.             nullString(stringToEncrypt, strlen(string) + 1);
  418.  
  419.             sprintf(stringToEncrypt, "%s", string);
  420.         }
  421.  
  422.         stringToCopy = malloc(sizeof(char*)*(strlen(string) * 8 + 29));
  423.         if (stringToCopy == NULL)
  424.         {
  425.             centerText("Pas assez de RAM pour allouer stringToCopy", CONS_L, 15, 0);
  426.  
  427.             Sleep(10000);
  428.             exit(1);
  429.         }
  430.         else
  431.             nullString(stringToCopy, strlen(string) * 8 + 29)
  432.     }
  433.  
  434.     string_random(caractersInitial, (numbTab[116] + numbTab[37])*numbTab[36] + numbTab[68], (((numbTab[3] + numbTab[15] + numbTab[110])*numbTab[24]) ^ numbTab[1]) + numbTab[55], 0);
  435.     string_leftRotation(caractersInitial, 26);
  436.     sprintf(caracters, "%s", caractersInitial);
  437.  
  438.     for (x = 0; x < 3; x++)
  439.         hexa_0[x] = caracters[x];
  440.     hexa_0[3] = '\0';
  441.  
  442.     for (x = 3; x < 6; x++)
  443.         hexa_1[x - 3] = caracters[x];
  444.     hexa_1[3] = '\0';
  445.  
  446.     for (x = 6; x < 9; x++)
  447.         hexa_2[x - 6] = caracters[x];
  448.     hexa_2[3] = '\0';
  449.  
  450.     for (x = 9; x < 12; x++)
  451.         hexa_3[x - 9] = caracters[x];
  452.     hexa_3[3] = '\0';
  453.  
  454.     for (x = 12; x < 15; x++)
  455.         hexa_4[x - 12] = caracters[x];
  456.     hexa_4[3] = '\0';
  457.  
  458.     for (x = 15; x < 18; x++)
  459.         hexa_5[x - 15] = caracters[x];
  460.     hexa_5[3] = '\0';
  461.  
  462.     for (x = 18; x < 21; x++)
  463.         hexa_6[x - 18] = caracters[x];
  464.     hexa_6[3] = '\0';
  465.  
  466.     for (x = 21; x < 24; x++)
  467.         hexa_7[x - 21] = caracters[x];
  468.     hexa_7[3] = '\0';
  469.  
  470.     for (x = 24; x < 27; x++)
  471.         hexa_8[x - 24] = caracters[x];
  472.     hexa_8[3] = '\0';
  473.  
  474.     for (x = 27; x < 30; x++)
  475.         hexa_9[x - 27] = caracters[x];
  476.     hexa_9[3] = '\0';
  477.  
  478.     for (x = 30; x < 33; x++)
  479.         hexa_A[x - 30] = caracters[x];
  480.     hexa_A[3] = '\0';
  481.  
  482.     for (x = 33; x < 36; x++)
  483.         hexa_B[x - 33] = caracters[x];
  484.     hexa_B[3] = '\0';
  485.  
  486.     for (x = 36; x < 39; x++)
  487.         hexa_C[x - 36] = caracters[x];
  488.     hexa_C[3] = '\0';
  489.  
  490.     for (x = 39; x < 42; x++)
  491.         hexa_D[x - 39] = caracters[x];
  492.     hexa_D[3] = '\0';
  493.  
  494.     for (x = 42; x < 45; x++)
  495.         hexa_E[x - 42] = caracters[x];
  496.     hexa_E[3] = '\0';
  497.  
  498.     for (x = 45; x < 48; x++)
  499.         hexa_F[x - 45] = caracters[x];
  500.     hexa_F[3] = '\0';
  501.  
  502.     for (x = 48; x < 62; x++)
  503.         hexa_space[x - 48] = caracters[x];
  504.     hexa_space[14] = '\0';
  505.  
  506.     string_random(hexa_0, (numbTab[48] + numbTab[49])*numbTab[84], numbTab[8], 0);
  507.     string_leftRotation(hexa_0, numbTab[12] + numbTab[13]*numbTab[34]);
  508.  
  509.     string_random(hexa_0, (numbTab[10] + numbTab[9])*numbTab[99], numbTab[86], 0);
  510.     string_rightRotation(hexa_0, numbTab[25] + numbTab[85] * numbTab[72]);
  511.  
  512.     string_random(hexa_1, (numbTab[67] + numbTab[7])*numbTab[41], numbTab[22], 0);
  513.     string_leftRotation(hexa_1, numbTab[45] + numbTab[46] * numbTab[4]);
  514.  
  515.     string_random(hexa_1, (numbTab[26] + numbTab[79])*numbTab[58], numbTab[14] + numbTab[110], 0);
  516.     string_rightRotation(hexa_1, numbTab[52] + numbTab[120]*numbTab[95]);
  517.  
  518.     string_random(hexa_2, (numbTab[73] + numbTab[59])*numbTab[40], numbTab[34], 0);
  519.     string_leftRotation(hexa_2, numbTab[120] + numbTab[10]*numbTab[8]);
  520.  
  521.     string_random(hexa_2, (numbTab[127] + numbTab[63])*numbTab[125], numbTab[121] + numbTab[74], 0);
  522.     string_rightRotation(hexa_2, numbTab[126] + numbTab[12]*numbTab[51]);
  523.  
  524.     string_random(hexa_3, (numbTab[97] + numbTab[5])*numbTab[24], numbTab[73], 0);
  525.     string_leftRotation(hexa_3, numbTab[98] + numbTab[120]*numbTab[50]);
  526.  
  527.     string_random(hexa_3, (numbTab[5] + numbTab[92])*numbTab[61], numbTab[42] + numbTab[96], 0);
  528.     string_rightRotation(hexa_3, numbTab[71] + numbTab[108]*numbTab[47]);
  529.  
  530.     string_random(hexa_4, (numbTab[61] + numbTab[24])*numbTab[85], numbTab[97] + numbTab[64], 0);
  531.     string_leftRotation(hexa_4, numbTab[93] + numbTab[108]*numbTab[71]);
  532.  
  533.     string_random(hexa_4, (numbTab[57] + numbTab[95])*numbTab[0], numbTab[99] + numbTab[127], 0);
  534.     string_rightRotation(hexa_4, numbTab[38] + numbTab[38]*numbTab[59]);
  535.  
  536.     string_random(hexa_5, (numbTab[75] + numbTab[14])*numbTab[42], numbTab[53], 0);
  537.     string_leftRotation(hexa_5, numbTab[20] + numbTab[122]*numbTab[48]);
  538.  
  539.     string_random(hexa_5, (numbTab[33] + numbTab[34])*numbTab[36], numbTab[33] + numbTab[34] + numbTab[43], 0);
  540.     string_rightRotation(hexa_5, numbTab[32] + numbTab[75]*numbTab[88]);
  541.  
  542.     string_random(hexa_6, (numbTab[95] + numbTab[16])*numbTab[21], numbTab[1], 0);
  543.     string_leftRotation(hexa_6, numbTab[80] + numbTab[103]*numbTab[104]);
  544.  
  545.     string_random(hexa_6, (numbTab[43] + numbTab[106])*numbTab[14], numbTab[45] + numbTab[0], 0);
  546.     string_rightRotation(hexa_6, numbTab[2] + numbTab[50]*numbTab[110]);
  547.  
  548.     string_random(hexa_7, (numbTab[108] + numbTab[11])*numbTab[47], numbTab[127], 0);
  549.     string_leftRotation(hexa_7, numbTab[17] + numbTab[104]*numbTab[22]);
  550.  
  551.     string_random(hexa_7, (numbTab[122] + numbTab[90])*numbTab[93], numbTab[122] + numbTab[103], 0);
  552.     string_rightRotation(hexa_7, numbTab[107] + numbTab[19]*numbTab[24]);
  553.  
  554.     string_random(hexa_8, (numbTab[14] + numbTab[82])*numbTab[98], numbTab[114], 0);
  555.     string_leftRotation(hexa_8, numbTab[35] + numbTab[18]*numbTab[86]);
  556.  
  557.     string_random(hexa_8, (numbTab[6] + numbTab[6])*numbTab[92], numbTab[8] + numbTab[15], 0);
  558.     string_rightRotation(hexa_8, numbTab[11] + numbTab[93]*numbTab[83]);
  559.  
  560.     string_random(hexa_9, (numbTab[39] + numbTab[2])*numbTab[110], numbTab[84] + numbTab[21], 0);
  561.     string_leftRotation(hexa_9, numbTab[90] + numbTab[110]*numbTab[42]);
  562.  
  563.     string_random(hexa_9, (numbTab[104] + numbTab[69])*numbTab[2], numbTab[108] + numbTab[27], 0);
  564.     string_rightRotation(hexa_9, numbTab[101] + numbTab[122]*numbTab[99]);
  565.  
  566.     string_random(hexa_A, (numbTab[27] + numbTab[62])*numbTab[38], numbTab[25], 0);
  567.     string_leftRotation(hexa_A, numbTab[63] + numbTab[90]*numbTab[50]);
  568.  
  569.     string_random(hexa_A, (numbTab[23] + numbTab[63])*numbTab[71] + numbTab[68], numbTab[43] + numbTab[63], 0);
  570.     string_rightRotation(hexa_A, numbTab[21] + numbTab[84]*numbTab[91]);
  571.  
  572.     string_random(hexa_B, (numbTab[111] + numbTab[121])*numbTab[92], numbTab[86], 0);
  573.     string_leftRotation(hexa_B, numbTab[56] + numbTab[43]*numbTab[127]);
  574.  
  575.     string_random(hexa_B, (numbTab[16] + numbTab[0])*numbTab[55], numbTab[13] + numbTab[37], 0);
  576.     string_rightRotation(hexa_B, numbTab[106] + numbTab[24]*numbTab[125]);
  577.  
  578.     string_random(hexa_C, (numbTab[91] + numbTab[17])*numbTab[26], numbTab[21] + numbTab[33], 0);
  579.     string_leftRotation(hexa_C, numbTab[70] + numbTab[23]*numbTab[21]);
  580.  
  581.     string_random(hexa_C, (numbTab[87] + numbTab[4])*numbTab[69], numbTab[78] + numbTab[122], 0);
  582.     string_rightRotation(hexa_C, numbTab[53] + numbTab[58]*numbTab[3]);
  583.  
  584.     string_random(hexa_D, (numbTab[112] + numbTab[1])*numbTab[19], numbTab[33], 0);
  585.     string_leftRotation(hexa_D, numbTab[109] + numbTab[83]*numbTab[2]);
  586.  
  587.     string_random(hexa_D, (numbTab[77] + numbTab[15])*numbTab[97], numbTab[29] + numbTab[3], 0);
  588.     string_rightRotation(hexa_D, numbTab[42] + numbTab[57]*numbTab[6]);
  589.  
  590.     string_random(hexa_E, (numbTab[44] + numbTab[21])*numbTab[88], numbTab[48], 0);
  591.     string_leftRotation(hexa_E, numbTab[47] + numbTab[120]*numbTab[108]);
  592.  
  593.     string_random(hexa_E, (numbTab[50] + numbTab[49])*numbTab[77], numbTab[59] + numbTab[84], 0);
  594.     string_rightRotation(hexa_E, numbTab[29] + numbTab[36]*numbTab[39]);
  595.  
  596.     string_random(hexa_F, (numbTab[30] + numbTab[27])*numbTab[79] + numbTab[55], numbTab[19], 0);
  597.     string_leftRotation(hexa_F, numbTab[28] + numbTab[43]*numbTab[30]);
  598.  
  599.     string_random(hexa_F, (numbTab[54] + numbTab[10])*numbTab[44], numbTab[40] + numbTab[31], 0);
  600.     string_rightRotation(hexa_F, numbTab[31] + numbTab[93]*numbTab[1]);
  601.  
  602.     string_random(hexa_space, (numbTab[100] + numbTab[50])*numbTab[98], numbTab[3], 0);
  603.     string_leftRotation(hexa_space, numbTab[51] + numbTab[125]*numbTab[71]);
  604.  
  605.     string_random(hexa_space, (numbTab[40] + numbTab[55])*numbTab[92], numbTab[45] + numbTab[32], 0);
  606.     string_rightRotation(hexa_D, numbTab[74] + numbTab[29]*numbTab[80]);
  607.  
  608.     string_random(caracters, (numbTab[89] + numbTab[100])*numbTab[116] + numbTab[32], ((numbTab[110] + numbTab[119] + numbTab[107])*numbTab[14]) ^ numbTab[16], 0);
  609.     string_leftRotation(caracters, 1024);
  610.  
  611.     for (x = 0; x < 8; x++)
  612.         morse_length_1[x] = caracters[x];
  613.     morse_length_1[8] = '\0';
  614.  
  615.     for (x = 8; x < 17; x++)
  616.         morse_length_2[x - 8] = caracters[x];
  617.     morse_length_2[9] = '\0';
  618.  
  619.     for (x = 17; x < 26; x++)
  620.         morse_length_3[x - 17] = caracters[x];
  621.     morse_length_3[9] = '\0';
  622.  
  623.     for (x = 26; x < 35; x++)
  624.         morse_length_4[x - 26] = caracters[x];
  625.     morse_length_4[9] = '\0';
  626.  
  627.     for (x = 35; x < 44; x++)
  628.         morse_length_5[x - 35] = caracters[x];
  629.     morse_length_5[9] = '\0';
  630.  
  631.     for (x = 44; x < 53; x++)
  632.         morse_length_6[x - 44] = caracters[x];
  633.     morse_length_5[9] = '\0';
  634.  
  635.     for (x = 53; x < 62; x++)
  636.         morse_length_8[x - 53] = caracters[x];
  637.     morse_length_8[9] = '\0';
  638.  
  639.  
  640.  
  641.  
  642.     for (x = 0; x < 12; x++)
  643.         morse_prefix[x] = caracters[x];
  644.     morse_prefix[12] = '\0';
  645.  
  646.     for (x = 12; x < 24; x++)
  647.         hexa_prefix[x - 12] = caracters[x];
  648.     hexa_prefix[12] = '\0';
  649.  
  650.     for (x = 24; x < 36; x++)
  651.         braille_prefix[x - 24] = caracters[x];
  652.     braille_prefix[11] = '\0';
  653.  
  654.     for (x = 36; x < 49; x++)
  655.         ternaire_prefix[x - 36] = caracters[x];
  656.     ternaire_prefix[13] = '\0';
  657.  
  658.     for (x = 49; x < 62; x++)
  659.         senaire_prefix[x - 49] = caracters[x];
  660.     senaire_prefix[13] = '\0';
  661.  
  662.     string_leftRotation(morse_length_1, numbTab[39]);
  663.     string_leftRotation(morse_length_2, numbTab[18]);
  664.     string_leftRotation(morse_length_3, numbTab[114]);
  665.     string_leftRotation(morse_length_4, numbTab[99]);
  666.     string_leftRotation(morse_length_5, numbTab[81]);
  667.     string_leftRotation(morse_length_6, numbTab[23]);
  668.     string_leftRotation(morse_length_8, numbTab[98]);
  669.     string_leftRotation(morse_prefix, numbTab[9]);
  670.     string_leftRotation(hexa_prefix, numbTab[1]);
  671.  
  672.     string_random(morse_length_1, numbTab[18], numbTab[19] + numbTab[105] + numbTab[86], 0);
  673.     string_random(morse_length_2, numbTab[65], numbTab[113] + numbTab[119] + numbTab[20], 0);
  674.     string_random(morse_length_3, numbTab[124], numbTab[78] + numbTab[19] + numbTab[41], 0);
  675.     string_random(morse_length_4, numbTab[59], numbTab[103] + numbTab[20] + numbTab[48], 0);
  676.     string_random(morse_length_5, numbTab[117], numbTab[125] + numbTab[123] + numbTab[58], 0);
  677.     string_random(morse_length_6, numbTab[28], numbTab[0] + numbTab[98] + numbTab[127], 0);
  678.     string_random(morse_length_8, numbTab[81], numbTab[96] + numbTab[26] + numbTab[107], 0);
  679.     string_random(morse_prefix, numbTab[64], numbTab[82] + numbTab[85] + numbTab[84], 0);
  680.     string_random(hexa_prefix, numbTab[123], numbTab[121] + numbTab[115] + numbTab[86], 0);
  681.  
  682.     string_rightRotation(morse_length_1, numbTab[14]);
  683.     string_rightRotation(morse_length_2, numbTab[100]);
  684.     string_rightRotation(morse_length_3, numbTab[87]);
  685.     string_rightRotation(morse_length_4, numbTab[77]);
  686.     string_rightRotation(morse_length_5, numbTab[109]);
  687.     string_rightRotation(morse_length_6, numbTab[12]);
  688.     string_rightRotation(morse_length_8, numbTab[53]);
  689.     string_rightRotation(morse_prefix, numbTab[87]);
  690.     string_rightRotation(hexa_prefix, numbTab[48]);
  691.  
  692.     string_random(caracters, (numbTab[92] + numbTab[17])*numbTab[5] + numbTab[90], ((numbTab[34] + numbTab[60] + numbTab[99])*numbTab[58]) ^ numbTab[56], 0);
  693.     string_rightRotation(caracters, 1024);
  694.  
  695.  
  696.     for (x = 0; x < 31; x++)
  697.         morse_short[x] = caracters[x];
  698.     morse_short[31] = '\0';
  699.  
  700.     for (x = 31; x < 62; x++)
  701.         morse_long[x - 31] = caracters[x];
  702.     morse_long[31] = '\0';
  703.  
  704.     //On randomise le morse court
  705.     string_random(morse_short, (numbTab[105] + numbTab[74] + numbTab[104])*numbTab[25], rand(), 0);
  706.     string_leftRotation(morse_short, numbTab[88] + numbTab[124]*numbTab[113]);
  707.  
  708.     string_random(morse_short, (numbTab[66] + numbTab[20] + numbTab[11])*numbTab[114], rand() + rand(), 0);
  709.     string_rightRotation(morse_short, numbTab[83] + numbTab[34]*numbTab[81]);
  710.  
  711.     //On randomise le morse "long"
  712.     string_random(morse_long, (numbTab[62] + numbTab[87])*numbTab[6], rand() + rand(), 0);
  713.     string_leftRotation(morse_long, numbTab[94] + numbTab[112]*numbTab[0]);
  714.  
  715.     string_random(morse_long, (numbTab[118] + numbTab[4])*numbTab[32], rand() + numbTab[107], 0);
  716.     string_rightRotation(morse_long, numbTab[114] + numbTab[50]*numbTab[106]);
  717.  
  718.     for (x = 0; x < 31; x++)
  719.         braille_dot[x] = caracters[x];
  720.     braille_dot[31] = '\0';
  721.  
  722.     for (x = 31; x < 62; x++)
  723.         braille_void[x - 31] = caracters[x];
  724.     braille_void[31] = '\0';
  725.  
  726.     string_random(braille_dot, 0, numbTab[115] + numbTab[21] + numbTab[98] + numbTab[70], 0);
  727.     string_leftRotation(braille_dot, 14);
  728.  
  729.     string_random(braille_dot, 0, numbTab[76] + numbTab[31] + numbTab[105] + numbTab[29], 0);
  730.     string_rightRotation(braille_dot, 14);
  731.  
  732.     string_random(braille_void, 0, numbTab[35] + numbTab[22] + numbTab[126] + numbTab[21], 0);
  733.     string_leftRotation(braille_dot, 14);
  734.  
  735.     string_random(braille_void, 0, numbTab[73] + numbTab[72] + numbTab[112] + numbTab[39], 0);
  736.     string_rightRotation(braille_dot, 14);
  737.  
  738.  
  739.     if (strlen(stringToEncrypt) >= 3)
  740.     {
  741.         for (x = 1;; x++)
  742.         {
  743.             if (!(strlen(stringToEncrypt) % x) && x >= 3)
  744.             {
  745.                 lengthOf_subdivision = x;
  746.                 numbOf_subdivision = strlen(stringToEncrypt) / x;    //Détermination du nombre de subdivisions
  747.  
  748.                 break;
  749.             }
  750.         }
  751.     }
  752.     else
  753.     {
  754.         lengthOf_subdivision = strlen(stringToEncrypt);
  755.         numbOf_subdivision = 1;
  756.     }
  757.  
  758.     unsigned int *randsTab = NULL;
  759.     randsTab = malloc((numbOf_subdivision*sizeof(unsigned int)) + 1);
  760.     if (randsTab == NULL)
  761.     {
  762.         centerText("Pas assez de RAM", CONS_L, 15, 0);
  763.  
  764.         Sleep(10000);
  765.         exit(1);
  766.     }
  767.  
  768.     int *randResult = NULL;
  769.     randResult = malloc((numbOf_subdivision*sizeof(int)) + 1);
  770.     if (randResult == NULL)
  771.     {
  772.         centerText("Pas assez de RAM", CONS_L, 15, 0);
  773.  
  774.         Sleep(10000);
  775.         exit(1);
  776.     }
  777.  
  778.     char **subdivisionsTab = NULL;
  779.  
  780.     subdivisionsTab = malloc(sizeof(char**)*numbOf_subdivision);
  781.     for (x = 0; x < numbOf_subdivision; x++)
  782.         subdivisionsTab[x] = malloc(sizeof(char*)*(lengthOf_subdivision + 1));
  783.     if (subdivisionsTab == NULL)
  784.     {
  785.         centerText("Pas assez de RAM", CONS_L, 15, 0);
  786.  
  787.         Sleep(10000);
  788.         exit(1);
  789.     }
  790.     w = 0;
  791.     for (x = 0; x < numbOf_subdivision; x++)
  792.     {
  793.         for (y = 0; y < lengthOf_subdivision; y++)
  794.         {
  795.             subdivisionsTab[x][y] = stringToEncrypt[w];
  796.             w++;
  797.         }
  798.     }
  799.     w = 0;
  800.  
  801.     srand(numbTab[84] + numbTab[120] + numbTab[125] + numbTab[47] + numbTab[121]);
  802.     for (x = 0; x < numbOf_subdivision; x++)
  803.     while (randsTab[x] > 5000 || randsTab[x] < 0)
  804.         randsTab[x] = rand();
  805.  
  806.     for (x = 0; x < numbOf_subdivision; x++)
  807.     {
  808.         if (randsTab[x] <= 1000)
  809.             randResult[x] = 0;
  810.         else if (randsTab[x]>1000 && randsTab[x] <= 2000)
  811.             randResult[x] = 1;
  812.         else if (randsTab[x] > 2000 && randsTab[x] <= 3000)
  813.             randResult[x] = 2;
  814.         else if (randsTab[x] > 3000 && randsTab[x] <= 4000)
  815.             randResult[x] = 3;
  816.         else
  817.             randResult[x] = 4;
  818.     }
  819.  
  820.  
  821.     string_random(caracters, 0, 12536, 0);
  822.     srand(numbTab[67] + numbTab[94] + numbTab[90] + numbTab[79] + numbTab[74]);
  823.     for (y = 0; y < 62; y++)
  824.     {
  825.         for (x = 0; x < 62; x++)
  826.         {
  827.             do
  828.             {
  829.                 alea1 = rand() % 62;
  830.                 alea2 = rand() % 62;
  831.  
  832.                 sprintf(string_temp, "%c", caracters[alea1]);
  833.                 sprintf(string_temp2, "%c", caracters[alea2]);
  834.                 strcat(string_temp, string_temp2);
  835.  
  836.                 strcpy(verifBox[y][x], string_temp);
  837.                 for (v = 0; v < 62; v++)
  838.                 {
  839.                     for (w = 0; w < 62; w++)
  840.                     {
  841.                         if (v != y || w != x)
  842.                         {
  843.                             if (!(strcmp(verifBox[v][w], string_temp)))
  844.                             {
  845.                                 loop = 1;
  846.                                 toBreak = 1;
  847.                                 break;
  848.                             }
  849.                             else if (strlen(string_temp) < 2)
  850.                             {
  851.                                 loop = 1;
  852.                                 toBreak = 1;
  853.                                 break;
  854.                             }
  855.                             else
  856.                             {
  857.                                 toBreak = 0;
  858.                                 loop = 0;
  859.                             }
  860.                         }
  861.                     }
  862.                     if (toBreak)
  863.                         break;
  864.                 }
  865.  
  866.             } while (loop);
  867.  
  868.             sprintf(subtitBox[y][x], "%s", string_temp);
  869.         }
  870.     }
  871.  
  872.     nullString(string_temp, 15);
  873.     for (x = 0; x < numbOf_subdivision; x++)
  874.     {
  875.         srand(numbTab[26]*numbTab[115] + numbTab[19] + x);
  876.         if (randResult[x] == 0)
  877.         {
  878.             srand(numbTab[105] + numbTab[73]);
  879.             for (y = 0; y < lengthOf_subdivision; y++)
  880.             {
  881.                 alea = rand();
  882.                 if (alea>11)
  883.                     alea %= 12;
  884.  
  885.                 sprintf(string_temp, "%c", hexa_prefix[alea]);
  886.                 strcat(stringToCopy, string_temp);
  887.  
  888.                 sprintf(hexa_temp, "%8X", subdivisionsTab[x][y] + numbTab[16] + numbTab[56] + numbTab[96] + numbTab[21]);
  889.                 for (z = 0; z < 8; z++)
  890.                 {
  891.                     ////////////////////////////////////////////// Alea
  892.                     srand(bb);
  893.                     alea = rand();
  894.  
  895.                     if (alea > 20)
  896.                         alea %= 21;
  897.  
  898.                     bb += zz + numbTab[30] + numbTab[3] + numbTab[43];
  899.  
  900.                     if (bb >= (unsigned int)(8 * zz))
  901.                         zz += numbTab[68] + numbTab[14] + numbTab[54];
  902.                     if (bb >= 2147483647)
  903.                     {
  904.                         zz -= (numbTab[42] - 20);
  905.                         bb -= (unsigned int)(numbTab[126]*numbTab[93]*numbTab[63]*numbTab[126] * 9000);
  906.                     }
  907.                     ////////////////////////////////////////////// Alea
  908.  
  909.                     if (hexa_temp[z] == '0')
  910.                     {
  911.                         if (alea > 2)
  912.                             alea %= 3;
  913.                         hexa_temp[z] = hexa_0[alea];
  914.  
  915.                         if (hexa_temp[z] == hexa_temp[z - 1] || hexa_temp[z] == hexa_temp[z - 2] || hexa_temp[1] == hexa_temp[0])
  916.                         {
  917.                             if (hexa_temp[z] == hexa_temp[z - 1] || hexa_temp[z] == hexa_temp[z - 2] && z >= 2)
  918.                             {
  919.                                 if (hexa_temp[z - 1] != hexa_0[2] && hexa_temp[z - 2] != hexa_0[2])
  920.                                     hexa_temp[z] = hexa_0[2];
  921.                                 else if (hexa_temp[z - 1] != hexa_0[0] && hexa_temp[z - 2] != hexa_0[0])
  922.                                     hexa_temp[z] = hexa_0[0];
  923.                                 else
  924.                                     hexa_temp[z] = hexa_0[1];
  925.                             }
  926.                             else
  927.                             {
  928.                                 if (hexa_temp[1] == hexa_temp[0] && hexa_temp[0] != hexa_0[1])
  929.                                     hexa_temp[1] = hexa_0[1];
  930.                                 else
  931.                                     hexa_temp[1] = hexa_0[2];
  932.                             }
  933.                         }
  934.                     }
  935.                     else if (hexa_temp[z] == '1')
  936.                     {
  937.                         if (alea > 2)
  938.                             alea %= 3;
  939.                         hexa_temp[z] = hexa_1[alea];
  940.  
  941.                         if (hexa_temp[z] == hexa_temp[z - 1] || hexa_temp[z] == hexa_temp[z - 2] || hexa_temp[1] == hexa_temp[0])
  942.                         {
  943.                             if (hexa_temp[z] == hexa_temp[z - 1] || hexa_temp[z] == hexa_temp[z - 2] && z >= 2)
  944.                             {
  945.                                 if (hexa_temp[z - 1] != hexa_1[2] && hexa_temp[z - 2] != hexa_1[2])
  946.                                     hexa_temp[z] = hexa_1[2];
  947.                                 else if (hexa_temp[z - 1] != hexa_1[0] && hexa_temp[z - 2] != hexa_1[0])
  948.                                     hexa_temp[z] = hexa_1[0];
  949.                                 else
  950.                                     hexa_temp[z] = hexa_1[1];
  951.                             }
  952.                             else
  953.                             {
  954.                                 if (hexa_temp[1] == hexa_temp[0] && hexa_temp[0] != hexa_1[1])
  955.                                     hexa_temp[1] = hexa_1[1];
  956.                                 else
  957.                                     hexa_temp[1] = hexa_1[2];
  958.                             }
  959.                         }
  960.                     }
  961.                     else if (hexa_temp[z] == '2')
  962.                     {
  963.                         if (alea > 2)
  964.                             alea %= 3;
  965.                         hexa_temp[z] = hexa_2[alea];
  966.  
  967.                         if (hexa_temp[z] == hexa_temp[z - 1] || hexa_temp[z] == hexa_temp[z - 2] || hexa_temp[1] == hexa_temp[0])
  968.                         {
  969.                             if (hexa_temp[z] == hexa_temp[z - 1] || hexa_temp[z] == hexa_temp[z - 2] && z >= 2)
  970.                             {
  971.                                 if (hexa_temp[z - 1] != hexa_2[2] && hexa_temp[z - 2] != hexa_2[2])
  972.                                     hexa_temp[z] = hexa_2[2];
  973.                                 else if (hexa_temp[z - 1] != hexa_2[0] && hexa_temp[z - 2] != hexa_2[0])
  974.                                     hexa_temp[z] = hexa_2[0];
  975.                                 else
  976.                                     hexa_temp[z] = hexa_2[1];
  977.                             }
  978.                             else
  979.                             {
  980.                                 if (hexa_temp[1] == hexa_temp[0] && hexa_temp[0] != hexa_2[1])
  981.                                     hexa_temp[1] = hexa_2[1];
  982.                                 else
  983.                                     hexa_temp[1] = hexa_2[2];
  984.                             }
  985.                         }
  986.                     }
  987.                     else if (hexa_temp[z] == '3')
  988.                     {
  989.                         if (alea > 2)
  990.                             alea %= 3;
  991.                         hexa_temp[z] = hexa_3[alea];
  992.  
  993.                         if (hexa_temp[z] == hexa_temp[z - 1] || hexa_temp[z] == hexa_temp[z - 2] || hexa_temp[1] == hexa_temp[0])
  994.                         {
  995.                             if (hexa_temp[z] == hexa_temp[z - 1] || hexa_temp[z] == hexa_temp[z - 2] && z >= 2)
  996.                             {
  997.                                 if (hexa_temp[z - 1] != hexa_3[2] && hexa_temp[z - 2] != hexa_3[2])
  998.                                     hexa_temp[z] = hexa_3[2];
  999.                                 else if (hexa_temp[z - 1] != hexa_3[0] && hexa_temp[z - 2] != hexa_3[0])
  1000.                                     hexa_temp[z] = hexa_3[0];
  1001.                                 else
  1002.                                     hexa_temp[z] = hexa_3[1];
  1003.                             }
  1004.                             else
  1005.                             {
  1006.                                 if (hexa_temp[1] == hexa_temp[0] && hexa_temp[0] != hexa_3[1])
  1007.                                     hexa_temp[1] = hexa_3[1];
  1008.                                 else
  1009.                                     hexa_temp[1] = hexa_3[2];
  1010.                             }
  1011.                         }
  1012.                     }
  1013.                     else if (hexa_temp[z] == '4')
  1014.                     {
  1015.                         if (alea > 2)
  1016.                             alea %= 3;
  1017.                         hexa_temp[z] = hexa_4[alea];
  1018.  
  1019.                         if (hexa_temp[z] == hexa_temp[z - 1] || hexa_temp[z] == hexa_temp[z - 2] || hexa_temp[1] == hexa_temp[0])
  1020.                         {
  1021.                             if (hexa_temp[z] == hexa_temp[z - 1] || hexa_temp[z] == hexa_temp[z - 2] && z >= 2)
  1022.                             {
  1023.                                 if (hexa_temp[z - 1] != hexa_4[2] && hexa_temp[z - 2] != hexa_4[2])
  1024.                                     hexa_temp[z] = hexa_4[2];
  1025.                                 else if (hexa_temp[z - 1] != hexa_4[0] && hexa_temp[z - 2] != hexa_4[0])
  1026.                                     hexa_temp[z] = hexa_4[0];
  1027.                                 else
  1028.                                     hexa_temp[z] = hexa_4[1];
  1029.                             }
  1030.                             else
  1031.                             {
  1032.                                 if (hexa_temp[1] == hexa_temp[0] && hexa_temp[0] != hexa_4[1])
  1033.                                     hexa_temp[1] = hexa_4[1];
  1034.                                 else
  1035.                                     hexa_temp[1] = hexa_4[2];
  1036.                             }
  1037.                         }
  1038.                     }
  1039.                     else if (hexa_temp[z] == '5')
  1040.                     {
  1041.                         if (alea > 2)
  1042.                             alea %= 3;
  1043.                         hexa_temp[z] = hexa_5[alea];
  1044.  
  1045.                         if (hexa_temp[z] == hexa_temp[z - 1] || hexa_temp[z] == hexa_temp[z - 2] || hexa_temp[1] == hexa_temp[0])
  1046.                         {
  1047.                             if (hexa_temp[z] == hexa_temp[z - 1] || hexa_temp[z] == hexa_temp[z - 2] && z >= 2)
  1048.                             {
  1049.                                 if (hexa_temp[z - 1] != hexa_5[2] && hexa_temp[z - 2] != hexa_5[2])
  1050.                                     hexa_temp[z] = hexa_5[2];
  1051.                                 else if (hexa_temp[z - 1] != hexa_5[0] && hexa_temp[z - 2] != hexa_5[0])
  1052.                                     hexa_temp[z] = hexa_5[0];
  1053.                                 else
  1054.                                     hexa_temp[z] = hexa_5[1];
  1055.                             }
  1056.                             else
  1057.                             {
  1058.                                 if (hexa_temp[1] == hexa_temp[0] && hexa_temp[0] != hexa_5[1])
  1059.                                     hexa_temp[1] = hexa_5[1];
  1060.                                 else
  1061.                                     hexa_temp[1] = hexa_5[2];
  1062.                             }
  1063.                         }
  1064.                     }
  1065.                     else if (hexa_temp[z] == '6')
  1066.                     {
  1067.                         if (alea > 2)
  1068.                             alea %= 3;
  1069.                         hexa_temp[z] = hexa_6[alea];
  1070.  
  1071.                         if (hexa_temp[z] == hexa_temp[z - 1] || hexa_temp[z] == hexa_temp[z - 2] || hexa_temp[1] == hexa_temp[0])
  1072.                         {
  1073.                             if (hexa_temp[z] == hexa_temp[z - 1] || hexa_temp[z] == hexa_temp[z - 2] && z >= 2)
  1074.                             {
  1075.                                 if (hexa_temp[z - 1] != hexa_6[2] && hexa_temp[z - 2] != hexa_6[2])
  1076.                                     hexa_temp[z] = hexa_6[2];
  1077.                                 else if (hexa_temp[z - 1] != hexa_6[0] && hexa_temp[z - 2] != hexa_6[0])
  1078.                                     hexa_temp[z] = hexa_6[0];
  1079.                                 else
  1080.                                     hexa_temp[z] = hexa_6[1];
  1081.                             }
  1082.                             else
  1083.                             {
  1084.                                 if (hexa_temp[1] == hexa_temp[0] && hexa_temp[0] != hexa_6[1])
  1085.                                     hexa_temp[1] = hexa_6[1];
  1086.                                 else
  1087.                                     hexa_temp[1] = hexa_6[2];
  1088.                             }
  1089.                         }
  1090.                     }
  1091.                     else if (hexa_temp[z] == '7')
  1092.                     {
  1093.                         if (alea > 2)
  1094.                             alea %= 3;
  1095.                         hexa_temp[z] = hexa_7[alea];
  1096.  
  1097.                         if (hexa_temp[z] == hexa_temp[z - 1] || hexa_temp[z] == hexa_temp[z - 2] || hexa_temp[1] == hexa_temp[0])
  1098.                         {
  1099.                             if (hexa_temp[z] == hexa_temp[z - 1] || hexa_temp[z] == hexa_temp[z - 2] && z >= 2)
  1100.                             {
  1101.                                 if (hexa_temp[z - 1] != hexa_7[2] && hexa_temp[z - 2] != hexa_7[2])
  1102.                                     hexa_temp[z] = hexa_7[2];
  1103.                                 else if (hexa_temp[z - 1] != hexa_7[0] && hexa_temp[z - 2] != hexa_7[0])
  1104.                                     hexa_temp[z] = hexa_7[0];
  1105.                                 else
  1106.                                     hexa_temp[z] = hexa_7[1];
  1107.                             }
  1108.                             else
  1109.                             {
  1110.                                 if (hexa_temp[1] == hexa_temp[0] && hexa_temp[0] != hexa_7[1])
  1111.                                     hexa_temp[1] = hexa_7[1];
  1112.                                 else
  1113.                                     hexa_temp[1] = hexa_7[2];
  1114.                             }
  1115.                         }
  1116.                     }
  1117.                     else if (hexa_temp[z] == '8')
  1118.                     {
  1119.                         if (alea > 2)
  1120.                             alea %= 3;
  1121.                         hexa_temp[z] = hexa_8[alea];
  1122.  
  1123.                         if (hexa_temp[z] == hexa_temp[z - 1] || hexa_temp[z] == hexa_temp[z - 2] || hexa_temp[1] == hexa_temp[0])
  1124.                         {
  1125.                             if (hexa_temp[z] == hexa_temp[z - 1] || hexa_temp[z] == hexa_temp[z - 2] && z >= 2)
  1126.                             {
  1127.                                 if (hexa_temp[z - 1] != hexa_8[2] && hexa_temp[z - 2] != hexa_8[2])
  1128.                                     hexa_temp[z] = hexa_8[2];
  1129.                                 else if (hexa_temp[z - 1] != hexa_8[0] && hexa_temp[z - 2] != hexa_8[0])
  1130.                                     hexa_temp[z] = hexa_8[0];
  1131.                                 else
  1132.                                     hexa_temp[z] = hexa_8[1];
  1133.                             }
  1134.                             else
  1135.                             {
  1136.                                 if (hexa_temp[1] == hexa_temp[0] && hexa_temp[0] != hexa_8[1])
  1137.                                     hexa_temp[1] = hexa_8[1];
  1138.                                 else
  1139.                                     hexa_temp[1] = hexa_8[2];
  1140.                             }
  1141.                         }
  1142.                     }
  1143.                     else if (hexa_temp[z] == '9')
  1144.                     {
  1145.                         if (alea > 2)
  1146.                             alea %= 3;
  1147.                         hexa_temp[z] = hexa_9[alea];
  1148.  
  1149.                         if (hexa_temp[z] == hexa_temp[z - 1] || hexa_temp[z] == hexa_temp[z - 2] || hexa_temp[1] == hexa_temp[0])
  1150.                         {
  1151.                             if (hexa_temp[z] == hexa_temp[z - 1] || hexa_temp[z] == hexa_temp[z - 2] && z >= 2)
  1152.                             {
  1153.                                 if (hexa_temp[z - 1] != hexa_9[2] && hexa_temp[z - 2] != hexa_9[2])
  1154.                                     hexa_temp[z] = hexa_9[2];
  1155.                                 else if (hexa_temp[z - 1] != hexa_9[0] && hexa_temp[z - 2] != hexa_9[0])
  1156.                                     hexa_temp[z] = hexa_9[0];
  1157.                                 else
  1158.                                     hexa_temp[z] = hexa_9[1];
  1159.                             }
  1160.                             else
  1161.                             {
  1162.                                 if (hexa_temp[1] == hexa_temp[0] && hexa_temp[0] != hexa_9[1])
  1163.                                     hexa_temp[1] = hexa_9[1];
  1164.                                 else
  1165.                                     hexa_temp[1] = hexa_9[2];
  1166.                             }
  1167.                         }
  1168.                     }
  1169.                     else if (hexa_temp[z] == 'A')
  1170.                     {
  1171.                         if (alea > 2)
  1172.                             alea %= 3;
  1173.                         hexa_temp[z] = hexa_A[alea];
  1174.  
  1175.                         if (hexa_temp[z] == hexa_temp[z - 1] || hexa_temp[z] == hexa_temp[z - 2] || hexa_temp[1] == hexa_temp[0])
  1176.                         {
  1177.                             if (hexa_temp[z] == hexa_temp[z - 1] || hexa_temp[z] == hexa_temp[z - 2] && z >= 2)
  1178.                             {
  1179.                                 if (hexa_temp[z - 1] != hexa_A[2] && hexa_temp[z - 2] != hexa_A[2])
  1180.                                     hexa_temp[z] = hexa_A[2];
  1181.                                 else if (hexa_temp[z - 1] != hexa_A[0] && hexa_temp[z - 2] != hexa_A[0])
  1182.                                     hexa_temp[z] = hexa_A[0];
  1183.                                 else
  1184.                                     hexa_temp[z] = hexa_A[1];
  1185.                             }
  1186.                             else
  1187.                             {
  1188.                                 if (hexa_temp[1] == hexa_temp[0] && hexa_temp[0] != hexa_A[1])
  1189.                                     hexa_temp[1] = hexa_A[1];
  1190.                                 else
  1191.                                     hexa_temp[1] = hexa_A[2];
  1192.                             }
  1193.                         }
  1194.                     }
  1195.                     else if (hexa_temp[z] == 'B')
  1196.                     {
  1197.                         if (alea > 2)
  1198.                             alea %= 3;
  1199.                         hexa_temp[z] = hexa_B[alea];
  1200.  
  1201.                         if (hexa_temp[z] == hexa_temp[z - 1] || hexa_temp[z] == hexa_temp[z - 2] || hexa_temp[1] == hexa_temp[0])
  1202.                         {
  1203.                             if (hexa_temp[z] == hexa_temp[z - 1] || hexa_temp[z] == hexa_temp[z - 2] && z >= 2)
  1204.                             {
  1205.                                 if (hexa_temp[z - 1] != hexa_B[2] && hexa_temp[z - 2] != hexa_B[2])
  1206.                                     hexa_temp[z] = hexa_B[2];
  1207.                                 else if (hexa_temp[z - 1] != hexa_B[0] && hexa_temp[z - 2] != hexa_B[0])
  1208.                                     hexa_temp[z] = hexa_B[0];
  1209.                                 else
  1210.                                     hexa_temp[z] = hexa_B[1];
  1211.                             }
  1212.                             else
  1213.                             {
  1214.                                 if (hexa_temp[1] == hexa_temp[0] && hexa_temp[0] != hexa_B[1])
  1215.                                     hexa_temp[1] = hexa_B[1];
  1216.                                 else
  1217.                                     hexa_temp[1] = hexa_B[2];
  1218.                             }
  1219.                         }
  1220.                     }
  1221.                     else if (hexa_temp[z] == 'C')
  1222.                     {
  1223.                         if (alea > 2)
  1224.                             alea %= 3;
  1225.                         hexa_temp[z] = hexa_C[alea];
  1226.  
  1227.                         if (hexa_temp[z] == hexa_temp[z - 1] || hexa_temp[z] == hexa_temp[z - 2] || hexa_temp[1] == hexa_temp[0])
  1228.                         {
  1229.                             if (hexa_temp[z] == hexa_temp[z - 1] || hexa_temp[z] == hexa_temp[z - 2] && z >= 2)
  1230.                             {
  1231.                                 if (hexa_temp[z - 1] != hexa_C[2] && hexa_temp[z - 2] != hexa_C[2])
  1232.                                     hexa_temp[z] = hexa_C[2];
  1233.                                 else if (hexa_temp[z - 1] != hexa_C[0] && hexa_temp[z - 2] != hexa_C[0])
  1234.                                     hexa_temp[z] = hexa_C[0];
  1235.                                 else
  1236.                                     hexa_temp[z] = hexa_C[1];
  1237.                             }
  1238.                             else
  1239.                             {
  1240.                                 if (hexa_temp[1] == hexa_temp[0] && hexa_temp[0] != hexa_C[1])
  1241.                                     hexa_temp[1] = hexa_C[1];
  1242.                                 else
  1243.                                     hexa_temp[1] = hexa_C[2];
  1244.                             }
  1245.                         }
  1246.                     }
  1247.                     else if (hexa_temp[z] == 'D')
  1248.                     {
  1249.                         if (alea > 2)
  1250.                             alea %= 3;
  1251.                         hexa_temp[z] = hexa_D[alea];
  1252.  
  1253.                         if (hexa_temp[z] == hexa_temp[z - 1] || hexa_temp[z] == hexa_temp[z - 2] || hexa_temp[1] == hexa_temp[0])
  1254.                         {
  1255.                             if (hexa_temp[z] == hexa_temp[z - 1] || hexa_temp[z] == hexa_temp[z - 2] && z >= 2)
  1256.                             {
  1257.                                 if (hexa_temp[z - 1] != hexa_D[2] && hexa_temp[z - 2] != hexa_D[2])
  1258.                                     hexa_temp[z] = hexa_D[2];
  1259.                                 else if (hexa_temp[z - 1] != hexa_D[0] && hexa_temp[z - 2] != hexa_D[0])
  1260.                                     hexa_temp[z] = hexa_D[0];
  1261.                                 else
  1262.                                     hexa_temp[z] = hexa_D[1];
  1263.                             }
  1264.                             else
  1265.                             {
  1266.                                 if (hexa_temp[1] == hexa_temp[0] && hexa_temp[0] != hexa_D[1])
  1267.                                     hexa_temp[1] = hexa_D[1];
  1268.                                 else
  1269.                                     hexa_temp[1] = hexa_D[2];
  1270.                             }
  1271.                         }
  1272.                     }
  1273.                     else if (hexa_temp[z] == 'E')
  1274.                     {
  1275.                         if (alea > 2)
  1276.                             alea %= 3;
  1277.                         hexa_temp[z] = hexa_E[alea];
  1278.  
  1279.                         if (hexa_temp[z] == hexa_temp[z - 1] || hexa_temp[z] == hexa_temp[z - 2] || hexa_temp[1] == hexa_temp[0])
  1280.                         {
  1281.                             if (hexa_temp[z] == hexa_temp[z - 1] || hexa_temp[z] == hexa_temp[z - 2] && z >= 2)
  1282.                             {
  1283.                                 if (hexa_temp[z - 1] != hexa_E[2] && hexa_temp[z - 2] != hexa_E[2])
  1284.                                     hexa_temp[z] = hexa_E[2];
  1285.                                 else if (hexa_temp[z - 1] != hexa_E[0] && hexa_temp[z - 2] != hexa_E[0])
  1286.                                     hexa_temp[z] = hexa_E[0];
  1287.                                 else
  1288.                                     hexa_temp[z] = hexa_E[1];
  1289.                             }
  1290.                             else
  1291.                             {
  1292.                                 if (hexa_temp[1] == hexa_temp[0] && hexa_temp[0] != hexa_E[1])
  1293.                                     hexa_temp[1] = hexa_E[1];
  1294.                                 else
  1295.                                     hexa_temp[1] = hexa_E[2];
  1296.                             }
  1297.                         }
  1298.                     }
  1299.                     else if (hexa_temp[z] == 'F')
  1300.                     {
  1301.                         if (alea > 2)
  1302.                             alea %= 3;
  1303.                         hexa_temp[z] = hexa_F[alea];
  1304.  
  1305.                         if (hexa_temp[z] == hexa_temp[z - 1] || hexa_temp[z] == hexa_temp[z - 2] || hexa_temp[1] == hexa_temp[0])
  1306.                         {
  1307.                             if (hexa_temp[z] == hexa_temp[z - 1] || hexa_temp[z] == hexa_temp[z - 2] && z >= 2)
  1308.                             {
  1309.                                 if (hexa_temp[z - 1] != hexa_F[2] && hexa_temp[z - 2] != hexa_F[2])
  1310.                                     hexa_temp[z] = hexa_F[2];
  1311.                                 else if (hexa_temp[z - 1] != hexa_F[0] && hexa_temp[z - 2] != hexa_F[0])
  1312.                                     hexa_temp[z] = hexa_F[0];
  1313.                                 else
  1314.                                     hexa_temp[z] = hexa_F[1];
  1315.                             }
  1316.                             else
  1317.                             {
  1318.                                 if (hexa_temp[1] == hexa_temp[0] && hexa_temp[0] != hexa_F[1])
  1319.                                     hexa_temp[1] = hexa_F[1];
  1320.                                 else
  1321.                                     hexa_temp[1] = hexa_F[2];
  1322.                             }
  1323.                         }
  1324.                     }
  1325.                     else
  1326.                     {
  1327.                         if (alea > 13)
  1328.                             alea %= 14;
  1329.                         hexa_temp[z] = hexa_space[alea];
  1330.  
  1331.                         if (hexa_temp[z] == hexa_temp[z - 1] || hexa_temp[z] == hexa_temp[z - 2] || hexa_temp[1] == hexa_temp[0])
  1332.                         {
  1333.                             if (hexa_temp[z] == hexa_temp[z - 1] || hexa_temp[z] == hexa_temp[z - 2] && z >= 2)
  1334.                             {
  1335.                                 if (hexa_temp[z - 1] != hexa_space[2] && hexa_temp[z - 2] != hexa_space[2])
  1336.                                     hexa_temp[z] = hexa_space[2];
  1337.                                 else if (hexa_temp[z - 1] != hexa_space[0] && hexa_temp[z - 2] != hexa_space[0])
  1338.                                     hexa_temp[z] = hexa_space[0];
  1339.                                 else
  1340.                                     hexa_temp[z] = hexa_space[9];
  1341.                             }
  1342.                             else
  1343.                             {
  1344.                                 if (hexa_temp[1] == hexa_temp[0] && hexa_temp[0] != hexa_space[5])
  1345.                                     hexa_temp[1] = hexa_space[5];
  1346.                                 else
  1347.                                     hexa_temp[1] = hexa_space[8];
  1348.                             }
  1349.                         }
  1350.                     }
  1351.                 }
  1352.                 string_random(hexa_temp, 8058, 73, 0);
  1353.                 string_leftRotation(hexa_temp, 69);
  1354.                 subBox(hexa_temp, subtitBox);
  1355.                 strcat(stringToCopy, hexa_temp);
  1356.             }
  1357.         }
  1358.         else if (randResult[x] == 1)
  1359.         {
  1360.             srand(numbTab[54]);
  1361.             for (y = 0; y < lengthOf_subdivision; y++)
  1362.             {
  1363.                 alea = rand();
  1364.  
  1365.                 if (alea > 11)
  1366.                     alea %= 12;
  1367.  
  1368.                 sprintf(string_temp, "%c", morse_prefix[alea]);
  1369.                 strcat(stringToCopy, string_temp);
  1370.                 temp = searchChar(subdivisionsTab[x][y]);
  1371.  
  1372.                 switch (strlen(morse_tab[temp]))
  1373.                 {
  1374.                 case 1:
  1375.                     if (alea > 7)
  1376.                         alea %= 8;
  1377.                     sprintf(string_temp, "%c", morse_length_1[alea]);
  1378.                     strcat(stringToCopy, string_temp);
  1379.  
  1380.                     break;
  1381.  
  1382.                 case 2:
  1383.                     if (alea > 8)
  1384.                         alea %= 9;
  1385.                     sprintf(string_temp, "%c", morse_length_2[alea]);
  1386.                     strcat(stringToCopy, string_temp);
  1387.  
  1388.                     break;
  1389.  
  1390.                 case 3:
  1391.                     if (alea > 8)
  1392.                         alea %= 9;
  1393.                     sprintf(string_temp, "%c", morse_length_3[alea]);
  1394.                     strcat(stringToCopy, string_temp);
  1395.  
  1396.                     break;
  1397.  
  1398.                 case 4:
  1399.                     if (alea > 8)
  1400.                         alea %= 9;
  1401.                     sprintf(string_temp, "%c", morse_length_4[alea]);
  1402.                     strcat(stringToCopy, string_temp);
  1403.  
  1404.                     break;
  1405.  
  1406.                 case 5:
  1407.                     if (alea > 8)
  1408.                         alea %= 9;
  1409.                     sprintf(string_temp, "%c", morse_length_5[alea]);
  1410.                     strcat(stringToCopy, string_temp);
  1411.  
  1412.                     break;
  1413.  
  1414.                 case 6:
  1415.                     if (alea > 8)
  1416.                         alea %= 9;
  1417.                     sprintf(string_temp, "%c", morse_length_6[alea]);
  1418.                     strcat(stringToCopy, string_temp);
  1419.  
  1420.                     break;
  1421.  
  1422.                 case 8:
  1423.                     if (alea > 8)
  1424.                         alea %= 9;
  1425.                     sprintf(string_temp, "%c", morse_length_8[alea]);
  1426.                     strcat(stringToCopy, string_temp);
  1427.  
  1428.                     break;
  1429.  
  1430.                 default:
  1431.                     return 1;
  1432.                 }
  1433.                 for (z = 0; z < strlen(morse_tab[temp]); z++)
  1434.                 {
  1435.                     ////////////////////////////////////////////// Alea
  1436.                     srand(bb);
  1437.                     alea = rand();
  1438.  
  1439.                     if (alea > 30)
  1440.                         alea %= 31;
  1441.  
  1442.                     bb += zz + numbTab[37] + numbTab[62];
  1443.  
  1444.                     if (bb >= (unsigned int)(8 * zz))
  1445.                     {
  1446.                         zz += numbTab[124] + numbTab[55];
  1447.                     }
  1448.                     if (bb >= 2147483647)
  1449.                     {
  1450.                         zz -= (numbTab[96] - 20);
  1451.                         bb -= (unsigned int)(numbTab[64]*numbTab[23]*numbTab[86]*numbTab[58] * 9000);
  1452.                     }
  1453.                     ////////////////////////////////////////////// Alea
  1454.  
  1455.                     if (morse_tab[temp][z] == '.')
  1456.                         morse_final[z] = morse_short[alea];
  1457.                     else
  1458.                         morse_final[z] = morse_long[alea];
  1459.                 }
  1460.                 string_leftRotation(morse_long, 12);
  1461.                 string_random(morse_long, 45, 2563, 0);
  1462.                 string_reverse(morse_long);
  1463.                 string_rightRotation(morse_long, 10);
  1464.  
  1465.                 string_leftRotation(morse_short, 7);
  1466.                 string_random(morse_short, 63854, 963, 0);
  1467.                 string_reverse(morse_short);
  1468.                 string_rightRotation(morse_short, 10);
  1469.  
  1470.                 strcat(stringToCopy, morse_final);
  1471.  
  1472.                 nullString(morse_final, 9);
  1473.             }
  1474.         }
  1475.         else if (randResult[x] == 2)
  1476.         {
  1477.             srand(numbTab[103]);
  1478.             for (y = 0; y < lengthOf_subdivision; y++)
  1479.             {
  1480.                 alea = rand();
  1481.  
  1482.                 if (alea > 11)
  1483.                     alea %= 12;
  1484.  
  1485.                 sprintf(string_temp, "%c", braille_prefix[alea]);
  1486.                 strcat(stringToCopy, string_temp);
  1487.  
  1488.                 temp = searchChar(subdivisionsTab[x][y]);
  1489.  
  1490.                 for (z = 0; z < strlen(braille_tab[temp]); z++)
  1491.                 {
  1492.                     ////////////////////////////////////////////// Alea
  1493.                     srand(bb);
  1494.                     alea = rand();
  1495.  
  1496.                     if (alea > 30)
  1497.                         alea %= 31;
  1498.  
  1499.                     bb += zz + numbTab[46] + numbTab[11];
  1500.  
  1501.                     if (bb >= (unsigned int)(8 * zz))
  1502.                     {
  1503.                         zz += numbTab[25] + numbTab[5];
  1504.                     }
  1505.                     if (bb >= 2147483647)
  1506.                     {
  1507.                         zz -= (numbTab[97] - 20);
  1508.                         bb -= (unsigned int)(numbTab[87]*numbTab[48]*numbTab[13]*numbTab[120] * 9000);
  1509.                     }
  1510.                     ////////////////////////////////////////////// Alea
  1511.  
  1512.                     if (braille_tab[temp][z] == '.')
  1513.                         braille_final[z] = braille_dot[alea];
  1514.                     else
  1515.                         braille_final[z] = braille_void[alea];
  1516.                 }
  1517.                 string_leftRotation(caracters, 10);
  1518.                 string_random(caracters, 78, 1211, 0);
  1519.                 string_reverse(caracters);
  1520.                 string_rightRotation(caracters, 8);
  1521.  
  1522.                 for (w = 0; w < 31; w++)
  1523.                     braille_dot[w] = caracters[w];
  1524.                 braille_dot[31] = '\0';
  1525.                 for (w = 31; w < 62; w++)
  1526.                     braille_void[w - 31] = caracters[w];
  1527.                 braille_void[31] = '\0';
  1528.  
  1529.                 string_leftRotation(braille_dot, 12);
  1530.                 string_random(braille_dot, 45, 2563, 0);
  1531.                 string_reverse(braille_dot);
  1532.                 string_rightRotation(braille_dot, 10);
  1533.  
  1534.                 string_leftRotation(braille_void, 7);
  1535.                 string_random(braille_void, 6854, 963, 0);
  1536.                 string_reverse(braille_void);
  1537.                 string_rightRotation(braille_void, 10);
  1538.  
  1539.                 strcat(stringToCopy, braille_final);
  1540.             }
  1541.         }
  1542.         else if (randResult[x] == 3)
  1543.         {
  1544.             srand(numbTab[40]);
  1545.             for (y = 0; y < lengthOf_subdivision; y++)
  1546.             {
  1547.                 alea = rand();
  1548.  
  1549.                 if (alea > 12)
  1550.                     alea %= 13;
  1551.  
  1552.                 sprintf(string_temp, "%c", ternaire_prefix[alea]);
  1553.                 strcat(stringToCopy, string_temp);
  1554.  
  1555.                 sprintf(ternaire_final, ternaire8bits((subdivisionsTab[x][y]) + numbTab[36] + numbTab[118] + numbTab[27]));
  1556.  
  1557.                 string_random(ternaire_final, 0, numbTab[82], 0);
  1558.                 string_leftRotation(ternaire_final, numbTab[112]);
  1559.                 string_reverse(ternaire_final);
  1560.  
  1561.                 subBox(ternaire_final, subtitBox);
  1562.  
  1563.                 strcat(stringToCopy, ternaire_final);
  1564.             }
  1565.         }
  1566.         else if (randResult[x] == 4)
  1567.         {
  1568.             srand(numbTab[11] + numbTab[23] + numbTab[51]);
  1569.             for (y = 0; y < lengthOf_subdivision; y++)
  1570.             {
  1571.                 alea = rand();
  1572.  
  1573.                 if (alea > 12)
  1574.                     alea %= 13;
  1575.  
  1576.                 sprintf(string_temp, "%c", senaire_prefix[alea]);
  1577.                 strcat(stringToCopy, string_temp);
  1578.  
  1579.                 sprintf(senaire_final, senaire8bits((subdivisionsTab[x][y]) + numbTab[15] + numbTab[11] + numbTab[71] + numbTab[127]));
  1580.  
  1581.                 string_random(senaire_final, 0, numbTab[64], 0);
  1582.                 string_leftRotation(senaire_final, numbTab[125]);
  1583.                 string_reverse(senaire_final);
  1584.  
  1585.                 subBox(senaire_final, subtitBox);
  1586.  
  1587.                 strcat(stringToCopy, senaire_final);
  1588.             }
  1589.         }
  1590.         else
  1591.             return 1;
  1592.     }
  1593.  
  1594.     string_random(stringToCopy, 0, 7895, 0);
  1595.     string_leftRotation(stringToCopy, 25);
  1596.     string_random(stringToCopy, 0, strlen(stringToCopy), 0);
  1597.     string_rightRotation(stringToCopy, 23);
  1598.     string_reverse(stringToCopy);
  1599.     string_random(stringToCopy, 12, strlen(stringToCopy) * 2, 0);
  1600.  
  1601.     for (x = 0; x < numbOf_subdivision; x++)
  1602.         free(subdivisionsTab[x]);
  1603.  
  1604.     free(subdivisionsTab);
  1605.  
  1606.     free(randsTab);
  1607.     free(randResult);
  1608.     free(stringToCopy);
  1609. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement