deps/openssl/asm/x86-elf-gas/whrlpool/wp-mmx.s

Summary

Maintainability
Test Coverage
.file    "wp-mmx.s"
.text
.globl    whirlpool_block_mmx
.type    whirlpool_block_mmx,@function
.align    16
whirlpool_block_mmx:
.L_whirlpool_block_mmx_begin:
    pushl    %ebp
    pushl    %ebx
    pushl    %esi
    pushl    %edi
    movl    20(%esp),%esi
    movl    24(%esp),%edi
    movl    28(%esp),%ebp
    movl    %esp,%eax
    subl    $148,%esp
    andl    $-64,%esp
    leal    128(%esp),%ebx
    movl    %esi,(%ebx)
    movl    %edi,4(%ebx)
    movl    %ebp,8(%ebx)
    movl    %eax,16(%ebx)
    call    .L000pic_point
.L000pic_point:
    popl    %ebp
    leal    .L001table-.L000pic_point(%ebp),%ebp
    xorl    %ecx,%ecx
    xorl    %edx,%edx
    movq    (%esi),%mm0
    movq    8(%esi),%mm1
    movq    16(%esi),%mm2
    movq    24(%esi),%mm3
    movq    32(%esi),%mm4
    movq    40(%esi),%mm5
    movq    48(%esi),%mm6
    movq    56(%esi),%mm7
.L002outerloop:
    movq    %mm0,(%esp)
    movq    %mm1,8(%esp)
    movq    %mm2,16(%esp)
    movq    %mm3,24(%esp)
    movq    %mm4,32(%esp)
    movq    %mm5,40(%esp)
    movq    %mm6,48(%esp)
    movq    %mm7,56(%esp)
    pxor    (%edi),%mm0
    pxor    8(%edi),%mm1
    pxor    16(%edi),%mm2
    pxor    24(%edi),%mm3
    pxor    32(%edi),%mm4
    pxor    40(%edi),%mm5
    pxor    48(%edi),%mm6
    pxor    56(%edi),%mm7
    movq    %mm0,64(%esp)
    movq    %mm1,72(%esp)
    movq    %mm2,80(%esp)
    movq    %mm3,88(%esp)
    movq    %mm4,96(%esp)
    movq    %mm5,104(%esp)
    movq    %mm6,112(%esp)
    movq    %mm7,120(%esp)
    xorl    %esi,%esi
    movl    %esi,12(%ebx)
