2020-02-11 18:25:30 +01:00
|
|
|
.intel_syntax noprefix
|
|
|
|
.global blake3_hash_many_sse41
|
|
|
|
.global _blake3_hash_many_sse41
|
|
|
|
.global blake3_compress_in_place_sse41
|
|
|
|
.global _blake3_compress_in_place_sse41
|
|
|
|
.global blake3_compress_xof_sse41
|
|
|
|
.global _blake3_compress_xof_sse41
|
|
|
|
.section .text
|
|
|
|
.p2align 6
|
|
|
|
_blake3_hash_many_sse41:
|
|
|
|
blake3_hash_many_sse41:
|
|
|
|
push r15
|
|
|
|
push r14
|
|
|
|
push r13
|
|
|
|
push r12
|
|
|
|
push rsi
|
|
|
|
push rdi
|
|
|
|
push rbx
|
|
|
|
push rbp
|
|
|
|
mov rbp, rsp
|
|
|
|
sub rsp, 528
|
|
|
|
and rsp, 0xFFFFFFFFFFFFFFC0
|
|
|
|
movdqa xmmword ptr [rsp+0x170], xmm6
|
|
|
|
movdqa xmmword ptr [rsp+0x180], xmm7
|
|
|
|
movdqa xmmword ptr [rsp+0x190], xmm8
|
|
|
|
movdqa xmmword ptr [rsp+0x1A0], xmm9
|
|
|
|
movdqa xmmword ptr [rsp+0x1B0], xmm10
|
|
|
|
movdqa xmmword ptr [rsp+0x1C0], xmm11
|
|
|
|
movdqa xmmword ptr [rsp+0x1D0], xmm12
|
|
|
|
movdqa xmmword ptr [rsp+0x1E0], xmm13
|
|
|
|
movdqa xmmword ptr [rsp+0x1F0], xmm14
|
|
|
|
movdqa xmmword ptr [rsp+0x200], xmm15
|
|
|
|
mov rdi, rcx
|
|
|
|
mov rsi, rdx
|
|
|
|
mov rdx, r8
|
|
|
|
mov rcx, r9
|
|
|
|
mov r8, qword ptr [rbp+0x68]
|
|
|
|
movzx r9, byte ptr [rbp+0x70]
|
|
|
|
neg r9d
|
|
|
|
movd xmm0, r9d
|
|
|
|
pshufd xmm0, xmm0, 0x00
|
|
|
|
movdqa xmmword ptr [rsp+0x130], xmm0
|
|
|
|
movdqa xmm1, xmm0
|
|
|
|
pand xmm1, xmmword ptr [ADD0+rip]
|
|
|
|
pand xmm0, xmmword ptr [ADD1+rip]
|
|
|
|
movdqa xmmword ptr [rsp+0x150], xmm0
|
|
|
|
movd xmm0, r8d
|
|
|
|
pshufd xmm0, xmm0, 0x00
|
|
|
|
paddd xmm0, xmm1
|
|
|
|
movdqa xmmword ptr [rsp+0x110], xmm0
|
|
|
|
pxor xmm0, xmmword ptr [CMP_MSB_MASK+rip]
|
|
|
|
pxor xmm1, xmmword ptr [CMP_MSB_MASK+rip]
|
|
|
|
pcmpgtd xmm1, xmm0
|
|
|
|
shr r8, 32
|
|
|
|
movd xmm2, r8d
|
|
|
|
pshufd xmm2, xmm2, 0x00
|
|
|
|
psubd xmm2, xmm1
|
|
|
|
movdqa xmmword ptr [rsp+0x120], xmm2
|
|
|
|
mov rbx, qword ptr [rbp+0x90]
|
|
|
|
mov r15, rdx
|
|
|
|
shl r15, 6
|
|
|
|
movzx r13d, byte ptr [rbp+0x78]
|
|
|
|
movzx r12d, byte ptr [rbp+0x88]
|
|
|
|
cmp rsi, 4
|
|
|
|
jc 3f
|
|
|
|
2:
|
|
|
|
movdqu xmm3, xmmword ptr [rcx]
|
|
|
|
pshufd xmm0, xmm3, 0x00
|
|
|
|
pshufd xmm1, xmm3, 0x55
|
|
|
|
pshufd xmm2, xmm3, 0xAA
|
|
|
|
pshufd xmm3, xmm3, 0xFF
|
|
|
|
movdqu xmm7, xmmword ptr [rcx+0x10]
|
|
|
|
pshufd xmm4, xmm7, 0x00
|
|
|
|
pshufd xmm5, xmm7, 0x55
|
|
|
|
pshufd xmm6, xmm7, 0xAA
|
|
|
|
pshufd xmm7, xmm7, 0xFF
|
|
|
|
mov r8, qword ptr [rdi]
|
|
|
|
mov r9, qword ptr [rdi+0x8]
|
|
|
|
mov r10, qword ptr [rdi+0x10]
|
|
|
|
mov r11, qword ptr [rdi+0x18]
|
|
|
|
movzx eax, byte ptr [rbp+0x80]
|
|
|
|
or eax, r13d
|
|
|
|
xor edx, edx
|
2020-02-13 14:46:32 +01:00
|
|
|
9:
|
2020-02-11 18:25:30 +01:00
|
|
|
mov r14d, eax
|
|
|
|
or eax, r12d
|
|
|
|
add rdx, 64
|
|
|
|
cmp rdx, r15
|
|
|
|
cmovne eax, r14d
|
|
|
|
movdqu xmm8, xmmword ptr [r8+rdx-0x40]
|
|
|
|
movdqu xmm9, xmmword ptr [r9+rdx-0x40]
|
|
|
|
movdqu xmm10, xmmword ptr [r10+rdx-0x40]
|
|
|
|
movdqu xmm11, xmmword ptr [r11+rdx-0x40]
|
|
|
|
movdqa xmm12, xmm8
|
|
|
|
punpckldq xmm8, xmm9
|
|
|
|
punpckhdq xmm12, xmm9
|
|
|
|
movdqa xmm14, xmm10
|
|
|
|
punpckldq xmm10, xmm11
|
|
|
|
punpckhdq xmm14, xmm11
|
|
|
|
movdqa xmm9, xmm8
|
|
|
|
punpcklqdq xmm8, xmm10
|
|
|
|
punpckhqdq xmm9, xmm10
|
|
|
|
movdqa xmm13, xmm12
|
|
|
|
punpcklqdq xmm12, xmm14
|
|
|
|
punpckhqdq xmm13, xmm14
|
|
|
|
movdqa xmmword ptr [rsp], xmm8
|
|
|
|
movdqa xmmword ptr [rsp+0x10], xmm9
|
|
|
|
movdqa xmmword ptr [rsp+0x20], xmm12
|
|
|
|
movdqa xmmword ptr [rsp+0x30], xmm13
|
|
|
|
movdqu xmm8, xmmword ptr [r8+rdx-0x30]
|
|
|
|
movdqu xmm9, xmmword ptr [r9+rdx-0x30]
|
|
|
|
movdqu xmm10, xmmword ptr [r10+rdx-0x30]
|
|
|
|
movdqu xmm11, xmmword ptr [r11+rdx-0x30]
|
|
|
|
movdqa xmm12, xmm8
|
|
|
|
punpckldq xmm8, xmm9
|
|
|
|
punpckhdq xmm12, xmm9
|
|
|
|
movdqa xmm14, xmm10
|
|
|
|
punpckldq xmm10, xmm11
|
|
|
|
punpckhdq xmm14, xmm11
|
|
|
|
movdqa xmm9, xmm8
|
|
|
|
punpcklqdq xmm8, xmm10
|
|
|
|
punpckhqdq xmm9, xmm10
|
|
|
|
movdqa xmm13, xmm12
|
|
|
|
punpcklqdq xmm12, xmm14
|
|
|
|
punpckhqdq xmm13, xmm14
|
|
|
|
movdqa xmmword ptr [rsp+0x40], xmm8
|
|
|
|
movdqa xmmword ptr [rsp+0x50], xmm9
|
|
|
|
movdqa xmmword ptr [rsp+0x60], xmm12
|
|
|
|
movdqa xmmword ptr [rsp+0x70], xmm13
|
|
|
|
movdqu xmm8, xmmword ptr [r8+rdx-0x20]
|
|
|
|
movdqu xmm9, xmmword ptr [r9+rdx-0x20]
|
|
|
|
movdqu xmm10, xmmword ptr [r10+rdx-0x20]
|
|
|
|
movdqu xmm11, xmmword ptr [r11+rdx-0x20]
|
|
|
|
movdqa xmm12, xmm8
|
|
|
|
punpckldq xmm8, xmm9
|
|
|
|
punpckhdq xmm12, xmm9
|
|
|
|
movdqa xmm14, xmm10
|
|
|
|
punpckldq xmm10, xmm11
|
|
|
|
punpckhdq xmm14, xmm11
|
|
|
|
movdqa xmm9, xmm8
|
|
|
|
punpcklqdq xmm8, xmm10
|
|
|
|
punpckhqdq xmm9, xmm10
|
|
|
|
movdqa xmm13, xmm12
|
|
|
|
punpcklqdq xmm12, xmm14
|
|
|
|
punpckhqdq xmm13, xmm14
|
|
|
|
movdqa xmmword ptr [rsp+0x80], xmm8
|
|
|
|
movdqa xmmword ptr [rsp+0x90], xmm9
|
|
|
|
movdqa xmmword ptr [rsp+0xA0], xmm12
|
|
|
|
movdqa xmmword ptr [rsp+0xB0], xmm13
|
|
|
|
movdqu xmm8, xmmword ptr [r8+rdx-0x10]
|
|
|
|
movdqu xmm9, xmmword ptr [r9+rdx-0x10]
|
|
|
|
movdqu xmm10, xmmword ptr [r10+rdx-0x10]
|
|
|
|
movdqu xmm11, xmmword ptr [r11+rdx-0x10]
|
|
|
|
movdqa xmm12, xmm8
|
|
|
|
punpckldq xmm8, xmm9
|
|
|
|
punpckhdq xmm12, xmm9
|
|
|
|
movdqa xmm14, xmm10
|
|
|
|
punpckldq xmm10, xmm11
|
|
|
|
punpckhdq xmm14, xmm11
|
|
|
|
movdqa xmm9, xmm8
|
|
|
|
punpcklqdq xmm8, xmm10
|
|
|
|
punpckhqdq xmm9, xmm10
|
|
|
|
movdqa xmm13, xmm12
|
|
|
|
punpcklqdq xmm12, xmm14
|
|
|
|
punpckhqdq xmm13, xmm14
|
|
|
|
movdqa xmmword ptr [rsp+0xC0], xmm8
|
|
|
|
movdqa xmmword ptr [rsp+0xD0], xmm9
|
|
|
|
movdqa xmmword ptr [rsp+0xE0], xmm12
|
|
|
|
movdqa xmmword ptr [rsp+0xF0], xmm13
|
|
|
|
movdqa xmm9, xmmword ptr [BLAKE3_IV_1+rip]
|
|
|
|
movdqa xmm10, xmmword ptr [BLAKE3_IV_2+rip]
|
|
|
|
movdqa xmm11, xmmword ptr [BLAKE3_IV_3+rip]
|
|
|
|
movdqa xmm12, xmmword ptr [rsp+0x110]
|
|
|
|
movdqa xmm13, xmmword ptr [rsp+0x120]
|
|
|
|
movdqa xmm14, xmmword ptr [BLAKE3_BLOCK_LEN+rip]
|
|
|
|
movd xmm15, eax
|
|
|
|
pshufd xmm15, xmm15, 0x00
|
|
|
|
prefetcht0 [r8+rdx+0x80]
|
|
|
|
prefetcht0 [r9+rdx+0x80]
|
|
|
|
prefetcht0 [r10+rdx+0x80]
|
|
|
|
prefetcht0 [r11+rdx+0x80]
|
|
|
|
paddd xmm0, xmmword ptr [rsp]
|
|
|
|
paddd xmm1, xmmword ptr [rsp+0x20]
|
|
|
|
paddd xmm2, xmmword ptr [rsp+0x40]
|
|
|
|
paddd xmm3, xmmword ptr [rsp+0x60]
|
|
|
|
paddd xmm0, xmm4
|
|
|
|
paddd xmm1, xmm5
|
|
|
|
paddd xmm2, xmm6
|
|
|
|
paddd xmm3, xmm7
|
|
|
|
pxor xmm12, xmm0
|
|
|
|
pxor xmm13, xmm1
|
|
|
|
pxor xmm14, xmm2
|
|
|
|
pxor xmm15, xmm3
|
|
|
|
movdqa xmm8, xmmword ptr [ROT16+rip]
|
|
|
|
pshufb xmm12, xmm8
|
|
|
|
pshufb xmm13, xmm8
|
|
|
|
pshufb xmm14, xmm8
|
|
|
|
pshufb xmm15, xmm8
|
|
|
|
movdqa xmm8, xmmword ptr [BLAKE3_IV_0+rip]
|
|
|
|
paddd xmm8, xmm12
|
|
|
|
paddd xmm9, xmm13
|
|
|
|
paddd xmm10, xmm14
|
|
|
|
paddd xmm11, xmm15
|
|
|
|
pxor xmm4, xmm8
|
|
|
|
pxor xmm5, xmm9
|
|
|
|
pxor xmm6, xmm10
|
|
|
|
pxor xmm7, xmm11
|
|
|
|
movdqa xmmword ptr [rsp+0x100], xmm8
|
|
|
|
movdqa xmm8, xmm4
|
|
|
|
psrld xmm8, 12
|
|
|
|
pslld xmm4, 20
|
|
|
|
por xmm4, xmm8
|
|
|
|
movdqa xmm8, xmm5
|
|
|
|
psrld xmm8, 12
|
|
|
|
pslld xmm5, 20
|
|
|
|
por xmm5, xmm8
|
|
|
|
movdqa xmm8, xmm6
|
|
|
|
psrld xmm8, 12
|
|
|
|
pslld xmm6, 20
|
|
|
|
por xmm6, xmm8
|
|
|
|
movdqa xmm8, xmm7
|
|
|
|
psrld xmm8, 12
|
|
|
|
pslld xmm7, 20
|
|
|
|
por xmm7, xmm8
|
|
|
|
paddd xmm0, xmmword ptr [rsp+0x10]
|
|
|
|
paddd xmm1, xmmword ptr [rsp+0x30]
|
|
|
|
paddd xmm2, xmmword ptr [rsp+0x50]
|
|
|
|
paddd xmm3, xmmword ptr [rsp+0x70]
|
|
|
|
paddd xmm0, xmm4
|
|
|
|
paddd xmm1, xmm5
|
|
|
|
paddd xmm2, xmm6
|
|
|
|
paddd xmm3, xmm7
|
|
|
|
pxor xmm12, xmm0
|
|
|
|
pxor xmm13, xmm1
|
|
|
|
pxor xmm14, xmm2
|
|
|
|
pxor xmm15, xmm3
|
|
|
|
movdqa xmm8, xmmword ptr [ROT8+rip]
|
|
|
|
pshufb xmm12, xmm8
|
|
|
|
pshufb xmm13, xmm8
|
|
|
|
pshufb xmm14, xmm8
|
|
|
|
pshufb xmm15, xmm8
|
|
|
|
movdqa xmm8, xmmword ptr [rsp+0x100]
|
|
|
|
paddd xmm8, xmm12
|
|
|
|
paddd xmm9, xmm13
|
|
|
|
paddd xmm10, xmm14
|
|
|
|
paddd xmm11, xmm15
|
|
|
|
pxor xmm4, xmm8
|
|
|
|
pxor xmm5, xmm9
|
|
|
|
pxor xmm6, xmm10
|
|
|
|
pxor xmm7, xmm11
|
|
|
|
movdqa xmmword ptr [rsp+0x100], xmm8
|
|
|
|
movdqa xmm8, xmm4
|
|
|
|
psrld xmm8, 7
|
|
|
|
pslld xmm4, 25
|
|
|
|
por xmm4, xmm8
|
|
|
|
movdqa xmm8, xmm5
|
|
|
|
psrld xmm8, 7
|
|
|
|
pslld xmm5, 25
|
|
|
|
por xmm5, xmm8
|
|
|
|
movdqa xmm8, xmm6
|
|
|
|
psrld xmm8, 7
|
|
|
|
pslld xmm6, 25
|
|
|
|
por xmm6, xmm8
|
|
|
|
movdqa xmm8, xmm7
|
|
|
|
psrld xmm8, 7
|
|
|
|
pslld xmm7, 25
|
|
|
|
por xmm7, xmm8
|
|
|
|
paddd xmm0, xmmword ptr [rsp+0x80]
|
|
|
|
paddd xmm1, xmmword ptr [rsp+0xA0]
|
|
|
|
paddd xmm2, xmmword ptr [rsp+0xC0]
|
|
|
|
paddd xmm3, xmmword ptr [rsp+0xE0]
|
|
|
|
paddd xmm0, xmm5
|
|
|
|
paddd xmm1, xmm6
|
|
|
|
paddd xmm2, xmm7
|
|
|
|
paddd xmm3, xmm4
|
|
|
|
pxor xmm15, xmm0
|
|
|
|
pxor xmm12, xmm1
|
|
|
|
pxor xmm13, xmm2
|
|
|
|
pxor xmm14, xmm3
|
|
|
|
movdqa xmm8, xmmword ptr [ROT16+rip]
|
|
|
|
pshufb xmm15, xmm8
|
|
|
|
pshufb xmm12, xmm8
|
|
|
|
pshufb xmm13, xmm8
|
|
|
|
pshufb xmm14, xmm8
|
|
|
|
paddd xmm10, xmm15
|
|
|
|
paddd xmm11, xmm12
|
|
|
|
movdqa xmm8, xmmword ptr [rsp+0x100]
|
|
|
|
paddd xmm8, xmm13
|
|
|
|
paddd xmm9, xmm14
|
|
|
|
pxor xmm5, xmm10
|
|
|
|
pxor xmm6, xmm11
|
|
|
|
pxor xmm7, xmm8
|
|
|
|
pxor xmm4, xmm9
|
|
|
|
movdqa xmmword ptr [rsp+0x100], xmm8
|
|
|
|
movdqa xmm8, xmm5
|
|
|
|
psrld xmm8, 12
|
|
|
|
pslld xmm5, 20
|
|
|
|
por xmm5, xmm8
|
|
|
|
movdqa xmm8, xmm6
|
|
|
|
psrld xmm8, 12
|
|
|
|
pslld xmm6, 20
|
|
|
|
por xmm6, xmm8
|
|
|
|
movdqa xmm8, xmm7
|
|
|
|
psrld xmm8, 12
|
|
|
|
pslld xmm7, 20
|
|
|
|
por xmm7, xmm8
|
|
|
|
movdqa xmm8, xmm4
|
|
|
|
psrld xmm8, 12
|
|
|
|
pslld xmm4, 20
|
|
|
|
por xmm4, xmm8
|
|
|
|
paddd xmm0, xmmword ptr [rsp+0x90]
|
|
|
|
paddd xmm1, xmmword ptr [rsp+0xB0]
|
|
|
|
paddd xmm2, xmmword ptr [rsp+0xD0]
|
|
|
|
paddd xmm3, xmmword ptr [rsp+0xF0]
|
|
|
|
paddd xmm0, xmm5
|
|
|
|
paddd xmm1, xmm6
|
|
|
|
paddd xmm2, xmm7
|
|
|
|
paddd xmm3, xmm4
|
|
|
|
pxor xmm15, xmm0
|
|
|
|
pxor xmm12, xmm1
|
|
|
|
pxor xmm13, xmm2
|
|
|
|
pxor xmm14, xmm3
|
|
|
|
movdqa xmm8, xmmword ptr [ROT8+rip]
|
|
|
|
pshufb xmm15, xmm8
|
|
|
|
pshufb xmm12, xmm8
|
|
|
|
pshufb xmm13, xmm8
|
|
|
|
pshufb xmm14, xmm8
|
|
|
|
paddd xmm10, xmm15
|
|
|
|
paddd xmm11, xmm12
|
|
|
|
movdqa xmm8, xmmword ptr [rsp+0x100]
|
|
|
|
paddd xmm8, xmm13
|
|
|
|
paddd xmm9, xmm14
|
|
|
|
pxor xmm5, xmm10
|
|
|
|
pxor xmm6, xmm11
|
|
|
|
pxor xmm7, xmm8
|
|
|
|
pxor xmm4, xmm9
|
|
|
|
movdqa xmmword ptr [rsp+0x100], xmm8
|
|
|
|
movdqa xmm8, xmm5
|
|
|
|
psrld xmm8, 7
|
|
|
|
pslld xmm5, 25
|
|
|
|
por xmm5, xmm8
|
|
|
|
movdqa xmm8, xmm6
|
|
|
|
psrld xmm8, 7
|
|
|
|
pslld xmm6, 25
|
|
|
|
por xmm6, xmm8
|
|
|
|
movdqa xmm8, xmm7
|
|
|
|
psrld xmm8, 7
|
|
|
|
pslld xmm7, 25
|
|
|
|
por xmm7, xmm8
|
|
|
|
movdqa xmm8, xmm4
|
|
|
|
psrld xmm8, 7
|
|
|
|
pslld xmm4, 25
|
|
|
|
por xmm4, xmm8
|
|
|
|
paddd xmm0, xmmword ptr [rsp+0x20]
|
|
|
|
paddd xmm1, xmmword ptr [rsp+0x30]
|
|
|
|
paddd xmm2, xmmword ptr [rsp+0x70]
|
|
|
|
paddd xmm3, xmmword ptr [rsp+0x40]
|
|
|
|
paddd xmm0, xmm4
|
|
|
|
paddd xmm1, xmm5
|
|
|
|
paddd xmm2, xmm6
|
|
|
|
paddd xmm3, xmm7
|
|
|
|
pxor xmm12, xmm0
|
|
|
|
pxor xmm13, xmm1
|
|
|
|
pxor xmm14, xmm2
|
|
|
|
pxor xmm15, xmm3
|
|
|
|
movdqa xmm8, xmmword ptr [ROT16+rip]
|
|
|
|
pshufb xmm12, xmm8
|
|
|
|
pshufb xmm13, xmm8
|
|
|
|
pshufb xmm14, xmm8
|
|
|
|
pshufb xmm15, xmm8
|
|
|
|
movdqa xmm8, xmmword ptr [rsp+0x100]
|
|
|
|
paddd xmm8, xmm12
|
|
|
|
paddd xmm9, xmm13
|
|
|
|
paddd xmm10, xmm14
|
|
|
|
paddd xmm11, xmm15
|
|
|
|
pxor xmm4, xmm8
|
|
|
|
pxor xmm5, xmm9
|
|
|
|
pxor xmm6, xmm10
|
|
|
|
pxor xmm7, xmm11
|
|
|
|
movdqa xmmword ptr [rsp+0x100], xmm8
|
|
|
|
movdqa xmm8, xmm4
|
|
|
|
psrld xmm8, 12
|
|
|
|
pslld xmm4, 20
|
|
|
|
por xmm4, xmm8
|
|
|
|
movdqa xmm8, xmm5
|
|
|
|
psrld xmm8, 12
|
|
|
|
pslld xmm5, 20
|
|
|
|
por xmm5, xmm8
|
|
|
|
movdqa xmm8, xmm6
|
|
|
|
psrld xmm8, 12
|
|
|
|
pslld xmm6, 20
|
|
|
|
por xmm6, xmm8
|
|
|
|
movdqa xmm8, xmm7
|
|
|
|
psrld xmm8, 12
|
|
|
|
pslld xmm7, 20
|
|
|
|
por xmm7, xmm8
|
|
|
|
paddd xmm0, xmmword ptr [rsp+0x60]
|
|
|
|
paddd xmm1, xmmword ptr [rsp+0xA0]
|
|
|
|
paddd xmm2, xmmword ptr [rsp]
|
|
|
|
paddd xmm3, xmmword ptr [rsp+0xD0]
|
|
|
|
paddd xmm0, xmm4
|
|
|
|
paddd xmm1, xmm5
|
|
|
|
paddd xmm2, xmm6
|
|
|
|
paddd xmm3, xmm7
|
|
|
|
pxor xmm12, xmm0
|
|
|
|
pxor xmm13, xmm1
|
|
|
|
pxor xmm14, xmm2
|
|
|
|
pxor xmm15, xmm3
|
|
|
|
movdqa xmm8, xmmword ptr [ROT8+rip]
|
|
|
|
pshufb xmm12, xmm8
|
|
|
|
pshufb xmm13, xmm8
|
|
|
|
pshufb xmm14, xmm8
|
|
|
|
pshufb xmm15, xmm8
|
|
|
|
movdqa xmm8, xmmword ptr [rsp+0x100]
|
|
|
|
paddd xmm8, xmm12
|
|
|
|
paddd xmm9, xmm13
|
|
|
|
paddd xmm10, xmm14
|
|
|
|
paddd xmm11, xmm15
|
|
|
|
pxor xmm4, xmm8
|
|
|
|
pxor xmm5, xmm9
|
|
|
|
pxor xmm6, xmm10
|
|
|
|
pxor xmm7, xmm11
|
|
|
|
movdqa xmmword ptr [rsp+0x100], xmm8
|
|
|
|
movdqa xmm8, xmm4
|
|
|
|
psrld xmm8, 7
|
|
|
|
pslld xmm4, 25
|
|
|
|
por xmm4, xmm8
|
|
|
|
movdqa xmm8, xmm5
|
|
|
|
psrld xmm8, 7
|
|
|
|
pslld xmm5, 25
|
|
|
|
por xmm5, xmm8
|
|
|
|
movdqa xmm8, xmm6
|
|
|
|
psrld xmm8, 7
|
|
|
|
pslld xmm6, 25
|
|
|
|
por xmm6, xmm8
|
|
|
|
movdqa xmm8, xmm7
|
|
|
|
psrld xmm8, 7
|
|
|
|
pslld xmm7, 25
|
|
|
|
por xmm7, xmm8
|
|
|
|
paddd xmm0, xmmword ptr [rsp+0x10]
|
|
|
|
paddd xmm1, xmmword ptr [rsp+0xC0]
|
|
|
|
paddd xmm2, xmmword ptr [rsp+0x90]
|
|
|
|
paddd xmm3, xmmword ptr [rsp+0xF0]
|
|
|
|
paddd xmm0, xmm5
|
|
|
|
paddd xmm1, xmm6
|
|
|
|
paddd xmm2, xmm7
|
|
|
|
paddd xmm3, xmm4
|
|
|
|
pxor xmm15, xmm0
|
|
|
|
pxor xmm12, xmm1
|
|
|
|
pxor xmm13, xmm2
|
|
|
|
pxor xmm14, xmm3
|
|
|
|
movdqa xmm8, xmmword ptr [ROT16+rip]
|
|
|
|
pshufb xmm15, xmm8
|
|
|
|
pshufb xmm12, xmm8
|
|
|
|
pshufb xmm13, xmm8
|
|
|
|
pshufb xmm14, xmm8
|
|
|
|
paddd xmm10, xmm15
|
|
|
|
paddd xmm11, xmm12
|
|
|
|
movdqa xmm8, xmmword ptr [rsp+0x100]
|
|
|
|
paddd xmm8, xmm13
|
|
|
|
paddd xmm9, xmm14
|
|
|
|
pxor xmm5, xmm10
|
|
|
|
pxor xmm6, xmm11
|
|
|
|
pxor xmm7, xmm8
|
|
|
|
pxor xmm4, xmm9
|
|
|
|
movdqa xmmword ptr [rsp+0x100], xmm8
|
|
|
|
movdqa xmm8, xmm5
|
|
|
|
psrld xmm8, 12
|
|
|
|
pslld xmm5, 20
|
|
|
|
por xmm5, xmm8
|
|
|
|
movdqa xmm8, xmm6
|
|
|
|
psrld xmm8, 12
|
|
|
|
pslld xmm6, 20
|
|
|
|
por xmm6, xmm8
|
|
|
|
movdqa xmm8, xmm7
|
|
|
|
psrld xmm8, 12
|
|
|
|
pslld xmm7, 20
|
|
|
|
por xmm7, xmm8
|
|
|
|
movdqa xmm8, xmm4
|
|
|
|
psrld xmm8, 12
|
|
|
|
pslld xmm4, 20
|
|
|
|
por xmm4, xmm8
|
|
|
|
paddd xmm0, xmmword ptr [rsp+0xB0]
|
|
|
|
paddd xmm1, xmmword ptr [rsp+0x50]
|
|
|
|
paddd xmm2, xmmword ptr [rsp+0xE0]
|
|
|
|
paddd xmm3, xmmword ptr [rsp+0x80]
|
|
|
|
paddd xmm0, xmm5
|
|
|
|
paddd xmm1, xmm6
|
|
|
|
paddd xmm2, xmm7
|
|
|
|
paddd xmm3, xmm4
|
|
|
|
pxor xmm15, xmm0
|
|
|
|
pxor xmm12, xmm1
|
|
|
|
pxor xmm13, xmm2
|
|
|
|
pxor xmm14, xmm3
|
|
|
|
movdqa xmm8, xmmword ptr [ROT8+rip]
|
|
|
|
pshufb xmm15, xmm8
|
|
|
|
pshufb xmm12, xmm8
|
|
|
|
pshufb xmm13, xmm8
|
|
|
|
pshufb xmm14, xmm8
|
|
|
|
paddd xmm10, xmm15
|
|
|
|
paddd xmm11, xmm12
|
|
|
|
movdqa xmm8, xmmword ptr [rsp+0x100]
|
|
|
|
paddd xmm8, xmm13
|
|
|
|
paddd xmm9, xmm14
|
|
|
|
pxor xmm5, xmm10
|
|
|
|
pxor xmm6, xmm11
|
|
|
|
pxor xmm7, xmm8
|
|
|
|
pxor xmm4, xmm9
|
|
|
|
movdqa xmmword ptr [rsp+0x100], xmm8
|
|
|
|
movdqa xmm8, xmm5
|
|
|
|
psrld xmm8, 7
|
|
|
|
pslld xmm5, 25
|
|
|
|
por xmm5, xmm8
|
|
|
|
movdqa xmm8, xmm6
|
|
|
|
psrld xmm8, 7
|
|
|
|
pslld xmm6, 25
|
|
|
|
por xmm6, xmm8
|
|
|
|
movdqa xmm8, xmm7
|
|
|
|
psrld xmm8, 7
|
|
|
|
pslld xmm7, 25
|
|
|
|
por xmm7, xmm8
|
|
|
|
movdqa xmm8, xmm4
|
|
|
|
psrld xmm8, 7
|
|
|
|
pslld xmm4, 25
|
|
|
|
por xmm4, xmm8
|
|
|
|
paddd xmm0, xmmword ptr [rsp+0x30]
|
|
|
|
paddd xmm1, xmmword ptr [rsp+0xA0]
|
|
|
|
paddd xmm2, xmmword ptr [rsp+0xD0]
|
|
|
|
paddd xmm3, xmmword ptr [rsp+0x70]
|
|
|
|
paddd xmm0, xmm4
|
|
|
|
paddd xmm1, xmm5
|
|
|
|
paddd xmm2, xmm6
|
|
|
|
paddd xmm3, xmm7
|
|
|
|
pxor xmm12, xmm0
|
|
|
|
pxor xmm13, xmm1
|
|
|
|
pxor xmm14, xmm2
|
|
|
|
pxor xmm15, xmm3
|
|
|
|
movdqa xmm8, xmmword ptr [ROT16+rip]
|
|
|
|
pshufb xmm12, xmm8
|
|
|
|
pshufb xmm13, xmm8
|
|
|
|
pshufb xmm14, xmm8
|
|
|
|
pshufb xmm15, xmm8
|
|
|
|
movdqa xmm8, xmmword ptr [rsp+0x100]
|
|
|
|
paddd xmm8, xmm12
|
|
|
|
paddd xmm9, xmm13
|
|
|
|
paddd xmm10, xmm14
|
|
|
|
paddd xmm11, xmm15
|
|
|
|
pxor xmm4, xmm8
|
|
|
|
pxor xmm5, xmm9
|
|
|
|
pxor xmm6, xmm10
|
|
|
|
pxor xmm7, xmm11
|
|
|
|
movdqa xmmword ptr [rsp+0x100], xmm8
|
|
|
|
movdqa xmm8, xmm4
|
|
|
|
psrld xmm8, 12
|
|
|
|
pslld xmm4, 20
|
|
|
|
por xmm4, xmm8
|
|
|
|
movdqa xmm8, xmm5
|
|
|
|
psrld xmm8, 12
|
|
|
|
pslld xmm5, 20
|
|
|
|
por xmm5, xmm8
|
|
|
|
movdqa xmm8, xmm6
|
|
|
|
psrld xmm8, 12
|
|
|
|
pslld xmm6, 20
|
|
|
|
por xmm6, xmm8
|
|
|
|
movdqa xmm8, xmm7
|
|
|
|
psrld xmm8, 12
|
|
|
|
pslld xmm7, 20
|
|
|
|
por xmm7, xmm8
|
|
|
|
paddd xmm0, xmmword ptr [rsp+0x40]
|
|
|
|
paddd xmm1, xmmword ptr [rsp+0xC0]
|
|
|
|
paddd xmm2, xmmword ptr [rsp+0x20]
|
|
|
|
paddd xmm3, xmmword ptr [rsp+0xE0]
|
|
|
|
paddd xmm0, xmm4
|
|
|
|
paddd xmm1, xmm5
|
|
|
|
paddd xmm2, xmm6
|
|
|
|
paddd xmm3, xmm7
|
|
|
|
pxor xmm12, xmm0
|
|
|
|
pxor xmm13, xmm1
|
|
|
|
pxor xmm14, xmm2
|
|
|
|
pxor xmm15, xmm3
|
|
|
|
movdqa xmm8, xmmword ptr [ROT8+rip]
|
|
|
|
pshufb xmm12, xmm8
|
|
|
|
pshufb xmm13, xmm8
|
|
|
|
pshufb xmm14, xmm8
|
|
|
|
pshufb xmm15, xmm8
|
|
|
|
movdqa xmm8, xmmword ptr [rsp+0x100]
|
|
|
|
paddd xmm8, xmm12
|
|
|
|
paddd xmm9, xmm13
|
|
|
|
paddd xmm10, xmm14
|
|
|
|
paddd xmm11, xmm15
|
|
|
|
pxor xmm4, xmm8
|
|
|
|
pxor xmm5, xmm9
|
|
|
|
pxor xmm6, xmm10
|
|
|
|
pxor xmm7, xmm11
|
|
|
|
movdqa xmmword ptr [rsp+0x100], xmm8
|
|
|
|
movdqa xmm8, xmm4
|
|
|
|
psrld xmm8, 7
|
|
|
|
pslld xmm4, 25
|
|
|
|
por xmm4, xmm8
|
|
|
|
movdqa xmm8, xmm5
|
|
|
|
psrld xmm8, 7
|
|
|
|
pslld xmm5, 25
|
|
|
|
por xmm5, xmm8
|
|
|
|
movdqa xmm8, xmm6
|
|
|
|
psrld xmm8, 7
|
|
|
|
pslld xmm6, 25
|
|
|
|
por xmm6, xmm8
|
|
|
|
movdqa xmm8, xmm7
|
|
|
|
psrld xmm8, 7
|
|
|
|
pslld xmm7, 25
|
|
|
|
por xmm7, xmm8
|
|
|
|
paddd xmm0, xmmword ptr [rsp+0x60]
|
|
|
|
paddd xmm1, xmmword ptr [rsp+0x90]
|
|
|
|
paddd xmm2, xmmword ptr [rsp+0xB0]
|
|
|
|
paddd xmm3, xmmword ptr [rsp+0x80]
|
|
|
|
paddd xmm0, xmm5
|
|
|
|
paddd xmm1, xmm6
|
|
|
|
paddd xmm2, xmm7
|
|
|
|
paddd xmm3, xmm4
|
|
|
|
pxor xmm15, xmm0
|
|
|
|
pxor xmm12, xmm1
|
|
|
|
pxor xmm13, xmm2
|
|
|
|
pxor xmm14, xmm3
|
|
|
|
movdqa xmm8, xmmword ptr [ROT16+rip]
|
|
|
|
pshufb xmm15, xmm8
|
|
|
|
pshufb xmm12, xmm8
|
|
|
|
pshufb xmm13, xmm8
|
|
|
|
pshufb xmm14, xmm8
|
|
|
|
paddd xmm10, xmm15
|
|
|
|
paddd xmm11, xmm12
|
|
|
|
movdqa xmm8, xmmword ptr [rsp+0x100]
|
|
|
|
paddd xmm8, xmm13
|
|
|
|
paddd xmm9, xmm14
|
|
|
|
pxor xmm5, xmm10
|
|
|
|
pxor xmm6, xmm11
|
|
|
|
pxor xmm7, xmm8
|
|
|
|
pxor xmm4, xmm9
|
|
|
|
movdqa xmmword ptr [rsp+0x100], xmm8
|
|
|
|
movdqa xmm8, xmm5
|
|
|
|
psrld xmm8, 12
|
|
|
|
pslld xmm5, 20
|
|
|
|
por xmm5, xmm8
|
|
|
|
movdqa xmm8, xmm6
|
|
|
|
psrld xmm8, 12
|
|
|
|
pslld xmm6, 20
|
|
|
|
por xmm6, xmm8
|
|
|
|
movdqa xmm8, xmm7
|
|
|
|
psrld xmm8, 12
|
|
|
|
pslld xmm7, 20
|
|
|
|
por xmm7, xmm8
|
|
|
|
movdqa xmm8, xmm4
|
|
|
|
psrld xmm8, 12
|
|
|
|
pslld xmm4, 20
|
|
|
|
por xmm4, xmm8
|
|
|
|
paddd xmm0, xmmword ptr [rsp+0x50]
|
|
|
|
paddd xmm1, xmmword ptr [rsp]
|
|
|
|
paddd xmm2, xmmword ptr [rsp+0xF0]
|
|
|
|
paddd xmm3, xmmword ptr [rsp+0x10]
|
|
|
|
paddd xmm0, xmm5
|
|
|
|
paddd xmm1, xmm6
|
|
|
|
paddd xmm2, xmm7
|
|
|
|
paddd xmm3, xmm4
|
|
|
|
pxor xmm15, xmm0
|
|
|
|
pxor xmm12, xmm1
|
|
|
|
pxor xmm13, xmm2
|
|
|
|
pxor xmm14, xmm3
|
|
|
|
movdqa xmm8, xmmword ptr [ROT8+rip]
|
|
|
|
pshufb xmm15, xmm8
|
|
|
|
pshufb xmm12, xmm8
|
|
|
|
pshufb xmm13, xmm8
|
|
|
|
pshufb xmm14, xmm8
|
|
|
|
paddd xmm10, xmm15
|
|
|
|
paddd xmm11, xmm12
|
|
|
|
movdqa xmm8, xmmword ptr [rsp+0x100]
|
|
|
|
paddd xmm8, xmm13
|
|
|
|
paddd xmm9, xmm14
|
|
|
|
pxor xmm5, xmm10
|
|
|
|
pxor xmm6, xmm11
|
|
|
|
pxor xmm7, xmm8
|
|
|
|
pxor xmm4, xmm9
|
|
|
|
movdqa xmmword ptr [rsp+0x100], xmm8
|
|
|
|
movdqa xmm8, xmm5
|
|
|
|
psrld xmm8, 7
|
|
|
|
pslld xmm5, 25
|
|
|
|
por xmm5, xmm8
|
|
|
|
movdqa xmm8, xmm6
|
|
|
|
psrld xmm8, 7
|
|
|
|
pslld xmm6, 25
|
|
|
|
por xmm6, xmm8
|
|
|
|
movdqa xmm8, xmm7
|
|
|
|
psrld xmm8, 7
|
|
|
|
pslld xmm7, 25
|
|
|
|
por xmm7, xmm8
|
|
|
|
movdqa xmm8, xmm4
|
|
|
|
psrld xmm8, 7
|
|
|
|
pslld xmm4, 25
|
|
|
|
por xmm4, xmm8
|
|
|
|
paddd xmm0, xmmword ptr [rsp+0xA0]
|
|
|
|
paddd xmm1, xmmword ptr [rsp+0xC0]
|
|
|
|
paddd xmm2, xmmword ptr [rsp+0xE0]
|
|
|
|
paddd xmm3, xmmword ptr [rsp+0xD0]
|
|
|
|
paddd xmm0, xmm4
|
|
|
|
paddd xmm1, xmm5
|
|
|
|
paddd xmm2, xmm6
|
|
|
|
paddd xmm3, xmm7
|
|
|
|
pxor xmm12, xmm0
|
|
|
|
pxor xmm13, xmm1
|
|
|
|
pxor xmm14, xmm2
|
|
|
|
pxor xmm15, xmm3
|
|
|
|
movdqa xmm8, xmmword ptr [ROT16+rip]
|
|
|
|
pshufb xmm12, xmm8
|
|
|
|
pshufb xmm13, xmm8
|
|
|
|
pshufb xmm14, xmm8
|
|
|
|
pshufb xmm15, xmm8
|
|
|
|
movdqa xmm8, xmmword ptr [rsp+0x100]
|
|
|
|
paddd xmm8, xmm12
|
|
|
|
paddd xmm9, xmm13
|
|
|
|
paddd xmm10, xmm14
|
|
|
|
paddd xmm11, xmm15
|
|
|
|
pxor xmm4, xmm8
|
|
|
|
pxor xmm5, xmm9
|
|
|
|
pxor xmm6, xmm10
|
|
|
|
pxor xmm7, xmm11
|
|
|
|
movdqa xmmword ptr [rsp+0x100], xmm8
|
|
|
|
movdqa xmm8, xmm4
|
|
|
|
psrld xmm8, 12
|
|
|
|
pslld xmm4, 20
|
|
|
|
por xmm4, xmm8
|
|
|
|
movdqa xmm8, xmm5
|
|
|
|
psrld xmm8, 12
|
|
|
|
pslld xmm5, 20
|
|
|
|
por xmm5, xmm8
|
|
|
|
movdqa xmm8, xmm6
|
|
|
|
psrld xmm8, 12
|
|
|
|
pslld xmm6, 20
|
|
|
|
por xmm6, xmm8
|
|
|
|
movdqa xmm8, xmm7
|
|
|
|
psrld xmm8, 12
|
|
|
|
pslld xmm7, 20
|
|
|
|
por xmm7, xmm8
|
|
|
|
paddd xmm0, xmmword ptr [rsp+0x70]
|
|
|
|
paddd xmm1, xmmword ptr [rsp+0x90]
|
|
|
|
paddd xmm2, xmmword ptr [rsp+0x30]
|
|
|
|
paddd xmm3, xmmword ptr [rsp+0xF0]
|
|
|
|
paddd xmm0, xmm4
|
|
|
|
paddd xmm1, xmm5
|
|
|
|
paddd xmm2, xmm6
|
|
|
|
paddd xmm3, xmm7
|
|
|
|
pxor xmm12, xmm0
|
|
|
|
pxor xmm13, xmm1
|
|
|
|
pxor xmm14, xmm2
|
|
|
|
pxor xmm15, xmm3
|
|
|
|
movdqa xmm8, xmmword ptr [ROT8+rip]
|
|
|
|
pshufb xmm12, xmm8
|
|
|
|
pshufb xmm13, xmm8
|
|
|
|
pshufb xmm14, xmm8
|
|
|
|
pshufb xmm15, xmm8
|
|
|
|
movdqa xmm8, xmmword ptr [rsp+0x100]
|
|
|
|
paddd xmm8, xmm12
|
|
|
|
paddd xmm9, xmm13
|
|
|
|
paddd xmm10, xmm14
|
|
|
|
paddd xmm11, xmm15
|
|
|
|
pxor xmm4, xmm8
|
|
|
|
pxor xmm5, xmm9
|
|
|
|
pxor xmm6, xmm10
|
|
|
|
pxor xmm7, xmm11
|
|
|
|
movdqa xmmword ptr [rsp+0x100], xmm8
|
|
|
|
movdqa xmm8, xmm4
|
|
|
|
psrld xmm8, 7
|
|
|
|
pslld xmm4, 25
|
|
|
|
por xmm4, xmm8
|
|
|
|
movdqa xmm8, xmm5
|
|
|
|
psrld xmm8, 7
|
|
|
|
pslld xmm5, 25
|
|
|
|
por xmm5, xmm8
|
|
|
|
movdqa xmm8, xmm6
|
|
|
|
psrld xmm8, 7
|
|
|
|
pslld xmm6, 25
|
|
|
|
por xmm6, xmm8
|
|
|
|
movdqa xmm8, xmm7
|
|
|
|
psrld xmm8, 7
|
|
|
|
pslld xmm7, 25
|
|
|
|
por xmm7, xmm8
|
|
|
|
paddd xmm0, xmmword ptr [rsp+0x40]
|
|
|
|
paddd xmm1, xmmword ptr [rsp+0xB0]
|
|
|
|
paddd xmm2, xmmword ptr [rsp+0x50]
|
|
|
|
paddd xmm3, xmmword ptr [rsp+0x10]
|
|
|
|
paddd xmm0, xmm5
|
|
|
|
paddd xmm1, xmm6
|
|
|
|
paddd xmm2, xmm7
|
|
|
|
paddd xmm3, xmm4
|
|
|
|
pxor xmm15, xmm0
|
|
|
|
pxor xmm12, xmm1
|
|
|
|
pxor xmm13, xmm2
|
|
|
|
pxor xmm14, xmm3
|
|
|
|
movdqa xmm8, xmmword ptr [ROT16+rip]
|
|
|
|
pshufb xmm15, xmm8
|
|
|
|
pshufb xmm12, xmm8
|
|
|
|
pshufb xmm13, xmm8
|
|
|
|
pshufb xmm14, xmm8
|
|
|
|
paddd xmm10, xmm15
|
|
|
|
paddd xmm11, xmm12
|
|
|
|
movdqa xmm8, xmmword ptr [rsp+0x100]
|
|
|
|
paddd xmm8, xmm13
|
|
|
|
paddd xmm9, xmm14
|
|
|
|
pxor xmm5, xmm10
|
|
|
|
pxor xmm6, xmm11
|
|
|
|
pxor xmm7, xmm8
|
|
|
|
pxor xmm4, xmm9
|
|
|
|
movdqa xmmword ptr [rsp+0x100], xmm8
|
|
|
|
movdqa xmm8, xmm5
|
|
|
|
psrld xmm8, 12
|
|
|
|
pslld xmm5, 20
|
|
|
|
por xmm5, xmm8
|
|
|
|
movdqa xmm8, xmm6
|
|
|
|
psrld xmm8, 12
|
|
|
|
pslld xmm6, 20
|
|
|
|
por xmm6, xmm8
|
|
|
|
movdqa xmm8, xmm7
|
|
|
|
psrld xmm8, 12
|
|
|
|
pslld xmm7, 20
|
|
|
|
por xmm7, xmm8
|
|
|
|
movdqa xmm8, xmm4
|
|
|
|
psrld xmm8, 12
|
|
|
|
pslld xmm4, 20
|
|
|
|
por xmm4, xmm8
|
|
|
|
paddd xmm0, xmmword ptr [rsp]
|
|
|
|
paddd xmm1, xmmword ptr [rsp+0x20]
|
|
|
|
paddd xmm2, xmmword ptr [rsp+0x80]
|
|
|
|
paddd xmm3, xmmword ptr [rsp+0x60]
|
|
|
|
paddd xmm0, xmm5
|
|
|
|
paddd xmm1, xmm6
|
|
|
|
paddd xmm2, xmm7
|
|
|
|
paddd xmm3, xmm4
|
|
|
|
pxor xmm15, xmm0
|
|
|
|
pxor xmm12, xmm1
|
|
|
|
pxor xmm13, xmm2
|
|
|
|
pxor xmm14, xmm3
|
|
|
|
movdqa xmm8, xmmword ptr [ROT8+rip]
|
|
|
|
pshufb xmm15, xmm8
|
|
|
|
pshufb xmm12, xmm8
|
|
|
|
pshufb xmm13, xmm8
|
|
|
|
pshufb xmm14, xmm8
|
|
|
|
paddd xmm10, xmm15
|
|
|
|
paddd xmm11, xmm12
|
|
|
|
movdqa xmm8, xmmword ptr [rsp+0x100]
|
|
|
|
paddd xmm8, xmm13
|
|
|
|
paddd xmm9, xmm14
|
|
|
|
pxor xmm5, xmm10
|
|
|
|
pxor xmm6, xmm11
|
|
|
|
pxor xmm7, xmm8
|
|
|
|
pxor xmm4, xmm9
|
|
|
|
movdqa xmmword ptr [rsp+0x100], xmm8
|
|
|
|
movdqa xmm8, xmm5
|
|
|
|
psrld xmm8, 7
|
|
|
|
pslld xmm5, 25
|
|
|
|
por xmm5, xmm8
|
|
|
|
movdqa xmm8, xmm6
|
|
|
|
psrld xmm8, 7
|
|
|
|
pslld xmm6, 25
|
|
|
|
por xmm6, xmm8
|
|
|
|
movdqa xmm8, xmm7
|
|
|
|
psrld xmm8, 7
|
|
|
|
pslld xmm7, 25
|
|
|
|
por xmm7, xmm8
|
|
|
|
movdqa xmm8, xmm4
|
|
|
|
psrld xmm8, 7
|
|
|
|
pslld xmm4, 25
|
|
|
|
por xmm4, xmm8
|
|
|
|
paddd xmm0, xmmword ptr [rsp+0xC0]
|
|
|
|
paddd xmm1, xmmword ptr [rsp+0x90]
|
|
|
|
paddd xmm2, xmmword ptr [rsp+0xF0]
|
|
|
|
paddd xmm3, xmmword ptr [rsp+0xE0]
|
|
|
|
paddd xmm0, xmm4
|
|
|
|
paddd xmm1, xmm5
|
|
|
|
paddd xmm2, xmm6
|
|
|
|
paddd xmm3, xmm7
|
|
|
|
pxor xmm12, xmm0
|
|
|
|
pxor xmm13, xmm1
|
|
|
|
pxor xmm14, xmm2
|
|
|
|
pxor xmm15, xmm3
|
|
|
|
movdqa xmm8, xmmword ptr [ROT16+rip]
|
|
|
|
pshufb xmm12, xmm8
|
|
|
|
pshufb xmm13, xmm8
|
|
|
|
pshufb xmm14, xmm8
|
|
|
|
pshufb xmm15, xmm8
|
|
|
|
movdqa xmm8, xmmword ptr [rsp+0x100]
|
|
|
|
paddd xmm8, xmm12
|
|
|
|
paddd xmm9, xmm13
|
|
|
|
paddd xmm10, xmm14
|
|
|
|
paddd xmm11, xmm15
|
|
|
|
pxor xmm4, xmm8
|
|
|
|
pxor xmm5, xmm9
|
|
|
|
pxor xmm6, xmm10
|
|
|
|
pxor xmm7, xmm11
|
|
|
|
movdqa xmmword ptr [rsp+0x100], xmm8
|
|
|
|
movdqa xmm8, xmm4
|
|
|
|
psrld xmm8, 12
|
|
|
|
pslld xmm4, 20
|
|
|
|
por xmm4, xmm8
|
|
|
|
movdqa xmm8, xmm5
|
|
|
|
psrld xmm8, 12
|
|
|
|
pslld xmm5, 20
|
|
|
|
por xmm5, xmm8
|
|
|
|
movdqa xmm8, xmm6
|
|
|
|
psrld xmm8, 12
|
|
|
|
pslld xmm6, 20
|
|
|
|
por xmm6, xmm8
|
|
|
|
movdqa xmm8, xmm7
|
|
|
|
psrld xmm8, 12
|
|
|
|
pslld xmm7, 20
|
|
|
|
por xmm7, xmm8
|
|
|
|
paddd xmm0, xmmword ptr [rsp+0xD0]
|
|
|
|
paddd xmm1, xmmword ptr [rsp+0xB0]
|
|
|
|
paddd xmm2, xmmword ptr [rsp+0xA0]
|
|
|
|
paddd xmm3, xmmword ptr [rsp+0x80]
|
|
|
|
paddd xmm0, xmm4
|
|
|
|
paddd xmm1, xmm5
|
|
|
|
paddd xmm2, xmm6
|
|
|
|
paddd xmm3, xmm7
|
|
|
|
pxor xmm12, xmm0
|
|
|
|
pxor xmm13, xmm1
|
|
|
|
pxor xmm14, xmm2
|
|
|
|
pxor xmm15, xmm3
|
|
|
|
movdqa xmm8, xmmword ptr [ROT8+rip]
|
|
|
|
pshufb xmm12, xmm8
|
|
|
|
pshufb xmm13, xmm8
|
|
|
|
pshufb xmm14, xmm8
|
|
|
|
pshufb xmm15, xmm8
|
|
|
|
movdqa xmm8, xmmword ptr [rsp+0x100]
|
|
|
|
paddd xmm8, xmm12
|
|
|
|
paddd xmm9, xmm13
|
|
|
|
paddd xmm10, xmm14
|
|
|
|
paddd xmm11, xmm15
|
|
|
|
pxor xmm4, xmm8
|
|
|
|
pxor xmm5, xmm9
|
|
|
|
pxor xmm6, xmm10
|
|
|
|
pxor xmm7, xmm11
|
|
|
|
movdqa xmmword ptr [rsp+0x100], xmm8
|
|
|
|
movdqa xmm8, xmm4
|
|
|
|
psrld xmm8, 7
|
|
|
|
pslld xmm4, 25
|
|
|
|
por xmm4, xmm8
|
|
|
|
movdqa xmm8, xmm5
|
|
|
|
psrld xmm8, 7
|
|
|
|
pslld xmm5, 25
|
|
|
|
por xmm5, xmm8
|
|
|
|
movdqa xmm8, xmm6
|
|
|
|
psrld xmm8, 7
|
|
|
|
pslld xmm6, 25
|
|
|
|
por xmm6, xmm8
|
|
|
|
movdqa xmm8, xmm7
|
|
|
|
psrld xmm8, 7
|
|
|
|
pslld xmm7, 25
|
|
|
|
por xmm7, xmm8
|
|
|
|
paddd xmm0, xmmword ptr [rsp+0x70]
|
|
|
|
paddd xmm1, xmmword ptr [rsp+0x50]
|
|
|
|
paddd xmm2, xmmword ptr [rsp]
|
|
|
|
paddd xmm3, xmmword ptr [rsp+0x60]
|
|
|
|
paddd xmm0, xmm5
|
|
|
|
paddd xmm1, xmm6
|
|
|
|
paddd xmm2, xmm7
|
|
|
|
paddd xmm3, xmm4
|
|
|
|
pxor xmm15, xmm0
|
|
|
|
pxor xmm12, xmm1
|
|
|
|
pxor xmm13, xmm2
|
|
|
|
pxor xmm14, xmm3
|
|
|