// File: /workspace/github_c_makefile_star2_O0/mjosaarinen[P]brutus/crypto_aead/aes256otrpv3/ni_p8m1/encrypt.c
// Function: AES_ecb_encrypt_PIPE
__inline__ static void AES_ecb_encrypt_PIPE(
	__m128i *blks,
	const __m128i *key)
{
	unsigned j;
	blks[0] = _mm_xor_si128(blks[0], key[0]);
	blks[1] = _mm_xor_si128(blks[1], key[0]);
	blks[2] = _mm_xor_si128(blks[2], key[0]);
	blks[3] = _mm_xor_si128(blks[3], key[0]);
#if (PIPE>=5)
	blks[4] = _mm_xor_si128(blks[4], key[0]);
#endif
#if (PIPE>=6)
	blks[5] = _mm_xor_si128(blks[5], key[0]);
#endif
#if (PIPE>=7)
	blks[6] = _mm_xor_si128(blks[6], key[0]);
#endif
#if (PIPE==8)
	blks[7] = _mm_xor_si128(blks[7], key[0]);
#endif
	for (j = 1; j<ROUND; ++j) {
		blks[0] = _mm_aesenc_si128(blks[0], key[j]);
		blks[1] = _mm_aesenc_si128(blks[1], key[j]);
		blks[2] = _mm_aesenc_si128(blks[2], key[j]);
		blks[3] = _mm_aesenc_si128(blks[3], key[j]);
#if (PIPE>=5)
		blks[4] = _mm_aesenc_si128(blks[4], key[j]);
#endif
#if (PIPE>=6)
		blks[5] = _mm_aesenc_si128(blks[5], key[j]);
#endif
#if (PIPE>=7)
		blks[6] = _mm_aesenc_si128(blks[6], key[j]);
#endif
#if (PIPE==8)
		blks[7] = _mm_aesenc_si128(blks[7], key[j]);
#endif
	}
	blks[0] = _mm_aesenclast_si128(blks[0], key[j]);
	blks[1] = _mm_aesenclast_si128(blks[1], key[j]);
	blks[2] = _mm_aesenclast_si128(blks[2], key[j]);
	blks[3] = _mm_aesenclast_si128(blks[3], key[j]);
#if (PIPE>=5)
	blks[4] = _mm_aesenclast_si128(blks[4], key[j]);
#endif
#if (PIPE>=6)
	blks[5] = _mm_aesenclast_si128(blks[5], key[j]);
#endif
#if (PIPE>=7)
	blks[6] = _mm_aesenclast_si128(blks[6], key[j]);
#endif
#if (PIPE==8)
	blks[7] = _mm_aesenclast_si128(blks[7], key[j]);
#endif
}

// Assembly:
subq $0x2a8, %rsp            # imm = 0x2A8
movq %rdi, -0x68(%rsp)
movq %rsi, -0x70(%rsp)
movq -0x68(%rsp), %rax
vmovdqa (%rax), %xmm1
movq -0x70(%rsp), %rax
vmovdqa (%rax), %xmm0
vmovdqa %xmm1, 0x90(%rsp)
vmovdqa %xmm0, 0x80(%rsp)
vmovdqa 0x90(%rsp), %xmm0
vpxor 0x80(%rsp), %xmm0, %xmm0
movq -0x68(%rsp), %rax
vmovdqa %xmm0, (%rax)
movq -0x68(%rsp), %rax
vmovdqa 0x10(%rax), %xmm1
movq -0x70(%rsp), %rax
vmovdqa (%rax), %xmm0
vmovdqa %xmm1, 0x70(%rsp)
vmovdqa %xmm0, 0x60(%rsp)
vmovdqa 0x70(%rsp), %xmm0
vpxor 0x60(%rsp), %xmm0, %xmm0
movq -0x68(%rsp), %rax
vmovdqa %xmm0, 0x10(%rax)
movq -0x68(%rsp), %rax
vmovdqa 0x20(%rax), %xmm1
movq -0x70(%rsp), %rax
vmovdqa (%rax), %xmm0
vmovdqa %xmm1, 0x50(%rsp)
vmovdqa %xmm0, 0x40(%rsp)
vmovdqa 0x50(%rsp), %xmm0
vpxor 0x40(%rsp), %xmm0, %xmm0
movq -0x68(%rsp), %rax
vmovdqa %xmm0, 0x20(%rax)
movq -0x68(%rsp), %rax
vmovdqa 0x30(%rax), %xmm1
movq -0x70(%rsp), %rax
vmovdqa (%rax), %xmm0
vmovdqa %xmm1, 0x30(%rsp)
vmovdqa %xmm0, 0x20(%rsp)
vmovdqa 0x30(%rsp), %xmm0
vpxor 0x20(%rsp), %xmm0, %xmm0
movq -0x68(%rsp), %rax
vmovdqa %xmm0, 0x30(%rax)
movq -0x68(%rsp), %rax
vmovdqa 0x40(%rax), %xmm1
movq -0x70(%rsp), %rax
vmovdqa (%rax), %xmm0
vmovdqa %xmm1, 0x10(%rsp)
vmovdqa %xmm0, (%rsp)
vmovdqa 0x10(%rsp), %xmm0
vpxor (%rsp), %xmm0, %xmm0
movq -0x68(%rsp), %rax
vmovdqa %xmm0, 0x40(%rax)
movq -0x68(%rsp), %rax
vmovdqa 0x50(%rax), %xmm1
movq -0x70(%rsp), %rax
vmovdqa (%rax), %xmm0
vmovdqa %xmm1, -0x10(%rsp)
vmovdqa %xmm0, -0x20(%rsp)
vmovdqa -0x10(%rsp), %xmm0
vpxor -0x20(%rsp), %xmm0, %xmm0
movq -0x68(%rsp), %rax
vmovdqa %xmm0, 0x50(%rax)
movq -0x68(%rsp), %rax
vmovdqa 0x60(%rax), %xmm1
movq -0x70(%rsp), %rax
vmovdqa (%rax), %xmm0
vmovdqa %xmm1, -0x30(%rsp)
vmovdqa %xmm0, -0x40(%rsp)
vmovdqa -0x30(%rsp), %xmm0
vpxor -0x40(%rsp), %xmm0, %xmm0
movq -0x68(%rsp), %rax
vmovdqa %xmm0, 0x60(%rax)
movq -0x68(%rsp), %rax
vmovdqa 0x70(%rax), %xmm1
movq -0x70(%rsp), %rax
vmovdqa (%rax), %xmm0
vmovdqa %xmm1, -0x50(%rsp)
vmovdqa %xmm0, -0x60(%rsp)
vmovdqa -0x50(%rsp), %xmm0
vpxor -0x60(%rsp), %xmm0, %xmm0
movq -0x68(%rsp), %rax
vmovdqa %xmm0, 0x70(%rax)
movl $0x1, -0x74(%rsp)
cmpl $0xe, -0x74(%rsp)
jae 0x483a
movq -0x68(%rsp), %rax
vmovdqa (%rax), %xmm1
movq -0x70(%rsp), %rax
movl -0x74(%rsp), %ecx
shlq $0x4, %rcx
addq %rcx, %rax
vmovdqa (%rax), %xmm0
vmovdqa %xmm1, 0x190(%rsp)
vmovdqa %xmm0, 0x180(%rsp)
vmovdqa 0x190(%rsp), %xmm0
vmovdqa 0x180(%rsp), %xmm1
vaesenc %xmm1, %xmm0, %xmm0
movq -0x68(%rsp), %rax
vmovdqa %xmm0, (%rax)
movq -0x68(%rsp), %rax
vmovdqa 0x10(%rax), %xmm1
movq -0x70(%rsp), %rax
movl -0x74(%rsp), %ecx
shlq $0x4, %rcx
addq %rcx, %rax
vmovdqa (%rax), %xmm0
vmovdqa %xmm1, 0x170(%rsp)
vmovdqa %xmm0, 0x160(%rsp)
vmovdqa 0x170(%rsp), %xmm0
vmovdqa 0x160(%rsp), %xmm1
vaesenc %xmm1, %xmm0, %xmm0
movq -0x68(%rsp), %rax
vmovdqa %xmm0, 0x10(%rax)
movq -0x68(%rsp), %rax
vmovdqa 0x20(%rax), %xmm1
movq -0x70(%rsp), %rax
movl -0x74(%rsp), %ecx
shlq $0x4, %rcx
addq %rcx, %rax
vmovdqa (%rax), %xmm0
vmovdqa %xmm1, 0x150(%rsp)
vmovdqa %xmm0, 0x140(%rsp)
vmovdqa 0x150(%rsp), %xmm0
vmovdqa 0x140(%rsp), %xmm1
vaesenc %xmm1, %xmm0, %xmm0
movq -0x68(%rsp), %rax
vmovdqa %xmm0, 0x20(%rax)
movq -0x68(%rsp), %rax
vmovdqa 0x30(%rax), %xmm1
movq -0x70(%rsp), %rax
movl -0x74(%rsp), %ecx
shlq $0x4, %rcx
addq %rcx, %rax
vmovdqa (%rax), %xmm0
vmovdqa %xmm1, 0x130(%rsp)
vmovdqa %xmm0, 0x120(%rsp)
vmovdqa 0x130(%rsp), %xmm0
vmovdqa 0x120(%rsp), %xmm1
vaesenc %xmm1, %xmm0, %xmm0
movq -0x68(%rsp), %rax
vmovdqa %xmm0, 0x30(%rax)
movq -0x68(%rsp), %rax
vmovdqa 0x40(%rax), %xmm1
movq -0x70(%rsp), %rax
movl -0x74(%rsp), %ecx
shlq $0x4, %rcx
addq %rcx, %rax
vmovdqa (%rax), %xmm0
vmovdqa %xmm1, 0x110(%rsp)
vmovdqa %xmm0, 0x100(%rsp)
vmovdqa 0x110(%rsp), %xmm0
vmovdqa 0x100(%rsp), %xmm1
vaesenc %xmm1, %xmm0, %xmm0
movq -0x68(%rsp), %rax
vmovdqa %xmm0, 0x40(%rax)
movq -0x68(%rsp), %rax
vmovdqa 0x50(%rax), %xmm1
movq -0x70(%rsp), %rax
movl -0x74(%rsp), %ecx
shlq $0x4, %rcx
addq %rcx, %rax
vmovdqa (%rax), %xmm0
vmovdqa %xmm1, 0xf0(%rsp)
vmovdqa %xmm0, 0xe0(%rsp)
vmovdqa 0xf0(%rsp), %xmm0
vmovdqa 0xe0(%rsp), %xmm1
vaesenc %xmm1, %xmm0, %xmm0
movq -0x68(%rsp), %rax
vmovdqa %xmm0, 0x50(%rax)
movq -0x68(%rsp), %rax
vmovdqa 0x60(%rax), %xmm1
movq -0x70(%rsp), %rax
movl -0x74(%rsp), %ecx
shlq $0x4, %rcx
addq %rcx, %rax
vmovdqa (%rax), %xmm0
vmovdqa %xmm1, 0xd0(%rsp)
vmovdqa %xmm0, 0xc0(%rsp)
vmovdqa 0xd0(%rsp), %xmm0
vmovdqa 0xc0(%rsp), %xmm1
vaesenc %xmm1, %xmm0, %xmm0
movq -0x68(%rsp), %rax
vmovdqa %xmm0, 0x60(%rax)
movq -0x68(%rsp), %rax
vmovdqa 0x70(%rax), %xmm1
movq -0x70(%rsp), %rax
movl -0x74(%rsp), %ecx
shlq $0x4, %rcx
addq %rcx, %rax
vmovdqa (%rax), %xmm0
vmovdqa %xmm1, 0xb0(%rsp)
vmovdqa %xmm0, 0xa0(%rsp)
vmovdqa 0xb0(%rsp), %xmm0
vmovdqa 0xa0(%rsp), %xmm1
vaesenc %xmm1, %xmm0, %xmm0
movq -0x68(%rsp), %rax
vmovdqa %xmm0, 0x70(%rax)
movl -0x74(%rsp), %eax
addl $0x1, %eax
movl %eax, -0x74(%rsp)
jmp 0x4599
movq -0x68(%rsp), %rax
vmovdqa (%rax), %xmm1
movq -0x70(%rsp), %rax
movl -0x74(%rsp), %ecx
shlq $0x4, %rcx
addq %rcx, %rax
vmovdqa (%rax), %xmm0
vmovdqa %xmm1, 0x290(%rsp)
vmovdqa %xmm0, 0x280(%rsp)
vmovdqa 0x290(%rsp), %xmm0
vmovdqa 0x280(%rsp), %xmm1
vaesenclast %xmm1, %xmm0, %xmm0
movq -0x68(%rsp), %rax
vmovdqa %xmm0, (%rax)
movq -0x68(%rsp), %rax
vmovdqa 0x10(%rax), %xmm1
movq -0x70(%rsp), %rax
movl -0x74(%rsp), %ecx
shlq $0x4, %rcx
addq %rcx, %rax
vmovdqa (%rax), %xmm0
vmovdqa %xmm1, 0x270(%rsp)
vmovdqa %xmm0, 0x260(%rsp)
vmovdqa 0x270(%rsp), %xmm0
vmovdqa 0x260(%rsp), %xmm1
vaesenclast %xmm1, %xmm0, %xmm0
movq -0x68(%rsp), %rax
vmovdqa %xmm0, 0x10(%rax)
movq -0x68(%rsp), %rax
vmovdqa 0x20(%rax), %xmm1
movq -0x70(%rsp), %rax
movl -0x74(%rsp), %ecx
shlq $0x4, %rcx
addq %rcx, %rax
vmovdqa (%rax), %xmm0
vmovdqa %xmm1, 0x250(%rsp)
vmovdqa %xmm0, 0x240(%rsp)
vmovdqa 0x250(%rsp), %xmm0
vmovdqa 0x240(%rsp), %xmm1
vaesenclast %xmm1, %xmm0, %xmm0
movq -0x68(%rsp), %rax
vmovdqa %xmm0, 0x20(%rax)
movq -0x68(%rsp), %rax
vmovdqa 0x30(%rax), %xmm1
movq -0x70(%rsp), %rax
movl -0x74(%rsp), %ecx
shlq $0x4, %rcx
addq %rcx, %rax
vmovdqa (%rax), %xmm0
vmovdqa %xmm1, 0x230(%rsp)
vmovdqa %xmm0, 0x220(%rsp)
vmovdqa 0x230(%rsp), %xmm0
vmovdqa 0x220(%rsp), %xmm1
vaesenclast %xmm1, %xmm0, %xmm0
movq -0x68(%rsp), %rax
vmovdqa %xmm0, 0x30(%rax)
movq -0x68(%rsp), %rax
vmovdqa 0x40(%rax), %xmm1
movq -0x70(%rsp), %rax
movl -0x74(%rsp), %ecx
shlq $0x4, %rcx
addq %rcx, %rax
vmovdqa (%rax), %xmm0
vmovdqa %xmm1, 0x210(%rsp)
vmovdqa %xmm0, 0x200(%rsp)
vmovdqa 0x210(%rsp), %xmm0
vmovdqa 0x200(%rsp), %xmm1
vaesenclast %xmm1, %xmm0, %xmm0
movq -0x68(%rsp), %rax
vmovdqa %xmm0, 0x40(%rax)
movq -0x68(%rsp), %rax
vmovdqa 0x50(%rax), %xmm1
movq -0x70(%rsp), %rax
movl -0x74(%rsp), %ecx
shlq $0x4, %rcx
addq %rcx, %rax
vmovdqa (%rax), %xmm0
vmovdqa %xmm1, 0x1f0(%rsp)
vmovdqa %xmm0, 0x1e0(%rsp)
vmovdqa 0x1f0(%rsp), %xmm0
vmovdqa 0x1e0(%rsp), %xmm1
vaesenclast %xmm1, %xmm0, %xmm0
movq -0x68(%rsp), %rax
vmovdqa %xmm0, 0x50(%rax)
movq -0x68(%rsp), %rax
vmovdqa 0x60(%rax), %xmm1
movq -0x70(%rsp), %rax
movl -0x74(%rsp), %ecx
shlq $0x4, %rcx
addq %rcx, %rax
vmovdqa (%rax), %xmm0
vmovdqa %xmm1, 0x1d0(%rsp)
vmovdqa %xmm0, 0x1c0(%rsp)
vmovdqa 0x1d0(%rsp), %xmm0
vmovdqa 0x1c0(%rsp), %xmm1
vaesenclast %xmm1, %xmm0, %xmm0
movq -0x68(%rsp), %rax
vmovdqa %xmm0, 0x60(%rax)
movq -0x68(%rsp), %rax
vmovdqa 0x70(%rax), %xmm1
movq -0x70(%rsp), %rax
movl -0x74(%rsp), %ecx
shlq $0x4, %rcx
addq %rcx, %rax
vmovdqa (%rax), %xmm0
vmovdqa %xmm1, 0x1b0(%rsp)
vmovdqa %xmm0, 0x1a0(%rsp)
vmovdqa 0x1b0(%rsp), %xmm0
vmovdqa 0x1a0(%rsp), %xmm1
vaesenclast %xmm1, %xmm0, %xmm0
movq -0x68(%rsp), %rax
vmovdqa %xmm0, 0x70(%rax)
addq $0x2a8, %rsp            # imm = 0x2A8
retq
nopl (%rax,%rax)