deps/openssl/asm/x86-win32-masm/whrlpool/wp-mmx.asm

Summary

Maintainability
Test Coverage
TITLE    wp-mmx.asm
IF @Version LT 800
ECHO MASM version 8.00 or later is strongly recommended.
ENDIF
.686
.XMM
IF @Version LT 800
XMMWORD STRUCT 16
DQ    2 dup (?)
XMMWORD    ENDS
ENDIF

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