.align    16
.L003round:
    movq    4096(%ebp,%esi,8),%mm0
    movl    (%esp),%eax
    movl    4(%esp),%ebx
    movb    %al,%cl
    movb    %ah,%dl
    leal    (%ecx,%ecx,1),%esi
    leal    (%edx,%edx,1),%edi
    shrl    $16,%eax
    pxor    (%ebp,%esi,8),%mm0
    movq    7(%ebp,%edi,8),%mm1
    movb    %al,%cl
    movb    %ah,%dl
    movl    8(%esp),%eax
    leal    (%ecx,%ecx,1),%esi
    leal    (%edx,%edx,1),%edi
    movq    6(%ebp,%esi,8),%mm2
    movq    5(%ebp,%edi,8),%mm3
    movb    %bl,%cl
    movb    %bh,%dl
    leal    (%ecx,%ecx,1),%esi
    leal    (%edx,%edx,1),%edi
    shrl    $16,%ebx
    movq    4(%ebp,%esi,8),%mm4
    movq    3(%ebp,%edi,8),%mm5
    movb    %bl,%cl
    movb    %bh,%dl
    movl    12(%esp),%ebx
    leal    (%ecx,%ecx,1),%esi
    leal    (%edx,%edx,1),%edi
    movq    2(%ebp,%esi,8),%mm6
    movq    1(%ebp,%edi,8),%mm7
    movb    %al,%cl
    movb    %ah,%dl
    leal    (%ecx,%ecx,1),%esi
    leal    (%edx,%edx,1),%edi
    shrl    $16,%eax
    pxor    (%ebp,%esi,8),%mm1
    pxor    7(%ebp,%edi,8),%mm2
    movb    %al,%cl
    movb    %ah,%dl
    movl    16(%esp),%eax
    leal    (%ecx,%ecx,1),%esi
    leal    (%edx,%edx,1),%edi
    pxor    6(%ebp,%esi,8),%mm3
    pxor    5(%ebp,%edi,8),%mm4
    movb    %bl,%cl
    movb    %bh,%dl
    leal    (%ecx,%ecx,1),%esi
    leal    (%edx,%edx,1),%edi
    shrl    $16,%ebx
    pxor    4(%ebp,%esi,8),%mm5
    pxor    3(%ebp,%edi,8),%mm6
    movb    %bl,%cl
    movb    %bh,%dl
    movl    20(%esp),%ebx
    leal    (%ecx,%ecx,1),%esi
    leal    (%edx,%edx,1),%edi
    pxor    2(%ebp,%esi,8),%mm7
    pxor    1(%ebp,%edi,8),%mm0
    movb    %al,%cl
    movb    %ah,%dl
    leal    (%ecx,%ecx,1),%esi
    leal    (%edx,%edx,1),%edi
    shrl    $16,%eax
    pxor    (%ebp,%esi,8),%mm2
    pxor    7(%ebp,%edi,8),%mm3
    movb    %al,%cl
    movb    %ah,%dl
    movl    24(%esp),%eax
    leal    (%ecx,%ecx,1),%esi
    leal    (%edx,%edx,1),%edi
    pxor    6(%ebp,%esi,8),%mm4
    pxor    5(%ebp,%edi,8),%mm5
    movb    %bl,%cl
    movb    %bh,%dl
    leal    (%ecx,%ecx,1),%esi
    leal    (%edx,%edx,1),%edi
    shrl    $16,%ebx
    pxor    4(%ebp,%esi,8),%mm6
    pxor    3(%ebp,%edi,8),%mm7
    movb    %bl,%cl
    movb    %bh,%dl
    movl    28(%esp),%ebx
    leal    (%ecx,%ecx,1),%esi
    leal    (%edx,%edx,1),%edi
    pxor    2(%ebp,%esi,8),%mm0
    pxor    1(%ebp,%edi,8),%mm1
    movb    %al,%cl
    movb    %ah,%dl
    leal    (%ecx,%ecx,1),%esi
    leal    (%edx,%edx,1),%edi
    shrl    $16,%eax
    pxor    (%ebp,%esi,8),%mm3
    pxor    7(%ebp,%edi,8),%mm4
    movb    %al,%cl
    movb    %ah,%dl
    movl    32(%esp),%eax
    leal    (%ecx,%ecx,1),%esi
    leal    (%edx,%edx,1),%edi
    pxor    6(%ebp,%esi,8),%mm5
    pxor    5(%ebp,%edi,8),%mm6
    movb    %bl,%cl
    movb    %bh,%dl
    leal    (%ecx,%ecx,1),%esi
    leal    (%edx,%edx,1),%edi
    shrl    $16,%ebx
    pxor    4(%ebp,%esi,8),%mm7
    pxor    3(%ebp,%edi,8),%mm0
    movb    %bl,%cl
    movb    %bh,%dl
    movl    36(%esp),%ebx
    leal    (%ecx,%ecx,1),%esi
    leal    (%edx,%edx,1),%edi
    pxor    2(%ebp,%esi,8),%mm1
    pxor    1(%ebp,%edi,8),%mm2
    movb    %al,%cl
    movb    %ah,%dl
    leal    (%ecx,%ecx,1),%esi
    leal    (%edx,%edx,1),%edi
    shrl    $16,%eax
    pxor    (%ebp,%esi,8),%mm4
    pxor    7(%ebp,%edi,8),%mm5
    movb    %al,%cl
    movb    %ah,%dl
    movl    40(%esp),%eax
    leal    (%ecx,%ecx,1),%esi
    leal    (%edx,%edx,1),%edi
    pxor    6(%ebp,%esi,8),%mm6
    pxor    5(%ebp,%edi,8),%mm7
    movb    %bl,%cl
    movb    %bh,%dl
    leal    (%ecx,%ecx,1),%esi
    leal    (%edx,%edx,1),%edi
    shrl    $16,%ebx
    pxor    4(%ebp,%esi,8),%mm0
    pxor    3(%ebp,%edi,8),%mm1
    movb    %bl,%cl
    movb    %bh,%dl
    movl    44(%esp),%ebx
    leal    (%ecx,%ecx,1),%esi
    leal    (%edx,%edx,1),%edi
    pxor    2(%ebp,%esi,8),%mm2
    pxor    1(%ebp,%edi,8),%mm3
    movb    %al,%cl
    movb    %ah,%dl
    leal    (%ecx,%ecx,1),%esi
    leal    (%edx,%edx,1),%edi
    shrl    $16,%eax
    pxor    (%ebp,%esi,8),%mm5
    pxor    7(%ebp,%edi,8),%mm6
    movb    %al,%cl
    movb    %ah,%dl
    movl    48(%esp),%eax
    leal    (%ecx,%ecx,1),%esi
    leal    (%edx,%edx,1),%edi
    pxor    6(%ebp,%esi,8),%mm7
    pxor    5(%ebp,%edi,8),%mm0
    movb    %bl,%cl
    movb    %bh,%dl
    leal    (%ecx,%ecx,1),%esi
    leal    (%edx,%edx,1),%edi
    shrl    $16,%ebx
    pxor    4(%ebp,%esi,8),%mm1
    pxor    3(%ebp,%edi,8),%mm2
    movb    %bl,%cl
    movb    %bh,%dl
    movl    52(%esp),%ebx
    leal    (%ecx,%ecx,1),%esi
    leal    (%edx,%edx,1),%edi
    pxor    2(%ebp,%esi,8),%mm3
    pxor    1(%ebp,%edi,8),%mm4
    movb    %al,%cl
    movb    %ah,%dl
    leal    (%ecx,%ecx,1),%esi
    leal    (%edx,%edx,1),%edi
    shrl    $16,%eax
    pxor    (%ebp,%esi,8),%mm6
    pxor    7(%ebp,%edi,8),%mm7
    movb    %al,%cl
    movb    %ah,%dl
    movl    56(%esp),%eax
    leal    (%ecx,%ecx,1),%esi
    leal    (%edx,%edx,1),%edi
    pxor    6(%ebp,%esi,8),%mm0
    pxor    5(%ebp,%edi,8),%mm1
    movb    %bl,%cl
    movb    %bh,%dl
    leal    (%ecx,%ecx,1),%esi
    leal    (%edx,%edx,1),%edi
    shrl    $16,%ebx
    pxor    4(%ebp,%esi,8),%mm2
    pxor    3(%ebp,%edi,8),%mm3
    movb    %bl,%cl
    movb    %bh,%dl
    movl    60(%esp),%ebx
    leal    (%ecx,%ecx,1),%esi
    leal    (%edx,%edx,1),%edi
    pxor    2(%ebp,%esi,8),%mm4
    pxor    1(%ebp,%edi,8),%mm5
    movb    %al,%cl
    movb    %ah,%dl
    leal    (%ecx,%ecx,1),%esi
    leal    (%edx,%edx,1),%edi
    shrl    $16,%eax
    pxor    (%ebp,%esi,8),%mm7
    pxor    7(%ebp,%edi,8),%mm0
    movb    %al,%cl
    movb    %ah,%dl
    movl    64(%esp),%eax
    leal    (%ecx,%ecx,1),%esi
    leal    (%edx,%edx,1),%edi
    pxor    6(%ebp,%esi,8),%mm1
    pxor    5(%ebp,%edi,8),%mm2
    movb    %bl,%cl
    movb    %bh,%dl
    leal    (%ecx,%ecx,1),%esi
    leal    (%edx,%edx,1),%edi
    shrl    $16,%ebx
    pxor    4(%ebp,%esi,8),%mm3
    pxor    3(%ebp,%edi,8),%mm4
    movb    %bl,%cl
    movb    %bh,%dl
    movl    68(%esp),%ebx
    leal    (%ecx,%ecx,1),%esi
    leal    (%edx,%edx,1),%edi
    pxor    2(%ebp,%esi,8),%mm5
    pxor    1(%ebp,%edi,8),%mm6
    movq    %mm0,(%esp)
    movq    %mm1,8(%esp)
    movq    %mm2,16(%esp)
    movq    %mm3,24(%esp)
    movq    %mm4,32(%esp)
    movq    %mm5,40(%esp)
    movq    %mm6,48(%esp)
    movq    %mm7,56(%esp)
    movb    %al,%cl
    movb    %ah,%dl
    leal    (%ecx,%ecx,1),%esi
    leal    (%edx,%edx,1),%edi
    shrl    $16,%eax
    pxor    (%ebp,%esi,8),%mm0
    pxor    7(%ebp,%edi,8),%mm1
    movb    %al,%cl
    movb    %ah,%dl
    movl    72(%esp),%eax
    leal    (%ecx,%ecx,1),%esi
    leal    (%edx,%edx,1),%edi
    pxor    6(%ebp,%esi,8),%mm2
    pxor    5(%ebp,%edi,8),%mm3
    movb    %bl,%cl
    movb    %bh,%dl
    leal    (%ecx,%ecx,1),%esi
    leal    (%edx,%edx,1),%edi
    shrl    $16,%ebx
    pxor    4(%ebp,%esi,8),%mm4
    pxor    3(%ebp,%edi,8),%mm5
    movb    %bl,%cl
    movb    %bh,%dl
    movl    76(%esp),%ebx
    leal    (%ecx,%ecx,1),%esi
    leal    (%edx,%edx,1),%edi
    pxor    2(%ebp,%esi,8),%mm6
    pxor    1(%ebp,%edi,8),%mm7
    movb    %al,%cl
    movb    %ah,%dl
    leal    (%ecx,%ecx,1),%esi
    leal    (%edx,%edx,1),%edi
    shrl    $16,%eax
    pxor    (%ebp,%esi,8),%mm1
    pxor    7(%ebp,%edi,8),%mm2
    movb    %al,%cl
    movb    %ah,%dl
    movl    80(%esp),%eax
    leal    (%ecx,%ecx,1),%esi
    leal    (%edx,%edx,1),%edi
    pxor    6(%ebp,%esi,8),%mm3
    pxor    5(%ebp,%edi,8),%mm4
    movb    %bl,%cl
    movb    %bh,%dl
    leal    (%ecx,%ecx,1),%esi
    leal    (%edx,%edx,1),%edi
    shrl    $16,%ebx
    pxor    4(%ebp,%esi,8),%mm5
    pxor    3(%ebp,%edi,8),%mm6
    movb    %bl,%cl
    movb    %bh,%dl
    movl    84(%esp),%ebx
    leal    (%ecx,%ecx,1),%esi
    leal    (%edx,%edx,1),%edi
    pxor    2(%ebp,%esi,8),%mm7
    pxor    1(%ebp,%edi,8),%mm0
    movb    %al,%cl
    movb    %ah,%dl
    leal    (%ecx,%ecx,1),%esi
    leal    (%edx,%edx,1),%edi
    shrl    $16,%eax
    pxor    (%ebp,%esi,8),%mm2
    pxor    7(%ebp,%edi,8),%mm3
    movb    %al,%cl
    movb    %ah,%dl
    movl    88(%esp),%eax
    leal    (%ecx,%ecx,1),%esi
    leal    (%edx,%edx,1),%edi
    pxor    6(%ebp,%esi,8),%mm4
    pxor    5(%ebp,%edi,8),%mm5
    movb    %bl,%cl
    movb    %bh,%dl
    leal    (%ecx,%ecx,1),%esi
    leal    (%edx,%edx,1),%edi
    shrl    $16,%ebx
    pxor    4(%ebp,%esi,8),%mm6
    pxor    3(%ebp,%edi,8),%mm7
    movb    %bl,%cl
    movb    %bh,%dl
    movl    92(%esp),%ebx
    leal    (%ecx,%ecx,1),%esi
    leal    (%edx,%edx,1),%edi
    pxor    2(%ebp,%esi,8),%mm0
    pxor    1(%ebp,%edi,8),%mm1
    movb    %al,%cl
    movb    %ah,%dl
    leal    (%ecx,%ecx,1),%esi
    leal    (%edx,%edx,1),%edi
    shrl    $16,%eax
    pxor    (%ebp,%esi,8),%mm3
    pxor    7(%ebp,%edi,8),%mm4
    movb    %al,%cl
    movb    %ah,%dl
    movl    96(%esp),%eax
    leal    (%ecx,%ecx,1),%esi
    leal    (%edx,%edx,1),%edi
    pxor    6(%ebp,%esi,8),%mm5
    pxor    5(%ebp,%edi,8),%mm6
    movb    %bl,%cl
    movb    %bh,%dl
    leal    (%ecx,%ecx,1),%esi
    leal    (%edx,%edx,1),%edi
    shrl    $16,%ebx
    pxor    4(%ebp,%esi,8),%mm7
    pxor    3(%ebp,%edi,8),%mm0
    movb    %bl,%cl
    movb    %bh,%dl
    movl    100(%esp),%ebx
    leal    (%ecx,%ecx,1),%esi
    leal    (%edx,%edx,1),%edi
    pxor    2(%ebp,%esi,8),%mm1
    pxor    1(%ebp,%edi,8),%mm2
    movb    %al,%cl
    movb    %ah,%dl
    leal    (%ecx,%ecx,1),%esi
    leal    (%edx,%edx,1),%edi
    shrl    $16,%eax
    pxor    (%ebp,%esi,8),%mm4
    pxor    7(%ebp,%edi,8),%mm5
    movb    %al,%cl
    movb    %ah,%dl
    movl    104(%esp),%eax
    leal    (%ecx,%ecx,1),%esi
    leal    (%edx,%edx,1),%edi
    pxor    6(%ebp,%esi,8),%mm6
    pxor    5(%ebp,%edi,8),%mm7
    movb    %bl,%cl
    movb    %bh,%dl
    leal    (%ecx,%ecx,1),%esi
    leal    (%edx,%edx,1),%edi
    shrl    $16,%ebx
    pxor    4(%ebp,%esi,8),%mm0
    pxor    3(%ebp,%edi,8),%mm1
    movb    %bl,%cl
    movb    %bh,%dl
    movl    108(%esp),%ebx
    leal    (%ecx,%ecx,1),%esi
    leal    (%edx,%edx,1),%edi
    pxor    2(%ebp,%esi,8),%mm2
    pxor    1(%ebp,%edi,8),%mm3
    movb    %al,%cl
    movb    %ah,%dl
    leal    (%ecx,%ecx,1),%esi
    leal    (%edx,%edx,1),%edi
    shrl    $16,%eax
    pxor    (%ebp,%esi,8),%mm5
    pxor    7(%ebp,%edi,8),%mm6
    movb    %al,%cl
    movb    %ah,%dl
    movl    112(%esp),%eax
    leal    (%ecx,%ecx,1),%esi
    leal    (%edx,%edx,1),%edi
    pxor    6(%ebp,%esi,8),%mm7
    pxor    5(%ebp,%edi,8),%mm0
    movb    %bl,%cl
    movb    %bh,%dl
    leal    (%ecx,%ecx,1),%esi
    leal    (%edx,%edx,1),%edi
    shrl    $16,%ebx
    pxor    4(%ebp,%esi,8),%mm1
    pxor    3(%ebp,%edi,8),%mm2
    movb    %bl,%cl
    movb    %bh,%dl
    movl    116(%esp),%ebx
    leal    (%ecx,%ecx,1),%esi
    leal    (%edx,%edx,1),%edi
    pxor    2(%ebp,%esi,8),%mm3
    pxor    1(%ebp,%edi,8),%mm4
    movb    %al,%cl
    movb    %ah,%dl
    leal    (%ecx,%ecx,1),%esi
    leal    (%edx,%edx,1),%edi
    shrl    $16,%eax
    pxor    (%ebp,%esi,8),%mm6
    pxor    7(%ebp,%edi,8),%mm7
    movb    %al,%cl
    movb    %ah,%dl
    movl    120(%esp),%eax
    leal    (%ecx,%ecx,1),%esi
    leal    (%edx,%edx,1),%edi
    pxor    6(%ebp,%esi,8),%mm0
    pxor    5(%ebp,%edi,8),%mm1
    movb    %bl,%cl
    movb    %bh,%dl
    leal    (%ecx,%ecx,1),%esi
    leal    (%edx,%edx,1),%edi
    shrl    $16,%ebx
    pxor    4(%ebp,%esi,8),%mm2
    pxor    3(%ebp,%edi,8),%mm3
    movb    %bl,%cl
    movb    %bh,%dl
    movl    124(%esp),%ebx
    leal    (%ecx,%ecx,1),%esi
    leal    (%edx,%edx,1),%edi
    pxor    2(%ebp,%esi,8),%mm4
    pxor    1(%ebp,%edi,8),%mm5
    movb    %al,%cl
    movb    %ah,%dl
    leal    (%ecx,%ecx,1),%esi
    leal    (%edx,%edx,1),%edi
    shrl    $16,%eax
    pxor    (%ebp,%esi,8),%mm7
    pxor    7(%ebp,%edi,8),%mm0
    movb    %al,%cl
    movb    %ah,%dl
    leal    (%ecx,%ecx,1),%esi
    leal    (%edx,%edx,1),%edi
    pxor    6(%ebp,%esi,8),%mm1
    pxor    5(%ebp,%edi,8),%mm2
    movb    %bl,%cl
    movb    %bh,%dl
    leal    (%ecx,%ecx,1),%esi
    leal    (%edx,%edx,1),%edi
    shrl    $16,%ebx
    pxor    4(%ebp,%esi,8),%mm3
    pxor    3(%ebp,%edi,8),%mm4
    movb    %bl,%cl
    movb    %bh,%dl
    leal    (%ecx,%ecx,1),%esi
    leal    (%edx,%edx,1),%edi
    pxor    2(%ebp,%esi,8),%mm5
    pxor    1(%ebp,%edi,8),%mm6
    leal    128(%esp),%ebx
    movl    12(%ebx),%esi
    addl    $1,%esi
    cmpl    $10,%esi
    je    .L004roundsdone
    movl    %esi,12(%ebx)
    movq    %mm0,64(%esp)
    movq    %mm1,72(%esp)
    movq    %mm2,80(%esp)
    movq    %mm3,88(%esp)
    movq    %mm4,96(%esp)
    movq    %mm5,104(%esp)
    movq    %mm6,112(%esp)
    movq    %mm7,120(%esp)
    jmp    .L003round
.align    16
.L004roundsdone:
    movl    (%ebx),%esi
    movl    4(%ebx),%edi
    movl    8(%ebx),%eax
    pxor    (%edi),%mm0
    pxor    8(%edi),%mm1
    pxor    16(%edi),%mm2
    pxor    24(%edi),%mm3
    pxor    32(%edi),%mm4
    pxor    40(%edi),%mm5
    pxor    48(%edi),%mm6
    pxor    56(%edi),%mm7
    pxor    (%esi),%mm0
    pxor    8(%esi),%mm1
    pxor    16(%esi),%mm2
    pxor    24(%esi),%mm3
    pxor    32(%esi),%mm4
    pxor    40(%esi),%mm5
    pxor    48(%esi),%mm6
    pxor    56(%esi),%mm7
    movq    %mm0,(%esi)
    movq    %mm1,8(%esi)
    movq    %mm2,16(%esi)
    movq    %mm3,24(%esi)
    movq    %mm4,32(%esi)
    movq    %mm5,40(%esi)
    movq    %mm6,48(%esi)
    movq    %mm7,56(%esi)
    leal    64(%edi),%edi
    subl    $1,%eax
    jz    .L005alldone
    movl    %edi,4(%ebx)
    movl    %eax,8(%ebx)
    jmp    .L002outerloop
