Advertisement
Guest User

Untitled

a guest
Nov 13th, 2018
127
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. .intel_syntax
  2. _DATA   SEGMENT
  3. magic:
  4.         .word   145
  5.         .word   69
  6.         .word   25
  7.         .word   108
  8.         .word   91
  9.         .word   13
  10.         .word   88
  11.         .word   107
  12.         .word   51
  13.         .word   12
  14.         .word   33
  15.         .word   149
  16.         .word   54
  17.         .word   135
  18.         .word   151
  19.         .word   104
  20.         .word   46
  21.         .word   109
  22.         .word   83
  23.         .word   8
  24.         .word   50
  25.         .word   117
  26.         .word   110
  27.         .word   153
  28.         .word   37
  29.         .word   106
  30.         .word   30
  31.         .word   163
  32.         .word   82
  33.         .word   49
  34.         .word   129
  35.         .word   15
  36.         .word   32
  37.         .word   98
  38.         .word   16
  39.         .word   164
  40.         .word   138
  41.         .word   36
  42.         .word   142
  43.         .word   45
  44.         .word   136
  45.         .word   75
  46.         .word   101
  47.         .word   133
  48.         .word   18
  49.         .word   131
  50.         .word   99
  51.         .word   120
  52.         .word   105
  53.         .word   48
  54.         .word   43
  55.         .word   89
  56.         .word   28
  57.         .word   141
  58.         .word   64
  59.         .word   78
  60.         .word   93
  61.         .word   63
  62.         .word   150
  63.         .word   11
  64.         .word   84
  65.         .word   29
  66.         .word   9
  67.         .word   76
  68.         .word   57
  69.         .word   147
  70.         .word   128
  71.         .word   26
  72.         .word   157
  73.         .word   90
  74.         .word   47
  75.         .word   166
  76.         .word   20
  77.         .word   34
  78.         .word   66
  79.         .word   124
  80.         .word   121
  81.         .word   103
  82.         .word   160
  83.         .word   139
  84.         .word   155
  85.         .word   113
  86.         .word   74
  87.         .word   123
  88.         .word   4
  89.         .word   31
  90.         .word   152
  91.         .word   19
  92.         .word   118
  93.         .word   61
  94.         .word   146
  95.         .word   77
  96.         .word   100
  97.         .word   70
  98.         .word   39
  99.         .word   143
  100.         .word   65
  101.         .word   127
  102.         .word   23
  103.         .word   42
  104.         .word   56
  105.         .word   114
  106.         .word   92
  107.         .word   3
  108.         .word   14
  109.         .word   10
  110.         .word   71
  111.         .word   137
  112.         .word   165
  113.         .word   27
  114.         .word   158
  115.         .word   125
  116.         .word   7
  117.         .word   38
  118.         .word   134
  119.         .word   55
  120.         .word   167
  121.         .word   130
  122.         .word   161
  123.         .word   126
  124.         .word   140
  125.         .word   59
  126.         .word   72
  127.         .word   112
  128.         .word   44
  129.         .word   119
  130.         .word   115
  131.         .word   86
  132.         .word   2
  133.         .word   58
  134.         .word   24
  135.         .word   1
  136.         .word   6
  137.         .word   144
  138.         .word   53
  139.         .word   94
  140.         .word   21
  141.         .word   41
  142.         .word   156
  143.         .word   159
  144.         .word   148
  145.         .word   95
  146.         .word   5
  147.         .word   67
  148.         .word   79
  149.         .word   111
  150.         .word   17
  151.         .word   154
  152.         .word   40
  153.         .word   35
  154.         .word   122
  155.         .word   81
  156.         .word   132
  157.         .word   80
  158.         .word   68
  159.         .word   102
  160.         .word   60
  161.         .word   52
  162.         .word   85
  163.         .word   116
  164.         .word   0
  165.         .word   97
  166.         .word   96
  167.         .word   62
  168.         .word   87
  169.         .word   162
  170.         .word   22
  171.         .word   73
  172. flag:
  173.         .byte   23
  174.         .byte   25
  175.         .byte   -5
  176.         .byte   47
  177.         .byte   -81
  178.         .byte   45
  179.         .byte   99
  180.         .byte   -43
  181.         .byte   -109
  182.         .byte   81
  183.         .byte   -58
  184.         .byte   61
  185.         .byte   57
  186.         .byte   -47
  187.         .byte   -92
  188.         .byte   -105
  189.         .byte   -102
  190.         .byte   1
  191.         .byte   -52
  192.         .byte   126
  193.         .byte   109
  194. _DATA   ENDS
  195.  
  196. _s$ = 8                                       ; size = 4
  197. _dest$ = 12                                   ; size = 4
  198. void f(unsigned char const *,char *) PROC                                    ; f, COMDAT
  199.         mov     edx, DWORD PTR [esp+4]
  200.         xor     ecx, ecx
  201.         push    ebx
  202.         mov     ebx, DWORD PTR [esp + 12]
  203.         push    esi
  204.         cmp     BYTE PTR [edx], cl
  205.         je      SHORT $LN3@f
  206.         mov     esi, ebx
  207.         mov     eax, edx
  208.         sub     esi, edx
  209. $LL4@f:
  210.         mov     BYTE PTR [esi+eax], 0
  211.         lea     eax, DWORD PTR [eax+1]
  212.         inc     ecx
  213.         cmp     BYTE PTR [eax], 0
  214.         jne     SHORT $LL4@f
  215. $LN3@f:
  216.         mov     BYTE PTR [ecx+ebx], 0
  217.         xor     esi, esi
  218.         cmp     BYTE PTR [edx], 0
  219.         je      SHORT $LN6@f
  220.         push    edi
  221.         xor     edi, edi
  222. $LL7@f:
  223.         movzx   ecx, WORD PTR unsigned short * magic[esi*2]
  224.         mov     eax, ecx
  225.         and     cl, 7
  226.         shr     eax, 3
  227.         mov     eax, BYTE PTR [eax+edx]
  228.         shr     eax, cl
  229.         mov     ecx, esi
  230.         and     eax, 1
  231.         and     ecx, 7
  232.         shl     eax, cl
  233.         inc     esi
  234.         or      BYTE PTR [edi+ebx], al
  235.         mov     edi, esi
  236.         shr     edi, 3
  237.         cmp     BYTE PTR [edi+edx], 0
  238.         jne     SHORT $LL7@f
  239.         pop     edi
  240. $LN6@f:
  241.         pop     esi
  242.         pop     ebx
  243.         ret     0
  244. void f(unsigned char const *,char *) ENDP                                    ; f
  245.  
  246. _buf$ = -256                                            ; size = 256
  247. _s$ = 8                                       ; size = 4
  248. int check(char const *) PROC                             ; check, COMDAT
  249.         sub     esp, 256                      ; 00000100H
  250.         lea     eax, DWORD PTR _buf$[esp+256]
  251.         push    esi
  252.         push    eax
  253.         push    DWORD PTR _s$[esp+260]
  254.         mov     esi, OFFSET char * flag      ; flag
  255.         call    void f(char const *,char *)               ; f
  256.         add     esp, 8
  257.         lea     ecx, DWORD PTR _buf$[esp+260]
  258.         cmp     BYTE PTR char * flag, 0
  259.         je      SHORT $LN3@check
  260.         npad    4
  261. $LL2@check:
  262.         mov     dl, BYTE PTR [ecx]
  263.         test    dl, dl
  264.         je      SHORT $LN3@check
  265.         mov     al, BYTE PTR [esi]
  266.         inc     ecx
  267.         inc     esi
  268.         cmp     al, dl
  269.         jne     SHORT $LN6@check
  270.         cmp     BYTE PTR [esi], 0
  271.         jne     SHORT $LL2@check
  272.         jmp     SHORT $LN12@check
  273. $LN3@check:
  274.         cmp     BYTE PTR [esi], 0
  275.         jne     SHORT $LN6@check
  276. $LN12@check:
  277.         cmp     BYTE PTR [ecx], 0
  278.         jne     SHORT $LN6@check
  279.         mov     eax, 1
  280.         pop     esi
  281.         add     esp, 256                      ; 00000100H
  282.         ret     0
  283. $LN6@check:
  284.         xor     eax, eax
  285.         pop     esi
  286.         add     esp, 256                      ; 00000100H
  287.         ret     0
  288. int check(char const *) ENDP                             ; check
  289.  
  290. _argc$ = 8                                          ; size = 4
  291. _argv$ = 12                                   ; size = 4
  292. _main   PROC                                      ; COMDAT
  293.         mov     eax, DWORD PTR _argv$[esp-4]
  294.         push    DWORD PTR [eax+4]
  295.         call    int check(char const *)                        ; check
  296.         add     esp, 4
  297.         ret     0
  298. _main   ENDP
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement