1. Assembler / Говнокод #4024

    +221

    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
    invoke	CreateFileA,401190h,0C0000000h,3,0,3,80h,0
    	CMP EAX,-1
    	je access
    	mov DWORD PTR SS:EBP-4,eax
    	invoke GetFileSize,DWORD PTR SS:EBP-4,0
    	OR EAX,EAX
    	je file_size
    	MOV DWORD PTR ds:401270h,EAX
    	invoke	GlobalAlloc,40h,eax
    	OR EAX,EAX
    	je error_mem
    	mov DWORD PTR SS:401300h,eax
    	push 0
    	push 401060h
    	push DWORD PTR ss:401270h
    	PUSH DWORD PTR SS:401300h
    	PUSH DWORD PTR SS:EBP-4
    	invoke ReadFile
    	OR EAX,EAX
    	je error_read
    	jmp crypt
    .............
    	 invoke EnableWindow,[hwnd],0
    	 cmp DWORD PTR DS:dddd,4Ch
    	 je  get_open
    	 mov	DWORD PTR DS:dddd,4Ch
    	 MOV	DWORD PTR DS:dddd+12,gameexe
    	 MOV	DWORD PTR DS:dddd+44,g2e
    	 MOV	DWORD PTR DS:dddd+52, OFN_FILEMUSTEXIST + OFN_PATHMUSTEXIST + OFN_LONGNAMES + OFN_EXPLORER + \
    						OFN_HIDEREADONLY
    	 MOV	DWORD PTR DS:dddd+28,dddd+100
    	 MOV	DWORD PTR DS:dddd+32,104h
    	 MOV	DWORD PTR DS:dddd+48,alawar
           get_open:
    	 PUSH	dddd
    .............
    dddd:

    нашёл сорц вот такой на фасме О_о

    Xekep, 18 Августа 2010

    Комментарии (5)
  2. Assembler / Говнокод #3989

    +237

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    mov ebx,eax
    xor eax,ebx
    mov eax,0
    cmp eax,ebx
    je metka1

    Xekep, 15 Августа 2010

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

    +231

    1. 1
    2. 2
    3. 3
    4. 4
    cmp [wparam],BN_CLICKED shl 16 + ID_HOTKEY
            je .sethotkey
            jmp .processed
    .sethotkey:

    O_o

    Xekep, 15 Августа 2010

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

    +251

    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
    use32
    kernel:
      mov ax,0x8
      mov es,ax
      mov ds,ax
      mov ss,ax
      mov esp,0x10000
      
      
      macro SetPixel x,y
      {
        mov ebx,x
        mov eax,y
        call GSetPixel
      }
      
      mov esi,0xA0000
      xor ecx,ecx
      @@:
      mov eax,dword[charH+ecx*4]
      mov dword[esi],eax
      add esi,320
      inc ecx
      cmp ecx,7
      jb @b
      
      mov esi,0xA0006
      xor ecx,ecx
      @@:
      mov eax,dword[charE+ecx*4]
      mov dword[esi],eax
      add esi,320
      inc ecx
      cmp ecx,7
      jb @b
      
      mov esi,0xA000C
      xor ecx,ecx
      @@:
      mov eax,dword[charL+ecx*4]
      mov dword[esi],eax
      add esi,320
      inc ecx
      cmp ecx,7
      jb @b
      
      mov esi,0xA0012
      xor ecx,ecx
      @@:
      mov eax,dword[charL+ecx*4]
      mov dword[esi],eax
      add esi,320
      inc ecx
      cmp ecx,7
      jb @b
      
      mov esi,0xA0018
      xor ecx,ecx
      @@:
      mov eax,dword[charO+ecx*4]
      mov dword[esi],eax
      add esi,320
      inc ecx
      cmp ecx,7
      jb @b
      
      jmp $
      
    charH dd 0x0F00000F
          dd 0x0F00000F
          dd 0x0F00000F
          dd 0x0F0F0F0F
          dd 0x0F00000F
          dd 0x0F00000F
          dd 0x0F00000F
    charE dd 0x0F0F0F0F
          dd 0x0000000F
          dd 0x0000000F
          dd 0x0F0F0F0F
          dd 0x0000000F
          dd 0x0000000F
          dd 0x0F0F0F0F
    charL dd 0x0000000F
          dd 0x0000000F
          dd 0x0000000F
          dd 0x0000000F
          dd 0x0000000F
          dd 0x0000000F
          dd 0x0F0F0F0F
    charO dd 0x000F0F00
          dd 0x0F00000F
          dd 0x0F00000F
          dd 0x0F00000F
          dd 0x0F00000F
          dd 0x0F00000F
          dd 0x000F0F00

    Раскопал в старых файлах. Выводит на экран незамысловатое слово HELLO
    На World у меня бы одного бут-сектора не хватило.

    Ivan0x32, 24 Июня 2010

    Комментарии (40)
  5. Assembler / Говнокод #3500

    +229

    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
    ;uint64_t foo(uint32_t x, uint64_t y) { return x*y; }
    
    sub esp, 0×8
    mov edx, [esp+0x14]
    mov ecx, [esp+0xc]
    mov eax, [esp+0x10]
    mov [esp+0x4], esi
    mov esi, edx
    imul esi, ecx
    mul ecx
    mov [esp], ebx
    mov ebx, [esp]
    add esi, edx
    mov edx, esi
    mov esi, [esp+0x4]
    add esp, 0×8
    ret

    оптимизированое умножение - gcc 4.2.4

    3.14159265, 17 Июня 2010

    Комментарии (44)
  6. Assembler / Говнокод #3271

    +208

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    XOR  EBX,EBX
    MOV ECX,DWORD PTR SS:[EBP-168]
    MOV DWORD PTR SS:[EBP-168],ECX
    CMP EBX,DWORD PTR SS:[EBP-168]
    JG    ...

    govnokod3r, 19 Мая 2010

    Комментарии (156)
  7. Assembler / Говнокод #3194

    +225

    1. 1
    2. 2
    fstp qword [tmp]
    fild qword [tmp]

    суровое округление через память

    3.14159265, 11 Мая 2010

    Комментарии (26)
  8. Assembler / Говнокод #3179

    +217

    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
    mov ebx, [sKey]
                                  mov ecx, 31
    
                                  l9:
                                  ;----------loop------------
                                  	fprem
    	                        shr ebx,1
                                  	jnc if9
    			.......
                                  	if9:
                                  	fmul st0,st0
                                  ;----------loop------------              
                                  loop l9

    реабилитируюсь за пост несвежего, но смешного говна немного раньше

    3.14159265, 07 Мая 2010

    Комментарии (61)
  9. Assembler / Говнокод #2617

    +260.9

    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
    7855BD60 55               push        ebp  
    7855BD61 8B EC            mov         ebp,esp 
    7855BD63 56               push        esi  
    7855BD64 33 C0            xor         eax,eax 
    7855BD66 50               push        eax  
    7855BD67 50               push        eax  
    7855BD68 50               push        eax  
    7855BD69 50               push        eax  
    7855BD6A 50               push        eax  
    7855BD6B 50               push        eax  
    7855BD6C 50               push        eax  
    7855BD6D 50               push        eax  
    7855BD6E 8B 55 0C         mov         edx,dword ptr [ebp+0Ch] 
    7855BD71 8D 49 00         lea         ecx,[ecx] 
    7855BD74 8A 02            mov         al,byte ptr [edx] 
    7855BD76 0A C0            or          al,al 
    7855BD78 74 09            je          7855BD83 
    7855BD7A 83 C2 01         add         edx,1 
    7855BD7D 0F AB 04 24      bts         dword ptr [esp],eax 
    7855BD81 EB F1            jmp         7855BD74 
    7855BD83 8B 75 08         mov         esi,dword ptr [ebp+8] 
    7855BD86 8B FF            mov         edi,edi 
    7855BD88 8A 06            mov         al,byte ptr [esi] 
    7855BD8A 0A C0            or          al,al 
    7855BD8C 74 0C            je          7855BD9A 
    7855BD8E 83 C6 01         add         esi,1 
    7855BD91 0F A3 04 24      bt          dword ptr [esp],eax 
    7855BD95 73 F1            jae         7855BD88 
    7855BD97 8D 46 FF         lea         eax,[esi-1] 
    7855BD9A 83 C4 20         add         esp,20h 
    7855BD9D 5E               pop         esi  
    7855BD9E C9               leave            
    7855BD9F C3               ret

    чудеса оптимизации

    GovnocoderJr, 14 Февраля 2010

    Комментарии (30)
  10. Assembler / Говнокод #2430

    +246.7

    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
    proc mltcoef
              push ecx
              xor ecx,ecx
              xor edx,edx
              xor ebx,ebx
              mov eax,dword[coef+edx]
              _b:
              add [coef+edx],eax
              jc _c
              _e:
              cmp ecx,9
              jne _b
              inc ecx
    
              _c
              push edx
              _d
              add edx,4
              add [coef+edx],1
              jc _d
              pop edx
              jmp _e
              pop ecx
              ret
              endp

    Пока я писалвысирал эту НЁБ, я уже забыл, зачем оно было нужно.

    Leo_ня, 18 Января 2010

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