.L005alldone:
    emms
    movl    16(%ebx),%esp
    popl    %edi
    popl    %esi
    popl    %ebx
    popl    %ebp
    ret
.align    64
.L001table:
.byte    24,24,96,24,192,120,48,216
.byte    24,24,96,24,192,120,48,216
.byte    35,35,140,35,5,175,70,38
.byte    35,35,140,35,5,175,70,38
.byte    198,198,63,198,126,249,145,184
.byte    198,198,63,198,126,249,145,184
.byte    232,232,135,232,19,111,205,251
.byte    232,232,135,232,19,111,205,251
.byte    135,135,38,135,76,161,19,203
.byte    135,135,38,135,76,161,19,203
.byte    184,184,218,184,169,98,109,17
.byte    184,184,218,184,169,98,109,17
.byte    1,1,4,1,8,5,2,9
.byte    1,1,4,1,8,5,2,9
.byte    79,79,33,79,66,110,158,13
.byte    79,79,33,79,66,110,158,13
.byte    54,54,216,54,173,238,108,155
.byte    54,54,216,54,173,238,108,155
.byte    166,166,162,166,89,4,81,255
.byte    166,166,162,166,89,4,81,255
.byte    210,210,111,210,222,189,185,12
.byte    210,210,111,210,222,189,185,12
.byte    245,245,243,245,251,6,247,14
.byte    245,245,243,245,251,6,247,14
.byte    121,121,249,121,239,128,242,150
.byte    121,121,249,121,239,128,242,150
.byte    111,111,161,111,95,206,222,48
.byte    111,111,161,111,95,206,222,48
.byte    145,145,126,145,252,239,63,109
.byte    145,145,126,145,252,239,63,109
.byte    82,82,85,82,170,7,164,248
.byte    82,82,85,82,170,7,164,248
.byte    96,96,157,96,39,253,192,71
.byte    96,96,157,96,39,253,192,71
.byte    188,188,202,188,137,118,101,53
.byte    188,188,202,188,137,118,101,53
.byte    155,155,86,155,172,205,43,55
.byte    155,155,86,155,172,205,43,55
.byte    142,142,2,142,4,140,1,138
.byte    142,142,2,142,4,140,1,138
.byte    163,163,182,163,113,21,91,210
.byte    163,163,182,163,113,21,91,210
.byte    12,12,48,12,96,60,24,108
.byte    12,12,48,12,96,60,24,108
.byte    123,123,241,123,255,138,246,132
.byte    123,123,241,123,255,138,246,132
.byte    53,53,212,53,181,225,106,128
.byte    53,53,212,53,181,225,106,128
.byte    29,29,116,29,232,105,58,245
.byte    29,29,116,29,232,105,58,245
.byte    224,224,167,224,83,71,221,179
.byte    224,224,167,224,83,71,221,179
.byte    215,215,123,215,246,172,179,33
.byte    215,215,123,215,246,172,179,33
.byte    194,194,47,194,94,237,153,156
.byte    194,194,47,194,94,237,153,156
.byte    46,46,184,46,109,150,92,67
.byte    46,46,184,46,109,150,92,67
.byte    75,75,49,75,98,122,150,41
.byte    75,75,49,75,98,122,150,41
.byte    254,254,223,254,163,33,225,93
.byte    254,254,223,254,163,33,225,93
.byte    87,87,65,87,130,22,174,213
.byte    87,87,65,87,130,22,174,213
.byte    21,21,84,21,168,65,42,189
.byte    21,21,84,21,168,65,42,189
.byte    119,119,193,119,159,182,238,232
.byte    119,119,193,119,159,182,238,232
.byte    55,55,220,55,165,235,110,146
.byte    55,55,220,55,165,235,110,146
.byte    229,229,179,229,123,86,215,158
.byte    229,229,179,229,123,86,215,158
.byte    159,159,70,159,140,217,35,19
.byte    159,159,70,159,140,217,35,19
.byte    240,240,231,240,211,23,253,35
.byte    240,240,231,240,211,23,253,35
.byte    74,74,53,74,106,127,148,32
.byte    74,74,53,74,106,127,148,32
.byte    218,218,79,218,158,149,169,68
.byte    218,218,79,218,158,149,169,68
.byte    88,88,125,88,250,37,176,162
.byte    88,88,125,88,250,37,176,162
.byte    201,201,3,201,6,202,143,207
.byte    201,201,3,201,6,202,143,207
.byte    41,41,164,41,85,141,82,124
.byte    41,41,164,41,85,141,82,124
.byte    10,10,40,10,80,34,20,90
.byte    10,10,40,10,80,34,20,90
.byte    177,177,254,177,225,79,127,80
.byte    177,177,254,177,225,79,127,80
.byte    160,160,186,160,105,26,93,201
.byte    160,160,186,160,105,26,93,201
.byte    107,107,177,107,127,218,214,20
.byte    107,107,177,107,127,218,214,20
.byte    133,133,46,133,92,171,23,217
.byte    133,133,46,133,92,171,23,217
.byte    189,189,206,189,129,115,103,60
.byte    189,189,206,189,129,115,103,60
.byte    93,93,105,93,210,52,186,143
.byte    93,93,105,93,210,52,186,143
.byte    16,16,64,16,128,80,32,144
.byte    16,16,64,16,128,80,32,144
.byte    244,244,247,244,243,3,245,7
.byte    244,244,247,244,243,3,245,7
.byte    203,203,11,203,22,192,139,221
.byte    203,203,11,203,22,192,139,221
.byte    62,62,248,62,237,198,124,211
.byte    62,62,248,62,237,198,124,211
.byte    5,5,20,5,40,17,10,45
.byte    5,5,20,5,40,17,10,45
.byte    103,103,129,103,31,230,206,120
.byte    103,103,129,103,31,230,206,120
.byte    228,228,183,228,115,83,213,151
.byte    228,228,183,228,115,83,213,151
.byte    39,39,156,39,37,187,78,2
.byte    39,39,156,39,37,187,78,2
.byte    65,65,25,65,50,88,130,115
.byte    65,65,25,65,50,88,130,115
.byte    139,139,22,139,44,157,11,167
.byte    139,139,22,139,44,157,11,167
.byte    167,167,166,167,81,1,83,246
.byte    167,167,166,167,81,1,83,246
.byte    125,125,233,125,207,148,250,178
.byte    125,125,233,125,207,148,250,178
.byte    149,149,110,149,220,251,55,73
.byte    149,149,110,149,220,251,55,73
.byte    216,216,71,216,142,159,173,86
.byte    216,216,71,216,142,159,173,86
.byte    251,251,203,251,139,48,235,112
.byte    251,251,203,251,139,48,235,112
.byte    238,238,159,238,35,113,193,205
.byte    238,238,159,238,35,113,193,205
.byte    124,124,237,124,199,145,248,187
.byte    124,124,237,124,199,145,248,187
.byte    102,102,133,102,23,227,204,113
.byte    102,102,133,102,23,227,204,113
.byte    221,221,83,221,166,142,167,123
.byte    221,221,83,221,166,142,167,123
.byte    23,23,92,23,184,75,46,175
.byte    23,23,92,23,184,75,46,175
.byte    71,71,1,71,2,70,142,69
.byte    71,71,1,71,2,70,142,69
.byte    158,158,66,158,132,220,33,26
.byte    158,158,66,158,132,220,33,26
.byte    202,202,15,202,30,197,137,212
.byte    202,202,15,202,30,197,137,212
.byte    45,45,180,45,117,153,90,88
.byte    45,45,180,45,117,153,90,88
.byte    191,191,198,191,145,121,99,46
.byte    191,191,198,191,145,121,99,46
.byte    7,7,28,7,56,27,14,63
.byte    7,7,28,7,56,27,14,63
.byte    173,173,142,173,1,35,71,172
.byte    173,173,142,173,1,35,71,172
.byte    90,90,117,90,234,47,180,176
.byte    90,90,117,90,234,47,180,176
.byte    131,131,54,131,108,181,27,239
.byte    131,131,54,131,108,181,27,239
.byte    51,51,204,51,133,255,102,182
.byte    51,51,204,51,133,255,102,182
.byte    99,99,145,99,63,242,198,92
.byte    99,99,145,99,63,242,198,92
.byte    2,2,8,2,16,10,4,18
.byte    2,2,8,2,16,10,4,18
.byte    170,170,146,170,57,56,73,147
.byte    170,170,146,170,57,56,73,147
.byte    113,113,217,113,175,168,226,222
.byte    113,113,217,113,175,168,226,222
.byte    200,200,7,200,14,207,141,198
.byte    200,200,7,200,14,207,141,198
.byte    25,25,100,25,200,125,50,209
.byte    25,25,100,25,200,125,50,209
.byte    73,73,57,73,114,112,146,59
.byte    73,73,57,73,114,112,146,59
.byte    217,217,67,217,134,154,175,95
.byte    217,217,67,217,134,154,175,95
.byte    242,242,239,242,195,29,249,49
.byte    242,242,239,242,195,29,249,49
.byte    227,227,171,227,75,72,219,168
.byte    227,227,171,227,75,72,219,168
.byte    91,91,113,91,226,42,182,185
.byte    91,91,113,91,226,42,182,185
.byte    136,136,26,136,52,146,13,188
.byte    136,136,26,136,52,146,13,188
.byte    154,154,82,154,164,200,41,62
.byte    154,154,82,154,164,200,41,62
.byte    38,38,152,38,45,190,76,11
.byte    38,38,152,38,45,190,76,11
.byte    50,50,200,50,141,250,100,191
.byte    50,50,200,50,141,250,100,191
.byte    176,176,250,176,233,74,125,89
.byte    176,176,250,176,233,74,125,89
.byte    233,233,131,233,27,106,207,242
.byte    233,233,131,233,27,106,207,242
.byte    15,15,60,15,120,51,30,119
.byte    15,15,60,15,120,51,30,119
.byte    213,213,115,213,230,166,183,51
.byte    213,213,115,213,230,166,183,51
.byte    128,128,58,128,116,186,29,244
.byte    128,128,58,128,116,186,29,244
.byte    190,190,194,190,153,124,97,39
.byte    190,190,194,190,153,124,97,39
.byte    205,205,19,205,38,222,135,235
.byte    205,205,19,205,38,222,135,235
.byte    52,52,208,52,189,228,104,137
.byte    52,52,208,52,189,228,104,137
.byte    72,72,61,72,122,117,144,50
.byte    72,72,61,72,122,117,144,50
.byte    255,255,219,255,171,36,227,84
.byte    255,255,219,255,171,36,227,84
.byte    122,122,245,122,247,143,244,141
.byte    122,122,245,122,247,143,244,141
.byte    144,144,122,144,244,234,61,100
.byte    144,144,122,144,244,234,61,100
.byte    95,95,97,95,194,62,190,157
.byte    95,95,97,95,194,62,190,157
.byte    32,32,128,32,29,160,64,61
.byte    32,32,128,32,29,160,64,61
.byte    104,104,189,104,103,213,208,15
.byte    104,104,189,104,103,213,208,15
.byte    26,26,104,26,208,114,52,202
.byte    26,26,104,26,208,114,52,202
.byte    174,174,130,174,25,44,65,183
.byte    174,174,130,174,25,44,65,183
.byte    180,180,234,180,201,94,117,125
.byte    180,180,234,180,201,94,117,125
.byte    84,84,77,84,154,25,168,206
.byte    84,84,77,84,154,25,168,206
.byte    147,147,118,147,236,229,59,127
.byte    147,147,118,147,236,229,59,127
.byte    34,34,136,34,13,170,68,47
.byte    34,34,136,34,13,170,68,47
.byte    100,100,141,100,7,233,200,99
.byte    100,100,141,100,7,233,200,99
.byte    241,241,227,241,219,18,255,42
.byte    241,241,227,241,219,18,255,42
.byte    115,115,209,115,191,162,230,204
.byte    115,115,209,115,191,162,230,204
.byte    18,18,72,18,144,90,36,130
.byte    18,18,72,18,144,90,36,130
.byte    64,64,29,64,58,93,128,122
.byte    64,64,29,64,58,93,128,122
.byte    8,8,32,8,64,40,16,72
.byte    8,8,32,8,64,40,16,72
.byte    195,195,43,195,86,232,155,149
.byte    195,195,43,195,86,232,155,149
.byte    236,236,151,236,51,123,197,223
.byte    236,236,151,236,51,123,197,223
.byte    219,219,75,219,150,144,171,77
.byte    219,219,75,219,150,144,171,77
.byte    161,161,190,161,97,31,95,192
.byte    161,161,190,161,97,31,95,192
.byte    141,141,14,141,28,131,7,145
.byte    141,141,14,141,28,131,7,145
.byte    61,61,244,61,245,201,122,200
.byte    61,61,244,61,245,201,122,200
.byte    151,151,102,151,204,241,51,91
.byte    151,151,102,151,204,241,51,91
.byte    0,0,0,0,0,0,0,0
.byte    0,0,0,0,0,0,0,0
.byte    207,207,27,207,54,212,131,249
.byte    207,207,27,207,54,212,131,249
.byte    43,43,172,43,69,135,86,110
.byte    43,43,172,43,69,135,86,110
.byte    118,118,197,118,151,179,236,225
.byte    118,118,197,118,151,179,236,225
.byte    130,130,50,130,100,176,25,230
.byte    130,130,50,130,100,176,25,230
.byte    214,214,127,214,254,169,177,40
.byte    214,214,127,214,254,169,177,40
.byte    27,27,108,27,216,119,54,195
.byte    27,27,108,27,216,119,54,195
.byte    181,181,238,181,193,91,119,116
.byte    181,181,238,181,193,91,119,116
.byte    175,175,134,175,17,41,67,190
.byte    175,175,134,175,17,41,67,190
.byte    106,106,181,106,119,223,212,29
.byte    106,106,181,106,119,223,212,29
.byte    80,80,93,80,186,13,160,234
.byte    80,80,93,80,186,13,160,234
.byte    69,69,9,69,18,76,138,87
.byte    69,69,9,69,18,76,138,87
.byte    243,243,235,243,203,24,251,56
.byte    243,243,235,243,203,24,251,56
.byte    48,48,192,48,157,240,96,173
.byte    48,48,192,48,157,240,96,173
.byte    239,239,155,239,43,116,195,196
.byte    239,239,155,239,43,116,195,196
.byte    63,63,252,63,229,195,126,218
.byte    63,63,252,63,229,195,126,218
.byte    85,85,73,85,146,28,170,199
.byte    85,85,73,85,146,28,170,199
.byte    162,162,178,162,121,16,89,219
.byte    162,162,178,162,121,16,89,219
.byte    234,234,143,234,3,101,201,233
.byte    234,234,143,234,3,101,201,233
.byte    101,101,137,101,15,236,202,106
.byte    101,101,137,101,15,236,202,106
.byte    186,186,210,186,185,104,105,3
.byte    186,186,210,186,185,104,105,3
.byte    47,47,188,47,101,147,94,74
.byte    47,47,188,47,101,147,94,74
.byte    192,192,39,192,78,231,157,142
.byte    192,192,39,192,78,231,157,142
.byte    222,222,95,222,190,129,161,96
.byte    222,222,95,222,190,129,161,96
.byte    28,28,112,28,224,108,56,252
.byte    28,28,112,28,224,108,56,252
.byte    253,253,211,253,187,46,231,70
.byte    253,253,211,253,187,46,231,70
.byte    77,77,41,77,82,100,154,31
.byte    77,77,41,77,82,100,154,31
.byte    146,146,114,146,228,224,57,118
.byte    146,146,114,146,228,224,57,118
.byte    117,117,201,117,143,188,234,250
.byte    117,117,201,117,143,188,234,250
.byte    6,6,24,6,48,30,12,54
.byte    6,6,24,6,48,30,12,54
.byte    138,138,18,138,36,152,9,174
.byte    138,138,18,138,36,152,9,174
.byte    178,178,242,178,249,64,121,75
.byte    178,178,242,178,249,64,121,75
.byte    230,230,191,230,99,89,209,133
.byte    230,230,191,230,99,89,209,133
.byte    14,14,56,14,112,54,28,126
.byte    14,14,56,14,112,54,28,126
.byte    31,31,124,31,248,99,62,231
.byte    31,31,124,31,248,99,62,231
.byte    98,98,149,98,55,247,196,85
.byte    98,98,149,98,55,247,196,85
.byte    212,212,119,212,238,163,181,58
.byte    212,212,119,212,238,163,181,58
.byte    168,168,154,168,41,50,77,129
.byte    168,168,154,168,41,50,77,129
.byte    150,150,98,150,196,244,49,82
.byte    150,150,98,150,196,244,49,82
.byte    249,249,195,249,155,58,239,98
.byte    249,249,195,249,155,58,239,98
.byte    197,197,51,197,102,246,151,163
.byte    197,197,51,197,102,246,151,163
.byte    37,37,148,37,53,177,74,16
.byte    37,37,148,37,53,177,74,16
.byte    89,89,121,89,242,32,178,171
.byte    89,89,121,89,242,32,178,171
.byte    132,132,42,132,84,174,21,208
.byte    132,132,42,132,84,174,21,208
.byte    114,114,213,114,183,167,228,197
.byte    114,114,213,114,183,167,228,197
.byte    57,57,228,57,213,221,114,236
.byte    57,57,228,57,213,221,114,236
.byte    76,76,45,76,90,97,152,22
.byte    76,76,45,76,90,97,152,22
.byte    94,94,101,94,202,59,188,148
.byte    94,94,101,94,202,59,188,148
.byte    120,120,253,120,231,133,240,159
.byte    120,120,253,120,231,133,240,159
.byte    56,56,224,56,221,216,112,229
.byte    56,56,224,56,221,216,112,229
.byte    140,140,10,140,20,134,5,152
.byte    140,140,10,140,20,134,5,152
.byte    209,209,99,209,198,178,191,23
.byte    209,209,99,209,198,178,191,23
.byte    165,165,174,165,65,11,87,228
.byte    165,165,174,165,65,11,87,228
.byte    226,226,175,226,67,77,217,161
.byte    226,226,175,226,67,77,217,161
.byte    97,97,153,97,47,248,194,78
.byte    97,97,153,97,47,248,194,78
.byte    179,179,246,179,241,69,123,66
.byte    179,179,246,179,241,69,123,66
.byte    33,33,132,33,21,165,66,52
.byte    33,33,132,33,21,165,66,52
.byte    156,156,74,156,148,214,37,8
.byte    156,156,74,156,148,214,37,8
.byte    30,30,120,30,240,102,60,238
.byte    30,30,120,30,240,102,60,238
.byte    67,67,17,67,34,82,134,97
.byte    67,67,17,67,34,82,134,97
.byte    199,199,59,199,118,252,147,177
.byte    199,199,59,199,118,252,147,177
.byte    252,252,215,252,179,43,229,79
.byte    252,252,215,252,179,43,229,79
.byte    4,4,16,4,32,20,8,36
.byte    4,4,16,4,32,20,8,36
.byte    81,81,89,81,178,8,162,227
.byte    81,81,89,81,178,8,162,227
.byte    153,153,94,153,188,199,47,37
.byte    153,153,94,153,188,199,47,37
.byte    109,109,169,109,79,196,218,34
.byte    109,109,169,109,79,196,218,34
.byte    13,13,52,13,104,57,26,101
.byte    13,13,52,13,104,57,26,101
.byte    250,250,207,250,131,53,233,121
.byte    250,250,207,250,131,53,233,121
.byte    223,223,91,223,182,132,163,105
.byte    223,223,91,223,182,132,163,105
.byte    126,126,229,126,215,155,252,169
.byte    126,126,229,126,215,155,252,169
.byte    36,36,144,36,61,180,72,25
.byte    36,36,144,36,61,180,72,25
.byte    59,59,236,59,197,215,118,254
.byte    59,59,236,59,197,215,118,254
.byte    171,171,150,171,49,61,75,154
.byte    171,171,150,171,49,61,75,154
.byte    206,206,31,206,62,209,129,240
.byte    206,206,31,206,62,209,129,240
.byte    17,17,68,17,136,85,34,153
.byte    17,17,68,17,136,85,34,153
.byte    143,143,6,143,12,137,3,131
.byte    143,143,6,143,12,137,3,131
.byte    78,78,37,78,74,107,156,4
.byte    78,78,37,78,74,107,156,4
.byte    183,183,230,183,209,81,115,102
.byte    183,183,230,183,209,81,115,102
.byte    235,235,139,235,11,96,203,224
.byte    235,235,139,235,11,96,203,224
.byte    60,60,240,60,253,204,120,193
.byte    60,60,240,60,253,204,120,193
.byte    129,129,62,129,124,191,31,253
.byte    129,129,62,129,124,191,31,253
.byte    148,148,106,148,212,254,53,64
.byte    148,148,106,148,212,254,53,64
.byte    247,247,251,247,235,12,243,28
.byte    247,247,251,247,235,12,243,28
.byte    185,185,222,185,161,103,111,24
.byte    185,185,222,185,161,103,111,24
.byte    19,19,76,19,152,95,38,139
.byte    19,19,76,19,152,95,38,139
.byte    44,44,176,44,125,156,88,81
.byte    44,44,176,44,125,156,88,81
.byte    211,211,107,211,214,184,187,5
.byte    211,211,107,211,214,184,187,5
.byte    231,231,187,231,107,92,211,140
.byte    231,231,187,231,107,92,211,140
.byte    110,110,165,110,87,203,220,57
.byte    110,110,165,110,87,203,220,57
.byte    196,196,55,196,110,243,149,170
.byte    196,196,55,196,110,243,149,170
.byte    3,3,12,3,24,15,6,27
.byte    3,3,12,3,24,15,6,27
.byte    86,86,69,86,138,19,172,220
.byte    86,86,69,86,138,19,172,220
.byte    68,68,13,68,26,73,136,94
.byte    68,68,13,68,26,73,136,94
.byte    127,127,225,127,223,158,254,160
.byte    127,127,225,127,223,158,254,160
.byte    169,169,158,169,33,55,79,136
.byte    169,169,158,169,33,55,79,136
.byte    42,42,168,42,77,130,84,103
.byte    42,42,168,42,77,130,84,103
.byte    187,187,214,187,177,109,107,10
.byte    187,187,214,187,177,109,107,10
.byte    193,193,35,193,70,226,159,135
.byte    193,193,35,193,70,226,159,135
.byte    83,83,81,83,162,2,166,241
.byte    83,83,81,83,162,2,166,241
.byte    220,220,87,220,174,139,165,114
.byte    220,220,87,220,174,139,165,114
.byte    11,11,44,11,88,39,22,83
.byte    11,11,44,11,88,39,22,83
.byte    157,157,78,157,156,211,39,1
.byte    157,157,78,157,156,211,39,1
.byte    108,108,173,108,71,193,216,43
.byte    108,108,173,108,71,193,216,43
.byte    49,49,196,49,149,245,98,164
.byte    49,49,196,49,149,245,98,164
.byte    116,116,205,116,135,185,232,243
.byte    116,116,205,116,135,185,232,243
.byte    246,246,255,246,227,9,241,21
.byte    246,246,255,246,227,9,241,21
.byte    70,70,5,70,10,67,140,76
.byte    70,70,5,70,10,67,140,76
.byte    172,172,138,172,9,38,69,165
.byte    172,172,138,172,9,38,69,165
.byte    137,137,30,137,60,151,15,181
.byte    137,137,30,137,60,151,15,181
.byte    20,20,80,20,160,68,40,180
.byte    20,20,80,20,160,68,40,180
.byte    225,225,163,225,91,66,223,186
.byte    225,225,163,225,91,66,223,186
.byte    22,22,88,22,176,78,44,166
.byte    22,22,88,22,176,78,44,166
.byte    58,58,232,58,205,210,116,247
.byte    58,58,232,58,205,210,116,247
.byte    105,105,185,105,111,208,210,6
.byte    105,105,185,105,111,208,210,6
.byte    9,9,36,9,72,45,18,65
.byte    9,9,36,9,72,45,18,65
.byte    112,112,221,112,167,173,224,215
.byte    112,112,221,112,167,173,224,215
.byte    182,182,226,182,217,84,113,111
.byte    182,182,226,182,217,84,113,111
.byte    208,208,103,208,206,183,189,30
.byte    208,208,103,208,206,183,189,30
.byte    237,237,147,237,59,126,199,214
.byte    237,237,147,237,59,126,199,214
.byte    204,204,23,204,46,219,133,226
.byte    204,204,23,204,46,219,133,226
.byte    66,66,21,66,42,87,132,104
.byte    66,66,21,66,42,87,132,104
.byte    152,152,90,152,180,194,45,44
.byte    152,152,90,152,180,194,45,44
.byte    164,164,170,164,73,14,85,237
.byte    164,164,170,164,73,14,85,237
.byte    40,40,160,40,93,136,80,117
.byte    40,40,160,40,93,136,80,117
.byte    92,92,109,92,218,49,184,134
.byte    92,92,109,92,218,49,184,134
.byte    248,248,199,248,147,63,237,107
.byte    248,248,199,248,147,63,237,107
.byte    134,134,34,134,68,164,17,194
.byte    134,134,34,134,68,164,17,194
.byte    24,35,198,232,135,184,1,79
.byte    54,166,210,245,121,111,145,82
.byte    96,188,155,142,163,12,123,53
.byte    29,224,215,194,46,75,254,87
.byte    21,119,55,229,159,240,74,218
.byte    88,201,41,10,177,160,107,133
.byte    189,93,16,244,203,62,5,103
.byte    228,39,65,139,167,125,149,216
.byte    251,238,124,102,221,23,71,158
.byte    202,45,191,7,173,90,131,51
.size    whirlpool_block_mmx,.-.L_whirlpool_block_mmx_begin