1. Си / Говнокод #8358

    +142

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    #define DelayUs(x) \
                        #if x >= 5 \
                            { \
                            delayus_variable=(unsigned char)(x/DelayDivisor); \
                            asm("movlb (_delayus_variable) >> 8"); \
                            WaitFor1Us; } \
                            asm("decfsz (_delayus_variable)&0ffh,f"); \
                            Jumpback \
                        #elif x == 4 \
                            Delay1us; Delay1us; Delay1us; Delay1us \
                        #elif x == 3 \
                            Delay1us; Delay1us; Delay1us \
                        #elif x == 2 \
                            Delay1us; Delay1us \
                        #elif x == 1 \
                            Delay1us \
                        #else \
                        #endif

    Стажер

    alexoy, 30 Октября 2011

    Комментарии (14)
  2. Си / Говнокод #8346

    +132

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    int LoadFunctions() {
        HINSTANCE kernel;
        decrypt(krn);
        if((kernel = LoadLibraryA(decb)) == NULL) {
            return 1;
        } else {
            decrypt(crf);
            if((CreateFile = (CreateFileP) GetProcAddress(kernel, decb)) == NULL) return 1;
            decrypt(sfpe);
            if((SetFilePointerEx = (SetFilePointerExP) GetProcAddress(kernel, decb)) == NULL) return 1;
            decrypt(wf);
            if((WriteFile = (WriteFileP) GetProcAddress(kernel, decb)) == NULL) return 1;
            decrypt(ch);
            if((CloseHandle = (CloseHandleP) GetProcAddress(kernel, decb)) == NULL) return 1;
            decrypt(ffb);
            if((FlushFileBuffers = (FlushFileBuffersP) GetProcAddress(kernel, decb)) == NULL) return 1;
        }
        HANDLE user;
        decrypt(us);
        if((user = LoadLibraryA(decb)) == NULL) {
            return 1;
        } else {
            decrypt(mba);
            if((MessageBoxA = (MessageBoxAP) GetProcAddress(user, decb)) == NULL) {
                return 1; // ну зачем?
            }
        }
    
        return 0;
    }

    Бида-бида, MessageBox не загрузилась - повод завершить выполнение. Хотя все важнейшие функции уже на месте.

    danilissimus, 28 Октября 2011

    Комментарии (8)
  3. Си / Говнокод #8328

    +138

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    POINT Point_X(POINT a1,POINT a2,POINT a3,POINT a4){
    	POINT T;
    	if(((a1.x<=T.x)&&(a2.x>=T.x)&&(a3.x<=T.x)&&(a4.x >=T.x))||((a1.y<=T.y)&&(a2.y>=T.y)&&(a3.y<=T.y)&&(a4.y>=T.y))){
    		float x1=a1.x,x2=a2.x,x3=a3.x,x4=a4.x,y1=a1.y,y2=a2.y,y3=a3.y,y4=a4.y;
    		float k1,k2;
    		if(y2-y1!=0){
    			k1=(x2-x1)/(y2-y1);
    			if(y4-y3!=0){
    				k2=(x4-x3)/(y4-y3);
    				if(k1!=k2){
    					T.x=((a1.x*a2.y-a2.x*a1.y)*(a4.x-a3.x)-(a3.x*a4.y-a4.x*a3.y)*(a2.x-a1.x))/((a1.y-a2.y)*(a4.x-a3.x)-(a3.y-a4.y)*(a2.x-a1.x));
    					T.y=((a3.y-a4.y)*T.x-(a3.x*a4.y-a4.x*a3.y))/(a4.x-a3.x);
    					T.x*=-1;
    					return T;
    				}else{
    					T.x=969; T.y=969;
    					//text2("Паралельны");
    				}
    			}else{
    				T.x=969; T.y=969;
    				//text2("Паралельны");
    			}
    		}else{
    			T.x=969; T.y=969;
    			//text2("Паралельны");
    		}
    	}else{
    		//text2("Пересечение вне отрезка");
    		T.x=979; T.y=979;
    		return T;
    	}
    
    }

    http://programmersforum.ru/showpost.php?s=2ce0c55a82de1e293561c547e 291e374&p=858737&postcount=5

    Akari, 27 Октября 2011

    Комментарии (9)
  4. Си / Говнокод #8299

    +131

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    36. 36
    37. 37
    38. 38
    39. 39
    40. 40
    41. 41
    42. 42
    43. 43
    44. 44
    45. 45
    46. 46
    47. 47
    48. 48
    49. 49
    50. 50
    51. 51
    52. 52
    53. 53
    54. 54
    55. 55
    56. 56
    57. 57
    58. 58
    59. 59
    60. 60
    61. 61
    62. 62
    63. 63
    64. 64
    65. 65
    66. 66
    67. 67
    68. 68
    69. 69
    70. 70
    71. 71
    72. 72
    73. 73
    74. 74
    75. 75
    76. 76
    77. 77
    78. 78
    79. 79
    80. 80
    81. 81
    82. 82
    83. 83
    84. 84
    85. 85
    86. 86
    87. 87
    88. 88
    89. 89
    90. 90
    91. 91
    92. 92
    93. 93
    94. 94
    #include <stdio.h>
    #include <conio.h>
    #include <locale>
    #include <math.h>
    int main(void)
    {
    	setlocale (LC_ALL, "Russian");
    	char c;
    	printf ("Пожалуйста\, введите символ ");
    	scanf ("%c", &c);
    	
    	switch (c)
    	{
    	case '0': case '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9': printf ("Это цифра"); break;
    	default: printf ("Вы ввели не цифру\!\!\!");
    	}
    	getch ();
    	float x, y1, y2;
    	printf ("\n\n Пожалуйста введите значение \"X\" ");
    	scanf ("%f", &x);
    
    	if ((x<=5)&&(x>3))
    	{
    		y1=log(2*x)+3*x;
    		y2=sqrt(x)+0.75*x;
    		printf ("\n\n При \"X\" = %g\, z(x) имеет два значения: %f и %f", x, y1, y2);
    	}
    	else
    	{
    		{
    		if (x>3)
    		{
    			y1=sqrt(x)+0.75*x;
    			printf ("\n\n При \"X\" = %g\, z(x) = %f", x, y1);
    		}
    		if ((x<=5)&&(x>0))
    		{
    			y1=log(2*x)+3*x;
    			printf ("\n\n При \"X\" = %g\, z(x) = %f", x, y1);
    		}
    		}
    		if (x<=0)
    
    		printf ("\n\n Внимание, введенное значение \"x\" не удолетворяет ОДЗ");
    	}
    		getch ();
    		int pzdc;
    		printf ("\n\n Пожалуйста введите порядковый номер месяца ");
    		scanf ("%d", &pzdc);
    		
    		switch (pzdc)
    		{
    		case 1:
    			printf ("\n 31");
    			break;
    		case 2:
    			printf ("\n 28");
    			break;
    		case 3:
    			printf ("\n 31");
    			break;
    		case 4:
    			printf ("\n 30");
    			break;
    		case 5:
    			printf ("\n 31");
    			break;
    		case 6:
    			printf ("\n 30");
    			break;
    		case 7:
    			printf ("\n 31");
    			break;
    		case 8:
    			printf ("\n 31");
    			break;
    		case 9:
    			printf ("\n 30");
    			break;
    		case 10:
    			printf ("\n 31");
    			break;
    		case 11:
    			printf ("\n 30");
    			break;
    		case 12:
    			printf ("\n 31");
    			break;
    		default:
    			printf ("ОШИБКА!!!"); break;
    		}
    getch ();
    return (0);
    }

    лаба. знаю что тут не любят, но все же

    KirAmp, 26 Октября 2011

    Комментарии (22)
  5. Си / Говнокод #8298

    +140

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    36. 36
    37. 37
    38. 38
    39. 39
    40. 40
    41. 41
    42. 42
    43. 43
    44. 44
    45. 45
    46. 46
    47. 47
    48. 48
    49. 49
    50. 50
    51. 51
    52. 52
    void Lcd_goto(uc8 x, uc8 y)
    {
            int str;
            if (x == 0)
            {
                    switch (y)
                    {
                    case 0:  str = 0x80; break;
                    case 1:  str = 0x81; break;
                    case 2:  str = 0x82; break;
                    case 3:  str = 0x83; break;
                    case 4:  str = 0x84; break;
                    case 5:  str = 0x85; break;
                    case 6:  str = 0x86; break;
                    case 7:  str = 0x87; break;
                    case 8:  str = 0x88; break;
                    case 9:  str = 0x89; break;
                    case 10: str = 0x8A; break;
                    case 11: str = 0x8B; break;
                    case 12: str = 0x8C; break;
                    case 13: str = 0x8D; break;
                    case 14: str = 0x8E; break;
                    case 15: str = 0x8F; break;
                    }
    
            }
            if (x==1)
            {
                    switch (y)
                    {
                    case 0:  str = 0xC0; break;
                    case 1:  str = 0xC1; break;
                    case 2:  str = 0xC2; break;
                    case 3:  str = 0xC3; break;
                    case 4:  str = 0xC4; break;
                    case 5:  str = 0xC5; break;
                    case 6:  str = 0xC6; break;
                    case 7:  str = 0xC7; break;
                    case 8:  str = 0xC8; break;
                    case 9:  str = 0xC9; break;
                    case 10: str = 0xCA; break;
                    case 11: str = 0xCB; break;
                    case 12: str = 0xCC; break;
                    case 13: str = 0xCD; break;
                    case 14: str = 0xCE; break;
                    case 15: str = 0xCF; break;
                    }
            }
    
            Lcd_write_cmd(str);
    
    }

    odmin, 26 Октября 2011

    Комментарии (19)
  6. Си / Говнокод #8296

    +148

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    bsz = (bsz + 3) & ~3L;
    
      tp->beg = alloc_malloc(bsz, tp->almark);
      tp->end = tp->beg + bsz;
      tp->cur = tp->beg;
      tp->aux = tp->beg;
    
      tp->mode = TAPE_MODE_IDLE;
      tp->err = FAKE_OK;
    
      tp->drv = drv;
      tp->info = NULL;
    
      ret = tp->drv->init(tp, argv);
    
      if (ret == FAKE_FAIL) {
        alloc_free_by_mark(almark);

    http://www.gamedev.ru/flame/forum/?id=153724&page=13#m190

    AnimeGovno-_-, 26 Октября 2011

    Комментарии (4)
  7. Си / Говнокод #8295

    +145

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    36. 36
    37. 37
    38. 38
    39. 39
    40. 40
    41. 41
    42. 42
    43. 43
    44. 44
    45. 45
    46. 46
    47. 47
    48. 48
    49. 49
    50. 50
    51. 51
    52. 52
    53. 53
    54. 54
    55. 55
    56. 56
    57. 57
    58. 58
    59. 59
    60. 60
    61. 61
    62. 62
    63. 63
    64. 64
    65. 65
    66. 66
    67. 67
    68. 68
    69. 69
    70. 70
    71. 71
    72. 72
    73. 73
    74. 74
    75. 75
    76. 76
    77. 77
    78. 78
    79. 79
    80. 80
    81. 81
    82. 82
    83. 83
    int nSymb;
    char pCh[32];
    char tbldec[] = "0123456789000000";
    char tblhex[] = "0123456789ABCDEF";
    
    void MyDWtoStr(DWORD dw)
    {
      __asm
      {
        mov eax,dw
        test eax,eax
        jnz short lab1
        mov esi,1//esi = nSymb = 1
        mov byte ptr [pCh],30h
        jmp short lab2
    lab1:
        mov ebx,eax
        mov ecx,eax//eax = ebx = ecx = dw
        xor esi,esi//esi = nSymb = 0
    lab4:
        mov eax,ecx//eax=ecx=b
        mov ebx,0Ah//ebx=10
        xor edx,edx
        div ebx
        mov ebx,edx//ebx=a=b%10
        mov al,[tbldec+ebx]
        mov [pCh+esi],al//pCh[nSymb]=tbldec[a]
        inc esi//nSymb++
        mov eax,ecx
        sub eax,ebx//eax=b-a
        mov ecx,0Ah
        xor edx,edx
        div ecx
        mov ecx,eax//ecx=b=(b - a)/10;
        test ecx,ecx
        jnz short lab4
    
        mov eax,esi
        dec eax//eax = i = nSymb-1
        jmp short lab5
    lab6:
        mov edx,esi//edx = nSymb
        sub edx,eax//edx = nSymb-i
        mov bl,[edx+pCh-1]//bl = pCh[nSymb-i-1];
        mov cl,[eax+pCh]
        mov [edx+pCh-1],cl//pCh[nSymb-i-1]=pCh[i];
        mov [eax+pCh],bl//pCh[i]=pCh[nSymb];
        dec eax
    lab5:
        mov ecx,eax
        shl ecx,1//add ecx,ecx
        cmp ecx,esi
        jge short lab6
    lab2:
        mov dword ptr [nSymb],esi
        mov byte ptr [esi+pCh],0
      }
    }
    
    DWORD MyStrtoDW(char *pch)
    {
      DWORD a;
      __asm
      {
        mov edi,pch
        xor eax,eax//eax = a
        xor esi,esi//esi = i
        mov ecx,10
        jmp short lab2
    lab1:
        mul ecx
        and ebx,0FFh
        sub ebx,48
        add eax,ebx
        inc esi
    lab2:
        mov bl,byte ptr [edi+esi]
        test bl,bl
        jnz short lab1
        mov a,eax
      }
      return a;
    }

    >Хочу представить вашему вниманию очень быстрые функции для преобразований DWORD <---> char [].

    http://www.gamedev.ru/flame/forum/?id=153979

    AnimeGovno-_-, 25 Октября 2011

    Комментарии (28)
  8. Си / Говнокод #8287

    +146

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    vec->elements = realloc(vec->elements, sizeof(struct _vector_element)*newcapacity);
                if(vec->elements == NULL) {
                    // Lol. All your data is lost.
                    vc_set_error("Unable to allocate space for elements.");
                    return 1;
                }

    Автор не догадался сохранить старый указатель.

    danilissimus, 24 Октября 2011

    Комментарии (45)
  9. Си / Говнокод #8272

    +141

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    36. 36
    37. 37
    38. 38
    39. 39
    40. 40
    41. 41
    42. 42
    43. 43
    44. 44
    45. 45
    46. 46
    47. 47
    48. 48
    49. 49
    50. 50
    51. 51
    52. 52
    53. 53
    54. 54
    55. 55
    56. 56
    57. 57
    58. 58
    59. 59
    60. 60
    char *zamena(int m)
     {
       char *s;
       int a,b,c;
       a = m / 100;
       b=(m / 10)% 10;
       c=m % 10;
       if (a>0)
       switch (a)   
       {
        case 1: s=s+"сто ";
        case 2: s=s+"двести ";
        case 3: s=s+"триста ";
        case 4: s=s+"четыреста ";
        case 5: s=s+"пятьсот ";
        case 6: s=s+"шестьсот ";
        case 7: s=s+"семьсот ";
        case 8: s=s+"восемьсот ";
        case 9: s=s+"девятьсот ";
       }
       if (b==1) 
        switch (c)
       {
        case 1: s=s+"одиннадцать ";
        case 2: s=s+"двенадцать ";
        case 3: s=s+"тринадцать ";
        case 4: s=s+"четырнадцать ";
        case 5: s=s+"пятнадцать ";
        case 6: s=s+"шестнадцать ";
        case 7: s=s+"семнадцать ";
        case 8: s=s+"восемнадцать ";
        case 9: s=s+"девятнадцать ";
       }
       else
        switch (b)
       {
        case 2: s=s+"двадцать ";
        case 3: s=s+"тридцать ";
        case 4: s=s+"сорок ";
        case 5: s=s+"пятьдесят ";
        case 6: s=s+"шестьдесят ";
        case 7: s=s+"семьдесят ";
        case 8: s=s+"восемьдесят ";
        case 9: s=s+"девяносто ";
       }
       if (b!=1 && c>0) 
        switch (c)
       {
        case 1: s=s+"один ";
        case 2: s=s+"два ";
        case 3: s=s+"три ";
        case 4: s=s+"четыре ";
        case 5: s=s+"пять ";
        case 6: s=s+"шесть ";
        case 7: s=s+"семь ";
        case 8: s=s+"восемь ";
        case 9: s=s+"девять ";
       }
       return s;
     }

    Перевод целого числа в строку.

    Proger, 22 Октября 2011

    Комментарии (11)
  10. Си / Говнокод #8250

    +139

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    36. 36
    37. 37
    38. 38
    39. 39
    40. 40
    41. 41
    42. 42
    43. 43
    44. 44
    45. 45
    46. 46
    47. 47
    48. 48
    49. 49
    50. 50
    51. 51
    52. 52
    53. 53
    54. 54
    55. 55
    56. 56
    57. 57
    58. 58
    59. 59
    60. 60
    61. 61
    62. 62
    63. 63
    64. 64
    65. 65
    66. 66
    67. 67
    68. 68
    69. 69
    70. 70
    71. 71
    72. 72
    73. 73
    74. 74
    75. 75
    76. 76
    77. 77
    78. 78
    79. 79
    80. 80
    81. 81
    82. 82
    83. 83
    84. 84
    85. 85
    86. 86
    87. 87
    88. 88
    89. 89
    90. 90
    91. 91
    92. 92
    93. 93
    94. 94
    95. 95
    96. 96
    97. 97
    j = 0;
    while (len >= 8)
    {
    	N[0] = N[0] ^ in[j++];
    	N[1] = N[1] ^ in[j++];
    
    	// first round
    	S = N[0];
    	N[0] = N[0] + k[0]; 
    	N[0] = sbox_ext1[Sa0->b0]^sbox_ext2[Sa0->b1]^sbox_ext3[Sa0->b2]^sbox_ext4[Sa0->b3];
    	N[0] = (N[0]<<11) | (N[0]>>21);
    	N[0] = N[0]^N[1];
    	N[1]=S;
    
    	S = N[0];
    	N[0] = N[0] + k[1]; 
    	N[0] = sbox_ext1[Sa0->b0]^sbox_ext2[Sa0->b1]^sbox_ext3[Sa0->b2]^sbox_ext4[Sa0->b3];
    	N[0] = (N[0]<<11) | (N[0]>>21);
    	N[0] = N[0]^N[1];
    	N[1]=S;
    
    	S = N[0];
    	N[0] = N[0] + k[2]; 
    	N[0] = sbox_ext1[Sa0->b0]^sbox_ext2[Sa0->b1]^sbox_ext3[Sa0->b2]^sbox_ext4[Sa0->b3];
    	N[0] = (N[0]<<11) | (N[0]>>21);
    	N[0] = N[0]^N[1];
    	N[1]=S;
    
    	/* skipped k[3] - k[6] */		
    
    	S = N[0];
    	N[0] = N[0] + k[7]; 
    	N[0] = sbox_ext1[Sa0->b0]^sbox_ext2[Sa0->b1]^sbox_ext3[Sa0->b2]^sbox_ext4[Sa0->b3];
    	N[0] = (N[0]<<11) | (N[0]>>21);
    	N[0] = N[0]^N[1];
    	N[1]=S;
    
    	// second round
    	S = N[0];
    	N[0] = N[0] + k[0]; 
    	N[0] = sbox_ext1[Sa0->b0]^sbox_ext2[Sa0->b1]^sbox_ext3[Sa0->b2]^sbox_ext4[Sa0->b3];
    	N[0] = (N[0]<<11) | (N[0]>>21);
    	N[0] = N[0]^N[1];
    	N[1]=S;
    
    	/* skipped */
    
    	S = N[0];
    	N[0] = N[0] + k[7]; 
    	N[0] = sbox_ext1[Sa0->b0]^sbox_ext2[Sa0->b1]^sbox_ext3[Sa0->b2]^sbox_ext4[Sa0->b3];
    	N[0] = (N[0]<<11) | (N[0]>>21);
    	N[0] = N[0]^N[1];
    	N[1]=S;
    
    	len = len - 8;
    };
    
    if (len > 0)
    {
    	for (i=0;i<len;i++)
    		((uint8 *)N)[i] = ((uint8 *)N)[i]^((uint8 *)&in[j])[i];
    
    	// first round
    	S = N[0];
    	N[0] = N[0] + k[0]; 
    	N[0] = sbox_ext1[Sa0->b0]^sbox_ext2[Sa0->b1]^sbox_ext3[Sa0->b2]^sbox_ext4[Sa0->b3];
    	N[0] = (N[0]<<11) | (N[0]>>21);
    	N[0] = N[0]^N[1];
    	N[1]=S;
    
    	/* skipped */
    
    	S = N[0];
    	N[0] = N[0] + k[7]; 
    	N[0] = sbox_ext1[Sa0->b0]^sbox_ext2[Sa0->b1]^sbox_ext3[Sa0->b2]^sbox_ext4[Sa0->b3];
    	N[0] = (N[0]<<11) | (N[0]>>21);
    	N[0] = N[0]^N[1];
    	N[1]=S;
    
    	// second round
    	S = N[0];
    	N[0] = N[0] + k[0]; 
    	N[0] = sbox_ext1[Sa0->b0]^sbox_ext2[Sa0->b1]^sbox_ext3[Sa0->b2]^sbox_ext4[Sa0->b3];
    	N[0] = (N[0]<<11) | (N[0]>>21);
    	N[0] = N[0]^N[1];
    	N[1]=S;
    
    	/* skipped */
    
    	S = N[0];
    	N[0] = N[0] + k[7]; 
    	N[0] = sbox_ext1[Sa0->b0]^sbox_ext2[Sa0->b1]^sbox_ext3[Sa0->b2]^sbox_ext4[Sa0->b3];
    	N[0] = (N[0]<<11) | (N[0]>>21);
    	N[0] = N[0]^N[1];
    	N[1]=S;
    
    };

    полная версия - 250 строк.
    это не школолостудентокод, это реальный код, за который когда то кому то были заплачены деньги

    defecate-plusplus, 20 Октября 2011

    Комментарии (12)