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/cmll-x86.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 cmll-x86.pl. */
    3 #ifdef PIC
    4 .text
    5 .globl  Camellia_EncryptBlock_Rounds
    6 .type   Camellia_EncryptBlock_Rounds,@function
    7 .align  16
    8 Camellia_EncryptBlock_Rounds:
    9 .L_Camellia_EncryptBlock_Rounds_begin:
   10         pushl   %ebp
   11         pushl   %ebx
   12         pushl   %esi
   13         pushl   %edi
   14         movl    20(%esp),%eax
   15         movl    24(%esp),%esi
   16         movl    28(%esp),%edi
   17         movl    %esp,%ebx
   18         subl    $28,%esp
   19         andl    $-64,%esp
   20         leal    -127(%edi),%ecx
   21         subl    %esp,%ecx
   22         negl    %ecx
   23         andl    $960,%ecx
   24         subl    %ecx,%esp
   25         addl    $4,%esp
   26         shll    $6,%eax
   27         leal    (%edi,%eax,1),%eax
   28         movl    %ebx,20(%esp)
   29         movl    %eax,16(%esp)
   30         call    .L000pic_point
   31 .L000pic_point:
   32         popl    %ebp
   33         leal    .LCamellia_SBOX-.L000pic_point(%ebp),%ebp
   34         movl    (%esi),%eax
   35         movl    4(%esi),%ebx
   36         movl    8(%esi),%ecx
   37         bswap   %eax
   38         movl    12(%esi),%edx
   39         bswap   %ebx
   40         bswap   %ecx
   41         bswap   %edx
   42         call    _x86_Camellia_encrypt
   43         movl    20(%esp),%esp
   44         bswap   %eax
   45         movl    32(%esp),%esi
   46         bswap   %ebx
   47         bswap   %ecx
   48         bswap   %edx
   49         movl    %eax,(%esi)
   50         movl    %ebx,4(%esi)
   51         movl    %ecx,8(%esi)
   52         movl    %edx,12(%esi)
   53         popl    %edi
   54         popl    %esi
   55         popl    %ebx
   56         popl    %ebp
   57         ret
   58 .size   Camellia_EncryptBlock_Rounds,.-.L_Camellia_EncryptBlock_Rounds_begin
   59 .globl  Camellia_EncryptBlock
   60 .type   Camellia_EncryptBlock,@function
   61 .align  16
   62 Camellia_EncryptBlock:
   63 .L_Camellia_EncryptBlock_begin:
   64         movl    $128,%eax
   65         subl    4(%esp),%eax
   66         movl    $3,%eax
   67         adcl    $0,%eax
   68         movl    %eax,4(%esp)
   69         jmp     .L_Camellia_EncryptBlock_Rounds_begin
   70 .size   Camellia_EncryptBlock,.-.L_Camellia_EncryptBlock_begin
   71 .globl  Camellia_encrypt
   72 .type   Camellia_encrypt,@function
   73 .align  16
   74 Camellia_encrypt:
   75 .L_Camellia_encrypt_begin:
   76         pushl   %ebp
   77         pushl   %ebx
   78         pushl   %esi
   79         pushl   %edi
   80         movl    20(%esp),%esi
   81         movl    28(%esp),%edi
   82         movl    %esp,%ebx
   83         subl    $28,%esp
   84         andl    $-64,%esp
   85         movl    272(%edi),%eax
   86         leal    -127(%edi),%ecx
   87         subl    %esp,%ecx
   88         negl    %ecx
   89         andl    $960,%ecx
   90         subl    %ecx,%esp
   91         addl    $4,%esp
   92         shll    $6,%eax
   93         leal    (%edi,%eax,1),%eax
   94         movl    %ebx,20(%esp)
   95         movl    %eax,16(%esp)
   96         call    .L001pic_point
   97 .L001pic_point:
   98         popl    %ebp
   99         leal    .LCamellia_SBOX-.L001pic_point(%ebp),%ebp
  100         movl    (%esi),%eax
  101         movl    4(%esi),%ebx
  102         movl    8(%esi),%ecx
  103         bswap   %eax
  104         movl    12(%esi),%edx
  105         bswap   %ebx
  106         bswap   %ecx
  107         bswap   %edx
  108         call    _x86_Camellia_encrypt
  109         movl    20(%esp),%esp
  110         bswap   %eax
  111         movl    24(%esp),%esi
  112         bswap   %ebx
  113         bswap   %ecx
  114         bswap   %edx
  115         movl    %eax,(%esi)
  116         movl    %ebx,4(%esi)
  117         movl    %ecx,8(%esi)
  118         movl    %edx,12(%esi)
  119         popl    %edi
  120         popl    %esi
  121         popl    %ebx
  122         popl    %ebp
  123         ret
  124 .size   Camellia_encrypt,.-.L_Camellia_encrypt_begin
  125 .type   _x86_Camellia_encrypt,@function
  126 .align  16
  127 _x86_Camellia_encrypt:
  128         xorl    (%edi),%eax
  129         xorl    4(%edi),%ebx
  130         xorl    8(%edi),%ecx
  131         xorl    12(%edi),%edx
  132         movl    16(%edi),%esi
  133         movl    %eax,4(%esp)
  134         movl    %ebx,8(%esp)
  135         movl    %ecx,12(%esp)
  136         movl    %edx,16(%esp)
  137 .align  16
  138 .L002loop:
  139         xorl    %esi,%eax
  140         xorl    20(%edi),%ebx
  141         movzbl  %ah,%esi
  142         movl    2052(%ebp,%esi,8),%edx
  143         movzbl  %al,%esi
  144         xorl    4(%ebp,%esi,8),%edx
  145         shrl    $16,%eax
  146         movzbl  %bl,%esi
  147         movl    (%ebp,%esi,8),%ecx
  148         movzbl  %ah,%esi
  149         xorl    (%ebp,%esi,8),%edx
  150         movzbl  %bh,%esi
  151         xorl    4(%ebp,%esi,8),%ecx
  152         shrl    $16,%ebx
  153         movzbl  %al,%eax
  154         xorl    2048(%ebp,%eax,8),%edx
  155         movzbl  %bh,%esi
  156         movl    16(%esp),%eax
  157         xorl    %edx,%ecx
  158         rorl    $8,%edx
  159         xorl    2048(%ebp,%esi,8),%ecx
  160         movzbl  %bl,%esi
  161         movl    12(%esp),%ebx
  162         xorl    %eax,%edx
  163         xorl    2052(%ebp,%esi,8),%ecx
  164         movl    24(%edi),%esi
  165         xorl    %ecx,%edx
  166         movl    %edx,16(%esp)
  167         xorl    %ebx,%ecx
  168         movl    %ecx,12(%esp)
  169         xorl    %esi,%ecx
  170         xorl    28(%edi),%edx
  171         movzbl  %ch,%esi
  172         movl    2052(%ebp,%esi,8),%ebx
  173         movzbl  %cl,%esi
  174         xorl    4(%ebp,%esi,8),%ebx
  175         shrl    $16,%ecx
  176         movzbl  %dl,%esi
  177         movl    (%ebp,%esi,8),%eax
  178         movzbl  %ch,%esi
  179         xorl    (%ebp,%esi,8),%ebx
  180         movzbl  %dh,%esi
  181         xorl    4(%ebp,%esi,8),%eax
  182         shrl    $16,%edx
  183         movzbl  %cl,%ecx
  184         xorl    2048(%ebp,%ecx,8),%ebx
  185         movzbl  %dh,%esi
  186         movl    8(%esp),%ecx
  187         xorl    %ebx,%eax
  188         rorl    $8,%ebx
  189         xorl    2048(%ebp,%esi,8),%eax
  190         movzbl  %dl,%esi
  191         movl    4(%esp),%edx
  192         xorl    %ecx,%ebx
  193         xorl    2052(%ebp,%esi,8),%eax
  194         movl    32(%edi),%esi
  195         xorl    %eax,%ebx
  196         movl    %ebx,8(%esp)
  197         xorl    %edx,%eax
  198         movl    %eax,4(%esp)
  199         xorl    %esi,%eax
  200         xorl    36(%edi),%ebx
  201         movzbl  %ah,%esi
  202         movl    2052(%ebp,%esi,8),%edx
  203         movzbl  %al,%esi
  204         xorl    4(%ebp,%esi,8),%edx
  205         shrl    $16,%eax
  206         movzbl  %bl,%esi
  207         movl    (%ebp,%esi,8),%ecx
  208         movzbl  %ah,%esi
  209         xorl    (%ebp,%esi,8),%edx
  210         movzbl  %bh,%esi
  211         xorl    4(%ebp,%esi,8),%ecx
  212         shrl    $16,%ebx
  213         movzbl  %al,%eax
  214         xorl    2048(%ebp,%eax,8),%edx
  215         movzbl  %bh,%esi
  216         movl    16(%esp),%eax
  217         xorl    %edx,%ecx
  218         rorl    $8,%edx
  219         xorl    2048(%ebp,%esi,8),%ecx
  220         movzbl  %bl,%esi
  221         movl    12(%esp),%ebx
  222         xorl    %eax,%edx
  223         xorl    2052(%ebp,%esi,8),%ecx
  224         movl    40(%edi),%esi
  225         xorl    %ecx,%edx
  226         movl    %edx,16(%esp)
  227         xorl    %ebx,%ecx
  228         movl    %ecx,12(%esp)
  229         xorl    %esi,%ecx
  230         xorl    44(%edi),%edx
  231         movzbl  %ch,%esi
  232         movl    2052(%ebp,%esi,8),%ebx
  233         movzbl  %cl,%esi
  234         xorl    4(%ebp,%esi,8),%ebx
  235         shrl    $16,%ecx
  236         movzbl  %dl,%esi
  237         movl    (%ebp,%esi,8),%eax
  238         movzbl  %ch,%esi
  239         xorl    (%ebp,%esi,8),%ebx
  240         movzbl  %dh,%esi
  241         xorl    4(%ebp,%esi,8),%eax
  242         shrl    $16,%edx
  243         movzbl  %cl,%ecx
  244         xorl    2048(%ebp,%ecx,8),%ebx
  245         movzbl  %dh,%esi
  246         movl    8(%esp),%ecx
  247         xorl    %ebx,%eax
  248         rorl    $8,%ebx
  249         xorl    2048(%ebp,%esi,8),%eax
  250         movzbl  %dl,%esi
  251         movl    4(%esp),%edx
  252         xorl    %ecx,%ebx
  253         xorl    2052(%ebp,%esi,8),%eax
  254         movl    48(%edi),%esi
  255         xorl    %eax,%ebx
  256         movl    %ebx,8(%esp)
  257         xorl    %edx,%eax
  258         movl    %eax,4(%esp)
  259         xorl    %esi,%eax
  260         xorl    52(%edi),%ebx
  261         movzbl  %ah,%esi
  262         movl    2052(%ebp,%esi,8),%edx
  263         movzbl  %al,%esi
  264         xorl    4(%ebp,%esi,8),%edx
  265         shrl    $16,%eax
  266         movzbl  %bl,%esi
  267         movl    (%ebp,%esi,8),%ecx
  268         movzbl  %ah,%esi
  269         xorl    (%ebp,%esi,8),%edx
  270         movzbl  %bh,%esi
  271         xorl    4(%ebp,%esi,8),%ecx
  272         shrl    $16,%ebx
  273         movzbl  %al,%eax
  274         xorl    2048(%ebp,%eax,8),%edx
  275         movzbl  %bh,%esi
  276         movl    16(%esp),%eax
  277         xorl    %edx,%ecx
  278         rorl    $8,%edx
  279         xorl    2048(%ebp,%esi,8),%ecx
  280         movzbl  %bl,%esi
  281         movl    12(%esp),%ebx
  282         xorl    %eax,%edx
  283         xorl    2052(%ebp,%esi,8),%ecx
  284         movl    56(%edi),%esi
  285         xorl    %ecx,%edx
  286         movl    %edx,16(%esp)
  287         xorl    %ebx,%ecx
  288         movl    %ecx,12(%esp)
  289         xorl    %esi,%ecx
  290         xorl    60(%edi),%edx
  291         movzbl  %ch,%esi
  292         movl    2052(%ebp,%esi,8),%ebx
  293         movzbl  %cl,%esi
  294         xorl    4(%ebp,%esi,8),%ebx
  295         shrl    $16,%ecx
  296         movzbl  %dl,%esi
  297         movl    (%ebp,%esi,8),%eax
  298         movzbl  %ch,%esi
  299         xorl    (%ebp,%esi,8),%ebx
  300         movzbl  %dh,%esi
  301         xorl    4(%ebp,%esi,8),%eax
  302         shrl    $16,%edx
  303         movzbl  %cl,%ecx
  304         xorl    2048(%ebp,%ecx,8),%ebx
  305         movzbl  %dh,%esi
  306         movl    8(%esp),%ecx
  307         xorl    %ebx,%eax
  308         rorl    $8,%ebx
  309         xorl    2048(%ebp,%esi,8),%eax
  310         movzbl  %dl,%esi
  311         movl    4(%esp),%edx
  312         xorl    %ecx,%ebx
  313         xorl    2052(%ebp,%esi,8),%eax
  314         movl    64(%edi),%esi
  315         xorl    %eax,%ebx
  316         movl    %ebx,8(%esp)
  317         xorl    %edx,%eax
  318         movl    %eax,4(%esp)
  319         addl    $64,%edi
  320         cmpl    20(%esp),%edi
  321         je      .L003done
  322         andl    %eax,%esi
  323         movl    16(%esp),%edx
  324         roll    $1,%esi
  325         movl    %edx,%ecx
  326         xorl    %esi,%ebx
  327         orl     12(%edi),%ecx
  328         movl    %ebx,8(%esp)
  329         xorl    12(%esp),%ecx
  330         movl    4(%edi),%esi
  331         movl    %ecx,12(%esp)
  332         orl     %ebx,%esi
  333         andl    8(%edi),%ecx
  334         xorl    %esi,%eax
  335         roll    $1,%ecx
  336         movl    %eax,4(%esp)
  337         xorl    %ecx,%edx
  338         movl    16(%edi),%esi
  339         movl    %edx,16(%esp)
  340         jmp     .L002loop
  341 .align  8
  342 .L003done:
  343         movl    %eax,%ecx
  344         movl    %ebx,%edx
  345         movl    12(%esp),%eax
  346         movl    16(%esp),%ebx
  347         xorl    %esi,%eax
  348         xorl    4(%edi),%ebx
  349         xorl    8(%edi),%ecx
  350         xorl    12(%edi),%edx
  351         ret
  352 .size   _x86_Camellia_encrypt,.-_x86_Camellia_encrypt
  353 .globl  Camellia_DecryptBlock_Rounds
  354 .type   Camellia_DecryptBlock_Rounds,@function
  355 .align  16
  356 Camellia_DecryptBlock_Rounds:
  357 .L_Camellia_DecryptBlock_Rounds_begin:
  358         pushl   %ebp
  359         pushl   %ebx
  360         pushl   %esi
  361         pushl   %edi
  362         movl    20(%esp),%eax
  363         movl    24(%esp),%esi
  364         movl    28(%esp),%edi
  365         movl    %esp,%ebx
  366         subl    $28,%esp
  367         andl    $-64,%esp
  368         leal    -127(%edi),%ecx
  369         subl    %esp,%ecx
  370         negl    %ecx
  371         andl    $960,%ecx
  372         subl    %ecx,%esp
  373         addl    $4,%esp
  374         shll    $6,%eax
  375         movl    %edi,16(%esp)
  376         leal    (%edi,%eax,1),%edi
  377         movl    %ebx,20(%esp)
  378         call    .L004pic_point
  379 .L004pic_point:
  380         popl    %ebp
  381         leal    .LCamellia_SBOX-.L004pic_point(%ebp),%ebp
  382         movl    (%esi),%eax
  383         movl    4(%esi),%ebx
  384         movl    8(%esi),%ecx
  385         bswap   %eax
  386         movl    12(%esi),%edx
  387         bswap   %ebx
  388         bswap   %ecx
  389         bswap   %edx
  390         call    _x86_Camellia_decrypt
  391         movl    20(%esp),%esp
  392         bswap   %eax
  393         movl    32(%esp),%esi
  394         bswap   %ebx
  395         bswap   %ecx
  396         bswap   %edx
  397         movl    %eax,(%esi)
  398         movl    %ebx,4(%esi)
  399         movl    %ecx,8(%esi)
  400         movl    %edx,12(%esi)
  401         popl    %edi
  402         popl    %esi
  403         popl    %ebx
  404         popl    %ebp
  405         ret
  406 .size   Camellia_DecryptBlock_Rounds,.-.L_Camellia_DecryptBlock_Rounds_begin
  407 .globl  Camellia_DecryptBlock
  408 .type   Camellia_DecryptBlock,@function
  409 .align  16
  410 Camellia_DecryptBlock:
  411 .L_Camellia_DecryptBlock_begin:
  412         movl    $128,%eax
  413         subl    4(%esp),%eax
  414         movl    $3,%eax
  415         adcl    $0,%eax
  416         movl    %eax,4(%esp)
  417         jmp     .L_Camellia_DecryptBlock_Rounds_begin
  418 .size   Camellia_DecryptBlock,.-.L_Camellia_DecryptBlock_begin
  419 .globl  Camellia_decrypt
  420 .type   Camellia_decrypt,@function
  421 .align  16
  422 Camellia_decrypt:
  423 .L_Camellia_decrypt_begin:
  424         pushl   %ebp
  425         pushl   %ebx
  426         pushl   %esi
  427         pushl   %edi
  428         movl    20(%esp),%esi
  429         movl    28(%esp),%edi
  430         movl    %esp,%ebx
  431         subl    $28,%esp
  432         andl    $-64,%esp
  433         movl    272(%edi),%eax
  434         leal    -127(%edi),%ecx
  435         subl    %esp,%ecx
  436         negl    %ecx
  437         andl    $960,%ecx
  438         subl    %ecx,%esp
  439         addl    $4,%esp
  440         shll    $6,%eax
  441         movl    %edi,16(%esp)
  442         leal    (%edi,%eax,1),%edi
  443         movl    %ebx,20(%esp)
  444         call    .L005pic_point
  445 .L005pic_point:
  446         popl    %ebp
  447         leal    .LCamellia_SBOX-.L005pic_point(%ebp),%ebp
  448         movl    (%esi),%eax
  449         movl    4(%esi),%ebx
  450         movl    8(%esi),%ecx
  451         bswap   %eax
  452         movl    12(%esi),%edx
  453         bswap   %ebx
  454         bswap   %ecx
  455         bswap   %edx
  456         call    _x86_Camellia_decrypt
  457         movl    20(%esp),%esp
  458         bswap   %eax
  459         movl    24(%esp),%esi
  460         bswap   %ebx
  461         bswap   %ecx
  462         bswap   %edx
  463         movl    %eax,(%esi)
  464         movl    %ebx,4(%esi)
  465         movl    %ecx,8(%esi)
  466         movl    %edx,12(%esi)
  467         popl    %edi
  468         popl    %esi
  469         popl    %ebx
  470         popl    %ebp
  471         ret
  472 .size   Camellia_decrypt,.-.L_Camellia_decrypt_begin
  473 .type   _x86_Camellia_decrypt,@function
  474 .align  16
  475 _x86_Camellia_decrypt:
  476         xorl    (%edi),%eax
  477         xorl    4(%edi),%ebx
  478         xorl    8(%edi),%ecx
  479         xorl    12(%edi),%edx
  480         movl    -8(%edi),%esi
  481         movl    %eax,4(%esp)
  482         movl    %ebx,8(%esp)
  483         movl    %ecx,12(%esp)
  484         movl    %edx,16(%esp)
  485 .align  16
  486 .L006loop:
  487         xorl    %esi,%eax
  488         xorl    -4(%edi),%ebx
  489         movzbl  %ah,%esi
  490         movl    2052(%ebp,%esi,8),%edx
  491         movzbl  %al,%esi
  492         xorl    4(%ebp,%esi,8),%edx
  493         shrl    $16,%eax
  494         movzbl  %bl,%esi
  495         movl    (%ebp,%esi,8),%ecx
  496         movzbl  %ah,%esi
  497         xorl    (%ebp,%esi,8),%edx
  498         movzbl  %bh,%esi
  499         xorl    4(%ebp,%esi,8),%ecx
  500         shrl    $16,%ebx
  501         movzbl  %al,%eax
  502         xorl    2048(%ebp,%eax,8),%edx
  503         movzbl  %bh,%esi
  504         movl    16(%esp),%eax
  505         xorl    %edx,%ecx
  506         rorl    $8,%edx
  507         xorl    2048(%ebp,%esi,8),%ecx
  508         movzbl  %bl,%esi
  509         movl    12(%esp),%ebx
  510         xorl    %eax,%edx
  511         xorl    2052(%ebp,%esi,8),%ecx
  512         movl    -16(%edi),%esi
  513         xorl    %ecx,%edx
  514         movl    %edx,16(%esp)
  515         xorl    %ebx,%ecx
  516         movl    %ecx,12(%esp)
  517         xorl    %esi,%ecx
  518         xorl    -12(%edi),%edx
  519         movzbl  %ch,%esi
  520         movl    2052(%ebp,%esi,8),%ebx
  521         movzbl  %cl,%esi
  522         xorl    4(%ebp,%esi,8),%ebx
  523         shrl    $16,%ecx
  524         movzbl  %dl,%esi
  525         movl    (%ebp,%esi,8),%eax
  526         movzbl  %ch,%esi
  527         xorl    (%ebp,%esi,8),%ebx
  528         movzbl  %dh,%esi
  529         xorl    4(%ebp,%esi,8),%eax
  530         shrl    $16,%edx
  531         movzbl  %cl,%ecx
  532         xorl    2048(%ebp,%ecx,8),%ebx
  533         movzbl  %dh,%esi
  534         movl    8(%esp),%ecx
  535         xorl    %ebx,%eax
  536         rorl    $8,%ebx
  537         xorl    2048(%ebp,%esi,8),%eax
  538         movzbl  %dl,%esi
  539         movl    4(%esp),%edx
  540         xorl    %ecx,%ebx
  541         xorl    2052(%ebp,%esi,8),%eax
  542         movl    -24(%edi),%esi
  543         xorl    %eax,%ebx
  544         movl    %ebx,8(%esp)
  545         xorl    %edx,%eax
  546         movl    %eax,4(%esp)
  547         xorl    %esi,%eax
  548         xorl    -20(%edi),%ebx
  549         movzbl  %ah,%esi
  550         movl    2052(%ebp,%esi,8),%edx
  551         movzbl  %al,%esi
  552         xorl    4(%ebp,%esi,8),%edx
  553         shrl    $16,%eax
  554         movzbl  %bl,%esi
  555         movl    (%ebp,%esi,8),%ecx
  556         movzbl  %ah,%esi
  557         xorl    (%ebp,%esi,8),%edx
  558         movzbl  %bh,%esi
  559         xorl    4(%ebp,%esi,8),%ecx
  560         shrl    $16,%ebx
  561         movzbl  %al,%eax
  562         xorl    2048(%ebp,%eax,8),%edx
  563         movzbl  %bh,%esi
  564         movl    16(%esp),%eax
  565         xorl    %edx,%ecx
  566         rorl    $8,%edx
  567         xorl    2048(%ebp,%esi,8),%ecx
  568         movzbl  %bl,%esi
  569         movl    12(%esp),%ebx
  570         xorl    %eax,%edx
  571         xorl    2052(%ebp,%esi,8),%ecx
  572         movl    -32(%edi),%esi
  573         xorl    %ecx,%edx
  574         movl    %edx,16(%esp)
  575         xorl    %ebx,%ecx
  576         movl    %ecx,12(%esp)
  577         xorl    %esi,%ecx
  578         xorl    -28(%edi),%edx
  579         movzbl  %ch,%esi
  580         movl    2052(%ebp,%esi,8),%ebx
  581         movzbl  %cl,%esi
  582         xorl    4(%ebp,%esi,8),%ebx
  583         shrl    $16,%ecx
  584         movzbl  %dl,%esi
  585         movl    (%ebp,%esi,8),%eax
  586         movzbl  %ch,%esi
  587         xorl    (%ebp,%esi,8),%ebx
  588         movzbl  %dh,%esi
  589         xorl    4(%ebp,%esi,8),%eax
  590         shrl    $16,%edx
  591         movzbl  %cl,%ecx
  592         xorl    2048(%ebp,%ecx,8),%ebx
  593         movzbl  %dh,%esi
  594         movl    8(%esp),%ecx
  595         xorl    %ebx,%eax
  596         rorl    $8,%ebx
  597         xorl    2048(%ebp,%esi,8),%eax
  598         movzbl  %dl,%esi
  599         movl    4(%esp),%edx
  600         xorl    %ecx,%ebx
  601         xorl    2052(%ebp,%esi,8),%eax
  602         movl    -40(%edi),%esi
  603         xorl    %eax,%ebx
  604         movl    %ebx,8(%esp)
  605         xorl    %edx,%eax
  606         movl    %eax,4(%esp)
  607         xorl    %esi,%eax
  608         xorl    -36(%edi),%ebx
  609         movzbl  %ah,%esi
  610         movl    2052(%ebp,%esi,8),%edx
  611         movzbl  %al,%esi
  612         xorl    4(%ebp,%esi,8),%edx
  613         shrl    $16,%eax
  614         movzbl  %bl,%esi
  615         movl    (%ebp,%esi,8),%ecx
  616         movzbl  %ah,%esi
  617         xorl    (%ebp,%esi,8),%edx
  618         movzbl  %bh,%esi
  619         xorl    4(%ebp,%esi,8),%ecx
  620         shrl    $16,%ebx
  621         movzbl  %al,%eax
  622         xorl    2048(%ebp,%eax,8),%edx
  623         movzbl  %bh,%esi
  624         movl    16(%esp),%eax
  625         xorl    %edx,%ecx
  626         rorl    $8,%edx
  627         xorl    2048(%ebp,%esi,8),%ecx
  628         movzbl  %bl,%esi
  629         movl    12(%esp),%ebx
  630         xorl    %eax,%edx
  631         xorl    2052(%ebp,%esi,8),%ecx
  632         movl    -48(%edi),%esi
  633         xorl    %ecx,%edx
  634         movl    %edx,16(%esp)
  635         xorl    %ebx,%ecx
  636         movl    %ecx,12(%esp)
  637         xorl    %esi,%ecx
  638         xorl    -44(%edi),%edx
  639         movzbl  %ch,%esi
  640         movl    2052(%ebp,%esi,8),%ebx
  641         movzbl  %cl,%esi
  642         xorl    4(%ebp,%esi,8),%ebx
  643         shrl    $16,%ecx
  644         movzbl  %dl,%esi
  645         movl    (%ebp,%esi,8),%eax
  646         movzbl  %ch,%esi
  647         xorl    (%ebp,%esi,8),%ebx
  648         movzbl  %dh,%esi
  649         xorl    4(%ebp,%esi,8),%eax
  650         shrl    $16,%edx
  651         movzbl  %cl,%ecx
  652         xorl    2048(%ebp,%ecx,8),%ebx
  653         movzbl  %dh,%esi
  654         movl    8(%esp),%ecx
  655         xorl    %ebx,%eax
  656         rorl    $8,%ebx
  657         xorl    2048(%ebp,%esi,8),%eax
  658         movzbl  %dl,%esi
  659         movl    4(%esp),%edx
  660         xorl    %ecx,%ebx
  661         xorl    2052(%ebp,%esi,8),%eax
  662         movl    -56(%edi),%esi
  663         xorl    %eax,%ebx
  664         movl    %ebx,8(%esp)
  665         xorl    %edx,%eax
  666         movl    %eax,4(%esp)
  667         subl    $64,%edi
  668         cmpl    20(%esp),%edi
  669         je      .L007done
  670         andl    %eax,%esi
  671         movl    16(%esp),%edx
  672         roll    $1,%esi
  673         movl    %edx,%ecx
  674         xorl    %esi,%ebx
  675         orl     4(%edi),%ecx
  676         movl    %ebx,8(%esp)
  677         xorl    12(%esp),%ecx
  678         movl    12(%edi),%esi
  679         movl    %ecx,12(%esp)
  680         orl     %ebx,%esi
  681         andl    (%edi),%ecx
  682         xorl    %esi,%eax
  683         roll    $1,%ecx
  684         movl    %eax,4(%esp)
  685         xorl    %ecx,%edx
  686         movl    -8(%edi),%esi
  687         movl    %edx,16(%esp)
  688         jmp     .L006loop
  689 .align  8
  690 .L007done:
  691         movl    %eax,%ecx
  692         movl    %ebx,%edx
  693         movl    12(%esp),%eax
  694         movl    16(%esp),%ebx
  695         xorl    %esi,%ecx
  696         xorl    12(%edi),%edx
  697         xorl    (%edi),%eax
  698         xorl    4(%edi),%ebx
  699         ret
  700 .size   _x86_Camellia_decrypt,.-_x86_Camellia_decrypt
  701 .globl  Camellia_Ekeygen
  702 .type   Camellia_Ekeygen,@function
  703 .align  16
  704 Camellia_Ekeygen:
  705 .L_Camellia_Ekeygen_begin:
  706         pushl   %ebp
  707         pushl   %ebx
  708         pushl   %esi
  709         pushl   %edi
  710         subl    $16,%esp
  711         movl    36(%esp),%ebp
  712         movl    40(%esp),%esi
  713         movl    44(%esp),%edi
  714         movl    (%esi),%eax
  715         movl    4(%esi),%ebx
  716         movl    8(%esi),%ecx
  717         movl    12(%esi),%edx
  718         bswap   %eax
  719         bswap   %ebx
  720         bswap   %ecx
  721         bswap   %edx
  722         movl    %eax,(%edi)
  723         movl    %ebx,4(%edi)
  724         movl    %ecx,8(%edi)
  725         movl    %edx,12(%edi)
  726         cmpl    $128,%ebp
  727         je      .L0081st128
  728         movl    16(%esi),%eax
  729         movl    20(%esi),%ebx
  730         cmpl    $192,%ebp
  731         je      .L0091st192
  732         movl    24(%esi),%ecx
  733         movl    28(%esi),%edx
  734         jmp     .L0101st256
  735 .align  4
  736 .L0091st192:
  737         movl    %eax,%ecx
  738         movl    %ebx,%edx
  739         notl    %ecx
  740         notl    %edx
  741 .align  4
  742 .L0101st256:
  743         bswap   %eax
  744         bswap   %ebx
  745         bswap   %ecx
  746         bswap   %edx
  747         movl    %eax,32(%edi)
  748         movl    %ebx,36(%edi)
  749         movl    %ecx,40(%edi)
  750         movl    %edx,44(%edi)
  751         xorl    (%edi),%eax
  752         xorl    4(%edi),%ebx
  753         xorl    8(%edi),%ecx
  754         xorl    12(%edi),%edx
  755 .align  4
  756 .L0081st128:
  757         call    .L011pic_point
  758 .L011pic_point:
  759         popl    %ebp
  760         leal    .LCamellia_SBOX-.L011pic_point(%ebp),%ebp
  761         leal    .LCamellia_SIGMA-.LCamellia_SBOX(%ebp),%edi
  762         movl    (%edi),%esi
  763         movl    %eax,(%esp)
  764         movl    %ebx,4(%esp)
  765         movl    %ecx,8(%esp)
  766         movl    %edx,12(%esp)
  767         xorl    %esi,%eax
  768         xorl    4(%edi),%ebx
  769         movzbl  %ah,%esi
  770         movl    2052(%ebp,%esi,8),%edx
  771         movzbl  %al,%esi
  772         xorl    4(%ebp,%esi,8),%edx
  773         shrl    $16,%eax
  774         movzbl  %bl,%esi
  775         movl    (%ebp,%esi,8),%ecx
  776         movzbl  %ah,%esi
  777         xorl    (%ebp,%esi,8),%edx
  778         movzbl  %bh,%esi
  779         xorl    4(%ebp,%esi,8),%ecx
  780         shrl    $16,%ebx
  781         movzbl  %al,%eax
  782         xorl    2048(%ebp,%eax,8),%edx
  783         movzbl  %bh,%esi
  784         movl    12(%esp),%eax
  785         xorl    %edx,%ecx
  786         rorl    $8,%edx
  787         xorl    2048(%ebp,%esi,8),%ecx
  788         movzbl  %bl,%esi
  789         movl    8(%esp),%ebx
  790         xorl    %eax,%edx
  791         xorl    2052(%ebp,%esi,8),%ecx
  792         movl    8(%edi),%esi
  793         xorl    %ecx,%edx
  794         movl    %edx,12(%esp)
  795         xorl    %ebx,%ecx
  796         movl    %ecx,8(%esp)
  797         xorl    %esi,%ecx
  798         xorl    12(%edi),%edx
  799         movzbl  %ch,%esi
  800         movl    2052(%ebp,%esi,8),%ebx
  801         movzbl  %cl,%esi
  802         xorl    4(%ebp,%esi,8),%ebx
  803         shrl    $16,%ecx
  804         movzbl  %dl,%esi
  805         movl    (%ebp,%esi,8),%eax
  806         movzbl  %ch,%esi
  807         xorl    (%ebp,%esi,8),%ebx
  808         movzbl  %dh,%esi
  809         xorl    4(%ebp,%esi,8),%eax
  810         shrl    $16,%edx
  811         movzbl  %cl,%ecx
  812         xorl    2048(%ebp,%ecx,8),%ebx
  813         movzbl  %dh,%esi
  814         movl    4(%esp),%ecx
  815         xorl    %ebx,%eax
  816         rorl    $8,%ebx
  817         xorl    2048(%ebp,%esi,8),%eax
  818         movzbl  %dl,%esi
  819         movl    (%esp),%edx
  820         xorl    %ecx,%ebx
  821         xorl    2052(%ebp,%esi,8),%eax
  822         movl    16(%edi),%esi
  823         xorl    %eax,%ebx
  824         movl    %ebx,4(%esp)
  825         xorl    %edx,%eax
  826         movl    %eax,(%esp)
  827         movl    8(%esp),%ecx
  828         movl    12(%esp),%edx
  829         movl    44(%esp),%esi
  830         xorl    (%esi),%eax
  831         xorl    4(%esi),%ebx
  832         xorl    8(%esi),%ecx
  833         xorl    12(%esi),%edx
  834         movl    16(%edi),%esi
  835         movl    %eax,(%esp)
  836         movl    %ebx,4(%esp)
  837         movl    %ecx,8(%esp)
  838         movl    %edx,12(%esp)
  839         xorl    %esi,%eax
  840         xorl    20(%edi),%ebx
  841         movzbl  %ah,%esi
  842         movl    2052(%ebp,%esi,8),%edx
  843         movzbl  %al,%esi
  844         xorl    4(%ebp,%esi,8),%edx
  845         shrl    $16,%eax
  846         movzbl  %bl,%esi
  847         movl    (%ebp,%esi,8),%ecx
  848         movzbl  %ah,%esi
  849         xorl    (%ebp,%esi,8),%edx
  850         movzbl  %bh,%esi
  851         xorl    4(%ebp,%esi,8),%ecx
  852         shrl    $16,%ebx
  853         movzbl  %al,%eax
  854         xorl    2048(%ebp,%eax,8),%edx
  855         movzbl  %bh,%esi
  856         movl    12(%esp),%eax
  857         xorl    %edx,%ecx
  858         rorl    $8,%edx
  859         xorl    2048(%ebp,%esi,8),%ecx
  860         movzbl  %bl,%esi
  861         movl    8(%esp),%ebx
  862         xorl    %eax,%edx
  863         xorl    2052(%ebp,%esi,8),%ecx
  864         movl    24(%edi),%esi
  865         xorl    %ecx,%edx
  866         movl    %edx,12(%esp)
  867         xorl    %ebx,%ecx
  868         movl    %ecx,8(%esp)
  869         xorl    %esi,%ecx
  870         xorl    28(%edi),%edx
  871         movzbl  %ch,%esi
  872         movl    2052(%ebp,%esi,8),%ebx
  873         movzbl  %cl,%esi
  874         xorl    4(%ebp,%esi,8),%ebx
  875         shrl    $16,%ecx
  876         movzbl  %dl,%esi
  877         movl    (%ebp,%esi,8),%eax
  878         movzbl  %ch,%esi
  879         xorl    (%ebp,%esi,8),%ebx
  880         movzbl  %dh,%esi
  881         xorl    4(%ebp,%esi,8),%eax
  882         shrl    $16,%edx
  883         movzbl  %cl,%ecx
  884         xorl    2048(%ebp,%ecx,8),%ebx
  885         movzbl  %dh,%esi
  886         movl    4(%esp),%ecx
  887         xorl    %ebx,%eax
  888         rorl    $8,%ebx
  889         xorl    2048(%ebp,%esi,8),%eax
  890         movzbl  %dl,%esi
  891         movl    (%esp),%edx
  892         xorl    %ecx,%ebx
  893         xorl    2052(%ebp,%esi,8),%eax
  894         movl    32(%edi),%esi
  895         xorl    %eax,%ebx
  896         movl    %ebx,4(%esp)
  897         xorl    %edx,%eax
  898         movl    %eax,(%esp)
  899         movl    8(%esp),%ecx
  900         movl    12(%esp),%edx
  901         movl    36(%esp),%esi
  902         cmpl    $128,%esi
  903         jne     .L0122nd256
  904         movl    44(%esp),%edi
  905         leal    128(%edi),%edi
  906         movl    %eax,-112(%edi)
  907         movl    %ebx,-108(%edi)
  908         movl    %ecx,-104(%edi)
  909         movl    %edx,-100(%edi)
  910         movl    %eax,%ebp
  911         shll    $15,%eax
  912         movl    %ebx,%esi
  913         shrl    $17,%esi
  914         shll    $15,%ebx
  915         orl     %esi,%eax
  916         movl    %ecx,%esi
  917         shll    $15,%ecx
  918         movl    %eax,-80(%edi)
  919         shrl    $17,%esi
  920         orl     %esi,%ebx
  921         shrl    $17,%ebp
  922         movl    %edx,%esi
  923         shrl    $17,%esi
  924         movl    %ebx,-76(%edi)
  925         shll    $15,%edx
  926         orl     %esi,%ecx
  927         orl     %ebp,%edx
  928         movl    %ecx,-72(%edi)
  929         movl    %edx,-68(%edi)
  930         movl    %eax,%ebp
  931         shll    $15,%eax
  932         movl    %ebx,%esi
  933         shrl    $17,%esi
  934         shll    $15,%ebx
  935         orl     %esi,%eax
  936         movl    %ecx,%esi
  937         shll    $15,%ecx
  938         movl    %eax,-64(%edi)
  939         shrl    $17,%esi
  940         orl     %esi,%ebx
  941         shrl    $17,%ebp
  942         movl    %edx,%esi
  943         shrl    $17,%esi
  944         movl    %ebx,-60(%edi)
  945         shll    $15,%edx
  946         orl     %esi,%ecx
  947         orl     %ebp,%edx
  948         movl    %ecx,-56(%edi)
  949         movl    %edx,-52(%edi)
  950         movl    %eax,%ebp
  951         shll    $15,%eax
  952         movl    %ebx,%esi
  953         shrl    $17,%esi
  954         shll    $15,%ebx
  955         orl     %esi,%eax
  956         movl    %ecx,%esi
  957         shll    $15,%ecx
  958         movl    %eax,-32(%edi)
  959         shrl    $17,%esi
  960         orl     %esi,%ebx
  961         shrl    $17,%ebp
  962         movl    %edx,%esi
  963         shrl    $17,%esi
  964         movl    %ebx,-28(%edi)
  965         shll    $15,%edx
  966         orl     %esi,%ecx
  967         orl     %ebp,%edx
  968         movl    %eax,%ebp
  969         shll    $15,%eax
  970         movl    %ebx,%esi
  971         shrl    $17,%esi
  972         shll    $15,%ebx
  973         orl     %esi,%eax
  974         movl    %ecx,%esi
  975         shll    $15,%ecx
  976         movl    %eax,-16(%edi)
  977         shrl    $17,%esi
  978         orl     %esi,%ebx
  979         shrl    $17,%ebp
  980         movl    %edx,%esi
  981         shrl    $17,%esi
  982         movl    %ebx,-12(%edi)
  983         shll    $15,%edx
  984         orl     %esi,%ecx
  985         orl     %ebp,%edx
  986         movl    %ecx,-8(%edi)
  987         movl    %edx,-4(%edi)
  988         movl    %ebx,%ebp
  989         shll    $2,%ebx
  990         movl    %ecx,%esi
  991         shrl    $30,%esi
  992         shll    $2,%ecx
  993         orl     %esi,%ebx
  994         movl    %edx,%esi
  995         shll    $2,%edx
  996         movl    %ebx,32(%edi)
  997         shrl    $30,%esi
  998         orl     %esi,%ecx
  999         shrl    $30,%ebp
 1000         movl    %eax,%esi
 1001         shrl    $30,%esi
 1002         movl    %ecx,36(%edi)
 1003         shll    $2,%eax
 1004         orl     %esi,%edx
 1005         orl     %ebp,%eax
 1006         movl    %edx,40(%edi)
 1007         movl    %eax,44(%edi)
 1008         movl    %ebx,%ebp
 1009         shll    $17,%ebx
 1010         movl    %ecx,%esi
 1011         shrl    $15,%esi
 1012         shll    $17,%ecx
 1013         orl     %esi,%ebx
 1014         movl    %edx,%esi
 1015         shll    $17,%edx
 1016         movl    %ebx,64(%edi)
 1017         shrl    $15,%esi
 1018         orl     %esi,%ecx
 1019         shrl    $15,%ebp
 1020         movl    %eax,%esi
 1021         shrl    $15,%esi
 1022         movl    %ecx,68(%edi)
 1023         shll    $17,%eax
 1024         orl     %esi,%edx
 1025         orl     %ebp,%eax
 1026         movl    %edx,72(%edi)
 1027         movl    %eax,76(%edi)
 1028         movl    -128(%edi),%ebx
 1029         movl    -124(%edi),%ecx
 1030         movl    -120(%edi),%edx
 1031         movl    -116(%edi),%eax
 1032         movl    %ebx,%ebp
 1033         shll    $15,%ebx
 1034         movl    %ecx,%esi
 1035         shrl    $17,%esi
 1036         shll    $15,%ecx
 1037         orl     %esi,%ebx
 1038         movl    %edx,%esi
 1039         shll    $15,%edx
 1040         movl    %ebx,-96(%edi)
 1041         shrl    $17,%esi
 1042         orl     %esi,%ecx
 1043         shrl    $17,%ebp
 1044         movl    %eax,%esi
 1045         shrl    $17,%esi
 1046         movl    %ecx,-92(%edi)
 1047         shll    $15,%eax
 1048         orl     %esi,%edx
 1049         orl     %ebp,%eax
 1050         movl    %edx,-88(%edi)
 1051         movl    %eax,-84(%edi)
 1052         movl    %ebx,%ebp
 1053         shll    $30,%ebx
 1054         movl    %ecx,%esi
 1055         shrl    $2,%esi
 1056         shll    $30,%ecx
 1057         orl     %esi,%ebx
 1058         movl    %edx,%esi
 1059         shll    $30,%edx
 1060         movl    %ebx,-48(%edi)
 1061         shrl    $2,%esi
 1062         orl     %esi,%ecx
 1063         shrl    $2,%ebp
 1064         movl    %eax,%esi
 1065         shrl    $2,%esi
 1066         movl    %ecx,-44(%edi)
 1067         shll    $30,%eax
 1068         orl     %esi,%edx
 1069         orl     %ebp,%eax
 1070         movl    %edx,-40(%edi)
 1071         movl    %eax,-36(%edi)
 1072         movl    %ebx,%ebp
 1073         shll    $15,%ebx
 1074         movl    %ecx,%esi
 1075         shrl    $17,%esi
 1076         shll    $15,%ecx
 1077         orl     %esi,%ebx
 1078         movl    %edx,%esi
 1079         shll    $15,%edx
 1080         shrl    $17,%esi
 1081         orl     %esi,%ecx
 1082         shrl    $17,%ebp
 1083         movl    %eax,%esi
 1084         shrl    $17,%esi
 1085         shll    $15,%eax
 1086         orl     %esi,%edx
 1087         orl     %ebp,%eax
 1088         movl    %edx,-24(%edi)
 1089         movl    %eax,-20(%edi)
 1090         movl    %ebx,%ebp
 1091         shll    $17,%ebx
 1092         movl    %ecx,%esi
 1093         shrl    $15,%esi
 1094         shll    $17,%ecx
 1095         orl     %esi,%ebx
 1096         movl    %edx,%esi
 1097         shll    $17,%edx
 1098         movl    %ebx,(%edi)
 1099         shrl    $15,%esi
 1100         orl     %esi,%ecx
 1101         shrl    $15,%ebp
 1102         movl    %eax,%esi
 1103         shrl    $15,%esi
 1104         movl    %ecx,4(%edi)
 1105         shll    $17,%eax
 1106         orl     %esi,%edx
 1107         orl     %ebp,%eax
 1108         movl    %edx,8(%edi)
 1109         movl    %eax,12(%edi)
 1110         movl    %ebx,%ebp
 1111         shll    $17,%ebx
 1112         movl    %ecx,%esi
 1113         shrl    $15,%esi
 1114         shll    $17,%ecx
 1115         orl     %esi,%ebx
 1116         movl    %edx,%esi
 1117         shll    $17,%edx
 1118         movl    %ebx,16(%edi)
 1119         shrl    $15,%esi
 1120         orl     %esi,%ecx
 1121         shrl    $15,%ebp
 1122         movl    %eax,%esi
 1123         shrl    $15,%esi
 1124         movl    %ecx,20(%edi)
 1125         shll    $17,%eax
 1126         orl     %esi,%edx
 1127         orl     %ebp,%eax
 1128         movl    %edx,24(%edi)
 1129         movl    %eax,28(%edi)
 1130         movl    %ebx,%ebp
 1131         shll    $17,%ebx
 1132         movl    %ecx,%esi
 1133         shrl    $15,%esi
 1134         shll    $17,%ecx
 1135         orl     %esi,%ebx
 1136         movl    %edx,%esi
 1137         shll    $17,%edx
 1138         movl    %ebx,48(%edi)
 1139         shrl    $15,%esi
 1140         orl     %esi,%ecx
 1141         shrl    $15,%ebp
 1142         movl    %eax,%esi
 1143         shrl    $15,%esi
 1144         movl    %ecx,52(%edi)
 1145         shll    $17,%eax
 1146         orl     %esi,%edx
 1147         orl     %ebp,%eax
 1148         movl    %edx,56(%edi)
 1149         movl    %eax,60(%edi)
 1150         movl    $3,%eax
 1151         jmp     .L013done
 1152 .align  16
 1153 .L0122nd256:
 1154         movl    44(%esp),%esi
 1155         movl    %eax,48(%esi)
 1156         movl    %ebx,52(%esi)
 1157         movl    %ecx,56(%esi)
 1158         movl    %edx,60(%esi)
 1159         xorl    32(%esi),%eax
 1160         xorl    36(%esi),%ebx
 1161         xorl    40(%esi),%ecx
 1162         xorl    44(%esi),%edx
 1163         movl    32(%edi),%esi
 1164         movl    %eax,(%esp)
 1165         movl    %ebx,4(%esp)
 1166         movl    %ecx,8(%esp)
 1167         movl    %edx,12(%esp)
 1168         xorl    %esi,%eax
 1169         xorl    36(%edi),%ebx
 1170         movzbl  %ah,%esi
 1171         movl    2052(%ebp,%esi,8),%edx
 1172         movzbl  %al,%esi
 1173         xorl    4(%ebp,%esi,8),%edx
 1174         shrl    $16,%eax
 1175         movzbl  %bl,%esi
 1176         movl    (%ebp,%esi,8),%ecx
 1177         movzbl  %ah,%esi
 1178         xorl    (%ebp,%esi,8),%edx
 1179         movzbl  %bh,%esi
 1180         xorl    4(%ebp,%esi,8),%ecx
 1181         shrl    $16,%ebx
 1182         movzbl  %al,%eax
 1183         xorl    2048(%ebp,%eax,8),%edx
 1184         movzbl  %bh,%esi
 1185         movl    12(%esp),%eax
 1186         xorl    %edx,%ecx
 1187         rorl    $8,%edx
 1188         xorl    2048(%ebp,%esi,8),%ecx
 1189         movzbl  %bl,%esi
 1190         movl    8(%esp),%ebx
 1191         xorl    %eax,%edx
 1192         xorl    2052(%ebp,%esi,8),%ecx
 1193         movl    40(%edi),%esi
 1194         xorl    %ecx,%edx
 1195         movl    %edx,12(%esp)
 1196         xorl    %ebx,%ecx
 1197         movl    %ecx,8(%esp)
 1198         xorl    %esi,%ecx
 1199         xorl    44(%edi),%edx
 1200         movzbl  %ch,%esi
 1201         movl    2052(%ebp,%esi,8),%ebx
 1202         movzbl  %cl,%esi
 1203         xorl    4(%ebp,%esi,8),%ebx
 1204         shrl    $16,%ecx
 1205         movzbl  %dl,%esi
 1206         movl    (%ebp,%esi,8),%eax
 1207         movzbl  %ch,%esi
 1208         xorl    (%ebp,%esi,8),%ebx
 1209         movzbl  %dh,%esi
 1210         xorl    4(%ebp,%esi,8),%eax
 1211         shrl    $16,%edx
 1212         movzbl  %cl,%ecx
 1213         xorl    2048(%ebp,%ecx,8),%ebx
 1214         movzbl  %dh,%esi
 1215         movl    4(%esp),%ecx
 1216         xorl    %ebx,%eax
 1217         rorl    $8,%ebx
 1218         xorl    2048(%ebp,%esi,8),%eax
 1219         movzbl  %dl,%esi
 1220         movl    (%esp),%edx
 1221         xorl    %ecx,%ebx
 1222         xorl    2052(%ebp,%esi,8),%eax
 1223         movl    48(%edi),%esi
 1224         xorl    %eax,%ebx
 1225         movl    %ebx,4(%esp)
 1226         xorl    %edx,%eax
 1227         movl    %eax,(%esp)
 1228         movl    8(%esp),%ecx
 1229         movl    12(%esp),%edx
 1230         movl    44(%esp),%edi
 1231         leal    128(%edi),%edi
 1232         movl    %eax,-112(%edi)
 1233         movl    %ebx,-108(%edi)
 1234         movl    %ecx,-104(%edi)
 1235         movl    %edx,-100(%edi)
 1236         movl    %eax,%ebp
 1237         shll    $30,%eax
 1238         movl    %ebx,%esi
 1239         shrl    $2,%esi
 1240         shll    $30,%ebx
 1241         orl     %esi,%eax
 1242         movl    %ecx,%esi
 1243         shll    $30,%ecx
 1244         movl    %eax,-48(%edi)
 1245         shrl    $2,%esi
 1246         orl     %esi,%ebx
 1247         shrl    $2,%ebp
 1248         movl    %edx,%esi
 1249         shrl    $2,%esi
 1250         movl    %ebx,-44(%edi)
 1251         shll    $30,%edx
 1252         orl     %esi,%ecx
 1253         orl     %ebp,%edx
 1254         movl    %ecx,-40(%edi)
 1255         movl    %edx,-36(%edi)
 1256         movl    %eax,%ebp
 1257         shll    $30,%eax
 1258         movl    %ebx,%esi
 1259         shrl    $2,%esi
 1260         shll    $30,%ebx
 1261         orl     %esi,%eax
 1262         movl    %ecx,%esi
 1263         shll    $30,%ecx
 1264         movl    %eax,32(%edi)
 1265         shrl    $2,%esi
 1266         orl     %esi,%ebx
 1267         shrl    $2,%ebp
 1268         movl    %edx,%esi
 1269         shrl    $2,%esi
 1270         movl    %ebx,36(%edi)
 1271         shll    $30,%edx
 1272         orl     %esi,%ecx
 1273         orl     %ebp,%edx
 1274         movl    %ecx,40(%edi)
 1275         movl    %edx,44(%edi)
 1276         movl    %ebx,%ebp
 1277         shll    $19,%ebx
 1278         movl    %ecx,%esi
 1279         shrl    $13,%esi
 1280         shll    $19,%ecx
 1281         orl     %esi,%ebx
 1282         movl    %edx,%esi
 1283         shll    $19,%edx
 1284         movl    %ebx,128(%edi)
 1285         shrl    $13,%esi
 1286         orl     %esi,%ecx
 1287         shrl    $13,%ebp
 1288         movl    %eax,%esi
 1289         shrl    $13,%esi
 1290         movl    %ecx,132(%edi)
 1291         shll    $19,%eax
 1292         orl     %esi,%edx
 1293         orl     %ebp,%eax
 1294         movl    %edx,136(%edi)
 1295         movl    %eax,140(%edi)
 1296         movl    -96(%edi),%ebx
 1297         movl    -92(%edi),%ecx
 1298         movl    -88(%edi),%edx
 1299         movl    -84(%edi),%eax
 1300         movl    %ebx,%ebp
 1301         shll    $15,%ebx
 1302         movl    %ecx,%esi
 1303         shrl    $17,%esi
 1304         shll    $15,%ecx
 1305         orl     %esi,%ebx
 1306         movl    %edx,%esi
 1307         shll    $15,%edx
 1308         movl    %ebx,-96(%edi)
 1309         shrl    $17,%esi
 1310         orl     %esi,%ecx
 1311         shrl    $17,%ebp
 1312         movl    %eax,%esi
 1313         shrl    $17,%esi
 1314         movl    %ecx,-92(%edi)
 1315         shll    $15,%eax
 1316         orl     %esi,%edx
 1317         orl     %ebp,%eax
 1318         movl    %edx,-88(%edi)
 1319         movl    %eax,-84(%edi)
 1320         movl    %ebx,%ebp
 1321         shll    $15,%ebx
 1322         movl    %ecx,%esi
 1323         shrl    $17,%esi
 1324         shll    $15,%ecx
 1325         orl     %esi,%ebx
 1326         movl    %edx,%esi
 1327         shll    $15,%edx
 1328         movl    %ebx,-64(%edi)
 1329         shrl    $17,%esi
 1330         orl     %esi,%ecx
 1331         shrl    $17,%ebp
 1332         movl    %eax,%esi
 1333         shrl    $17,%esi
 1334         movl    %ecx,-60(%edi)
 1335         shll    $15,%eax
 1336         orl     %esi,%edx
 1337         orl     %ebp,%eax
 1338         movl    %edx,-56(%edi)
 1339         movl    %eax,-52(%edi)
 1340         movl    %ebx,%ebp
 1341         shll    $30,%ebx
 1342         movl    %ecx,%esi
 1343         shrl    $2,%esi
 1344         shll    $30,%ecx
 1345         orl     %esi,%ebx
 1346         movl    %edx,%esi
 1347         shll    $30,%edx
 1348         movl    %ebx,16(%edi)
 1349         shrl    $2,%esi
 1350         orl     %esi,%ecx
 1351         shrl    $2,%ebp
 1352         movl    %eax,%esi
 1353         shrl    $2,%esi
 1354         movl    %ecx,20(%edi)
 1355         shll    $30,%eax
 1356         orl     %esi,%edx
 1357         orl     %ebp,%eax
 1358         movl    %edx,24(%edi)
 1359         movl    %eax,28(%edi)
 1360         movl    %ecx,%ebp
 1361         shll    $2,%ecx
 1362         movl    %edx,%esi
 1363         shrl    $30,%esi
 1364         shll    $2,%edx
 1365         orl     %esi,%ecx
 1366         movl    %eax,%esi
 1367         shll    $2,%eax
 1368         movl    %ecx,80(%edi)
 1369         shrl    $30,%esi
 1370         orl     %esi,%edx
 1371         shrl    $30,%ebp
 1372         movl    %ebx,%esi
 1373         shrl    $30,%esi
 1374         movl    %edx,84(%edi)
 1375         shll    $2,%ebx
 1376         orl     %esi,%eax
 1377         orl     %ebp,%ebx
 1378         movl    %eax,88(%edi)
 1379         movl    %ebx,92(%edi)
 1380         movl    -80(%edi),%ecx
 1381         movl    -76(%edi),%edx
 1382         movl    -72(%edi),%eax
 1383         movl    -68(%edi),%ebx
 1384         movl    %ecx,%ebp
 1385         shll    $15,%ecx
 1386         movl    %edx,%esi
 1387         shrl    $17,%esi
 1388         shll    $15,%edx
 1389         orl     %esi,%ecx
 1390         movl    %eax,%esi
 1391         shll    $15,%eax
 1392         movl    %ecx,-80(%edi)
 1393         shrl    $17,%esi
 1394         orl     %esi,%edx
 1395         shrl    $17,%ebp
 1396         movl    %ebx,%esi
 1397         shrl    $17,%esi
 1398         movl    %edx,-76(%edi)
 1399         shll    $15,%ebx
 1400         orl     %esi,%eax
 1401         orl     %ebp,%ebx
 1402         movl    %eax,-72(%edi)
 1403         movl    %ebx,-68(%edi)
 1404         movl    %ecx,%ebp
 1405         shll    $30,%ecx
 1406         movl    %edx,%esi
 1407         shrl    $2,%esi
 1408         shll    $30,%edx
 1409         orl     %esi,%ecx
 1410         movl    %eax,%esi
 1411         shll    $30,%eax
 1412         movl    %ecx,-16(%edi)
 1413         shrl    $2,%esi
 1414         orl     %esi,%edx
 1415         shrl    $2,%ebp
 1416         movl    %ebx,%esi
 1417         shrl    $2,%esi
 1418         movl    %edx,-12(%edi)
 1419         shll    $30,%ebx
 1420         orl     %esi,%eax
 1421         orl     %ebp,%ebx
 1422         movl    %eax,-8(%edi)
 1423         movl    %ebx,-4(%edi)
 1424         movl    %edx,64(%edi)
 1425         movl    %eax,68(%edi)
 1426         movl    %ebx,72(%edi)
 1427         movl    %ecx,76(%edi)
 1428         movl    %edx,%ebp
 1429         shll    $17,%edx
 1430         movl    %eax,%esi
 1431         shrl    $15,%esi
 1432         shll    $17,%eax
 1433         orl     %esi,%edx
 1434         movl    %ebx,%esi
 1435         shll    $17,%ebx
 1436         movl    %edx,96(%edi)
 1437         shrl    $15,%esi
 1438         orl     %esi,%eax
 1439         shrl    $15,%ebp
 1440         movl    %ecx,%esi
 1441         shrl    $15,%esi
 1442         movl    %eax,100(%edi)
 1443         shll    $17,%ecx
 1444         orl     %esi,%ebx
 1445         orl     %ebp,%ecx
 1446         movl    %ebx,104(%edi)
 1447         movl    %ecx,108(%edi)
 1448         movl    -128(%edi),%edx
 1449         movl    -124(%edi),%eax
 1450         movl    -120(%edi),%ebx
 1451         movl    -116(%edi),%ecx
 1452         movl    %eax,%ebp
 1453         shll    $13,%eax
 1454         movl    %ebx,%esi
 1455         shrl    $19,%esi
 1456         shll    $13,%ebx
 1457         orl     %esi,%eax
 1458         movl    %ecx,%esi
 1459         shll    $13,%ecx
 1460         movl    %eax,-32(%edi)
 1461         shrl    $19,%esi
 1462         orl     %esi,%ebx
 1463         shrl    $19,%ebp
 1464         movl    %edx,%esi
 1465         shrl    $19,%esi
 1466         movl    %ebx,-28(%edi)
 1467         shll    $13,%edx
 1468         orl     %esi,%ecx
 1469         orl     %ebp,%edx
 1470         movl    %ecx,-24(%edi)
 1471         movl    %edx,-20(%edi)
 1472         movl    %eax,%ebp
 1473         shll    $15,%eax
 1474         movl    %ebx,%esi
 1475         shrl    $17,%esi
 1476         shll    $15,%ebx
 1477         orl     %esi,%eax
 1478         movl    %ecx,%esi
 1479         shll    $15,%ecx
 1480         movl    %eax,(%edi)
 1481         shrl    $17,%esi
 1482         orl     %esi,%ebx
 1483         shrl    $17,%ebp
 1484         movl    %edx,%esi
 1485         shrl    $17,%esi
 1486         movl    %ebx,4(%edi)
 1487         shll    $15,%edx
 1488         orl     %esi,%ecx
 1489         orl     %ebp,%edx
 1490         movl    %ecx,8(%edi)
 1491         movl    %edx,12(%edi)
 1492         movl    %eax,%ebp
 1493         shll    $17,%eax
 1494         movl    %ebx,%esi
 1495         shrl    $15,%esi
 1496         shll    $17,%ebx
 1497         orl     %esi,%eax
 1498         movl    %ecx,%esi
 1499         shll    $17,%ecx
 1500         movl    %eax,48(%edi)
 1501         shrl    $15,%esi
 1502         orl     %esi,%ebx
 1503         shrl    $15,%ebp
 1504         movl    %edx,%esi
 1505         shrl    $15,%esi
 1506         movl    %ebx,52(%edi)
 1507         shll    $17,%edx
 1508         orl     %esi,%ecx
 1509         orl     %ebp,%edx
 1510         movl    %ecx,56(%edi)
 1511         movl    %edx,60(%edi)
 1512         movl    %ebx,%ebp
 1513         shll    $2,%ebx
 1514         movl    %ecx,%esi
 1515         shrl    $30,%esi
 1516         shll    $2,%ecx
 1517         orl     %esi,%ebx
 1518         movl    %edx,%esi
 1519         shll    $2,%edx
 1520         movl    %ebx,112(%edi)
 1521         shrl    $30,%esi
 1522         orl     %esi,%ecx
 1523         shrl    $30,%ebp
 1524         movl    %eax,%esi
 1525         shrl    $30,%esi
 1526         movl    %ecx,116(%edi)
 1527         shll    $2,%eax
 1528         orl     %esi,%edx
 1529         orl     %ebp,%eax
 1530         movl    %edx,120(%edi)
 1531         movl    %eax,124(%edi)
 1532         movl    $4,%eax
 1533 .L013done:
 1534         leal    144(%edi),%edx
 1535         addl    $16,%esp
 1536         popl    %edi
 1537         popl    %esi
 1538         popl    %ebx
 1539         popl    %ebp
 1540         ret
 1541 .size   Camellia_Ekeygen,.-.L_Camellia_Ekeygen_begin
 1542 .globl  Camellia_set_key
 1543 .type   Camellia_set_key,@function
 1544 .align  16
 1545 Camellia_set_key:
 1546 .L_Camellia_set_key_begin:
 1547         pushl   %ebx
 1548         movl    8(%esp),%ecx
 1549         movl    12(%esp),%ebx
 1550         movl    16(%esp),%edx
 1551         movl    $-1,%eax
 1552         testl   %ecx,%ecx
 1553         jz      .L014done
 1554         testl   %edx,%edx
 1555         jz      .L014done
 1556         movl    $-2,%eax
 1557         cmpl    $256,%ebx
 1558         je      .L015arg_ok
 1559         cmpl    $192,%ebx
 1560         je      .L015arg_ok
 1561         cmpl    $128,%ebx
 1562         jne     .L014done
 1563 .align  4
 1564 .L015arg_ok:
 1565         pushl   %edx
 1566         pushl   %ecx
 1567         pushl   %ebx
 1568         call    .L_Camellia_Ekeygen_begin
 1569         addl    $12,%esp
 1570         movl    %eax,(%edx)
 1571         xorl    %eax,%eax
 1572 .align  4
 1573 .L014done:
 1574         popl    %ebx
 1575         ret
 1576 .size   Camellia_set_key,.-.L_Camellia_set_key_begin
 1577 .align  64
 1578 .LCamellia_SIGMA:
 1579 .long   2694735487,1003262091,3061508184,1286239154,3337565999,3914302142,1426019237,4057165596,283453434,3731369245,2958461122,3018244605,0,0,0,0
 1580 .align  64
 1581 .LCamellia_SBOX:
 1582 .long   1886416896,1886388336
 1583 .long   2189591040,741081132
 1584 .long   741092352,3014852787
 1585 .long   3974949888,3233808576
 1586 .long   3014898432,3840147684
 1587 .long   656877312,1465319511
 1588 .long   3233857536,3941204202
 1589 .long   3857048832,2930639022
 1590 .long   3840205824,589496355
 1591 .long   2240120064,1802174571
 1592 .long   1465341696,1162149957
 1593 .long   892679424,2779054245
 1594 .long   3941263872,3991732461
 1595 .long   202116096,1330577487
 1596 .long   2930683392,488439837
 1597 .long   1094795520,2459041938
 1598 .long   589505280,2256928902
 1599 .long   4025478912,2947481775
 1600 .long   1802201856,2088501372
 1601 .long   2475922176,522125343
 1602 .long   1162167552,1044250686
 1603 .long   421075200,3705405660
 1604 .long   2779096320,1583218782
 1605 .long   555819264,185270283
 1606 .long   3991792896,2795896998
 1607 .long   235802112,960036921
 1608 .long   1330597632,3587506389
 1609 .long   1313754624,1566376029
 1610 .long   488447232,3654877401
 1611 .long   1701143808,1515847770
 1612 .long   2459079168,1364262993
 1613 .long   3183328512,1819017324
 1614 .long   2256963072,2341142667
 1615 .long   3099113472,2593783962
 1616 .long   2947526400,4227531003
 1617 .long   2408550144,2964324528
 1618 .long   2088532992,1953759348
 1619 .long   3958106880,724238379
 1620 .long   522133248,4042260720
 1621 .long   3469659648,2223243396
 1622 .long   1044266496,3755933919
 1623 .long   808464384,3419078859
 1624 .long   3705461760,875823156
 1625 .long   1600085760,1987444854
 1626 .long   1583242752,1835860077
 1627 .long   3318072576,2846425257
 1628 .long   185273088,3520135377
 1629 .long   437918208,67371012
 1630 .long   2795939328,336855060
 1631 .long   3789676800,976879674
 1632 .long   960051456,3739091166
 1633 .long   3402287616,286326801
 1634 .long   3587560704,842137650
 1635 .long   1195853568,2627469468
 1636 .long   1566399744,1397948499
 1637 .long   1027423488,4075946226
 1638 .long   3654932736,4278059262
 1639 .long   16843008,3486449871
 1640 .long   1515870720,3284336835
 1641 .long   3604403712,2054815866
 1642 .long   1364283648,606339108
 1643 .long   1448498688,3907518696
 1644 .long   1819044864,1616904288
 1645 .long   1296911616,1768489065
 1646 .long   2341178112,2863268010
 1647 .long   218959104,2694840480
 1648 .long   2593823232,2711683233
 1649 .long   1717986816,1650589794
 1650 .long   4227595008,1414791252
 1651 .long   3435973632,505282590
 1652 .long   2964369408,3772776672
 1653 .long   757935360,1684275300
 1654 .long   1953788928,269484048
 1655 .long   303174144,0
 1656 .long   724249344,2745368739
 1657 .long   538976256,1970602101
 1658 .long   4042321920,2324299914
 1659 .long   2981212416,3873833190
 1660 .long   2223277056,151584777
 1661 .long   2576980224,3722248413
 1662 .long   3755990784,2273771655
 1663 .long   1280068608,2206400643
 1664 .long   3419130624,3452764365
 1665 .long   3267543552,2425356432
 1666 .long   875836416,1936916595
 1667 .long   2122219008,4143317238
 1668 .long   1987474944,2644312221
 1669 .long   84215040,3216965823
 1670 .long   1835887872,1381105746
 1671 .long   3082270464,3638034648
 1672 .long   2846468352,3368550600
 1673 .long   825307392,3334865094
 1674 .long   3520188672,2172715137
 1675 .long   387389184,1869545583
 1676 .long   67372032,320012307
 1677 .long   3621246720,1667432547
 1678 .long   336860160,3924361449
 1679 .long   1482184704,2812739751
 1680 .long   976894464,2677997727
 1681 .long   1633771776,3166437564
 1682 .long   3739147776,690552873
 1683 .long   454761216,4193845497
 1684 .long   286331136,791609391
 1685 .long   471604224,3031695540
 1686 .long   842150400,2021130360
 1687 .long   252645120,101056518
 1688 .long   2627509248,3890675943
 1689 .long   370546176,1903231089
 1690 .long   1397969664,3570663636
 1691 .long   404232192,2880110763
 1692 .long   4076007936,2290614408
 1693 .long   572662272,2374828173
 1694 .long   4278124032,1920073842
 1695 .long   1145324544,3115909305
 1696 .long   3486502656,4177002744
 1697 .long   2998055424,2896953516
 1698 .long   3284386560,909508662
 1699 .long   3048584448,707395626
 1700 .long   2054846976,1010565180
 1701 .long   2442236160,4059103473
 1702 .long   606348288,1077936192
 1703 .long   134744064,3553820883
 1704 .long   3907577856,3149594811
 1705 .long   2829625344,1128464451
 1706 .long   1616928768,353697813
 1707 .long   4244438016,2913796269
 1708 .long   1768515840,2004287607
 1709 .long   1347440640,2155872384
 1710 .long   2863311360,2189557890
 1711 .long   3503345664,3974889708
 1712 .long   2694881280,656867367
 1713 .long   2105376000,3856990437
 1714 .long   2711724288,2240086149
 1715 .long   2307492096,892665909
 1716 .long   1650614784,202113036
 1717 .long   2543294208,1094778945
 1718 .long   1414812672,4025417967
 1719 .long   1532713728,2475884691
 1720 .long   505290240,421068825
 1721 .long   2509608192,555810849
 1722 .long   3772833792,235798542
 1723 .long   4294967040,1313734734
 1724 .long   1684300800,1701118053
 1725 .long   3537031680,3183280317
 1726 .long   269488128,3099066552
 1727 .long   3301229568,2408513679
 1728 .long   0,3958046955
 1729 .long   1212696576,3469607118
 1730 .long   2745410304,808452144
 1731 .long   4160222976,1600061535
 1732 .long   1970631936,3318022341
 1733 .long   3688618752,437911578
 1734 .long   2324335104,3789619425
 1735 .long   50529024,3402236106
 1736 .long   3873891840,1195835463
 1737 .long   3671775744,1027407933
 1738 .long   151587072,16842753
 1739 .long   1061109504,3604349142
 1740 .long   3722304768,1448476758
 1741 .long   2492765184,1296891981
 1742 .long   2273806080,218955789
 1743 .long   1549556736,1717960806
 1744 .long   2206434048,3435921612
 1745 .long   33686016,757923885
 1746 .long   3452816640,303169554
 1747 .long   1246382592,538968096
 1748 .long   2425393152,2981167281
 1749 .long   858993408,2576941209
 1750 .long   1936945920,1280049228
 1751 .long   1734829824,3267494082
 1752 .long   4143379968,2122186878
 1753 .long   4092850944,84213765
 1754 .long   2644352256,3082223799
 1755 .long   2139062016,825294897
 1756 .long   3217014528,387383319
 1757 .long   3806519808,3621191895
 1758 .long   1381126656,1482162264
 1759 .long   2610666240,1633747041
 1760 .long   3638089728,454754331
 1761 .long   640034304,471597084
 1762 .long   3368601600,252641295
 1763 .long   926365440,370540566
 1764 .long   3334915584,404226072
 1765 .long   993737472,572653602
 1766 .long   2172748032,1145307204
 1767 .long   2526451200,2998010034
 1768 .long   1869573888,3048538293
 1769 .long   1263225600,2442199185
 1770 .long   320017152,134742024
 1771 .long   3200171520,2829582504
 1772 .long   1667457792,4244373756
 1773 .long   774778368,1347420240
 1774 .long   3924420864,3503292624
 1775 .long   2038003968,2105344125
 1776 .long   2812782336,2307457161
 1777 .long   2358021120,2543255703
 1778 .long   2678038272,1532690523
 1779 .long   1852730880,2509570197
 1780 .long   3166485504,4294902015
 1781 .long   2391707136,3536978130
 1782 .long   690563328,3301179588
 1783 .long   4126536960,1212678216
 1784 .long   4193908992,4160159991
 1785 .long   3065427456,3688562907
 1786 .long   791621376,50528259
 1787 .long   4261281024,3671720154
 1788 .long   3031741440,1061093439
 1789 .long   1499027712,2492727444
 1790 .long   2021160960,1549533276
 1791 .long   2560137216,33685506
 1792 .long   101058048,1246363722
 1793 .long   1785358848,858980403
 1794 .long   3890734848,1734803559
 1795 .long   1179010560,4092788979
 1796 .long   1903259904,2139029631
 1797 .long   3132799488,3806462178
 1798 .long   3570717696,2610626715
 1799 .long   623191296,640024614
 1800 .long   2880154368,926351415
 1801 .long   1111638528,993722427
 1802 .long   2290649088,2526412950
 1803 .long   2728567296,1263206475
 1804 .long   2374864128,3200123070
 1805 .long   4210752000,774766638
 1806 .long   1920102912,2037973113
 1807 .long   117901056,2357985420
 1808 .long   3115956480,1852702830
 1809 .long   1431655680,2391670926
 1810 .long   4177065984,4126474485
 1811 .long   4008635904,3065381046
 1812 .long   2896997376,4261216509
 1813 .long   168430080,1499005017
 1814 .long   909522432,2560098456
 1815 .long   1229539584,1785331818
 1816 .long   707406336,1178992710
 1817 .long   1751672832,3132752058
 1818 .long   1010580480,623181861
 1819 .long   943208448,1111621698
 1820 .long   4059164928,2728525986
 1821 .long   2762253312,4210688250
 1822 .long   1077952512,117899271
 1823 .long   673720320,1431634005
 1824 .long   3553874688,4008575214
 1825 .long   2071689984,168427530
 1826 .long   3149642496,1229520969
 1827 .long   3385444608,1751646312
 1828 .long   1128481536,943194168
 1829 .long   3250700544,2762211492
 1830 .long   353703168,673710120
 1831 .long   3823362816,2071658619
 1832 .long   2913840384,3385393353
 1833 .long   4109693952,3250651329
 1834 .long   2004317952,3823304931
 1835 .long   3351758592,4109631732
 1836 .long   2155905024,3351707847
 1837 .long   2661195264,2661154974
 1838 .long   14737632,939538488
 1839 .long   328965,1090535745
 1840 .long   5789784,369104406
 1841 .long   14277081,1979741814
 1842 .long   6776679,3640711641
 1843 .long   5131854,2466288531
 1844 .long   8487297,1610637408
 1845 .long   13355979,4060148466
 1846 .long   13224393,1912631922
 1847 .long   723723,3254829762
 1848 .long   11447982,2868947883
 1849 .long   6974058,2583730842
 1850 .long   14013909,1962964341
 1851 .long   1579032,100664838
 1852 .long   6118749,1459640151
 1853 .long   8553090,2684395680
 1854 .long   4605510,2432733585
 1855 .long   14671839,4144035831
 1856 .long   14079702,3036722613
 1857 .long   2565927,3372272073
 1858 .long   9079434,2717950626
 1859 .long   3289650,2348846220
 1860 .long   4934475,3523269330
 1861 .long   4342338,2415956112
 1862 .long   14408667,4127258358
 1863 .long   1842204,117442311
 1864 .long   10395294,2801837991
 1865 .long   10263708,654321447
 1866 .long   3815994,2382401166
 1867 .long   13290186,2986390194
 1868 .long   2434341,1224755529
 1869 .long   8092539,3724599006
 1870 .long   855309,1124090691
 1871 .long   7434609,1543527516
 1872 .long   6250335,3607156695
 1873 .long   2039583,3338717127
 1874 .long   16316664,1040203326
 1875 .long   14145495,4110480885
 1876 .long   4079166,2399178639
 1877 .long   10329501,1728079719
 1878 .long   8158332,520101663
 1879 .long   6316128,402659352
 1880 .long   12171705,1845522030
 1881 .long   12500670,2936057775
 1882 .long   12369084,788541231
 1883 .long   9145227,3791708898
 1884 .long   1447446,2231403909
 1885 .long   3421236,218107149
 1886 .long   5066061,1392530259
 1887 .long   12829635,4026593520
 1888 .long   7500402,2617285788
 1889 .long   9803157,1694524773
 1890 .long   11250603,3925928682
 1891 .long   9342606,2734728099
 1892 .long   12237498,2919280302
 1893 .long   8026746,2650840734
 1894 .long   11776947,3959483628
 1895 .long   131586,2147516544
 1896 .long   11842740,754986285
 1897 .long   11382189,1795189611
 1898 .long   10658466,2818615464
 1899 .long   11316396,721431339
 1900 .long   14211288,905983542
 1901 .long   10132122,2785060518
 1902 .long   1513239,3305162181
 1903 .long   1710618,2248181382
 1904 .long   3487029,1291865421
 1905 .long   13421772,855651123
 1906 .long   16250871,4244700669
 1907 .long   10066329,1711302246
 1908 .long   6381921,1476417624
 1909 .long   5921370,2516620950
 1910 .long   15263976,973093434
 1911 .long   2368548,150997257
 1912 .long   5658198,2499843477
 1913 .long   4210752,268439568
 1914 .long   14803425,2013296760
 1915 .long   6513507,3623934168
 1916 .long   592137,1107313218
 1917 .long   3355443,3422604492
 1918 .long   12566463,4009816047
 1919 .long   10000536,637543974
 1920 .long   9934743,3842041317
 1921 .long   8750469,1627414881
 1922 .long   6842472,436214298
 1923 .long   16579836,1056980799
 1924 .long   15527148,989870907
 1925 .long   657930,2181071490
 1926 .long   14342874,3053500086
 1927 .long   7303023,3674266587
 1928 .long   5460819,3556824276
 1929 .long   6447714,2550175896
 1930 .long   10724259,3892373736
 1931 .long   3026478,2332068747
 1932 .long   526344,33554946
 1933 .long   11513775,3942706155
 1934 .long   2631720,167774730
 1935 .long   11579568,738208812
 1936 .long   7631988,486546717
 1937 .long   12763842,2952835248
 1938 .long   12434877,1862299503
 1939 .long   3552822,2365623693
 1940 .long   2236962,2281736328
 1941 .long   3684408,234884622
 1942 .long   6579300,419436825
 1943 .long   1973790,2264958855
 1944 .long   3750201,1308642894
 1945 .long   2894892,184552203
 1946 .long   10921638,2835392937
 1947 .long   3158064,201329676
 1948 .long   15066597,2030074233
 1949 .long   4473924,285217041
 1950 .long   16645629,2130739071
 1951 .long   8947848,570434082
 1952 .long   10461087,3875596263
 1953 .long   6645093,1493195097
 1954 .long   8882055,3774931425
 1955 .long   7039851,3657489114
 1956 .long   16053492,1023425853
 1957 .long   2302755,3355494600
 1958 .long   4737096,301994514
 1959 .long   1052688,67109892
 1960 .long   13750737,1946186868
 1961 .long   5329233,1409307732
 1962 .long   12632256,805318704
 1963 .long   16382457,2113961598
 1964 .long   13816530,3019945140
 1965 .long   10526880,671098920
 1966 .long   5592405,1426085205
 1967 .long   10592673,1744857192
 1968 .long   4276545,1342197840
 1969 .long   16448250,3187719870
 1970 .long   4408131,3489714384
 1971 .long   1250067,3288384708
 1972 .long   12895428,822096177
 1973 .long   3092271,3405827019
 1974 .long   11053224,704653866
 1975 .long   11974326,2902502829
 1976 .long   3947580,251662095
 1977 .long   2829099,3389049546
 1978 .long   12698049,1879076976
 1979 .long   16777215,4278255615
 1980 .long   13158600,838873650
 1981 .long   10855845,1761634665
 1982 .long   2105376,134219784
 1983 .long   9013641,1644192354
 1984 .long   0,0
 1985 .long   9474192,603989028
 1986 .long   4671303,3506491857
 1987 .long   15724527,4211145723
 1988 .long   15395562,3120609978
 1989 .long   12040119,3976261101
 1990 .long   1381653,1157645637
 1991 .long   394758,2164294017
 1992 .long   13487565,1929409395
 1993 .long   11908533,1828744557
 1994 .long   1184274,2214626436
 1995 .long   8289918,2667618207
 1996 .long   12303291,3993038574
 1997 .long   2697513,1241533002
 1998 .long   986895,3271607235
 1999 .long   12105912,771763758
 2000 .long   460551,3238052289
 2001 .long   263172,16777473
 2002 .long   10197915,3858818790
 2003 .long   9737364,620766501
 2004 .long   2171169,1207978056
 2005 .long   6710886,2566953369
 2006 .long   15132390,3103832505
 2007 .long   13553358,3003167667
 2008 .long   15592941,2063629179
 2009 .long   15198183,4177590777
 2010 .long   3881787,3456159438
 2011 .long   16711422,3204497343
 2012 .long   8355711,3741376479
 2013 .long   12961221,1895854449
 2014 .long   10790052,687876393
 2015 .long   3618615,3439381965
 2016 .long   11645361,1811967084
 2017 .long   5000268,318771987
 2018 .long   9539985,1677747300
 2019 .long   7237230,2600508315
 2020 .long   9276813,1660969827
 2021 .long   7763574,2634063261
 2022 .long   197379,3221274816
 2023 .long   2960685,1258310475
 2024 .long   14606046,3070277559
 2025 .long   9868950,2768283045
 2026 .long   2500134,2298513801
 2027 .long   8224125,1593859935
 2028 .long   13027014,2969612721
 2029 .long   6052956,385881879
 2030 .long   13882323,4093703412
 2031 .long   15921906,3154164924
 2032 .long   5197647,3540046803
 2033 .long   1644825,1174423110
 2034 .long   4144959,3472936911
 2035 .long   14474460,922761015
 2036 .long   7960953,1577082462
 2037 .long   1907997,1191200583
 2038 .long   5395026,2483066004
 2039 .long   15461355,4194368250
 2040 .long   15987699,4227923196
 2041 .long   7171437,1526750043
 2042 .long   6184542,2533398423
 2043 .long   16514043,4261478142
 2044 .long   6908265,1509972570
 2045 .long   11711154,2885725356
 2046 .long   15790320,1006648380
 2047 .long   3223857,1275087948
 2048 .long   789516,50332419
 2049 .long   13948116,889206069
 2050 .long   13619151,4076925939
 2051 .long   9211020,587211555
 2052 .long   14869218,3087055032
 2053 .long   7697781,1560304989
 2054 .long   11119017,1778412138
 2055 .long   4868682,2449511058
 2056 .long   5723991,3573601749
 2057 .long   8684676,553656609
 2058 .long   1118481,1140868164
 2059 .long   4539717,1358975313
 2060 .long   1776411,3321939654
 2061 .long   16119285,2097184125
 2062 .long   15000804,956315961
 2063 .long   921102,2197848963
 2064 .long   7566195,3691044060
 2065 .long   11184810,2852170410
 2066 .long   15856113,2080406652
 2067 .long   14540253,1996519287
 2068 .long   5855577,1442862678
 2069 .long   1315860,83887365
 2070 .long   7105644,452991771
 2071 .long   9605778,2751505572
 2072 .long   5526612,352326933
 2073 .long   13684944,872428596
 2074 .long   7895160,503324190
 2075 .long   7368816,469769244
 2076 .long   14935011,4160813304
 2077 .long   4802889,1375752786
 2078 .long   8421504,536879136
 2079 .long   5263440,335549460
 2080 .long   10987431,3909151209
 2081 .long   16185078,3170942397
 2082 .long   7829367,3707821533
 2083 .long   9671571,3825263844
 2084 .long   8816262,2701173153
 2085 .long   8618883,3758153952
 2086 .long   2763306,2315291274
 2087 .long   13092807,4043370993
 2088 .long   5987163,3590379222
 2089 .long   15329769,2046851706
 2090 .long   15658734,3137387451
 2091 .long   9408399,3808486371
 2092 .long   65793,1073758272
 2093 .long   4013373,1325420367
 2094 .globl  Camellia_cbc_encrypt
 2095 .type   Camellia_cbc_encrypt,@function
 2096 .align  16
 2097 Camellia_cbc_encrypt:
 2098 .L_Camellia_cbc_encrypt_begin:
 2099         pushl   %ebp
 2100         pushl   %ebx
 2101         pushl   %esi
 2102         pushl   %edi
 2103         movl    28(%esp),%ecx
 2104         cmpl    $0,%ecx
 2105         je      .L016enc_out
 2106         pushfl
 2107         cld
 2108         movl    24(%esp),%eax
 2109         movl    28(%esp),%ebx
 2110         movl    36(%esp),%edx
 2111         movl    40(%esp),%ebp
 2112         leal    -64(%esp),%esi
 2113         andl    $-64,%esi
 2114         leal    -127(%edx),%edi
 2115         subl    %esi,%edi
 2116         negl    %edi
 2117         andl    $960,%edi
 2118         subl    %edi,%esi
 2119         movl    44(%esp),%edi
 2120         xchgl   %esi,%esp
 2121         addl    $4,%esp
 2122         movl    %esi,20(%esp)
 2123         movl    %eax,24(%esp)
 2124         movl    %ebx,28(%esp)
 2125         movl    %ecx,32(%esp)
 2126         movl    %edx,36(%esp)
 2127         movl    %ebp,40(%esp)
 2128         call    .L017pic_point
 2129 .L017pic_point:
 2130         popl    %ebp
 2131         leal    .LCamellia_SBOX-.L017pic_point(%ebp),%ebp
 2132         movl    $32,%esi
 2133 .align  4
 2134 .L018prefetch_sbox:
 2135         movl    (%ebp),%eax
 2136         movl    32(%ebp),%ebx
 2137         movl    64(%ebp),%ecx
 2138         movl    96(%ebp),%edx
 2139         leal    128(%ebp),%ebp
 2140         decl    %esi
 2141         jnz     .L018prefetch_sbox
 2142         movl    36(%esp),%eax
 2143         subl    $4096,%ebp
 2144         movl    24(%esp),%esi
 2145         movl    272(%eax),%edx
 2146         cmpl    $0,%edi
 2147         je      .L019DECRYPT
 2148         movl    32(%esp),%ecx
 2149         movl    40(%esp),%edi
 2150         shll    $6,%edx
 2151         leal    (%eax,%edx,1),%edx
 2152         movl    %edx,16(%esp)
 2153         testl   $4294967280,%ecx
 2154         jz      .L020enc_tail
 2155         movl    (%edi),%eax
 2156         movl    4(%edi),%ebx
 2157 .align  4
 2158 .L021enc_loop:
 2159         movl    8(%edi),%ecx
 2160         movl    12(%edi),%edx
 2161         xorl    (%esi),%eax
 2162         xorl    4(%esi),%ebx
 2163         xorl    8(%esi),%ecx
 2164         bswap   %eax
 2165         xorl    12(%esi),%edx
 2166         bswap   %ebx
 2167         movl    36(%esp),%edi
 2168         bswap   %ecx
 2169         bswap   %edx
 2170         call    _x86_Camellia_encrypt
 2171         movl    24(%esp),%esi
 2172         movl    28(%esp),%edi
 2173         bswap   %eax
 2174         bswap   %ebx
 2175         bswap   %ecx
 2176         movl    %eax,(%edi)
 2177         bswap   %edx
 2178         movl    %ebx,4(%edi)
 2179         movl    %ecx,8(%edi)
 2180         movl    %edx,12(%edi)
 2181         movl    32(%esp),%ecx
 2182         leal    16(%esi),%esi
 2183         movl    %esi,24(%esp)
 2184         leal    16(%edi),%edx
 2185         movl    %edx,28(%esp)
 2186         subl    $16,%ecx
 2187         testl   $4294967280,%ecx
 2188         movl    %ecx,32(%esp)
 2189         jnz     .L021enc_loop
 2190         testl   $15,%ecx
 2191         jnz     .L020enc_tail
 2192         movl    40(%esp),%esi
 2193         movl    8(%edi),%ecx
 2194         movl    12(%edi),%edx
 2195         movl    %eax,(%esi)
 2196         movl    %ebx,4(%esi)
 2197         movl    %ecx,8(%esi)
 2198         movl    %edx,12(%esi)
 2199         movl    20(%esp),%esp
 2200         popfl
 2201 .L016enc_out:
 2202         popl    %edi
 2203         popl    %esi
 2204         popl    %ebx
 2205         popl    %ebp
 2206         ret
 2207         pushfl
 2208 .align  4
 2209 .L020enc_tail:
 2210         movl    %edi,%eax
 2211         movl    28(%esp),%edi
 2212         pushl   %eax
 2213         movl    $16,%ebx
 2214         subl    %ecx,%ebx
 2215         cmpl    %esi,%edi
 2216         je      .L022enc_in_place
 2217 .align  4
 2218 .long   2767451785
 2219         jmp     .L023enc_skip_in_place
 2220 .L022enc_in_place:
 2221         leal    (%edi,%ecx,1),%edi
 2222 .L023enc_skip_in_place:
 2223         movl    %ebx,%ecx
 2224         xorl    %eax,%eax
 2225 .align  4
 2226 .long   2868115081
 2227         popl    %edi
 2228         movl    28(%esp),%esi
 2229         movl    (%edi),%eax
 2230         movl    4(%edi),%ebx
 2231         movl    $16,32(%esp)
 2232         jmp     .L021enc_loop
 2233 .align  16
 2234 .L019DECRYPT:
 2235         shll    $6,%edx
 2236         leal    (%eax,%edx,1),%edx
 2237         movl    %eax,16(%esp)
 2238         movl    %edx,36(%esp)
 2239         cmpl    28(%esp),%esi
 2240         je      .L024dec_in_place
 2241         movl    40(%esp),%edi
 2242         movl    %edi,44(%esp)
 2243 .align  4
 2244 .L025dec_loop:
 2245         movl    (%esi),%eax
 2246         movl    4(%esi),%ebx
 2247         movl    8(%esi),%ecx
 2248         bswap   %eax
 2249         movl    12(%esi),%edx
 2250         bswap   %ebx
 2251         movl    36(%esp),%edi
 2252         bswap   %ecx
 2253         bswap   %edx
 2254         call    _x86_Camellia_decrypt
 2255         movl    44(%esp),%edi
 2256         movl    32(%esp),%esi
 2257         bswap   %eax
 2258         bswap   %ebx
 2259         bswap   %ecx
 2260         xorl    (%edi),%eax
 2261         bswap   %edx
 2262         xorl    4(%edi),%ebx
 2263         xorl    8(%edi),%ecx
 2264         xorl    12(%edi),%edx
 2265         subl    $16,%esi
 2266         jc      .L026dec_partial
 2267         movl    %esi,32(%esp)
 2268         movl    24(%esp),%esi
 2269         movl    28(%esp),%edi
 2270         movl    %eax,(%edi)
 2271         movl    %ebx,4(%edi)
 2272         movl    %ecx,8(%edi)
 2273         movl    %edx,12(%edi)
 2274         movl    %esi,44(%esp)
 2275         leal    16(%esi),%esi
 2276         movl    %esi,24(%esp)
 2277         leal    16(%edi),%edi
 2278         movl    %edi,28(%esp)
 2279         jnz     .L025dec_loop
 2280         movl    44(%esp),%edi
 2281 .L027dec_end:
 2282         movl    40(%esp),%esi
 2283         movl    (%edi),%eax
 2284         movl    4(%edi),%ebx
 2285         movl    8(%edi),%ecx
 2286         movl    12(%edi),%edx
 2287         movl    %eax,(%esi)
 2288         movl    %ebx,4(%esi)
 2289         movl    %ecx,8(%esi)
 2290         movl    %edx,12(%esi)
 2291         jmp     .L028dec_out
 2292 .align  4
 2293 .L026dec_partial:
 2294         leal    44(%esp),%edi
 2295         movl    %eax,(%edi)
 2296         movl    %ebx,4(%edi)
 2297         movl    %ecx,8(%edi)
 2298         movl    %edx,12(%edi)
 2299         leal    16(%esi),%ecx
 2300         movl    %edi,%esi
 2301         movl    28(%esp),%edi
 2302 .long   2767451785
 2303         movl    24(%esp),%edi
 2304         jmp     .L027dec_end
 2305 .align  4
 2306 .L024dec_in_place:
 2307 .L029dec_in_place_loop:
 2308         leal    44(%esp),%edi
 2309         movl    (%esi),%eax
 2310         movl    4(%esi),%ebx
 2311         movl    8(%esi),%ecx
 2312         movl    12(%esi),%edx
 2313         movl    %eax,(%edi)
 2314         movl    %ebx,4(%edi)
 2315         movl    %ecx,8(%edi)
 2316         bswap   %eax
 2317         movl    %edx,12(%edi)
 2318         bswap   %ebx
 2319         movl    36(%esp),%edi
 2320         bswap   %ecx
 2321         bswap   %edx
 2322         call    _x86_Camellia_decrypt
 2323         movl    40(%esp),%edi
 2324         movl    28(%esp),%esi
 2325         bswap   %eax
 2326         bswap   %ebx
 2327         bswap   %ecx
 2328         xorl    (%edi),%eax
 2329         bswap   %edx
 2330         xorl    4(%edi),%ebx
 2331         xorl    8(%edi),%ecx
 2332         xorl    12(%edi),%edx
 2333         movl    %eax,(%esi)
 2334         movl    %ebx,4(%esi)
 2335         movl    %ecx,8(%esi)
 2336         movl    %edx,12(%esi)
 2337         leal    16(%esi),%esi
 2338         movl    %esi,28(%esp)
 2339         leal    44(%esp),%esi
 2340         movl    (%esi),%eax
 2341         movl    4(%esi),%ebx
 2342         movl    8(%esi),%ecx
 2343         movl    12(%esi),%edx
 2344         movl    %eax,(%edi)
 2345         movl    %ebx,4(%edi)
 2346         movl    %ecx,8(%edi)
 2347         movl    %edx,12(%edi)
 2348         movl    24(%esp),%esi
 2349         leal    16(%esi),%esi
 2350         movl    %esi,24(%esp)
 2351         movl    32(%esp),%ecx
 2352         subl    $16,%ecx
 2353         jc      .L030dec_in_place_partial
 2354         movl    %ecx,32(%esp)
 2355         jnz     .L029dec_in_place_loop
 2356         jmp     .L028dec_out
 2357 .align  4
 2358 .L030dec_in_place_partial:
 2359         movl    28(%esp),%edi
 2360         leal    44(%esp),%esi
 2361         leal    (%edi,%ecx,1),%edi
 2362         leal    16(%esi,%ecx,1),%esi
 2363         negl    %ecx
 2364 .long   2767451785
 2365 .align  4
 2366 .L028dec_out:
 2367         movl    20(%esp),%esp
 2368         popfl
 2369         popl    %edi
 2370         popl    %esi
 2371         popl    %ebx
 2372         popl    %ebp
 2373         ret
 2374 .size   Camellia_cbc_encrypt,.-.L_Camellia_cbc_encrypt_begin
 2375 .byte   67,97,109,101,108,108,105,97,32,102,111,114,32,120,56,54
 2376 .byte   32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115
 2377 .byte   115,108,46,111,114,103,62,0
 2378 #else
 2379 .text
 2380 .globl  Camellia_EncryptBlock_Rounds
 2381 .type   Camellia_EncryptBlock_Rounds,@function
 2382 .align  16
 2383 Camellia_EncryptBlock_Rounds:
 2384 .L_Camellia_EncryptBlock_Rounds_begin:
 2385         pushl   %ebp
 2386         pushl   %ebx
 2387         pushl   %esi
 2388         pushl   %edi
 2389         movl    20(%esp),%eax
 2390         movl    24(%esp),%esi
 2391         movl    28(%esp),%edi
 2392         movl    %esp,%ebx
 2393         subl    $28,%esp
 2394         andl    $-64,%esp
 2395         leal    -127(%edi),%ecx
 2396         subl    %esp,%ecx
 2397         negl    %ecx
 2398         andl    $960,%ecx
 2399         subl    %ecx,%esp
 2400         addl    $4,%esp
 2401         shll    $6,%eax
 2402         leal    (%edi,%eax,1),%eax
 2403         movl    %ebx,20(%esp)
 2404         movl    %eax,16(%esp)
 2405         call    .L000pic_point
 2406 .L000pic_point:
 2407         popl    %ebp
 2408         leal    .LCamellia_SBOX-.L000pic_point(%ebp),%ebp
 2409         movl    (%esi),%eax
 2410         movl    4(%esi),%ebx
 2411         movl    8(%esi),%ecx
 2412         bswap   %eax
 2413         movl    12(%esi),%edx
 2414         bswap   %ebx
 2415         bswap   %ecx
 2416         bswap   %edx
 2417         call    _x86_Camellia_encrypt
 2418         movl    20(%esp),%esp
 2419         bswap   %eax
 2420         movl    32(%esp),%esi
 2421         bswap   %ebx
 2422         bswap   %ecx
 2423         bswap   %edx
 2424         movl    %eax,(%esi)
 2425         movl    %ebx,4(%esi)
 2426         movl    %ecx,8(%esi)
 2427         movl    %edx,12(%esi)
 2428         popl    %edi
 2429         popl    %esi
 2430         popl    %ebx
 2431         popl    %ebp
 2432         ret
 2433 .size   Camellia_EncryptBlock_Rounds,.-.L_Camellia_EncryptBlock_Rounds_begin
 2434 .globl  Camellia_EncryptBlock
 2435 .type   Camellia_EncryptBlock,@function
 2436 .align  16
 2437 Camellia_EncryptBlock:
 2438 .L_Camellia_EncryptBlock_begin:
 2439         movl    $128,%eax
 2440         subl    4(%esp),%eax
 2441         movl    $3,%eax
 2442         adcl    $0,%eax
 2443         movl    %eax,4(%esp)
 2444         jmp     .L_Camellia_EncryptBlock_Rounds_begin
 2445 .size   Camellia_EncryptBlock,.-.L_Camellia_EncryptBlock_begin
 2446 .globl  Camellia_encrypt
 2447 .type   Camellia_encrypt,@function
 2448 .align  16
 2449 Camellia_encrypt:
 2450 .L_Camellia_encrypt_begin:
 2451         pushl   %ebp
 2452         pushl   %ebx
 2453         pushl   %esi
 2454         pushl   %edi
 2455         movl    20(%esp),%esi
 2456         movl    28(%esp),%edi
 2457         movl    %esp,%ebx
 2458         subl    $28,%esp
 2459         andl    $-64,%esp
 2460         movl    272(%edi),%eax
 2461         leal    -127(%edi),%ecx
 2462         subl    %esp,%ecx
 2463         negl    %ecx
 2464         andl    $960,%ecx
 2465         subl    %ecx,%esp
 2466         addl    $4,%esp
 2467         shll    $6,%eax
 2468         leal    (%edi,%eax,1),%eax
 2469         movl    %ebx,20(%esp)
 2470         movl    %eax,16(%esp)
 2471         call    .L001pic_point
 2472 .L001pic_point:
 2473         popl    %ebp
 2474         leal    .LCamellia_SBOX-.L001pic_point(%ebp),%ebp
 2475         movl    (%esi),%eax
 2476         movl    4(%esi),%ebx
 2477         movl    8(%esi),%ecx
 2478         bswap   %eax
 2479         movl    12(%esi),%edx
 2480         bswap   %ebx
 2481         bswap   %ecx
 2482         bswap   %edx
 2483         call    _x86_Camellia_encrypt
 2484         movl    20(%esp),%esp
 2485         bswap   %eax
 2486         movl    24(%esp),%esi
 2487         bswap   %ebx
 2488         bswap   %ecx
 2489         bswap   %edx
 2490         movl    %eax,(%esi)
 2491         movl    %ebx,4(%esi)
 2492         movl    %ecx,8(%esi)
 2493         movl    %edx,12(%esi)
 2494         popl    %edi
 2495         popl    %esi
 2496         popl    %ebx
 2497         popl    %ebp
 2498         ret
 2499 .size   Camellia_encrypt,.-.L_Camellia_encrypt_begin
 2500 .type   _x86_Camellia_encrypt,@function
 2501 .align  16
 2502 _x86_Camellia_encrypt:
 2503         xorl    (%edi),%eax
 2504         xorl    4(%edi),%ebx
 2505         xorl    8(%edi),%ecx
 2506         xorl    12(%edi),%edx
 2507         movl    16(%edi),%esi
 2508         movl    %eax,4(%esp)
 2509         movl    %ebx,8(%esp)
 2510         movl    %ecx,12(%esp)
 2511         movl    %edx,16(%esp)
 2512 .align  16
 2513 .L002loop:
 2514         xorl    %esi,%eax
 2515         xorl    20(%edi),%ebx
 2516         movzbl  %ah,%esi
 2517         movl    2052(%ebp,%esi,8),%edx
 2518         movzbl  %al,%esi
 2519         xorl    4(%ebp,%esi,8),%edx
 2520         shrl    $16,%eax
 2521         movzbl  %bl,%esi
 2522         movl    (%ebp,%esi,8),%ecx
 2523         movzbl  %ah,%esi
 2524         xorl    (%ebp,%esi,8),%edx
 2525         movzbl  %bh,%esi
 2526         xorl    4(%ebp,%esi,8),%ecx
 2527         shrl    $16,%ebx
 2528         movzbl  %al,%eax
 2529         xorl    2048(%ebp,%eax,8),%edx
 2530         movzbl  %bh,%esi
 2531         movl    16(%esp),%eax
 2532         xorl    %edx,%ecx
 2533         rorl    $8,%edx
 2534         xorl    2048(%ebp,%esi,8),%ecx
 2535         movzbl  %bl,%esi
 2536         movl    12(%esp),%ebx
 2537         xorl    %eax,%edx
 2538         xorl    2052(%ebp,%esi,8),%ecx
 2539         movl    24(%edi),%esi
 2540         xorl    %ecx,%edx
 2541         movl    %edx,16(%esp)
 2542         xorl    %ebx,%ecx
 2543         movl    %ecx,12(%esp)
 2544         xorl    %esi,%ecx
 2545         xorl    28(%edi),%edx
 2546         movzbl  %ch,%esi
 2547         movl    2052(%ebp,%esi,8),%ebx
 2548         movzbl  %cl,%esi
 2549         xorl    4(%ebp,%esi,8),%ebx
 2550         shrl    $16,%ecx
 2551         movzbl  %dl,%esi
 2552         movl    (%ebp,%esi,8),%eax
 2553         movzbl  %ch,%esi
 2554         xorl    (%ebp,%esi,8),%ebx
 2555         movzbl  %dh,%esi
 2556         xorl    4(%ebp,%esi,8),%eax
 2557         shrl    $16,%edx
 2558         movzbl  %cl,%ecx
 2559         xorl    2048(%ebp,%ecx,8),%ebx
 2560         movzbl  %dh,%esi
 2561         movl    8(%esp),%ecx
 2562         xorl    %ebx,%eax
 2563         rorl    $8,%ebx
 2564         xorl    2048(%ebp,%esi,8),%eax
 2565         movzbl  %dl,%esi
 2566         movl    4(%esp),%edx
 2567         xorl    %ecx,%ebx
 2568         xorl    2052(%ebp,%esi,8),%eax
 2569         movl    32(%edi),%esi
 2570         xorl    %eax,%ebx
 2571         movl    %ebx,8(%esp)
 2572         xorl    %edx,%eax
 2573         movl    %eax,4(%esp)
 2574         xorl    %esi,%eax
 2575         xorl    36(%edi),%ebx
 2576         movzbl  %ah,%esi
 2577         movl    2052(%ebp,%esi,8),%edx
 2578         movzbl  %al,%esi
 2579         xorl    4(%ebp,%esi,8),%edx
 2580         shrl    $16,%eax
 2581         movzbl  %bl,%esi
 2582         movl    (%ebp,%esi,8),%ecx
 2583         movzbl  %ah,%esi
 2584         xorl    (%ebp,%esi,8),%edx
 2585         movzbl  %bh,%esi
 2586         xorl    4(%ebp,%esi,8),%ecx
 2587         shrl    $16,%ebx
 2588         movzbl  %al,%eax
 2589         xorl    2048(%ebp,%eax,8),%edx
 2590         movzbl  %bh,%esi
 2591         movl    16(%esp),%eax
 2592         xorl    %edx,%ecx
 2593         rorl    $8,%edx
 2594         xorl    2048(%ebp,%esi,8),%ecx
 2595         movzbl  %bl,%esi
 2596         movl    12(%esp),%ebx
 2597         xorl    %eax,%edx
 2598         xorl    2052(%ebp,%esi,8),%ecx
 2599         movl    40(%edi),%esi
 2600         xorl    %ecx,%edx
 2601         movl    %edx,16(%esp)
 2602         xorl    %ebx,%ecx
 2603         movl    %ecx,12(%esp)
 2604         xorl    %esi,%ecx
 2605         xorl    44(%edi),%edx
 2606         movzbl  %ch,%esi
 2607         movl    2052(%ebp,%esi,8),%ebx
 2608         movzbl  %cl,%esi
 2609         xorl    4(%ebp,%esi,8),%ebx
 2610         shrl    $16,%ecx
 2611         movzbl  %dl,%esi
 2612         movl    (%ebp,%esi,8),%eax
 2613         movzbl  %ch,%esi
 2614         xorl    (%ebp,%esi,8),%ebx
 2615         movzbl  %dh,%esi
 2616         xorl    4(%ebp,%esi,8),%eax
 2617         shrl    $16,%edx
 2618         movzbl  %cl,%ecx
 2619         xorl    2048(%ebp,%ecx,8),%ebx
 2620         movzbl  %dh,%esi
 2621         movl    8(%esp),%ecx
 2622         xorl    %ebx,%eax
 2623         rorl    $8,%ebx
 2624         xorl    2048(%ebp,%esi,8),%eax
 2625         movzbl  %dl,%esi
 2626         movl    4(%esp),%edx
 2627         xorl    %ecx,%ebx
 2628         xorl    2052(%ebp,%esi,8),%eax
 2629         movl    48(%edi),%esi
 2630         xorl    %eax,%ebx
 2631         movl    %ebx,8(%esp)
 2632         xorl    %edx,%eax
 2633         movl    %eax,4(%esp)
 2634         xorl    %esi,%eax
 2635         xorl    52(%edi),%ebx
 2636         movzbl  %ah,%esi
 2637         movl    2052(%ebp,%esi,8),%edx
 2638         movzbl  %al,%esi
 2639         xorl    4(%ebp,%esi,8),%edx
 2640         shrl    $16,%eax
 2641         movzbl  %bl,%esi
 2642         movl    (%ebp,%esi,8),%ecx
 2643         movzbl  %ah,%esi
 2644         xorl    (%ebp,%esi,8),%edx
 2645         movzbl  %bh,%esi
 2646         xorl    4(%ebp,%esi,8),%ecx
 2647         shrl    $16,%ebx
 2648         movzbl  %al,%eax
 2649         xorl    2048(%ebp,%eax,8),%edx
 2650         movzbl  %bh,%esi
 2651         movl    16(%esp),%eax
 2652         xorl    %edx,%ecx
 2653         rorl    $8,%edx
 2654         xorl    2048(%ebp,%esi,8),%ecx
 2655         movzbl  %bl,%esi
 2656         movl    12(%esp),%ebx
 2657         xorl    %eax,%edx
 2658         xorl    2052(%ebp,%esi,8),%ecx
 2659         movl    56(%edi),%esi
 2660         xorl    %ecx,%edx
 2661         movl    %edx,16(%esp)
 2662         xorl    %ebx,%ecx
 2663         movl    %ecx,12(%esp)
 2664         xorl    %esi,%ecx
 2665         xorl    60(%edi),%edx
 2666         movzbl  %ch,%esi
 2667         movl    2052(%ebp,%esi,8),%ebx
 2668         movzbl  %cl,%esi
 2669         xorl    4(%ebp,%esi,8),%ebx
 2670         shrl    $16,%ecx
 2671         movzbl  %dl,%esi
 2672         movl    (%ebp,%esi,8),%eax
 2673         movzbl  %ch,%esi
 2674         xorl    (%ebp,%esi,8),%ebx
 2675         movzbl  %dh,%esi
 2676         xorl    4(%ebp,%esi,8),%eax
 2677         shrl    $16,%edx
 2678         movzbl  %cl,%ecx
 2679         xorl    2048(%ebp,%ecx,8),%ebx
 2680         movzbl  %dh,%esi
 2681         movl    8(%esp),%ecx
 2682         xorl    %ebx,%eax
 2683         rorl    $8,%ebx
 2684         xorl    2048(%ebp,%esi,8),%eax
 2685         movzbl  %dl,%esi
 2686         movl    4(%esp),%edx
 2687         xorl    %ecx,%ebx
 2688         xorl    2052(%ebp,%esi,8),%eax
 2689         movl    64(%edi),%esi
 2690         xorl    %eax,%ebx
 2691         movl    %ebx,8(%esp)
 2692         xorl    %edx,%eax
 2693         movl    %eax,4(%esp)
 2694         addl    $64,%edi
 2695         cmpl    20(%esp),%edi
 2696         je      .L003done
 2697         andl    %eax,%esi
 2698         movl    16(%esp),%edx
 2699         roll    $1,%esi
 2700         movl    %edx,%ecx
 2701         xorl    %esi,%ebx
 2702         orl     12(%edi),%ecx
 2703         movl    %ebx,8(%esp)
 2704         xorl    12(%esp),%ecx
 2705         movl    4(%edi),%esi
 2706         movl    %ecx,12(%esp)
 2707         orl     %ebx,%esi
 2708         andl    8(%edi),%ecx
 2709         xorl    %esi,%eax
 2710         roll    $1,%ecx
 2711         movl    %eax,4(%esp)
 2712         xorl    %ecx,%edx
 2713         movl    16(%edi),%esi
 2714         movl    %edx,16(%esp)
 2715         jmp     .L002loop
 2716 .align  8
 2717 .L003done:
 2718         movl    %eax,%ecx
 2719         movl    %ebx,%edx
 2720         movl    12(%esp),%eax
 2721         movl    16(%esp),%ebx
 2722         xorl    %esi,%eax
 2723         xorl    4(%edi),%ebx
 2724         xorl    8(%edi),%ecx
 2725         xorl    12(%edi),%edx
 2726         ret
 2727 .size   _x86_Camellia_encrypt,.-_x86_Camellia_encrypt
 2728 .globl  Camellia_DecryptBlock_Rounds
 2729 .type   Camellia_DecryptBlock_Rounds,@function
 2730 .align  16
 2731 Camellia_DecryptBlock_Rounds:
 2732 .L_Camellia_DecryptBlock_Rounds_begin:
 2733         pushl   %ebp
 2734         pushl   %ebx
 2735         pushl   %esi
 2736         pushl   %edi
 2737         movl    20(%esp),%eax
 2738         movl    24(%esp),%esi
 2739         movl    28(%esp),%edi
 2740         movl    %esp,%ebx
 2741         subl    $28,%esp
 2742         andl    $-64,%esp
 2743         leal    -127(%edi),%ecx
 2744         subl    %esp,%ecx
 2745         negl    %ecx
 2746         andl    $960,%ecx
 2747         subl    %ecx,%esp
 2748         addl    $4,%esp
 2749         shll    $6,%eax
 2750         movl    %edi,16(%esp)
 2751         leal    (%edi,%eax,1),%edi
 2752         movl    %ebx,20(%esp)
 2753         call    .L004pic_point
 2754 .L004pic_point:
 2755         popl    %ebp
 2756         leal    .LCamellia_SBOX-.L004pic_point(%ebp),%ebp
 2757         movl    (%esi),%eax
 2758         movl    4(%esi),%ebx
 2759         movl    8(%esi),%ecx
 2760         bswap   %eax
 2761         movl    12(%esi),%edx
 2762         bswap   %ebx
 2763         bswap   %ecx
 2764         bswap   %edx
 2765         call    _x86_Camellia_decrypt
 2766         movl    20(%esp),%esp
 2767         bswap   %eax
 2768         movl    32(%esp),%esi
 2769         bswap   %ebx
 2770         bswap   %ecx
 2771         bswap   %edx
 2772         movl    %eax,(%esi)
 2773         movl    %ebx,4(%esi)
 2774         movl    %ecx,8(%esi)
 2775         movl    %edx,12(%esi)
 2776         popl    %edi
 2777         popl    %esi
 2778         popl    %ebx
 2779         popl    %ebp
 2780         ret
 2781 .size   Camellia_DecryptBlock_Rounds,.-.L_Camellia_DecryptBlock_Rounds_begin
 2782 .globl  Camellia_DecryptBlock
 2783 .type   Camellia_DecryptBlock,@function
 2784 .align  16
 2785 Camellia_DecryptBlock:
 2786 .L_Camellia_DecryptBlock_begin:
 2787         movl    $128,%eax
 2788         subl    4(%esp),%eax
 2789         movl    $3,%eax
 2790         adcl    $0,%eax
 2791         movl    %eax,4(%esp)
 2792         jmp     .L_Camellia_DecryptBlock_Rounds_begin
 2793 .size   Camellia_DecryptBlock,.-.L_Camellia_DecryptBlock_begin
 2794 .globl  Camellia_decrypt
 2795 .type   Camellia_decrypt,@function
 2796 .align  16
 2797 Camellia_decrypt:
 2798 .L_Camellia_decrypt_begin:
 2799         pushl   %ebp
 2800         pushl   %ebx
 2801         pushl   %esi
 2802         pushl   %edi
 2803         movl    20(%esp),%esi
 2804         movl    28(%esp),%edi
 2805         movl    %esp,%ebx
 2806         subl    $28,%esp
 2807         andl    $-64,%esp
 2808         movl    272(%edi),%eax
 2809         leal    -127(%edi),%ecx
 2810         subl    %esp,%ecx
 2811         negl    %ecx
 2812         andl    $960,%ecx
 2813         subl    %ecx,%esp
 2814         addl    $4,%esp
 2815         shll    $6,%eax
 2816         movl    %edi,16(%esp)
 2817         leal    (%edi,%eax,1),%edi
 2818         movl    %ebx,20(%esp)
 2819         call    .L005pic_point
 2820 .L005pic_point:
 2821         popl    %ebp
 2822         leal    .LCamellia_SBOX-.L005pic_point(%ebp),%ebp
 2823         movl    (%esi),%eax
 2824         movl    4(%esi),%ebx
 2825         movl    8(%esi),%ecx
 2826         bswap   %eax
 2827         movl    12(%esi),%edx
 2828         bswap   %ebx
 2829         bswap   %ecx
 2830         bswap   %edx
 2831         call    _x86_Camellia_decrypt
 2832         movl    20(%esp),%esp
 2833         bswap   %eax
 2834         movl    24(%esp),%esi
 2835         bswap   %ebx
 2836         bswap   %ecx
 2837         bswap   %edx
 2838         movl    %eax,(%esi)
 2839         movl    %ebx,4(%esi)
 2840         movl    %ecx,8(%esi)
 2841         movl    %edx,12(%esi)
 2842         popl    %edi
 2843         popl    %esi
 2844         popl    %ebx
 2845         popl    %ebp
 2846         ret
 2847 .size   Camellia_decrypt,.-.L_Camellia_decrypt_begin
 2848 .type   _x86_Camellia_decrypt,@function
 2849 .align  16
 2850 _x86_Camellia_decrypt:
 2851         xorl    (%edi),%eax
 2852         xorl    4(%edi),%ebx
 2853         xorl    8(%edi),%ecx
 2854         xorl    12(%edi),%edx
 2855         movl    -8(%edi),%esi
 2856         movl    %eax,4(%esp)
 2857         movl    %ebx,8(%esp)
 2858         movl    %ecx,12(%esp)
 2859         movl    %edx,16(%esp)
 2860 .align  16
 2861 .L006loop:
 2862         xorl    %esi,%eax
 2863         xorl    -4(%edi),%ebx
 2864         movzbl  %ah,%esi
 2865         movl    2052(%ebp,%esi,8),%edx
 2866         movzbl  %al,%esi
 2867         xorl    4(%ebp,%esi,8),%edx
 2868         shrl    $16,%eax
 2869         movzbl  %bl,%esi
 2870         movl    (%ebp,%esi,8),%ecx
 2871         movzbl  %ah,%esi
 2872         xorl    (%ebp,%esi,8),%edx
 2873         movzbl  %bh,%esi
 2874         xorl    4(%ebp,%esi,8),%ecx
 2875         shrl    $16,%ebx
 2876         movzbl  %al,%eax
 2877         xorl    2048(%ebp,%eax,8),%edx
 2878         movzbl  %bh,%esi
 2879         movl    16(%esp),%eax
 2880         xorl    %edx,%ecx
 2881         rorl    $8,%edx
 2882         xorl    2048(%ebp,%esi,8),%ecx
 2883         movzbl  %bl,%esi
 2884         movl    12(%esp),%ebx
 2885         xorl    %eax,%edx
 2886         xorl    2052(%ebp,%esi,8),%ecx
 2887         movl    -16(%edi),%esi
 2888         xorl    %ecx,%edx
 2889         movl    %edx,16(%esp)
 2890         xorl    %ebx,%ecx
 2891         movl    %ecx,12(%esp)
 2892         xorl    %esi,%ecx
 2893         xorl    -12(%edi),%edx
 2894         movzbl  %ch,%esi
 2895         movl    2052(%ebp,%esi,8),%ebx
 2896         movzbl  %cl,%esi
 2897         xorl    4(%ebp,%esi,8),%ebx
 2898         shrl    $16,%ecx
 2899         movzbl  %dl,%esi
 2900         movl    (%ebp,%esi,8),%eax
 2901         movzbl  %ch,%esi
 2902         xorl    (%ebp,%esi,8),%ebx
 2903         movzbl  %dh,%esi
 2904         xorl    4(%ebp,%esi,8),%eax
 2905         shrl    $16,%edx
 2906         movzbl  %cl,%ecx
 2907         xorl    2048(%ebp,%ecx,8),%ebx
 2908         movzbl  %dh,%esi
 2909         movl    8(%esp),%ecx
 2910         xorl    %ebx,%eax
 2911         rorl    $8,%ebx
 2912         xorl    2048(%ebp,%esi,8),%eax
 2913         movzbl  %dl,%esi
 2914         movl    4(%esp),%edx
 2915         xorl    %ecx,%ebx
 2916         xorl    2052(%ebp,%esi,8),%eax
 2917         movl    -24(%edi),%esi
 2918         xorl    %eax,%ebx
 2919         movl    %ebx,8(%esp)
 2920         xorl    %edx,%eax
 2921         movl    %eax,4(%esp)
 2922         xorl    %esi,%eax
 2923         xorl    -20(%edi),%ebx
 2924         movzbl  %ah,%esi
 2925         movl    2052(%ebp,%esi,8),%edx
 2926         movzbl  %al,%esi
 2927         xorl    4(%ebp,%esi,8),%edx
 2928         shrl    $16,%eax
 2929         movzbl  %bl,%esi
 2930         movl    (%ebp,%esi,8),%ecx
 2931         movzbl  %ah,%esi
 2932         xorl    (%ebp,%esi,8),%edx
 2933         movzbl  %bh,%esi
 2934         xorl    4(%ebp,%esi,8),%ecx
 2935         shrl    $16,%ebx
 2936         movzbl  %al,%eax
 2937         xorl    2048(%ebp,%eax,8),%edx
 2938         movzbl  %bh,%esi
 2939         movl    16(%esp),%eax
 2940         xorl    %edx,%ecx
 2941         rorl    $8,%edx
 2942         xorl    2048(%ebp,%esi,8),%ecx
 2943         movzbl  %bl,%esi
 2944         movl    12(%esp),%ebx
 2945         xorl    %eax,%edx
 2946         xorl    2052(%ebp,%esi,8),%ecx
 2947         movl    -32(%edi),%esi
 2948         xorl    %ecx,%edx
 2949         movl    %edx,16(%esp)
 2950         xorl    %ebx,%ecx
 2951         movl    %ecx,12(%esp)
 2952         xorl    %esi,%ecx
 2953         xorl    -28(%edi),%edx
 2954         movzbl  %ch,%esi
 2955         movl    2052(%ebp,%esi,8),%ebx
 2956         movzbl  %cl,%esi
 2957         xorl    4(%ebp,%esi,8),%ebx
 2958         shrl    $16,%ecx
 2959         movzbl  %dl,%esi
 2960         movl    (%ebp,%esi,8),%eax
 2961         movzbl  %ch,%esi
 2962         xorl    (%ebp,%esi,8),%ebx
 2963         movzbl  %dh,%esi
 2964         xorl    4(%ebp,%esi,8),%eax
 2965         shrl    $16,%edx
 2966         movzbl  %cl,%ecx
 2967         xorl    2048(%ebp,%ecx,8),%ebx
 2968         movzbl  %dh,%esi
 2969         movl    8(%esp),%ecx
 2970         xorl    %ebx,%eax
 2971         rorl    $8,%ebx
 2972         xorl    2048(%ebp,%esi,8),%eax
 2973         movzbl  %dl,%esi
 2974         movl    4(%esp),%edx
 2975         xorl    %ecx,%ebx
 2976         xorl    2052(%ebp,%esi,8),%eax
 2977         movl    -40(%edi),%esi
 2978         xorl    %eax,%ebx
 2979         movl    %ebx,8(%esp)
 2980         xorl    %edx,%eax
 2981         movl    %eax,4(%esp)
 2982         xorl    %esi,%eax
 2983         xorl    -36(%edi),%ebx
 2984         movzbl  %ah,%esi
 2985         movl    2052(%ebp,%esi,8),%edx
 2986         movzbl  %al,%esi
 2987         xorl    4(%ebp,%esi,8),%edx
 2988         shrl    $16,%eax
 2989         movzbl  %bl,%esi
 2990         movl    (%ebp,%esi,8),%ecx
 2991         movzbl  %ah,%esi
 2992         xorl    (%ebp,%esi,8),%edx
 2993         movzbl  %bh,%esi
 2994         xorl    4(%ebp,%esi,8),%ecx
 2995         shrl    $16,%ebx
 2996         movzbl  %al,%eax
 2997         xorl    2048(%ebp,%eax,8),%edx
 2998         movzbl  %bh,%esi
 2999         movl    16(%esp),%eax
 3000         xorl    %edx,%ecx
 3001         rorl    $8,%edx
 3002         xorl    2048(%ebp,%esi,8),%ecx
 3003         movzbl  %bl,%esi
 3004         movl    12(%esp),%ebx
 3005         xorl    %eax,%edx
 3006         xorl    2052(%ebp,%esi,8),%ecx
 3007         movl    -48(%edi),%esi
 3008         xorl    %ecx,%edx
 3009         movl    %edx,16(%esp)
 3010         xorl    %ebx,%ecx
 3011         movl    %ecx,12(%esp)
 3012         xorl    %esi,%ecx
 3013         xorl    -44(%edi),%edx
 3014         movzbl  %ch,%esi
 3015         movl    2052(%ebp,%esi,8),%ebx
 3016         movzbl  %cl,%esi
 3017         xorl    4(%ebp,%esi,8),%ebx
 3018         shrl    $16,%ecx
 3019         movzbl  %dl,%esi
 3020         movl    (%ebp,%esi,8),%eax
 3021         movzbl  %ch,%esi
 3022         xorl    (%ebp,%esi,8),%ebx
 3023         movzbl  %dh,%esi
 3024         xorl    4(%ebp,%esi,8),%eax
 3025         shrl    $16,%edx
 3026         movzbl  %cl,%ecx
 3027         xorl    2048(%ebp,%ecx,8),%ebx
 3028         movzbl  %dh,%esi
 3029         movl    8(%esp),%ecx
 3030         xorl    %ebx,%eax
 3031         rorl    $8,%ebx
 3032         xorl    2048(%ebp,%esi,8),%eax
 3033         movzbl  %dl,%esi
 3034         movl    4(%esp),%edx
 3035         xorl    %ecx,%ebx
 3036         xorl    2052(%ebp,%esi,8),%eax
 3037         movl    -56(%edi),%esi
 3038         xorl    %eax,%ebx
 3039         movl    %ebx,8(%esp)
 3040         xorl    %edx,%eax
 3041         movl    %eax,4(%esp)
 3042         subl    $64,%edi
 3043         cmpl    20(%esp),%edi
 3044         je      .L007done
 3045         andl    %eax,%esi
 3046         movl    16(%esp),%edx
 3047         roll    $1,%esi
 3048         movl    %edx,%ecx
 3049         xorl    %esi,%ebx
 3050         orl     4(%edi),%ecx
 3051         movl    %ebx,8(%esp)
 3052         xorl    12(%esp),%ecx
 3053         movl    12(%edi),%esi
 3054         movl    %ecx,12(%esp)
 3055         orl     %ebx,%esi
 3056         andl    (%edi),%ecx
 3057         xorl    %esi,%eax
 3058         roll    $1,%ecx
 3059         movl    %eax,4(%esp)
 3060         xorl    %ecx,%edx
 3061         movl    -8(%edi),%esi
 3062         movl    %edx,16(%esp)
 3063         jmp     .L006loop
 3064 .align  8
 3065 .L007done:
 3066         movl    %eax,%ecx
 3067         movl    %ebx,%edx
 3068         movl    12(%esp),%eax
 3069         movl    16(%esp),%ebx
 3070         xorl    %esi,%ecx
 3071         xorl    12(%edi),%edx
 3072         xorl    (%edi),%eax
 3073         xorl    4(%edi),%ebx
 3074         ret
 3075 .size   _x86_Camellia_decrypt,.-_x86_Camellia_decrypt
 3076 .globl  Camellia_Ekeygen
 3077 .type   Camellia_Ekeygen,@function
 3078 .align  16
 3079 Camellia_Ekeygen:
 3080 .L_Camellia_Ekeygen_begin:
 3081         pushl   %ebp
 3082         pushl   %ebx
 3083         pushl   %esi
 3084         pushl   %edi
 3085         subl    $16,%esp
 3086         movl    36(%esp),%ebp
 3087         movl    40(%esp),%esi
 3088         movl    44(%esp),%edi
 3089         movl    (%esi),%eax
 3090         movl    4(%esi),%ebx
 3091         movl    8(%esi),%ecx
 3092         movl    12(%esi),%edx
 3093         bswap   %eax
 3094         bswap   %ebx
 3095         bswap   %ecx
 3096         bswap   %edx
 3097         movl    %eax,(%edi)
 3098         movl    %ebx,4(%edi)
 3099         movl    %ecx,8(%edi)
 3100         movl    %edx,12(%edi)
 3101         cmpl    $128,%ebp
 3102         je      .L0081st128
 3103         movl    16(%esi),%eax
 3104         movl    20(%esi),%ebx
 3105         cmpl    $192,%ebp
 3106         je      .L0091st192
 3107         movl    24(%esi),%ecx
 3108         movl    28(%esi),%edx
 3109         jmp     .L0101st256
 3110 .align  4
 3111 .L0091st192:
 3112         movl    %eax,%ecx
 3113         movl    %ebx,%edx
 3114         notl    %ecx
 3115         notl    %edx
 3116 .align  4
 3117 .L0101st256:
 3118         bswap   %eax
 3119         bswap   %ebx
 3120         bswap   %ecx
 3121         bswap   %edx
 3122         movl    %eax,32(%edi)
 3123         movl    %ebx,36(%edi)
 3124         movl    %ecx,40(%edi)
 3125         movl    %edx,44(%edi)
 3126         xorl    (%edi),%eax
 3127         xorl    4(%edi),%ebx
 3128         xorl    8(%edi),%ecx
 3129         xorl    12(%edi),%edx
 3130 .align  4
 3131 .L0081st128:
 3132         call    .L011pic_point
 3133 .L011pic_point:
 3134         popl    %ebp
 3135         leal    .LCamellia_SBOX-.L011pic_point(%ebp),%ebp
 3136         leal    .LCamellia_SIGMA-.LCamellia_SBOX(%ebp),%edi
 3137         movl    (%edi),%esi
 3138         movl    %eax,(%esp)
 3139         movl    %ebx,4(%esp)
 3140         movl    %ecx,8(%esp)
 3141         movl    %edx,12(%esp)
 3142         xorl    %esi,%eax
 3143         xorl    4(%edi),%ebx
 3144         movzbl  %ah,%esi
 3145         movl    2052(%ebp,%esi,8),%edx
 3146         movzbl  %al,%esi
 3147         xorl    4(%ebp,%esi,8),%edx
 3148         shrl    $16,%eax
 3149         movzbl  %bl,%esi
 3150         movl    (%ebp,%esi,8),%ecx
 3151         movzbl  %ah,%esi
 3152         xorl    (%ebp,%esi,8),%edx
 3153         movzbl  %bh,%esi
 3154         xorl    4(%ebp,%esi,8),%ecx
 3155         shrl    $16,%ebx
 3156         movzbl  %al,%eax
 3157         xorl    2048(%ebp,%eax,8),%edx
 3158         movzbl  %bh,%esi
 3159         movl    12(%esp),%eax
 3160         xorl    %edx,%ecx
 3161         rorl    $8,%edx
 3162         xorl    2048(%ebp,%esi,8),%ecx
 3163         movzbl  %bl,%esi
 3164         movl    8(%esp),%ebx
 3165         xorl    %eax,%edx
 3166         xorl    2052(%ebp,%esi,8),%ecx
 3167         movl    8(%edi),%esi
 3168         xorl    %ecx,%edx
 3169         movl    %edx,12(%esp)
 3170         xorl    %ebx,%ecx
 3171         movl    %ecx,8(%esp)
 3172         xorl    %esi,%ecx
 3173         xorl    12(%edi),%edx
 3174         movzbl  %ch,%esi
 3175         movl    2052(%ebp,%esi,8),%ebx
 3176         movzbl  %cl,%esi
 3177         xorl    4(%ebp,%esi,8),%ebx
 3178         shrl    $16,%ecx
 3179         movzbl  %dl,%esi
 3180         movl    (%ebp,%esi,8),%eax
 3181         movzbl  %ch,%esi
 3182         xorl    (%ebp,%esi,8),%ebx
 3183         movzbl  %dh,%esi
 3184         xorl    4(%ebp,%esi,8),%eax
 3185         shrl    $16,%edx
 3186         movzbl  %cl,%ecx
 3187         xorl    2048(%ebp,%ecx,8),%ebx
 3188         movzbl  %dh,%esi
 3189         movl    4(%esp),%ecx
 3190         xorl    %ebx,%eax
 3191         rorl    $8,%ebx
 3192         xorl    2048(%ebp,%esi,8),%eax
 3193         movzbl  %dl,%esi
 3194         movl    (%esp),%edx
 3195         xorl    %ecx,%ebx
 3196         xorl    2052(%ebp,%esi,8),%eax
 3197         movl    16(%edi),%esi
 3198         xorl    %eax,%ebx
 3199         movl    %ebx,4(%esp)
 3200         xorl    %edx,%eax
 3201         movl    %eax,(%esp)
 3202         movl    8(%esp),%ecx
 3203         movl    12(%esp),%edx
 3204         movl    44(%esp),%esi
 3205         xorl    (%esi),%eax
 3206         xorl    4(%esi),%ebx
 3207         xorl    8(%esi),%ecx
 3208         xorl    12(%esi),%edx
 3209         movl    16(%edi),%esi
 3210         movl    %eax,(%esp)
 3211         movl    %ebx,4(%esp)
 3212         movl    %ecx,8(%esp)
 3213         movl    %edx,12(%esp)
 3214         xorl    %esi,%eax
 3215         xorl    20(%edi),%ebx
 3216         movzbl  %ah,%esi
 3217         movl    2052(%ebp,%esi,8),%edx
 3218         movzbl  %al,%esi
 3219         xorl    4(%ebp,%esi,8),%edx
 3220         shrl    $16,%eax
 3221         movzbl  %bl,%esi
 3222         movl    (%ebp,%esi,8),%ecx
 3223         movzbl  %ah,%esi
 3224         xorl    (%ebp,%esi,8),%edx
 3225         movzbl  %bh,%esi
 3226         xorl    4(%ebp,%esi,8),%ecx
 3227         shrl    $16,%ebx
 3228         movzbl  %al,%eax
 3229         xorl    2048(%ebp,%eax,8),%edx
 3230         movzbl  %bh,%esi
 3231         movl    12(%esp),%eax
 3232         xorl    %edx,%ecx
 3233         rorl    $8,%edx
 3234         xorl    2048(%ebp,%esi,8),%ecx
 3235         movzbl  %bl,%esi
 3236         movl    8(%esp),%ebx
 3237         xorl    %eax,%edx
 3238         xorl    2052(%ebp,%esi,8),%ecx
 3239         movl    24(%edi),%esi
 3240         xorl    %ecx,%edx
 3241         movl    %edx,12(%esp)
 3242         xorl    %ebx,%ecx
 3243         movl    %ecx,8(%esp)
 3244         xorl    %esi,%ecx
 3245         xorl    28(%edi),%edx
 3246         movzbl  %ch,%esi
 3247         movl    2052(%ebp,%esi,8),%ebx
 3248         movzbl  %cl,%esi
 3249         xorl    4(%ebp,%esi,8),%ebx
 3250         shrl    $16,%ecx
 3251         movzbl  %dl,%esi
 3252         movl    (%ebp,%esi,8),%eax
 3253         movzbl  %ch,%esi
 3254         xorl    (%ebp,%esi,8),%ebx
 3255         movzbl  %dh,%esi
 3256         xorl    4(%ebp,%esi,8),%eax
 3257         shrl    $16,%edx
 3258         movzbl  %cl,%ecx
 3259         xorl    2048(%ebp,%ecx,8),%ebx
 3260         movzbl  %dh,%esi
 3261         movl    4(%esp),%ecx
 3262         xorl    %ebx,%eax
 3263         rorl    $8,%ebx
 3264         xorl    2048(%ebp,%esi,8),%eax
 3265         movzbl  %dl,%esi
 3266         movl    (%esp),%edx
 3267         xorl    %ecx,%ebx
 3268         xorl    2052(%ebp,%esi,8),%eax
 3269         movl    32(%edi),%esi
 3270         xorl    %eax,%ebx
 3271         movl    %ebx,4(%esp)
 3272         xorl    %edx,%eax
 3273         movl    %eax,(%esp)
 3274         movl    8(%esp),%ecx
 3275         movl    12(%esp),%edx
 3276         movl    36(%esp),%esi
 3277         cmpl    $128,%esi
 3278         jne     .L0122nd256
 3279         movl    44(%esp),%edi
 3280         leal    128(%edi),%edi
 3281         movl    %eax,-112(%edi)
 3282         movl    %ebx,-108(%edi)
 3283         movl    %ecx,-104(%edi)
 3284         movl    %edx,-100(%edi)
 3285         movl    %eax,%ebp
 3286         shll    $15,%eax
 3287         movl    %ebx,%esi
 3288         shrl    $17,%esi
 3289         shll    $15,%ebx
 3290         orl     %esi,%eax
 3291         movl    %ecx,%esi
 3292         shll    $15,%ecx
 3293         movl    %eax,-80(%edi)
 3294         shrl    $17,%esi
 3295         orl     %esi,%ebx
 3296         shrl    $17,%ebp
 3297         movl    %edx,%esi
 3298         shrl    $17,%esi
 3299         movl    %ebx,-76(%edi)
 3300         shll    $15,%edx
 3301         orl     %esi,%ecx
 3302         orl     %ebp,%edx
 3303         movl    %ecx,-72(%edi)
 3304         movl    %edx,-68(%edi)
 3305         movl    %eax,%ebp
 3306         shll    $15,%eax
 3307         movl    %ebx,%esi
 3308         shrl    $17,%esi
 3309         shll    $15,%ebx
 3310         orl     %esi,%eax
 3311         movl    %ecx,%esi
 3312         shll    $15,%ecx
 3313         movl    %eax,-64(%edi)
 3314         shrl    $17,%esi
 3315         orl     %esi,%ebx
 3316         shrl    $17,%ebp
 3317         movl    %edx,%esi
 3318         shrl    $17,%esi
 3319         movl    %ebx,-60(%edi)
 3320         shll    $15,%edx
 3321         orl     %esi,%ecx
 3322         orl     %ebp,%edx
 3323         movl    %ecx,-56(%edi)
 3324         movl    %edx,-52(%edi)
 3325         movl    %eax,%ebp
 3326         shll    $15,%eax
 3327         movl    %ebx,%esi
 3328         shrl    $17,%esi
 3329         shll    $15,%ebx
 3330         orl     %esi,%eax
 3331         movl    %ecx,%esi
 3332         shll    $15,%ecx
 3333         movl    %eax,-32(%edi)
 3334         shrl    $17,%esi
 3335         orl     %esi,%ebx
 3336         shrl    $17,%ebp
 3337         movl    %edx,%esi
 3338         shrl    $17,%esi
 3339         movl    %ebx,-28(%edi)
 3340         shll    $15,%edx
 3341         orl     %esi,%ecx
 3342         orl     %ebp,%edx
 3343         movl    %eax,%ebp
 3344         shll    $15,%eax
 3345         movl    %ebx,%esi
 3346         shrl    $17,%esi
 3347         shll    $15,%ebx
 3348         orl     %esi,%eax
 3349         movl    %ecx,%esi
 3350         shll    $15,%ecx
 3351         movl    %eax,-16(%edi)
 3352         shrl    $17,%esi
 3353         orl     %esi,%ebx
 3354         shrl    $17,%ebp
 3355         movl    %edx,%esi
 3356         shrl    $17,%esi
 3357         movl    %ebx,-12(%edi)
 3358         shll    $15,%edx
 3359         orl     %esi,%ecx
 3360         orl     %ebp,%edx
 3361         movl    %ecx,-8(%edi)
 3362         movl    %edx,-4(%edi)
 3363         movl    %ebx,%ebp
 3364         shll    $2,%ebx
 3365         movl    %ecx,%esi
 3366         shrl    $30,%esi
 3367         shll    $2,%ecx
 3368         orl     %esi,%ebx
 3369         movl    %edx,%esi
 3370         shll    $2,%edx
 3371         movl    %ebx,32(%edi)
 3372         shrl    $30,%esi
 3373         orl     %esi,%ecx
 3374         shrl    $30,%ebp
 3375         movl    %eax,%esi
 3376         shrl    $30,%esi
 3377         movl    %ecx,36(%edi)
 3378         shll    $2,%eax
 3379         orl     %esi,%edx
 3380         orl     %ebp,%eax
 3381         movl    %edx,40(%edi)
 3382         movl    %eax,44(%edi)
 3383         movl    %ebx,%ebp
 3384         shll    $17,%ebx
 3385         movl    %ecx,%esi
 3386         shrl    $15,%esi
 3387         shll    $17,%ecx
 3388         orl     %esi,%ebx
 3389         movl    %edx,%esi
 3390         shll    $17,%edx
 3391         movl    %ebx,64(%edi)
 3392         shrl    $15,%esi
 3393         orl     %esi,%ecx
 3394         shrl    $15,%ebp
 3395         movl    %eax,%esi
 3396         shrl    $15,%esi
 3397         movl    %ecx,68(%edi)
 3398         shll    $17,%eax
 3399         orl     %esi,%edx
 3400         orl     %ebp,%eax
 3401         movl    %edx,72(%edi)
 3402         movl    %eax,76(%edi)
 3403         movl    -128(%edi),%ebx
 3404         movl    -124(%edi),%ecx
 3405         movl    -120(%edi),%edx
 3406         movl    -116(%edi),%eax
 3407         movl    %ebx,%ebp
 3408         shll    $15,%ebx
 3409         movl    %ecx,%esi
 3410         shrl    $17,%esi
 3411         shll    $15,%ecx
 3412         orl     %esi,%ebx
 3413         movl    %edx,%esi
 3414         shll    $15,%edx
 3415         movl    %ebx,-96(%edi)
 3416         shrl    $17,%esi
 3417         orl     %esi,%ecx
 3418         shrl    $17,%ebp
 3419         movl    %eax,%esi
 3420         shrl    $17,%esi
 3421         movl    %ecx,-92(%edi)
 3422         shll    $15,%eax
 3423         orl     %esi,%edx
 3424         orl     %ebp,%eax
 3425         movl    %edx,-88(%edi)
 3426         movl    %eax,-84(%edi)
 3427         movl    %ebx,%ebp
 3428         shll    $30,%ebx
 3429         movl    %ecx,%esi
 3430         shrl    $2,%esi
 3431         shll    $30,%ecx
 3432         orl     %esi,%ebx
 3433         movl    %edx,%esi
 3434         shll    $30,%edx
 3435         movl    %ebx,-48(%edi)
 3436         shrl    $2,%esi
 3437         orl     %esi,%ecx
 3438         shrl    $2,%ebp
 3439         movl    %eax,%esi
 3440         shrl    $2,%esi
 3441         movl    %ecx,-44(%edi)
 3442         shll    $30,%eax
 3443         orl     %esi,%edx
 3444         orl     %ebp,%eax
 3445         movl    %edx,-40(%edi)
 3446         movl    %eax,-36(%edi)
 3447         movl    %ebx,%ebp
 3448         shll    $15,%ebx
 3449         movl    %ecx,%esi
 3450         shrl    $17,%esi
 3451         shll    $15,%ecx
 3452         orl     %esi,%ebx
 3453         movl    %edx,%esi
 3454         shll    $15,%edx
 3455         shrl    $17,%esi
 3456         orl     %esi,%ecx
 3457         shrl    $17,%ebp
 3458         movl    %eax,%esi
 3459         shrl    $17,%esi
 3460         shll    $15,%eax
 3461         orl     %esi,%edx
 3462         orl     %ebp,%eax
 3463         movl    %edx,-24(%edi)
 3464         movl    %eax,-20(%edi)
 3465         movl    %ebx,%ebp
 3466         shll    $17,%ebx
 3467         movl    %ecx,%esi
 3468         shrl    $15,%esi
 3469         shll    $17,%ecx
 3470         orl     %esi,%ebx
 3471         movl    %edx,%esi
 3472         shll    $17,%edx
 3473         movl    %ebx,(%edi)
 3474         shrl    $15,%esi
 3475         orl     %esi,%ecx
 3476         shrl    $15,%ebp
 3477         movl    %eax,%esi
 3478         shrl    $15,%esi
 3479         movl    %ecx,4(%edi)
 3480         shll    $17,%eax
 3481         orl     %esi,%edx
 3482         orl     %ebp,%eax
 3483         movl    %edx,8(%edi)
 3484         movl    %eax,12(%edi)
 3485         movl    %ebx,%ebp
 3486         shll    $17,%ebx
 3487         movl    %ecx,%esi
 3488         shrl    $15,%esi
 3489         shll    $17,%ecx
 3490         orl     %esi,%ebx
 3491         movl    %edx,%esi
 3492         shll    $17,%edx
 3493         movl    %ebx,16(%edi)
 3494         shrl    $15,%esi
 3495         orl     %esi,%ecx
 3496         shrl    $15,%ebp
 3497         movl    %eax,%esi
 3498         shrl    $15,%esi
 3499         movl    %ecx,20(%edi)
 3500         shll    $17,%eax
 3501         orl     %esi,%edx
 3502         orl     %ebp,%eax
 3503         movl    %edx,24(%edi)
 3504         movl    %eax,28(%edi)
 3505         movl    %ebx,%ebp
 3506         shll    $17,%ebx
 3507         movl    %ecx,%esi
 3508         shrl    $15,%esi
 3509         shll    $17,%ecx
 3510         orl     %esi,%ebx
 3511         movl    %edx,%esi
 3512         shll    $17,%edx
 3513         movl    %ebx,48(%edi)
 3514         shrl    $15,%esi
 3515         orl     %esi,%ecx
 3516         shrl    $15,%ebp
 3517         movl    %eax,%esi
 3518         shrl    $15,%esi
 3519         movl    %ecx,52(%edi)
 3520         shll    $17,%eax
 3521         orl     %esi,%edx
 3522         orl     %ebp,%eax
 3523         movl    %edx,56(%edi)
 3524         movl    %eax,60(%edi)
 3525         movl    $3,%eax
 3526         jmp     .L013done
 3527 .align  16
 3528 .L0122nd256:
 3529         movl    44(%esp),%esi
 3530         movl    %eax,48(%esi)
 3531         movl    %ebx,52(%esi)
 3532         movl    %ecx,56(%esi)
 3533         movl    %edx,60(%esi)
 3534         xorl    32(%esi),%eax
 3535         xorl    36(%esi),%ebx
 3536         xorl    40(%esi),%ecx
 3537         xorl    44(%esi),%edx
 3538         movl    32(%edi),%esi
 3539         movl    %eax,(%esp)
 3540         movl    %ebx,4(%esp)
 3541         movl    %ecx,8(%esp)
 3542         movl    %edx,12(%esp)
 3543         xorl    %esi,%eax
 3544         xorl    36(%edi),%ebx
 3545         movzbl  %ah,%esi
 3546         movl    2052(%ebp,%esi,8),%edx
 3547         movzbl  %al,%esi
 3548         xorl    4(%ebp,%esi,8),%edx
 3549         shrl    $16,%eax
 3550         movzbl  %bl,%esi
 3551         movl    (%ebp,%esi,8),%ecx
 3552         movzbl  %ah,%esi
 3553         xorl    (%ebp,%esi,8),%edx
 3554         movzbl  %bh,%esi
 3555         xorl    4(%ebp,%esi,8),%ecx
 3556         shrl    $16,%ebx
 3557         movzbl  %al,%eax
 3558         xorl    2048(%ebp,%eax,8),%edx
 3559         movzbl  %bh,%esi
 3560         movl    12(%esp),%eax
 3561         xorl    %edx,%ecx
 3562         rorl    $8,%edx
 3563         xorl    2048(%ebp,%esi,8),%ecx
 3564         movzbl  %bl,%esi
 3565         movl    8(%esp),%ebx
 3566         xorl    %eax,%edx
 3567         xorl    2052(%ebp,%esi,8),%ecx
 3568         movl    40(%edi),%esi
 3569         xorl    %ecx,%edx
 3570         movl    %edx,12(%esp)
 3571         xorl    %ebx,%ecx
 3572         movl    %ecx,8(%esp)
 3573         xorl    %esi,%ecx
 3574         xorl    44(%edi),%edx
 3575         movzbl  %ch,%esi
 3576         movl    2052(%ebp,%esi,8),%ebx
 3577         movzbl  %cl,%esi
 3578         xorl    4(%ebp,%esi,8),%ebx
 3579         shrl    $16,%ecx
 3580         movzbl  %dl,%esi
 3581         movl    (%ebp,%esi,8),%eax
 3582         movzbl  %ch,%esi
 3583         xorl    (%ebp,%esi,8),%ebx
 3584         movzbl  %dh,%esi
 3585         xorl    4(%ebp,%esi,8),%eax
 3586         shrl    $16,%edx
 3587         movzbl  %cl,%ecx
 3588         xorl    2048(%ebp,%ecx,8),%ebx
 3589         movzbl  %dh,%esi
 3590         movl    4(%esp),%ecx
 3591         xorl    %ebx,%eax
 3592         rorl    $8,%ebx
 3593         xorl    2048(%ebp,%esi,8),%eax
 3594         movzbl  %dl,%esi
 3595         movl    (%esp),%edx
 3596         xorl    %ecx,%ebx
 3597         xorl    2052(%ebp,%esi,8),%eax
 3598         movl    48(%edi),%esi
 3599         xorl    %eax,%ebx
 3600         movl    %ebx,4(%esp)
 3601         xorl    %edx,%eax
 3602         movl    %eax,(%esp)
 3603         movl    8(%esp),%ecx
 3604         movl    12(%esp),%edx
 3605         movl    44(%esp),%edi
 3606         leal    128(%edi),%edi
 3607         movl    %eax,-112(%edi)
 3608         movl    %ebx,-108(%edi)
 3609         movl    %ecx,-104(%edi)
 3610         movl    %edx,-100(%edi)
 3611         movl    %eax,%ebp
 3612         shll    $30,%eax
 3613         movl    %ebx,%esi
 3614         shrl    $2,%esi
 3615         shll    $30,%ebx
 3616         orl     %esi,%eax
 3617         movl    %ecx,%esi
 3618         shll    $30,%ecx
 3619         movl    %eax,-48(%edi)
 3620         shrl    $2,%esi
 3621         orl     %esi,%ebx
 3622         shrl    $2,%ebp
 3623         movl    %edx,%esi
 3624         shrl    $2,%esi
 3625         movl    %ebx,-44(%edi)
 3626         shll    $30,%edx
 3627         orl     %esi,%ecx
 3628         orl     %ebp,%edx
 3629         movl    %ecx,-40(%edi)
 3630         movl    %edx,-36(%edi)
 3631         movl    %eax,%ebp
 3632         shll    $30,%eax
 3633         movl    %ebx,%esi
 3634         shrl    $2,%esi
 3635         shll    $30,%ebx
 3636         orl     %esi,%eax
 3637         movl    %ecx,%esi
 3638         shll    $30,%ecx
 3639         movl    %eax,32(%edi)
 3640         shrl    $2,%esi
 3641         orl     %esi,%ebx
 3642         shrl    $2,%ebp
 3643         movl    %edx,%esi
 3644         shrl    $2,%esi
 3645         movl    %ebx,36(%edi)
 3646         shll    $30,%edx
 3647         orl     %esi,%ecx
 3648         orl     %ebp,%edx
 3649         movl    %ecx,40(%edi)
 3650         movl    %edx,44(%edi)
 3651         movl    %ebx,%ebp
 3652         shll    $19,%ebx
 3653         movl    %ecx,%esi
 3654         shrl    $13,%esi
 3655         shll    $19,%ecx
 3656         orl     %esi,%ebx
 3657         movl    %edx,%esi
 3658         shll    $19,%edx
 3659         movl    %ebx,128(%edi)
 3660         shrl    $13,%esi
 3661         orl     %esi,%ecx
 3662         shrl    $13,%ebp
 3663         movl    %eax,%esi
 3664         shrl    $13,%esi
 3665         movl    %ecx,132(%edi)
 3666         shll    $19,%eax
 3667         orl     %esi,%edx
 3668         orl     %ebp,%eax
 3669         movl    %edx,136(%edi)
 3670         movl    %eax,140(%edi)
 3671         movl    -96(%edi),%ebx
 3672         movl    -92(%edi),%ecx
 3673         movl    -88(%edi),%edx
 3674         movl    -84(%edi),%eax
 3675         movl    %ebx,%ebp
 3676         shll    $15,%ebx
 3677         movl    %ecx,%esi
 3678         shrl    $17,%esi
 3679         shll    $15,%ecx
 3680         orl     %esi,%ebx
 3681         movl    %edx,%esi
 3682         shll    $15,%edx
 3683         movl    %ebx,-96(%edi)
 3684         shrl    $17,%esi
 3685         orl     %esi,%ecx
 3686         shrl    $17,%ebp
 3687         movl    %eax,%esi
 3688         shrl    $17,%esi
 3689         movl    %ecx,-92(%edi)
 3690         shll    $15,%eax
 3691         orl     %esi,%edx
 3692         orl     %ebp,%eax
 3693         movl    %edx,-88(%edi)
 3694         movl    %eax,-84(%edi)
 3695         movl    %ebx,%ebp
 3696         shll    $15,%ebx
 3697         movl    %ecx,%esi
 3698         shrl    $17,%esi
 3699         shll    $15,%ecx
 3700         orl     %esi,%ebx
 3701         movl    %edx,%esi
 3702         shll    $15,%edx
 3703         movl    %ebx,-64(%edi)
 3704         shrl    $17,%esi
 3705         orl     %esi,%ecx
 3706         shrl    $17,%ebp
 3707         movl    %eax,%esi
 3708         shrl    $17,%esi
 3709         movl    %ecx,-60(%edi)
 3710         shll    $15,%eax
 3711         orl     %esi,%edx
 3712         orl     %ebp,%eax
 3713         movl    %edx,-56(%edi)
 3714         movl    %eax,-52(%edi)
 3715         movl    %ebx,%ebp
 3716         shll    $30,%ebx
 3717         movl    %ecx,%esi
 3718         shrl    $2,%esi
 3719         shll    $30,%ecx
 3720         orl     %esi,%ebx
 3721         movl    %edx,%esi
 3722         shll    $30,%edx
 3723         movl    %ebx,16(%edi)
 3724         shrl    $2,%esi
 3725         orl     %esi,%ecx
 3726         shrl    $2,%ebp
 3727         movl    %eax,%esi
 3728         shrl    $2,%esi
 3729         movl    %ecx,20(%edi)
 3730         shll    $30,%eax
 3731         orl     %esi,%edx
 3732         orl     %ebp,%eax
 3733         movl    %edx,24(%edi)
 3734         movl    %eax,28(%edi)
 3735         movl    %ecx,%ebp
 3736         shll    $2,%ecx
 3737         movl    %edx,%esi
 3738         shrl    $30,%esi
 3739         shll    $2,%edx
 3740         orl     %esi,%ecx
 3741         movl    %eax,%esi
 3742         shll    $2,%eax
 3743         movl    %ecx,80(%edi)
 3744         shrl    $30,%esi
 3745         orl     %esi,%edx
 3746         shrl    $30,%ebp
 3747         movl    %ebx,%esi
 3748         shrl    $30,%esi
 3749         movl    %edx,84(%edi)
 3750         shll    $2,%ebx
 3751         orl     %esi,%eax
 3752         orl     %ebp,%ebx
 3753         movl    %eax,88(%edi)
 3754         movl    %ebx,92(%edi)
 3755         movl    -80(%edi),%ecx
 3756         movl    -76(%edi),%edx
 3757         movl    -72(%edi),%eax
 3758         movl    -68(%edi),%ebx
 3759         movl    %ecx,%ebp
 3760         shll    $15,%ecx
 3761         movl    %edx,%esi
 3762         shrl    $17,%esi
 3763         shll    $15,%edx
 3764         orl     %esi,%ecx
 3765         movl    %eax,%esi
 3766         shll    $15,%eax
 3767         movl    %ecx,-80(%edi)
 3768         shrl    $17,%esi
 3769         orl     %esi,%edx
 3770         shrl    $17,%ebp
 3771         movl    %ebx,%esi
 3772         shrl    $17,%esi
 3773         movl    %edx,-76(%edi)
 3774         shll    $15,%ebx
 3775         orl     %esi,%eax
 3776         orl     %ebp,%ebx
 3777         movl    %eax,-72(%edi)
 3778         movl    %ebx,-68(%edi)
 3779         movl    %ecx,%ebp
 3780         shll    $30,%ecx
 3781         movl    %edx,%esi
 3782         shrl    $2,%esi
 3783         shll    $30,%edx
 3784         orl     %esi,%ecx
 3785         movl    %eax,%esi
 3786         shll    $30,%eax
 3787         movl    %ecx,-16(%edi)
 3788         shrl    $2,%esi
 3789         orl     %esi,%edx
 3790         shrl    $2,%ebp
 3791         movl    %ebx,%esi
 3792         shrl    $2,%esi
 3793         movl    %edx,-12(%edi)
 3794         shll    $30,%ebx
 3795         orl     %esi,%eax
 3796         orl     %ebp,%ebx
 3797         movl    %eax,-8(%edi)
 3798         movl    %ebx,-4(%edi)
 3799         movl    %edx,64(%edi)
 3800         movl    %eax,68(%edi)
 3801         movl    %ebx,72(%edi)
 3802         movl    %ecx,76(%edi)
 3803         movl    %edx,%ebp
 3804         shll    $17,%edx
 3805         movl    %eax,%esi
 3806         shrl    $15,%esi
 3807         shll    $17,%eax
 3808         orl     %esi,%edx
 3809         movl    %ebx,%esi
 3810         shll    $17,%ebx
 3811         movl    %edx,96(%edi)
 3812         shrl    $15,%esi
 3813         orl     %esi,%eax
 3814         shrl    $15,%ebp
 3815         movl    %ecx,%esi
 3816         shrl    $15,%esi
 3817         movl    %eax,100(%edi)
 3818         shll    $17,%ecx
 3819         orl     %esi,%ebx
 3820         orl     %ebp,%ecx
 3821         movl    %ebx,104(%edi)
 3822         movl    %ecx,108(%edi)
 3823         movl    -128(%edi),%edx
 3824         movl    -124(%edi),%eax
 3825         movl    -120(%edi),%ebx
 3826         movl    -116(%edi),%ecx
 3827         movl    %eax,%ebp
 3828         shll    $13,%eax
 3829         movl    %ebx,%esi
 3830         shrl    $19,%esi
 3831         shll    $13,%ebx
 3832         orl     %esi,%eax
 3833         movl    %ecx,%esi
 3834         shll    $13,%ecx
 3835         movl    %eax,-32(%edi)
 3836         shrl    $19,%esi
 3837         orl     %esi,%ebx
 3838         shrl    $19,%ebp
 3839         movl    %edx,%esi
 3840         shrl    $19,%esi
 3841         movl    %ebx,-28(%edi)
 3842         shll    $13,%edx
 3843         orl     %esi,%ecx
 3844         orl     %ebp,%edx
 3845         movl    %ecx,-24(%edi)
 3846         movl    %edx,-20(%edi)
 3847         movl    %eax,%ebp
 3848         shll    $15,%eax
 3849         movl    %ebx,%esi
 3850         shrl    $17,%esi
 3851         shll    $15,%ebx
 3852         orl     %esi,%eax
 3853         movl    %ecx,%esi
 3854         shll    $15,%ecx
 3855         movl    %eax,(%edi)
 3856         shrl    $17,%esi
 3857         orl     %esi,%ebx
 3858         shrl    $17,%ebp
 3859         movl    %edx,%esi
 3860         shrl    $17,%esi
 3861         movl    %ebx,4(%edi)
 3862         shll    $15,%edx
 3863         orl     %esi,%ecx
 3864         orl     %ebp,%edx
 3865         movl    %ecx,8(%edi)
 3866         movl    %edx,12(%edi)
 3867         movl    %eax,%ebp
 3868         shll    $17,%eax
 3869         movl    %ebx,%esi
 3870         shrl    $15,%esi
 3871         shll    $17,%ebx
 3872         orl     %esi,%eax
 3873         movl    %ecx,%esi
 3874         shll    $17,%ecx
 3875         movl    %eax,48(%edi)
 3876         shrl    $15,%esi
 3877         orl     %esi,%ebx
 3878         shrl    $15,%ebp
 3879         movl    %edx,%esi
 3880         shrl    $15,%esi
 3881         movl    %ebx,52(%edi)
 3882         shll    $17,%edx
 3883         orl     %esi,%ecx
 3884         orl     %ebp,%edx
 3885         movl    %ecx,56(%edi)
 3886         movl    %edx,60(%edi)
 3887         movl    %ebx,%ebp
 3888         shll    $2,%ebx
 3889         movl    %ecx,%esi
 3890         shrl    $30,%esi
 3891         shll    $2,%ecx
 3892         orl     %esi,%ebx
 3893         movl    %edx,%esi
 3894         shll    $2,%edx
 3895         movl    %ebx,112(%edi)
 3896         shrl    $30,%esi
 3897         orl     %esi,%ecx
 3898         shrl    $30,%ebp
 3899         movl    %eax,%esi
 3900         shrl    $30,%esi
 3901         movl    %ecx,116(%edi)
 3902         shll    $2,%eax
 3903         orl     %esi,%edx
 3904         orl     %ebp,%eax
 3905         movl    %edx,120(%edi)
 3906         movl    %eax,124(%edi)
 3907         movl    $4,%eax
 3908 .L013done:
 3909         leal    144(%edi),%edx
 3910         addl    $16,%esp
 3911         popl    %edi
 3912         popl    %esi
 3913         popl    %ebx
 3914         popl    %ebp
 3915         ret
 3916 .size   Camellia_Ekeygen,.-.L_Camellia_Ekeygen_begin
 3917 .globl  Camellia_set_key
 3918 .type   Camellia_set_key,@function
 3919 .align  16
 3920 Camellia_set_key:
 3921 .L_Camellia_set_key_begin:
 3922         pushl   %ebx
 3923         movl    8(%esp),%ecx
 3924         movl    12(%esp),%ebx
 3925         movl    16(%esp),%edx
 3926         movl    $-1,%eax
 3927         testl   %ecx,%ecx
 3928         jz      .L014done
 3929         testl   %edx,%edx
 3930         jz      .L014done
 3931         movl    $-2,%eax
 3932         cmpl    $256,%ebx
 3933         je      .L015arg_ok
 3934         cmpl    $192,%ebx
 3935         je      .L015arg_ok
 3936         cmpl    $128,%ebx
 3937         jne     .L014done
 3938 .align  4
 3939 .L015arg_ok:
 3940         pushl   %edx
 3941         pushl   %ecx
 3942         pushl   %ebx
 3943         call    .L_Camellia_Ekeygen_begin
 3944         addl    $12,%esp
 3945         movl    %eax,(%edx)
 3946         xorl    %eax,%eax
 3947 .align  4
 3948 .L014done:
 3949         popl    %ebx
 3950         ret
 3951 .size   Camellia_set_key,.-.L_Camellia_set_key_begin
 3952 .align  64
 3953 .LCamellia_SIGMA:
 3954 .long   2694735487,1003262091,3061508184,1286239154,3337565999,3914302142,1426019237,4057165596,283453434,3731369245,2958461122,3018244605,0,0,0,0
 3955 .align  64
 3956 .LCamellia_SBOX:
 3957 .long   1886416896,1886388336
 3958 .long   2189591040,741081132
 3959 .long   741092352,3014852787
 3960 .long   3974949888,3233808576
 3961 .long   3014898432,3840147684
 3962 .long   656877312,1465319511
 3963 .long   3233857536,3941204202
 3964 .long   3857048832,2930639022
 3965 .long   3840205824,589496355
 3966 .long   2240120064,1802174571
 3967 .long   1465341696,1162149957
 3968 .long   892679424,2779054245
 3969 .long   3941263872,3991732461
 3970 .long   202116096,1330577487
 3971 .long   2930683392,488439837
 3972 .long   1094795520,2459041938
 3973 .long   589505280,2256928902
 3974 .long   4025478912,2947481775
 3975 .long   1802201856,2088501372
 3976 .long   2475922176,522125343
 3977 .long   1162167552,1044250686
 3978 .long   421075200,3705405660
 3979 .long   2779096320,1583218782
 3980 .long   555819264,185270283
 3981 .long   3991792896,2795896998
 3982 .long   235802112,960036921
 3983 .long   1330597632,3587506389
 3984 .long   1313754624,1566376029
 3985 .long   488447232,3654877401
 3986 .long   1701143808,1515847770
 3987 .long   2459079168,1364262993
 3988 .long   3183328512,1819017324
 3989 .long   2256963072,2341142667
 3990 .long   3099113472,2593783962
 3991 .long   2947526400,4227531003
 3992 .long   2408550144,2964324528
 3993 .long   2088532992,1953759348
 3994 .long   3958106880,724238379
 3995 .long   522133248,4042260720
 3996 .long   3469659648,2223243396
 3997 .long   1044266496,3755933919
 3998 .long   808464384,3419078859
 3999 .long   3705461760,875823156
 4000 .long   1600085760,1987444854
 4001 .long   1583242752,1835860077
 4002 .long   3318072576,2846425257
 4003 .long   185273088,3520135377
 4004 .long   437918208,67371012
 4005 .long   2795939328,336855060
 4006 .long   3789676800,976879674
 4007 .long   960051456,3739091166
 4008 .long   3402287616,286326801
 4009 .long   3587560704,842137650
 4010 .long   1195853568,2627469468
 4011 .long   1566399744,1397948499
 4012 .long   1027423488,4075946226
 4013 .long   3654932736,4278059262
 4014 .long   16843008,3486449871
 4015 .long   1515870720,3284336835
 4016 .long   3604403712,2054815866
 4017 .long   1364283648,606339108
 4018 .long   1448498688,3907518696
 4019 .long   1819044864,1616904288
 4020 .long   1296911616,1768489065
 4021 .long   2341178112,2863268010
 4022 .long   218959104,2694840480
 4023 .long   2593823232,2711683233
 4024 .long   1717986816,1650589794
 4025 .long   4227595008,1414791252
 4026 .long   3435973632,505282590
 4027 .long   2964369408,3772776672
 4028 .long   757935360,1684275300
 4029 .long   1953788928,269484048
 4030 .long   303174144,0
 4031 .long   724249344,2745368739
 4032 .long   538976256,1970602101
 4033 .long   4042321920,2324299914
 4034 .long   2981212416,3873833190
 4035 .long   2223277056,151584777
 4036 .long   2576980224,3722248413
 4037 .long   3755990784,2273771655
 4038 .long   1280068608,2206400643
 4039 .long   3419130624,3452764365
 4040 .long   3267543552,2425356432
 4041 .long   875836416,1936916595
 4042 .long   2122219008,4143317238
 4043 .long   1987474944,2644312221
 4044 .long   84215040,3216965823
 4045 .long   1835887872,1381105746
 4046 .long   3082270464,3638034648
 4047 .long   2846468352,3368550600
 4048 .long   825307392,3334865094
 4049 .long   3520188672,2172715137
 4050 .long   387389184,1869545583
 4051 .long   67372032,320012307
 4052 .long   3621246720,1667432547
 4053 .long   336860160,3924361449
 4054 .long   1482184704,2812739751
 4055 .long   976894464,2677997727
 4056 .long   1633771776,3166437564
 4057 .long   3739147776,690552873
 4058 .long   454761216,4193845497
 4059 .long   286331136,791609391
 4060 .long   471604224,3031695540
 4061 .long   842150400,2021130360
 4062 .long   252645120,101056518
 4063 .long   2627509248,3890675943
 4064 .long   370546176,1903231089
 4065 .long   1397969664,3570663636
 4066 .long   404232192,2880110763
 4067 .long   4076007936,2290614408
 4068 .long   572662272,2374828173
 4069 .long   4278124032,1920073842
 4070 .long   1145324544,3115909305
 4071 .long   3486502656,4177002744
 4072 .long   2998055424,2896953516
 4073 .long   3284386560,909508662
 4074 .long   3048584448,707395626
 4075 .long   2054846976,1010565180
 4076 .long   2442236160,4059103473
 4077 .long   606348288,1077936192
 4078 .long   134744064,3553820883
 4079 .long   3907577856,3149594811
 4080 .long   2829625344,1128464451
 4081 .long   1616928768,353697813
 4082 .long   4244438016,2913796269
 4083 .long   1768515840,2004287607
 4084 .long   1347440640,2155872384
 4085 .long   2863311360,2189557890
 4086 .long   3503345664,3974889708
 4087 .long   2694881280,656867367
 4088 .long   2105376000,3856990437
 4089 .long   2711724288,2240086149
 4090 .long   2307492096,892665909
 4091 .long   1650614784,202113036
 4092 .long   2543294208,1094778945
 4093 .long   1414812672,4025417967
 4094 .long   1532713728,2475884691
 4095 .long   505290240,421068825
 4096 .long   2509608192,555810849
 4097 .long   3772833792,235798542
 4098 .long   4294967040,1313734734
 4099 .long   1684300800,1701118053
 4100 .long   3537031680,3183280317
 4101 .long   269488128,3099066552
 4102 .long   3301229568,2408513679
 4103 .long   0,3958046955
 4104 .long   1212696576,3469607118
 4105 .long   2745410304,808452144
 4106 .long   4160222976,1600061535
 4107 .long   1970631936,3318022341
 4108 .long   3688618752,437911578
 4109 .long   2324335104,3789619425
 4110 .long   50529024,3402236106
 4111 .long   3873891840,1195835463
 4112 .long   3671775744,1027407933
 4113 .long   151587072,16842753
 4114 .long   1061109504,3604349142
 4115 .long   3722304768,1448476758
 4116 .long   2492765184,1296891981
 4117 .long   2273806080,218955789
 4118 .long   1549556736,1717960806
 4119 .long   2206434048,3435921612
 4120 .long   33686016,757923885
 4121 .long   3452816640,303169554
 4122 .long   1246382592,538968096
 4123 .long   2425393152,2981167281
 4124 .long   858993408,2576941209
 4125 .long   1936945920,1280049228
 4126 .long   1734829824,3267494082
 4127 .long   4143379968,2122186878
 4128 .long   4092850944,84213765
 4129 .long   2644352256,3082223799
 4130 .long   2139062016,825294897
 4131 .long   3217014528,387383319
 4132 .long   3806519808,3621191895
 4133 .long   1381126656,1482162264
 4134 .long   2610666240,1633747041
 4135 .long   3638089728,454754331
 4136 .long   640034304,471597084
 4137 .long   3368601600,252641295
 4138 .long   926365440,370540566
 4139 .long   3334915584,404226072
 4140 .long   993737472,572653602
 4141 .long   2172748032,1145307204
 4142 .long   2526451200,2998010034
 4143 .long   1869573888,3048538293
 4144 .long   1263225600,2442199185
 4145 .long   320017152,134742024
 4146 .long   3200171520,2829582504
 4147 .long   1667457792,4244373756
 4148 .long   774778368,1347420240
 4149 .long   3924420864,3503292624
 4150 .long   2038003968,2105344125
 4151 .long   2812782336,2307457161
 4152 .long   2358021120,2543255703
 4153 .long   2678038272,1532690523
 4154 .long   1852730880,2509570197
 4155 .long   3166485504,4294902015
 4156 .long   2391707136,3536978130
 4157 .long   690563328,3301179588
 4158 .long   4126536960,1212678216
 4159 .long   4193908992,4160159991
 4160 .long   3065427456,3688562907
 4161 .long   791621376,50528259
 4162 .long   4261281024,3671720154
 4163 .long   3031741440,1061093439
 4164 .long   1499027712,2492727444
 4165 .long   2021160960,1549533276
 4166 .long   2560137216,33685506
 4167 .long   101058048,1246363722
 4168 .long   1785358848,858980403
 4169 .long   3890734848,1734803559
 4170 .long   1179010560,4092788979
 4171 .long   1903259904,2139029631
 4172 .long   3132799488,3806462178
 4173 .long   3570717696,2610626715
 4174 .long   623191296,640024614
 4175 .long   2880154368,926351415
 4176 .long   1111638528,993722427
 4177 .long   2290649088,2526412950
 4178 .long   2728567296,1263206475
 4179 .long   2374864128,3200123070
 4180 .long   4210752000,774766638
 4181 .long   1920102912,2037973113
 4182 .long   117901056,2357985420
 4183 .long   3115956480,1852702830
 4184 .long   1431655680,2391670926
 4185 .long   4177065984,4126474485
 4186 .long   4008635904,3065381046
 4187 .long   2896997376,4261216509
 4188 .long   168430080,1499005017
 4189 .long   909522432,2560098456
 4190 .long   1229539584,1785331818
 4191 .long   707406336,1178992710
 4192 .long   1751672832,3132752058
 4193 .long   1010580480,623181861
 4194 .long   943208448,1111621698
 4195 .long   4059164928,2728525986
 4196 .long   2762253312,4210688250
 4197 .long   1077952512,117899271
 4198 .long   673720320,1431634005
 4199 .long   3553874688,4008575214
 4200 .long   2071689984,168427530
 4201 .long   3149642496,1229520969
 4202 .long   3385444608,1751646312
 4203 .long   1128481536,943194168
 4204 .long   3250700544,2762211492
 4205 .long   353703168,673710120
 4206 .long   3823362816,2071658619
 4207 .long   2913840384,3385393353
 4208 .long   4109693952,3250651329
 4209 .long   2004317952,3823304931
 4210 .long   3351758592,4109631732
 4211 .long   2155905024,3351707847
 4212 .long   2661195264,2661154974
 4213 .long   14737632,939538488
 4214 .long   328965,1090535745
 4215 .long   5789784,369104406
 4216 .long   14277081,1979741814
 4217 .long   6776679,3640711641
 4218 .long   5131854,2466288531
 4219 .long   8487297,1610637408
 4220 .long   13355979,4060148466
 4221 .long   13224393,1912631922
 4222 .long   723723,3254829762
 4223 .long   11447982,2868947883
 4224 .long   6974058,2583730842
 4225 .long   14013909,1962964341
 4226 .long   1579032,100664838
 4227 .long   6118749,1459640151
 4228 .long   8553090,2684395680
 4229 .long   4605510,2432733585
 4230 .long   14671839,4144035831
 4231 .long   14079702,3036722613
 4232 .long   2565927,3372272073
 4233 .long   9079434,2717950626
 4234 .long   3289650,2348846220
 4235 .long   4934475,3523269330
 4236 .long   4342338,2415956112
 4237 .long   14408667,4127258358
 4238 .long   1842204,117442311
 4239 .long   10395294,2801837991
 4240 .long   10263708,654321447
 4241 .long   3815994,2382401166
 4242 .long   13290186,2986390194
 4243 .long   2434341,1224755529
 4244 .long   8092539,3724599006
 4245 .long   855309,1124090691
 4246 .long   7434609,1543527516
 4247 .long   6250335,3607156695
 4248 .long   2039583,3338717127
 4249 .long   16316664,1040203326
 4250 .long   14145495,4110480885
 4251 .long   4079166,2399178639
 4252 .long   10329501,1728079719
 4253 .long   8158332,520101663
 4254 .long   6316128,402659352
 4255 .long   12171705,1845522030
 4256 .long   12500670,2936057775
 4257 .long   12369084,788541231
 4258 .long   9145227,3791708898
 4259 .long   1447446,2231403909
 4260 .long   3421236,218107149
 4261 .long   5066061,1392530259
 4262 .long   12829635,4026593520
 4263 .long   7500402,2617285788
 4264 .long   9803157,1694524773
 4265 .long   11250603,3925928682
 4266 .long   9342606,2734728099
 4267 .long   12237498,2919280302
 4268 .long   8026746,2650840734
 4269 .long   11776947,3959483628
 4270 .long   131586,2147516544
 4271 .long   11842740,754986285
 4272 .long   11382189,1795189611
 4273 .long   10658466,2818615464
 4274 .long   11316396,721431339
 4275 .long   14211288,905983542
 4276 .long   10132122,2785060518
 4277 .long   1513239,3305162181
 4278 .long   1710618,2248181382
 4279 .long   3487029,1291865421
 4280 .long   13421772,855651123
 4281 .long   16250871,4244700669
 4282 .long   10066329,1711302246
 4283 .long   6381921,1476417624
 4284 .long   5921370,2516620950
 4285 .long   15263976,973093434
 4286 .long   2368548,150997257
 4287 .long   5658198,2499843477
 4288 .long   4210752,268439568
 4289 .long   14803425,2013296760
 4290 .long   6513507,3623934168
 4291 .long   592137,1107313218
 4292 .long   3355443,3422604492
 4293 .long   12566463,4009816047
 4294 .long   10000536,637543974
 4295 .long   9934743,3842041317
 4296 .long   8750469,1627414881
 4297 .long   6842472,436214298
 4298 .long   16579836,1056980799
 4299 .long   15527148,989870907
 4300 .long   657930,2181071490
 4301 .long   14342874,3053500086
 4302 .long   7303023,3674266587
 4303 .long   5460819,3556824276
 4304 .long   6447714,2550175896
 4305 .long   10724259,3892373736
 4306 .long   3026478,2332068747
 4307 .long   526344,33554946
 4308 .long   11513775,3942706155
 4309 .long   2631720,167774730
 4310 .long   11579568,738208812
 4311 .long   7631988,486546717
 4312 .long   12763842,2952835248
 4313 .long   12434877,1862299503
 4314 .long   3552822,2365623693
 4315 .long   2236962,2281736328
 4316 .long   3684408,234884622
 4317 .long   6579300,419436825
 4318 .long   1973790,2264958855
 4319 .long   3750201,1308642894
 4320 .long   2894892,184552203
 4321 .long   10921638,2835392937
 4322 .long   3158064,201329676
 4323 .long   15066597,2030074233
 4324 .long   4473924,285217041
 4325 .long   16645629,2130739071
 4326 .long   8947848,570434082
 4327 .long   10461087,3875596263
 4328 .long   6645093,1493195097
 4329 .long   8882055,3774931425
 4330 .long   7039851,3657489114
 4331 .long   16053492,1023425853
 4332 .long   2302755,3355494600
 4333 .long   4737096,301994514
 4334 .long   1052688,67109892
 4335 .long   13750737,1946186868
 4336 .long   5329233,1409307732
 4337 .long   12632256,805318704
 4338 .long   16382457,2113961598
 4339 .long   13816530,3019945140
 4340 .long   10526880,671098920
 4341 .long   5592405,1426085205
 4342 .long   10592673,1744857192
 4343 .long   4276545,1342197840
 4344 .long   16448250,3187719870
 4345 .long   4408131,3489714384
 4346 .long   1250067,3288384708
 4347 .long   12895428,822096177
 4348 .long   3092271,3405827019
 4349 .long   11053224,704653866
 4350 .long   11974326,2902502829
 4351 .long   3947580,251662095
 4352 .long   2829099,3389049546
 4353 .long   12698049,1879076976
 4354 .long   16777215,4278255615
 4355 .long   13158600,838873650
 4356 .long   10855845,1761634665
 4357 .long   2105376,134219784
 4358 .long   9013641,1644192354
 4359 .long   0,0
 4360 .long   9474192,603989028
 4361 .long   4671303,3506491857
 4362 .long   15724527,4211145723
 4363 .long   15395562,3120609978
 4364 .long   12040119,3976261101
 4365 .long   1381653,1157645637
 4366 .long   394758,2164294017
 4367 .long   13487565,1929409395
 4368 .long   11908533,1828744557
 4369 .long   1184274,2214626436
 4370 .long   8289918,2667618207
 4371 .long   12303291,3993038574
 4372 .long   2697513,1241533002
 4373 .long   986895,3271607235
 4374 .long   12105912,771763758
 4375 .long   460551,3238052289
 4376 .long   263172,16777473
 4377 .long   10197915,3858818790
 4378 .long   9737364,620766501
 4379 .long   2171169,1207978056
 4380 .long   6710886,2566953369
 4381 .long   15132390,3103832505
 4382 .long   13553358,3003167667
 4383 .long   15592941,2063629179
 4384 .long   15198183,4177590777
 4385 .long   3881787,3456159438
 4386 .long   16711422,3204497343
 4387 .long   8355711,3741376479
 4388 .long   12961221,1895854449
 4389 .long   10790052,687876393
 4390 .long   3618615,3439381965
 4391 .long   11645361,1811967084
 4392 .long   5000268,318771987
 4393 .long   9539985,1677747300
 4394 .long   7237230,2600508315
 4395 .long   9276813,1660969827
 4396 .long   7763574,2634063261
 4397 .long   197379,3221274816
 4398 .long   2960685,1258310475
 4399 .long   14606046,3070277559
 4400 .long   9868950,2768283045
 4401 .long   2500134,2298513801
 4402 .long   8224125,1593859935
 4403 .long   13027014,2969612721
 4404 .long   6052956,385881879
 4405 .long   13882323,4093703412
 4406 .long   15921906,3154164924
 4407 .long   5197647,3540046803
 4408 .long   1644825,1174423110
 4409 .long   4144959,3472936911
 4410 .long   14474460,922761015
 4411 .long   7960953,1577082462
 4412 .long   1907997,1191200583
 4413 .long   5395026,2483066004
 4414 .long   15461355,4194368250
 4415 .long   15987699,4227923196
 4416 .long   7171437,1526750043
 4417 .long   6184542,2533398423
 4418 .long   16514043,4261478142
 4419 .long   6908265,1509972570
 4420 .long   11711154,2885725356
 4421 .long   15790320,1006648380
 4422 .long   3223857,1275087948
 4423 .long   789516,50332419
 4424 .long   13948116,889206069
 4425 .long   13619151,4076925939
 4426 .long   9211020,587211555
 4427 .long   14869218,3087055032
 4428 .long   7697781,1560304989
 4429 .long   11119017,1778412138
 4430 .long   4868682,2449511058
 4431 .long   5723991,3573601749
 4432 .long   8684676,553656609
 4433 .long   1118481,1140868164
 4434 .long   4539717,1358975313
 4435 .long   1776411,3321939654
 4436 .long   16119285,2097184125
 4437 .long   15000804,956315961
 4438 .long   921102,2197848963
 4439 .long   7566195,3691044060
 4440 .long   11184810,2852170410
 4441 .long   15856113,2080406652
 4442 .long   14540253,1996519287
 4443 .long   5855577,1442862678
 4444 .long   1315860,83887365
 4445 .long   7105644,452991771
 4446 .long   9605778,2751505572
 4447 .long   5526612,352326933
 4448 .long   13684944,872428596
 4449 .long   7895160,503324190
 4450 .long   7368816,469769244
 4451 .long   14935011,4160813304
 4452 .long   4802889,1375752786
 4453 .long   8421504,536879136
 4454 .long   5263440,335549460
 4455 .long   10987431,3909151209
 4456 .long   16185078,3170942397
 4457 .long   7829367,3707821533
 4458 .long   9671571,3825263844
 4459 .long   8816262,2701173153
 4460 .long   8618883,3758153952
 4461 .long   2763306,2315291274
 4462 .long   13092807,4043370993
 4463 .long   5987163,3590379222
 4464 .long   15329769,2046851706
 4465 .long   15658734,3137387451
 4466 .long   9408399,3808486371
 4467 .long   65793,1073758272
 4468 .long   4013373,1325420367
 4469 .globl  Camellia_cbc_encrypt
 4470 .type   Camellia_cbc_encrypt,@function
 4471 .align  16
 4472 Camellia_cbc_encrypt:
 4473 .L_Camellia_cbc_encrypt_begin:
 4474         pushl   %ebp
 4475         pushl   %ebx
 4476         pushl   %esi
 4477         pushl   %edi
 4478         movl    28(%esp),%ecx
 4479         cmpl    $0,%ecx
 4480         je      .L016enc_out
 4481         pushfl
 4482         cld
 4483         movl    24(%esp),%eax
 4484         movl    28(%esp),%ebx
 4485         movl    36(%esp),%edx
 4486         movl    40(%esp),%ebp
 4487         leal    -64(%esp),%esi
 4488         andl    $-64,%esi
 4489         leal    -127(%edx),%edi
 4490         subl    %esi,%edi
 4491         negl    %edi
 4492         andl    $960,%edi
 4493         subl    %edi,%esi
 4494         movl    44(%esp),%edi
 4495         xchgl   %esi,%esp
 4496         addl    $4,%esp
 4497         movl    %esi,20(%esp)
 4498         movl    %eax,24(%esp)
 4499         movl    %ebx,28(%esp)
 4500         movl    %ecx,32(%esp)
 4501         movl    %edx,36(%esp)
 4502         movl    %ebp,40(%esp)
 4503         call    .L017pic_point
 4504 .L017pic_point:
 4505         popl    %ebp
 4506         leal    .LCamellia_SBOX-.L017pic_point(%ebp),%ebp
 4507         movl    $32,%esi
 4508 .align  4
 4509 .L018prefetch_sbox:
 4510         movl    (%ebp),%eax
 4511         movl    32(%ebp),%ebx
 4512         movl    64(%ebp),%ecx
 4513         movl    96(%ebp),%edx
 4514         leal    128(%ebp),%ebp
 4515         decl    %esi
 4516         jnz     .L018prefetch_sbox
 4517         movl    36(%esp),%eax
 4518         subl    $4096,%ebp
 4519         movl    24(%esp),%esi
 4520         movl    272(%eax),%edx
 4521         cmpl    $0,%edi
 4522         je      .L019DECRYPT
 4523         movl    32(%esp),%ecx
 4524         movl    40(%esp),%edi
 4525         shll    $6,%edx
 4526         leal    (%eax,%edx,1),%edx
 4527         movl    %edx,16(%esp)
 4528         testl   $4294967280,%ecx
 4529         jz      .L020enc_tail
 4530         movl    (%edi),%eax
 4531         movl    4(%edi),%ebx
 4532 .align  4
 4533 .L021enc_loop:
 4534         movl    8(%edi),%ecx
 4535         movl    12(%edi),%edx
 4536         xorl    (%esi),%eax
 4537         xorl    4(%esi),%ebx
 4538         xorl    8(%esi),%ecx
 4539         bswap   %eax
 4540         xorl    12(%esi),%edx
 4541         bswap   %ebx
 4542         movl    36(%esp),%edi
 4543         bswap   %ecx
 4544         bswap   %edx
 4545         call    _x86_Camellia_encrypt
 4546         movl    24(%esp),%esi
 4547         movl    28(%esp),%edi
 4548         bswap   %eax
 4549         bswap   %ebx
 4550         bswap   %ecx
 4551         movl    %eax,(%edi)
 4552         bswap   %edx
 4553         movl    %ebx,4(%edi)
 4554         movl    %ecx,8(%edi)
 4555         movl    %edx,12(%edi)
 4556         movl    32(%esp),%ecx
 4557         leal    16(%esi),%esi
 4558         movl    %esi,24(%esp)
 4559         leal    16(%edi),%edx
 4560         movl    %edx,28(%esp)
 4561         subl    $16,%ecx
 4562         testl   $4294967280,%ecx
 4563         movl    %ecx,32(%esp)
 4564         jnz     .L021enc_loop
 4565         testl   $15,%ecx
 4566         jnz     .L020enc_tail
 4567         movl    40(%esp),%esi
 4568         movl    8(%edi),%ecx
 4569         movl    12(%edi),%edx
 4570         movl    %eax,(%esi)
 4571         movl    %ebx,4(%esi)
 4572         movl    %ecx,8(%esi)
 4573         movl    %edx,12(%esi)
 4574         movl    20(%esp),%esp
 4575         popfl
 4576 .L016enc_out:
 4577         popl    %edi
 4578         popl    %esi
 4579         popl    %ebx
 4580         popl    %ebp
 4581         ret
 4582         pushfl
 4583 .align  4
 4584 .L020enc_tail:
 4585         movl    %edi,%eax
 4586         movl    28(%esp),%edi
 4587         pushl   %eax
 4588         movl    $16,%ebx
 4589         subl    %ecx,%ebx
 4590         cmpl    %esi,%edi
 4591         je      .L022enc_in_place
 4592 .align  4
 4593 .long   2767451785
 4594         jmp     .L023enc_skip_in_place
 4595 .L022enc_in_place:
 4596         leal    (%edi,%ecx,1),%edi
 4597 .L023enc_skip_in_place:
 4598         movl    %ebx,%ecx
 4599         xorl    %eax,%eax
 4600 .align  4
 4601 .long   2868115081
 4602         popl    %edi
 4603         movl    28(%esp),%esi
 4604         movl    (%edi),%eax
 4605         movl    4(%edi),%ebx
 4606         movl    $16,32(%esp)
 4607         jmp     .L021enc_loop
 4608 .align  16
 4609 .L019DECRYPT:
 4610         shll    $6,%edx
 4611         leal    (%eax,%edx,1),%edx
 4612         movl    %eax,16(%esp)
 4613         movl    %edx,36(%esp)
 4614         cmpl    28(%esp),%esi
 4615         je      .L024dec_in_place
 4616         movl    40(%esp),%edi
 4617         movl    %edi,44(%esp)
 4618 .align  4
 4619 .L025dec_loop:
 4620         movl    (%esi),%eax
 4621         movl    4(%esi),%ebx
 4622         movl    8(%esi),%ecx
 4623         bswap   %eax
 4624         movl    12(%esi),%edx
 4625         bswap   %ebx
 4626         movl    36(%esp),%edi
 4627         bswap   %ecx
 4628         bswap   %edx
 4629         call    _x86_Camellia_decrypt
 4630         movl    44(%esp),%edi
 4631         movl    32(%esp),%esi
 4632         bswap   %eax
 4633         bswap   %ebx
 4634         bswap   %ecx
 4635         xorl    (%edi),%eax
 4636         bswap   %edx
 4637         xorl    4(%edi),%ebx
 4638         xorl    8(%edi),%ecx
 4639         xorl    12(%edi),%edx
 4640         subl    $16,%esi
 4641         jc      .L026dec_partial
 4642         movl    %esi,32(%esp)
 4643         movl    24(%esp),%esi
 4644         movl    28(%esp),%edi
 4645         movl    %eax,(%edi)
 4646         movl    %ebx,4(%edi)
 4647         movl    %ecx,8(%edi)
 4648         movl    %edx,12(%edi)
 4649         movl    %esi,44(%esp)
 4650         leal    16(%esi),%esi
 4651         movl    %esi,24(%esp)
 4652         leal    16(%edi),%edi
 4653         movl    %edi,28(%esp)
 4654         jnz     .L025dec_loop
 4655         movl    44(%esp),%edi
 4656 .L027dec_end:
 4657         movl    40(%esp),%esi
 4658         movl    (%edi),%eax
 4659         movl    4(%edi),%ebx
 4660         movl    8(%edi),%ecx
 4661         movl    12(%edi),%edx
 4662         movl    %eax,(%esi)
 4663         movl    %ebx,4(%esi)
 4664         movl    %ecx,8(%esi)
 4665         movl    %edx,12(%esi)
 4666         jmp     .L028dec_out
 4667 .align  4
 4668 .L026dec_partial:
 4669         leal    44(%esp),%edi
 4670         movl    %eax,(%edi)
 4671         movl    %ebx,4(%edi)
 4672         movl    %ecx,8(%edi)
 4673         movl    %edx,12(%edi)
 4674         leal    16(%esi),%ecx
 4675         movl    %edi,%esi
 4676         movl    28(%esp),%edi
 4677 .long   2767451785
 4678         movl    24(%esp),%edi
 4679         jmp     .L027dec_end
 4680 .align  4
 4681 .L024dec_in_place:
 4682 .L029dec_in_place_loop:
 4683         leal    44(%esp),%edi
 4684         movl    (%esi),%eax
 4685         movl    4(%esi),%ebx
 4686         movl    8(%esi),%ecx
 4687         movl    12(%esi),%edx
 4688         movl    %eax,(%edi)
 4689         movl    %ebx,4(%edi)
 4690         movl    %ecx,8(%edi)
 4691         bswap   %eax
 4692         movl    %edx,12(%edi)
 4693         bswap   %ebx
 4694         movl    36(%esp),%edi
 4695         bswap   %ecx
 4696         bswap   %edx
 4697         call    _x86_Camellia_decrypt
 4698         movl    40(%esp),%edi
 4699         movl    28(%esp),%esi
 4700         bswap   %eax
 4701         bswap   %ebx
 4702         bswap   %ecx
 4703         xorl    (%edi),%eax
 4704         bswap   %edx
 4705         xorl    4(%edi),%ebx
 4706         xorl    8(%edi),%ecx
 4707         xorl    12(%edi),%edx
 4708         movl    %eax,(%esi)
 4709         movl    %ebx,4(%esi)
 4710         movl    %ecx,8(%esi)
 4711         movl    %edx,12(%esi)
 4712         leal    16(%esi),%esi
 4713         movl    %esi,28(%esp)
 4714         leal    44(%esp),%esi
 4715         movl    (%esi),%eax
 4716         movl    4(%esi),%ebx
 4717         movl    8(%esi),%ecx
 4718         movl    12(%esi),%edx
 4719         movl    %eax,(%edi)
 4720         movl    %ebx,4(%edi)
 4721         movl    %ecx,8(%edi)
 4722         movl    %edx,12(%edi)
 4723         movl    24(%esp),%esi
 4724         leal    16(%esi),%esi
 4725         movl    %esi,24(%esp)
 4726         movl    32(%esp),%ecx
 4727         subl    $16,%ecx
 4728         jc      .L030dec_in_place_partial
 4729         movl    %ecx,32(%esp)
 4730         jnz     .L029dec_in_place_loop
 4731         jmp     .L028dec_out
 4732 .align  4
 4733 .L030dec_in_place_partial:
 4734         movl    28(%esp),%edi
 4735         leal    44(%esp),%esi
 4736         leal    (%edi,%ecx,1),%edi
 4737         leal    16(%esi,%ecx,1),%esi
 4738         negl    %ecx
 4739 .long   2767451785
 4740 .align  4
 4741 .L028dec_out:
 4742         movl    20(%esp),%esp
 4743         popfl
 4744         popl    %edi
 4745         popl    %esi
 4746         popl    %ebx
 4747         popl    %ebp
 4748         ret
 4749 .size   Camellia_cbc_encrypt,.-.L_Camellia_cbc_encrypt_begin
 4750 .byte   67,97,109,101,108,108,105,97,32,102,111,114,32,120,56,54
 4751 .byte   32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115
 4752 .byte   115,108,46,111,114,103,62,0
 4753 #endif

Cache object: 2e0ce9ae84d6f864c01ca7dc9108ae16


[ 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.