The Design and Implementation of the FreeBSD Operating System, Second Edition
Now available: The Design and Implementation of the FreeBSD Operating System (Second Edition)


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]

FreeBSD/Linux Kernel Cross Reference
sys/crypto/openssl/i386/rc4-586.S

Version: -  FREEBSD  -  FREEBSD-13-STABLE  -  FREEBSD-13-0  -  FREEBSD-12-STABLE  -  FREEBSD-12-0  -  FREEBSD-11-STABLE  -  FREEBSD-11-0  -  FREEBSD-10-STABLE  -  FREEBSD-10-0  -  FREEBSD-9-STABLE  -  FREEBSD-9-0  -  FREEBSD-8-STABLE  -  FREEBSD-8-0  -  FREEBSD-7-STABLE  -  FREEBSD-7-0  -  FREEBSD-6-STABLE  -  FREEBSD-6-0  -  FREEBSD-5-STABLE  -  FREEBSD-5-0  -  FREEBSD-4-STABLE  -  FREEBSD-3-STABLE  -  FREEBSD22  -  l41  -  OPENBSD  -  linux-2.6  -  MK84  -  PLAN9  -  xnu-8792 
SearchContext: -  none  -  3  -  10 

    1 /* $FreeBSD$ */
    2 /* Do not modify. This file is auto-generated from rc4-586.pl. */
    3 #ifdef PIC
    4 .text
    5 .globl  RC4
    6 .type   RC4,@function
    7 .align  16
    8 RC4:
    9 .L_RC4_begin:
   10         pushl   %ebp
   11         pushl   %ebx
   12         pushl   %esi
   13         pushl   %edi
   14         movl    20(%esp),%edi
   15         movl    24(%esp),%edx
   16         movl    28(%esp),%esi
   17         movl    32(%esp),%ebp
   18         xorl    %eax,%eax
   19         xorl    %ebx,%ebx
   20         cmpl    $0,%edx
   21         je      .L000abort
   22         movb    (%edi),%al
   23         movb    4(%edi),%bl
   24         addl    $8,%edi
   25         leal    (%esi,%edx,1),%ecx
   26         subl    %esi,%ebp
   27         movl    %ecx,24(%esp)
   28         incb    %al
   29         cmpl    $-1,256(%edi)
   30         je      .L001RC4_CHAR
   31         movl    (%edi,%eax,4),%ecx
   32         andl    $-4,%edx
   33         jz      .L002loop1
   34         movl    %ebp,32(%esp)
   35         testl   $-8,%edx
   36         jz      .L003go4loop4
   37         call    .L004PIC_me_up
   38 .L004PIC_me_up:
   39         popl    %ebp
   40         leal    OPENSSL_ia32cap_P-.L004PIC_me_up(%ebp),%ebp
   41         btl     $26,(%ebp)
   42         jnc     .L003go4loop4
   43         movl    32(%esp),%ebp
   44         andl    $-8,%edx
   45         leal    -8(%esi,%edx,1),%edx
   46         movl    %edx,-4(%edi)
   47         addb    %cl,%bl
   48         movl    (%edi,%ebx,4),%edx
   49         movl    %ecx,(%edi,%ebx,4)
   50         movl    %edx,(%edi,%eax,4)
   51         incl    %eax
   52         addl    %ecx,%edx
   53         movzbl  %al,%eax
   54         movzbl  %dl,%edx
   55         movq    (%esi),%mm0
   56         movl    (%edi,%eax,4),%ecx
   57         movd    (%edi,%edx,4),%mm2
   58         jmp     .L005loop_mmx_enter
   59 .align  16
   60 .L006loop_mmx:
   61         addb    %cl,%bl
   62         psllq   $56,%mm1
   63         movl    (%edi,%ebx,4),%edx
   64         movl    %ecx,(%edi,%ebx,4)
   65         movl    %edx,(%edi,%eax,4)
   66         incl    %eax
   67         addl    %ecx,%edx
   68         movzbl  %al,%eax
   69         movzbl  %dl,%edx
   70         pxor    %mm1,%mm2
   71         movq    (%esi),%mm0
   72         movq    %mm2,-8(%ebp,%esi,1)
   73         movl    (%edi,%eax,4),%ecx
   74         movd    (%edi,%edx,4),%mm2
   75 .L005loop_mmx_enter:
   76         addb    %cl,%bl
   77         movl    (%edi,%ebx,4),%edx
   78         movl    %ecx,(%edi,%ebx,4)
   79         movl    %edx,(%edi,%eax,4)
   80         incl    %eax
   81         addl    %ecx,%edx
   82         movzbl  %al,%eax
   83         movzbl  %dl,%edx
   84         pxor    %mm0,%mm2
   85         movl    (%edi,%eax,4),%ecx
   86         movd    (%edi,%edx,4),%mm1
   87         addb    %cl,%bl
   88         psllq   $8,%mm1
   89         movl    (%edi,%ebx,4),%edx
   90         movl    %ecx,(%edi,%ebx,4)
   91         movl    %edx,(%edi,%eax,4)
   92         incl    %eax
   93         addl    %ecx,%edx
   94         movzbl  %al,%eax
   95         movzbl  %dl,%edx
   96         pxor    %mm1,%mm2
   97         movl    (%edi,%eax,4),%ecx
   98         movd    (%edi,%edx,4),%mm1
   99         addb    %cl,%bl
  100         psllq   $16,%mm1
  101         movl    (%edi,%ebx,4),%edx
  102         movl    %ecx,(%edi,%ebx,4)
  103         movl    %edx,(%edi,%eax,4)
  104         incl    %eax
  105         addl    %ecx,%edx
  106         movzbl  %al,%eax
  107         movzbl  %dl,%edx
  108         pxor    %mm1,%mm2
  109         movl    (%edi,%eax,4),%ecx
  110         movd    (%edi,%edx,4),%mm1
  111         addb    %cl,%bl
  112         psllq   $24,%mm1
  113         movl    (%edi,%ebx,4),%edx
  114         movl    %ecx,(%edi,%ebx,4)
  115         movl    %edx,(%edi,%eax,4)
  116         incl    %eax
  117         addl    %ecx,%edx
  118         movzbl  %al,%eax
  119         movzbl  %dl,%edx
  120         pxor    %mm1,%mm2
  121         movl    (%edi,%eax,4),%ecx
  122         movd    (%edi,%edx,4),%mm1
  123         addb    %cl,%bl
  124         psllq   $32,%mm1
  125         movl    (%edi,%ebx,4),%edx
  126         movl    %ecx,(%edi,%ebx,4)
  127         movl    %edx,(%edi,%eax,4)
  128         incl    %eax
  129         addl    %ecx,%edx
  130         movzbl  %al,%eax
  131         movzbl  %dl,%edx
  132         pxor    %mm1,%mm2
  133         movl    (%edi,%eax,4),%ecx
  134         movd    (%edi,%edx,4),%mm1
  135         addb    %cl,%bl
  136         psllq   $40,%mm1
  137         movl    (%edi,%ebx,4),%edx
  138         movl    %ecx,(%edi,%ebx,4)
  139         movl    %edx,(%edi,%eax,4)
  140         incl    %eax
  141         addl    %ecx,%edx
  142         movzbl  %al,%eax
  143         movzbl  %dl,%edx
  144         pxor    %mm1,%mm2
  145         movl    (%edi,%eax,4),%ecx
  146         movd    (%edi,%edx,4),%mm1
  147         addb    %cl,%bl
  148         psllq   $48,%mm1
  149         movl    (%edi,%ebx,4),%edx
  150         movl    %ecx,(%edi,%ebx,4)
  151         movl    %edx,(%edi,%eax,4)
  152         incl    %eax
  153         addl    %ecx,%edx
  154         movzbl  %al,%eax
  155         movzbl  %dl,%edx
  156         pxor    %mm1,%mm2
  157         movl    (%edi,%eax,4),%ecx
  158         movd    (%edi,%edx,4),%mm1
  159         movl    %ebx,%edx
  160         xorl    %ebx,%ebx
  161         movb    %dl,%bl
  162         cmpl    -4(%edi),%esi
  163         leal    8(%esi),%esi
  164         jb      .L006loop_mmx
  165         psllq   $56,%mm1
  166         pxor    %mm1,%mm2
  167         movq    %mm2,-8(%ebp,%esi,1)
  168         emms
  169         cmpl    24(%esp),%esi
  170         je      .L007done
  171         jmp     .L002loop1
  172 .align  16
  173 .L003go4loop4:
  174         leal    -4(%esi,%edx,1),%edx
  175         movl    %edx,28(%esp)
  176 .L008loop4:
  177         addb    %cl,%bl
  178         movl    (%edi,%ebx,4),%edx
  179         movl    %ecx,(%edi,%ebx,4)
  180         movl    %edx,(%edi,%eax,4)
  181         addl    %ecx,%edx
  182         incb    %al
  183         andl    $255,%edx
  184         movl    (%edi,%eax,4),%ecx
  185         movl    (%edi,%edx,4),%ebp
  186         addb    %cl,%bl
  187         movl    (%edi,%ebx,4),%edx
  188         movl    %ecx,(%edi,%ebx,4)
  189         movl    %edx,(%edi,%eax,4)
  190         addl    %ecx,%edx
  191         incb    %al
  192         andl    $255,%edx
  193         rorl    $8,%ebp
  194         movl    (%edi,%eax,4),%ecx
  195         orl     (%edi,%edx,4),%ebp
  196         addb    %cl,%bl
  197         movl    (%edi,%ebx,4),%edx
  198         movl    %ecx,(%edi,%ebx,4)
  199         movl    %edx,(%edi,%eax,4)
  200         addl    %ecx,%edx
  201         incb    %al
  202         andl    $255,%edx
  203         rorl    $8,%ebp
  204         movl    (%edi,%eax,4),%ecx
  205         orl     (%edi,%edx,4),%ebp
  206         addb    %cl,%bl
  207         movl    (%edi,%ebx,4),%edx
  208         movl    %ecx,(%edi,%ebx,4)
  209         movl    %edx,(%edi,%eax,4)
  210         addl    %ecx,%edx
  211         incb    %al
  212         andl    $255,%edx
  213         rorl    $8,%ebp
  214         movl    32(%esp),%ecx
  215         orl     (%edi,%edx,4),%ebp
  216         rorl    $8,%ebp
  217         xorl    (%esi),%ebp
  218         cmpl    28(%esp),%esi
  219         movl    %ebp,(%ecx,%esi,1)
  220         leal    4(%esi),%esi
  221         movl    (%edi,%eax,4),%ecx
  222         jb      .L008loop4
  223         cmpl    24(%esp),%esi
  224         je      .L007done
  225         movl    32(%esp),%ebp
  226 .align  16
  227 .L002loop1:
  228         addb    %cl,%bl
  229         movl    (%edi,%ebx,4),%edx
  230         movl    %ecx,(%edi,%ebx,4)
  231         movl    %edx,(%edi,%eax,4)
  232         addl    %ecx,%edx
  233         incb    %al
  234         andl    $255,%edx
  235         movl    (%edi,%edx,4),%edx
  236         xorb    (%esi),%dl
  237         leal    1(%esi),%esi
  238         movl    (%edi,%eax,4),%ecx
  239         cmpl    24(%esp),%esi
  240         movb    %dl,-1(%ebp,%esi,1)
  241         jb      .L002loop1
  242         jmp     .L007done
  243 .align  16
  244 .L001RC4_CHAR:
  245         movzbl  (%edi,%eax,1),%ecx
  246 .L009cloop1:
  247         addb    %cl,%bl
  248         movzbl  (%edi,%ebx,1),%edx
  249         movb    %cl,(%edi,%ebx,1)
  250         movb    %dl,(%edi,%eax,1)
  251         addb    %cl,%dl
  252         movzbl  (%edi,%edx,1),%edx
  253         addb    $1,%al
  254         xorb    (%esi),%dl
  255         leal    1(%esi),%esi
  256         movzbl  (%edi,%eax,1),%ecx
  257         cmpl    24(%esp),%esi
  258         movb    %dl,-1(%ebp,%esi,1)
  259         jb      .L009cloop1
  260 .L007done:
  261         decb    %al
  262         movl    %ebx,-4(%edi)
  263         movb    %al,-8(%edi)
  264 .L000abort:
  265         popl    %edi
  266         popl    %esi
  267         popl    %ebx
  268         popl    %ebp
  269         ret
  270 .size   RC4,.-.L_RC4_begin
  271 .globl  RC4_set_key
  272 .type   RC4_set_key,@function
  273 .align  16
  274 RC4_set_key:
  275 .L_RC4_set_key_begin:
  276         pushl   %ebp
  277         pushl   %ebx
  278         pushl   %esi
  279         pushl   %edi
  280         movl    20(%esp),%edi
  281         movl    24(%esp),%ebp
  282         movl    28(%esp),%esi
  283         call    .L010PIC_me_up
  284 .L010PIC_me_up:
  285         popl    %edx
  286         leal    OPENSSL_ia32cap_P-.L010PIC_me_up(%edx),%edx
  287         leal    8(%edi),%edi
  288         leal    (%esi,%ebp,1),%esi
  289         negl    %ebp
  290         xorl    %eax,%eax
  291         movl    %ebp,-4(%edi)
  292         btl     $20,(%edx)
  293         jc      .L011c1stloop
  294 .align  16
  295 .L012w1stloop:
  296         movl    %eax,(%edi,%eax,4)
  297         addb    $1,%al
  298         jnc     .L012w1stloop
  299         xorl    %ecx,%ecx
  300         xorl    %edx,%edx
  301 .align  16
  302 .L013w2ndloop:
  303         movl    (%edi,%ecx,4),%eax
  304         addb    (%esi,%ebp,1),%dl
  305         addb    %al,%dl
  306         addl    $1,%ebp
  307         movl    (%edi,%edx,4),%ebx
  308         jnz     .L014wnowrap
  309         movl    -4(%edi),%ebp
  310 .L014wnowrap:
  311         movl    %eax,(%edi,%edx,4)
  312         movl    %ebx,(%edi,%ecx,4)
  313         addb    $1,%cl
  314         jnc     .L013w2ndloop
  315         jmp     .L015exit
  316 .align  16
  317 .L011c1stloop:
  318         movb    %al,(%edi,%eax,1)
  319         addb    $1,%al
  320         jnc     .L011c1stloop
  321         xorl    %ecx,%ecx
  322         xorl    %edx,%edx
  323         xorl    %ebx,%ebx
  324 .align  16
  325 .L016c2ndloop:
  326         movb    (%edi,%ecx,1),%al
  327         addb    (%esi,%ebp,1),%dl
  328         addb    %al,%dl
  329         addl    $1,%ebp
  330         movb    (%edi,%edx,1),%bl
  331         jnz     .L017cnowrap
  332         movl    -4(%edi),%ebp
  333 .L017cnowrap:
  334         movb    %al,(%edi,%edx,1)
  335         movb    %bl,(%edi,%ecx,1)
  336         addb    $1,%cl
  337         jnc     .L016c2ndloop
  338         movl    $-1,256(%edi)
  339 .L015exit:
  340         xorl    %eax,%eax
  341         movl    %eax,-8(%edi)
  342         movl    %eax,-4(%edi)
  343         popl    %edi
  344         popl    %esi
  345         popl    %ebx
  346         popl    %ebp
  347         ret
  348 .size   RC4_set_key,.-.L_RC4_set_key_begin
  349 .globl  RC4_options
  350 .type   RC4_options,@function
  351 .align  16
  352 RC4_options:
  353 .L_RC4_options_begin:
  354         call    .L018pic_point
  355 .L018pic_point:
  356         popl    %eax
  357         leal    .L019opts-.L018pic_point(%eax),%eax
  358         call    .L020PIC_me_up
  359 .L020PIC_me_up:
  360         popl    %edx
  361         leal    OPENSSL_ia32cap_P-.L020PIC_me_up(%edx),%edx
  362         movl    (%edx),%edx
  363         btl     $20,%edx
  364         jc      .L0211xchar
  365         btl     $26,%edx
  366         jnc     .L022ret
  367         addl    $25,%eax
  368         ret
  369 .L0211xchar:
  370         addl    $12,%eax
  371 .L022ret:
  372         ret
  373 .align  64
  374 .L019opts:
  375 .byte   114,99,52,40,52,120,44,105,110,116,41,0
  376 .byte   114,99,52,40,49,120,44,99,104,97,114,41,0
  377 .byte   114,99,52,40,56,120,44,109,109,120,41,0
  378 .byte   82,67,52,32,102,111,114,32,120,56,54,44,32,67,82,89
  379 .byte   80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114
  380 .byte   111,64,111,112,101,110,115,115,108,46,111,114,103,62,0
  381 .align  64
  382 .size   RC4_options,.-.L_RC4_options_begin
  383 .comm   OPENSSL_ia32cap_P,16,4
  384 #else
  385 .text
  386 .globl  RC4
  387 .type   RC4,@function
  388 .align  16
  389 RC4:
  390 .L_RC4_begin:
  391         pushl   %ebp
  392         pushl   %ebx
  393         pushl   %esi
  394         pushl   %edi
  395         movl    20(%esp),%edi
  396         movl    24(%esp),%edx
  397         movl    28(%esp),%esi
  398         movl    32(%esp),%ebp
  399         xorl    %eax,%eax
  400         xorl    %ebx,%ebx
  401         cmpl    $0,%edx
  402         je      .L000abort
  403         movb    (%edi),%al
  404         movb    4(%edi),%bl
  405         addl    $8,%edi
  406         leal    (%esi,%edx,1),%ecx
  407         subl    %esi,%ebp
  408         movl    %ecx,24(%esp)
  409         incb    %al
  410         cmpl    $-1,256(%edi)
  411         je      .L001RC4_CHAR
  412         movl    (%edi,%eax,4),%ecx
  413         andl    $-4,%edx
  414         jz      .L002loop1
  415         movl    %ebp,32(%esp)
  416         testl   $-8,%edx
  417         jz      .L003go4loop4
  418         leal    OPENSSL_ia32cap_P,%ebp
  419         btl     $26,(%ebp)
  420         jnc     .L003go4loop4
  421         movl    32(%esp),%ebp
  422         andl    $-8,%edx
  423         leal    -8(%esi,%edx,1),%edx
  424         movl    %edx,-4(%edi)
  425         addb    %cl,%bl
  426         movl    (%edi,%ebx,4),%edx
  427         movl    %ecx,(%edi,%ebx,4)
  428         movl    %edx,(%edi,%eax,4)
  429         incl    %eax
  430         addl    %ecx,%edx
  431         movzbl  %al,%eax
  432         movzbl  %dl,%edx
  433         movq    (%esi),%mm0
  434         movl    (%edi,%eax,4),%ecx
  435         movd    (%edi,%edx,4),%mm2
  436         jmp     .L004loop_mmx_enter
  437 .align  16
  438 .L005loop_mmx:
  439         addb    %cl,%bl
  440         psllq   $56,%mm1
  441         movl    (%edi,%ebx,4),%edx
  442         movl    %ecx,(%edi,%ebx,4)
  443         movl    %edx,(%edi,%eax,4)
  444         incl    %eax
  445         addl    %ecx,%edx
  446         movzbl  %al,%eax
  447         movzbl  %dl,%edx
  448         pxor    %mm1,%mm2
  449         movq    (%esi),%mm0
  450         movq    %mm2,-8(%ebp,%esi,1)
  451         movl    (%edi,%eax,4),%ecx
  452         movd    (%edi,%edx,4),%mm2
  453 .L004loop_mmx_enter:
  454         addb    %cl,%bl
  455         movl    (%edi,%ebx,4),%edx
  456         movl    %ecx,(%edi,%ebx,4)
  457         movl    %edx,(%edi,%eax,4)
  458         incl    %eax
  459         addl    %ecx,%edx
  460         movzbl  %al,%eax
  461         movzbl  %dl,%edx
  462         pxor    %mm0,%mm2
  463         movl    (%edi,%eax,4),%ecx
  464         movd    (%edi,%edx,4),%mm1
  465         addb    %cl,%bl
  466         psllq   $8,%mm1
  467         movl    (%edi,%ebx,4),%edx
  468         movl    %ecx,(%edi,%ebx,4)
  469         movl    %edx,(%edi,%eax,4)
  470         incl    %eax
  471         addl    %ecx,%edx
  472         movzbl  %al,%eax
  473         movzbl  %dl,%edx
  474         pxor    %mm1,%mm2
  475         movl    (%edi,%eax,4),%ecx
  476         movd    (%edi,%edx,4),%mm1
  477         addb    %cl,%bl
  478         psllq   $16,%mm1
  479         movl    (%edi,%ebx,4),%edx
  480         movl    %ecx,(%edi,%ebx,4)
  481         movl    %edx,(%edi,%eax,4)
  482         incl    %eax
  483         addl    %ecx,%edx
  484         movzbl  %al,%eax
  485         movzbl  %dl,%edx
  486         pxor    %mm1,%mm2
  487         movl    (%edi,%eax,4),%ecx
  488         movd    (%edi,%edx,4),%mm1
  489         addb    %cl,%bl
  490         psllq   $24,%mm1
  491         movl    (%edi,%ebx,4),%edx
  492         movl    %ecx,(%edi,%ebx,4)
  493         movl    %edx,(%edi,%eax,4)
  494         incl    %eax
  495         addl    %ecx,%edx
  496         movzbl  %al,%eax
  497         movzbl  %dl,%edx
  498         pxor    %mm1,%mm2
  499         movl    (%edi,%eax,4),%ecx
  500         movd    (%edi,%edx,4),%mm1
  501         addb    %cl,%bl
  502         psllq   $32,%mm1
  503         movl    (%edi,%ebx,4),%edx
  504         movl    %ecx,(%edi,%ebx,4)
  505         movl    %edx,(%edi,%eax,4)
  506         incl    %eax
  507         addl    %ecx,%edx
  508         movzbl  %al,%eax
  509         movzbl  %dl,%edx
  510         pxor    %mm1,%mm2
  511         movl    (%edi,%eax,4),%ecx
  512         movd    (%edi,%edx,4),%mm1
  513         addb    %cl,%bl
  514         psllq   $40,%mm1
  515         movl    (%edi,%ebx,4),%edx
  516         movl    %ecx,(%edi,%ebx,4)
  517         movl    %edx,(%edi,%eax,4)
  518         incl    %eax
  519         addl    %ecx,%edx
  520         movzbl  %al,%eax
  521         movzbl  %dl,%edx
  522         pxor    %mm1,%mm2
  523         movl    (%edi,%eax,4),%ecx
  524         movd    (%edi,%edx,4),%mm1
  525         addb    %cl,%bl
  526         psllq   $48,%mm1
  527         movl    (%edi,%ebx,4),%edx
  528         movl    %ecx,(%edi,%ebx,4)
  529         movl    %edx,(%edi,%eax,4)
  530         incl    %eax
  531         addl    %ecx,%edx
  532         movzbl  %al,%eax
  533         movzbl  %dl,%edx
  534         pxor    %mm1,%mm2
  535         movl    (%edi,%eax,4),%ecx
  536         movd    (%edi,%edx,4),%mm1
  537         movl    %ebx,%edx
  538         xorl    %ebx,%ebx
  539         movb    %dl,%bl
  540         cmpl    -4(%edi),%esi
  541         leal    8(%esi),%esi
  542         jb      .L005loop_mmx
  543         psllq   $56,%mm1
  544         pxor    %mm1,%mm2
  545         movq    %mm2,-8(%ebp,%esi,1)
  546         emms
  547         cmpl    24(%esp),%esi
  548         je      .L006done
  549         jmp     .L002loop1
  550 .align  16
  551 .L003go4loop4:
  552         leal    -4(%esi,%edx,1),%edx
  553         movl    %edx,28(%esp)
  554 .L007loop4:
  555         addb    %cl,%bl
  556         movl    (%edi,%ebx,4),%edx
  557         movl    %ecx,(%edi,%ebx,4)
  558         movl    %edx,(%edi,%eax,4)
  559         addl    %ecx,%edx
  560         incb    %al
  561         andl    $255,%edx
  562         movl    (%edi,%eax,4),%ecx
  563         movl    (%edi,%edx,4),%ebp
  564         addb    %cl,%bl
  565         movl    (%edi,%ebx,4),%edx
  566         movl    %ecx,(%edi,%ebx,4)
  567         movl    %edx,(%edi,%eax,4)
  568         addl    %ecx,%edx
  569         incb    %al
  570         andl    $255,%edx
  571         rorl    $8,%ebp
  572         movl    (%edi,%eax,4),%ecx
  573         orl     (%edi,%edx,4),%ebp
  574         addb    %cl,%bl
  575         movl    (%edi,%ebx,4),%edx
  576         movl    %ecx,(%edi,%ebx,4)
  577         movl    %edx,(%edi,%eax,4)
  578         addl    %ecx,%edx
  579         incb    %al
  580         andl    $255,%edx
  581         rorl    $8,%ebp
  582         movl    (%edi,%eax,4),%ecx
  583         orl     (%edi,%edx,4),%ebp
  584         addb    %cl,%bl
  585         movl    (%edi,%ebx,4),%edx
  586         movl    %ecx,(%edi,%ebx,4)
  587         movl    %edx,(%edi,%eax,4)
  588         addl    %ecx,%edx
  589         incb    %al
  590         andl    $255,%edx
  591         rorl    $8,%ebp
  592         movl    32(%esp),%ecx
  593         orl     (%edi,%edx,4),%ebp
  594         rorl    $8,%ebp
  595         xorl    (%esi),%ebp
  596         cmpl    28(%esp),%esi
  597         movl    %ebp,(%ecx,%esi,1)
  598         leal    4(%esi),%esi
  599         movl    (%edi,%eax,4),%ecx
  600         jb      .L007loop4
  601         cmpl    24(%esp),%esi
  602         je      .L006done
  603         movl    32(%esp),%ebp
  604 .align  16
  605 .L002loop1:
  606         addb    %cl,%bl
  607         movl    (%edi,%ebx,4),%edx
  608         movl    %ecx,(%edi,%ebx,4)
  609         movl    %edx,(%edi,%eax,4)
  610         addl    %ecx,%edx
  611         incb    %al
  612         andl    $255,%edx
  613         movl    (%edi,%edx,4),%edx
  614         xorb    (%esi),%dl
  615         leal    1(%esi),%esi
  616         movl    (%edi,%eax,4),%ecx
  617         cmpl    24(%esp),%esi
  618         movb    %dl,-1(%ebp,%esi,1)
  619         jb      .L002loop1
  620         jmp     .L006done
  621 .align  16
  622 .L001RC4_CHAR:
  623         movzbl  (%edi,%eax,1),%ecx
  624 .L008cloop1:
  625         addb    %cl,%bl
  626         movzbl  (%edi,%ebx,1),%edx
  627         movb    %cl,(%edi,%ebx,1)
  628         movb    %dl,(%edi,%eax,1)
  629         addb    %cl,%dl
  630         movzbl  (%edi,%edx,1),%edx
  631         addb    $1,%al
  632         xorb    (%esi),%dl
  633         leal    1(%esi),%esi
  634         movzbl  (%edi,%eax,1),%ecx
  635         cmpl    24(%esp),%esi
  636         movb    %dl,-1(%ebp,%esi,1)
  637         jb      .L008cloop1
  638 .L006done:
  639         decb    %al
  640         movl    %ebx,-4(%edi)
  641         movb    %al,-8(%edi)
  642 .L000abort:
  643         popl    %edi
  644         popl    %esi
  645         popl    %ebx
  646         popl    %ebp
  647         ret
  648 .size   RC4,.-.L_RC4_begin
  649 .globl  RC4_set_key
  650 .type   RC4_set_key,@function
  651 .align  16
  652 RC4_set_key:
  653 .L_RC4_set_key_begin:
  654         pushl   %ebp
  655         pushl   %ebx
  656         pushl   %esi
  657         pushl   %edi
  658         movl    20(%esp),%edi
  659         movl    24(%esp),%ebp
  660         movl    28(%esp),%esi
  661         leal    OPENSSL_ia32cap_P,%edx
  662         leal    8(%edi),%edi
  663         leal    (%esi,%ebp,1),%esi
  664         negl    %ebp
  665         xorl    %eax,%eax
  666         movl    %ebp,-4(%edi)
  667         btl     $20,(%edx)
  668         jc      .L009c1stloop
  669 .align  16
  670 .L010w1stloop:
  671         movl    %eax,(%edi,%eax,4)
  672         addb    $1,%al
  673         jnc     .L010w1stloop
  674         xorl    %ecx,%ecx
  675         xorl    %edx,%edx
  676 .align  16
  677 .L011w2ndloop:
  678         movl    (%edi,%ecx,4),%eax
  679         addb    (%esi,%ebp,1),%dl
  680         addb    %al,%dl
  681         addl    $1,%ebp
  682         movl    (%edi,%edx,4),%ebx
  683         jnz     .L012wnowrap
  684         movl    -4(%edi),%ebp
  685 .L012wnowrap:
  686         movl    %eax,(%edi,%edx,4)
  687         movl    %ebx,(%edi,%ecx,4)
  688         addb    $1,%cl
  689         jnc     .L011w2ndloop
  690         jmp     .L013exit
  691 .align  16
  692 .L009c1stloop:
  693         movb    %al,(%edi,%eax,1)
  694         addb    $1,%al
  695         jnc     .L009c1stloop
  696         xorl    %ecx,%ecx
  697         xorl    %edx,%edx
  698         xorl    %ebx,%ebx
  699 .align  16
  700 .L014c2ndloop:
  701         movb    (%edi,%ecx,1),%al
  702         addb    (%esi,%ebp,1),%dl
  703         addb    %al,%dl
  704         addl    $1,%ebp
  705         movb    (%edi,%edx,1),%bl
  706         jnz     .L015cnowrap
  707         movl    -4(%edi),%ebp
  708 .L015cnowrap:
  709         movb    %al,(%edi,%edx,1)
  710         movb    %bl,(%edi,%ecx,1)
  711         addb    $1,%cl
  712         jnc     .L014c2ndloop
  713         movl    $-1,256(%edi)
  714 .L013exit:
  715         xorl    %eax,%eax
  716         movl    %eax,-8(%edi)
  717         movl    %eax,-4(%edi)
  718         popl    %edi
  719         popl    %esi
  720         popl    %ebx
  721         popl    %ebp
  722         ret
  723 .size   RC4_set_key,.-.L_RC4_set_key_begin
  724 .globl  RC4_options
  725 .type   RC4_options,@function
  726 .align  16
  727 RC4_options:
  728 .L_RC4_options_begin:
  729         call    .L016pic_point
  730 .L016pic_point:
  731         popl    %eax
  732         leal    .L017opts-.L016pic_point(%eax),%eax
  733         leal    OPENSSL_ia32cap_P,%edx
  734         movl    (%edx),%edx
  735         btl     $20,%edx
  736         jc      .L0181xchar
  737         btl     $26,%edx
  738         jnc     .L019ret
  739         addl    $25,%eax
  740         ret
  741 .L0181xchar:
  742         addl    $12,%eax
  743 .L019ret:
  744         ret
  745 .align  64
  746 .L017opts:
  747 .byte   114,99,52,40,52,120,44,105,110,116,41,0
  748 .byte   114,99,52,40,49,120,44,99,104,97,114,41,0
  749 .byte   114,99,52,40,56,120,44,109,109,120,41,0
  750 .byte   82,67,52,32,102,111,114,32,120,56,54,44,32,67,82,89
  751 .byte   80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114
  752 .byte   111,64,111,112,101,110,115,115,108,46,111,114,103,62,0
  753 .align  64
  754 .size   RC4_options,.-.L_RC4_options_begin
  755 .comm   OPENSSL_ia32cap_P,16,4
  756 #endif

Cache object: 1cf315db8f9b231bae56346f3cb4a8ab


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]


This page is part of the FreeBSD/Linux Linux Kernel Cross-Reference, and was automatically generated using a modified version of the LXR engine.