// File: /workspace/github_c_makefile_star2_O2/mjosaarinen[P]brutus/crypto_aead/aezv4/aesni/encrypt.c
// Function: pass_two
block pass_two(aez_ctx_t *ctx, block s, unsigned bytes, block *dst) {
    block o0, o1, o2, o3, o4, o5, o6, o7, sum=zero, offset;
    block fs[8], tmp[8];
    block I=ctx->I[0], L=ctx->L, J=ctx->J[0];
    block Ifordoubling = double_block(bswap16(ctx->I[2]));  /* I8 */
    offset = bswap16(Ifordoubling);
    while (bytes >= 16*16) {
        o0 = offset;
        o1 = vxor(o0,ctx->I[0]);
        o2 = vxor(o0,ctx->I[1]);
        o3 = vxor(o1,ctx->I[1]);
        o4 = vxor(o0,ctx->I[2]);
        o5 = vxor(o1,ctx->I[2]);
        o6 = vxor(o2,ctx->I[2]);
        o7 = vxor(o3,ctx->I[2]);
        offset = bswap16(Ifordoubling = double_block(Ifordoubling));
        fs[0] = aes4(vxor(s,o0),L,I,J,L); fs[1] = aes4(vxor(s,o1),L,I,J,L);
        fs[2] = aes4(vxor(s,o2),L,I,J,L); fs[3] = aes4(vxor(s,o3),L,I,J,L);
        fs[4] = aes4(vxor(s,o4),L,I,J,L); fs[5] = aes4(vxor(s,o5),L,I,J,L);
        fs[6] = aes4(vxor(s,o6),L,I,J,L); fs[7] = aes4(vxor(s,o7),L,I,J,L);
        tmp[0] = vxor(load(dst+ 0),fs[0]); sum = vxor(sum,tmp[0]);
        store(dst+ 0,vxor(load(dst+ 1),fs[0]));
        tmp[1] = vxor(load(dst+ 2),fs[1]); sum = vxor(sum,tmp[1]);
        store(dst+ 2,vxor(load(dst+ 3),fs[1]));
        tmp[2] = vxor(load(dst+ 4),fs[2]); sum = vxor(sum,tmp[2]);
        store(dst+ 4,vxor(load(dst+ 5),fs[2]));
        tmp[3] = vxor(load(dst+ 6),fs[3]); sum = vxor(sum,tmp[3]);
        store(dst+ 6,vxor(load(dst+ 7),fs[3]));
        tmp[4] = vxor(load(dst+ 8),fs[4]); sum = vxor(sum,tmp[4]);
        store(dst+ 8,vxor(load(dst+ 9),fs[4]));
        tmp[5] = vxor(load(dst+10),fs[5]); sum = vxor(sum,tmp[5]);
        store(dst+10,vxor(load(dst+11),fs[5]));
        tmp[6] = vxor(load(dst+12),fs[6]); sum = vxor(sum,tmp[6]);
        store(dst+12,vxor(load(dst+13),fs[6]));
        tmp[7] = vxor(load(dst+14),fs[7]); sum = vxor(sum,tmp[7]);
        store(dst+14,vxor(load(dst+15),fs[7]));
        store(dst+ 1, aes4(load(dst+ 0), J, I, L, tmp[0]));
        store(dst+ 3, aes4(load(dst+ 2), J, I, L, tmp[1]));
        store(dst+ 5, aes4(load(dst+ 4), J, I, L, tmp[2]));
        store(dst+ 7, aes4(load(dst+ 6), J, I, L, tmp[3]));
        store(dst+ 9, aes4(load(dst+ 8), J, I, L, tmp[4]));
        store(dst+11, aes4(load(dst+10), J, I, L, tmp[5]));
        store(dst+13, aes4(load(dst+12), J, I, L, tmp[6]));
        store(dst+15, aes4(load(dst+14), J, I, L, tmp[7]));
        store(dst+ 0, aes4(vxor(load(dst+ 1),o0), J, I, L, load(dst+ 0)));
        store(dst+ 2, aes4(vxor(load(dst+ 3),o1), J, I, L, load(dst+ 2)));
        store(dst+ 4, aes4(vxor(load(dst+ 5),o2), J, I, L, load(dst+ 4)));
        store(dst+ 6, aes4(vxor(load(dst+ 7),o3), J, I, L, load(dst+ 6)));
        store(dst+ 8, aes4(vxor(load(dst+ 9),o4), J, I, L, load(dst+ 8)));
        store(dst+10, aes4(vxor(load(dst+11),o5), J, I, L, load(dst+10)));
        store(dst+12, aes4(vxor(load(dst+13),o6), J, I, L, load(dst+12)));
        store(dst+14, aes4(vxor(load(dst+15),o7), J, I, L, load(dst+14)));
        bytes -= 16*16; dst += 16;
    }
    if (bytes >= 8*16) {
        o0 = offset;
        o1 = vxor(o0,ctx->I[0]);
        o2 = vxor(o0,ctx->I[1]);
        o3 = vxor(o1,ctx->I[1]);
        offset = vxor(o0,ctx->I[2]);
        fs[0] = aes4(vxor(s,o0),L,I,J,L); fs[1] = aes4(vxor(s,o1),L,I,J,L);
        fs[2] = aes4(vxor(s,o2),L,I,J,L); fs[3] = aes4(vxor(s,o3),L,I,J,L);
        tmp[0] = vxor(load(dst+ 0),fs[0]); sum = vxor(sum,tmp[0]);
        store(dst+ 0,vxor(load(dst+ 1),fs[0]));
        tmp[1] = vxor(load(dst+ 2),fs[1]); sum = vxor(sum,tmp[1]);
        store(dst+ 2,vxor(load(dst+ 3),fs[1]));
        tmp[2] = vxor(load(dst+ 4),fs[2]); sum = vxor(sum,tmp[2]);
        store(dst+ 4,vxor(load(dst+ 5),fs[2]));
        tmp[3] = vxor(load(dst+ 6),fs[3]); sum = vxor(sum,tmp[3]);
        store(dst+ 6,vxor(load(dst+ 7),fs[3]));
        store(dst+ 1, aes4(load(dst+ 0), J, I, L, tmp[0]));
        store(dst+ 3, aes4(load(dst+ 2), J, I, L, tmp[1]));
        store(dst+ 5, aes4(load(dst+ 4), J, I, L, tmp[2]));
        store(dst+ 7, aes4(load(dst+ 6), J, I, L, tmp[3]));
        store(dst+ 0, aes4(vxor(load(dst+ 1),o0), J, I, L, load(dst+ 0)));
        store(dst+ 2, aes4(vxor(load(dst+ 3),o1), J, I, L, load(dst+ 2)));
        store(dst+ 4, aes4(vxor(load(dst+ 5),o2), J, I, L, load(dst+ 4)));
        store(dst+ 6, aes4(vxor(load(dst+ 7),o3), J, I, L, load(dst+ 6)));
        bytes -= 8*16; dst += 8;
    }
    if (bytes >= 4*16) {
        o0 = offset;
        o1 = vxor(o0,ctx->I[0]);
        offset = vxor(o0,ctx->I[1]);
        fs[0] = aes4(vxor(s,o0),L,I,J,L); fs[1] = aes4(vxor(s,o1),L,I,J,L);
        tmp[0] = vxor(load(dst+ 0),fs[0]); sum = vxor(sum,tmp[0]);
        store(dst+ 0,vxor(load(dst+ 1),fs[0]));
        tmp[1] = vxor(load(dst+ 2),fs[1]); sum = vxor(sum,tmp[1]);
        store(dst+ 2,vxor(load(dst+ 3),fs[1]));
        store(dst+ 1, aes4(load(dst+ 0), J, I, L, tmp[0]));
        store(dst+ 3, aes4(load(dst+ 2), J, I, L, tmp[1]));
        store(dst+ 0, aes4(vxor(load(dst+ 1),o0), J, I, L, load(dst+ 0)));
        store(dst+ 2, aes4(vxor(load(dst+ 3),o1), J, I, L, load(dst+ 2)));
        bytes -= 4*16; dst += 4;
    }
    if (bytes) {
        o0 = offset;
        fs[0] = aes4(vxor(s,o0),L,I,J,L);
        tmp[0] = vxor(load(dst+ 0),fs[0]); sum = vxor(sum,tmp[0]);
        store(dst+ 0,vxor(load(dst+ 1),fs[0]));
        store(dst+ 1, aes4(load(dst+ 0), J, I, L, tmp[0]));
        store(dst+ 0, aes4(vxor(load(dst+ 1),o0), J, I, L, load(dst+ 0)));
    }
    return sum;
}

// Assembly:
vmovaps (%rdi), %xmm1
vmovaps %xmm1, -0x58(%rsp)
vmovdqa 0x20(%rdi), %xmm1
vmovaps 0x30(%rdi), %xmm2
vmovaps %xmm2, -0x68(%rsp)
vmovdqa64 %xmm0, %xmm21
vmovdqa 0x60(%rdi), %xmm4
vmovdqa 0x229b(%rip), %xmm0     # 0x4000
vpshufb %xmm0, %xmm1, %xmm1
vpshufd $0x93, %xmm1, %xmm5     # xmm5 = xmm1[3,0,1,2]
vpsrad $0x1f, %xmm5, %xmm5
vpaddd %xmm1, %xmm1, %xmm26
vpternlogd $0x78, 0x229b(%rip), %xmm5, %xmm26 # 0x4020
vpshufb %xmm0, %xmm26, %xmm23
subq $-0x80, %rdx
vpxord %xmm22, %xmm22, %xmm22
vmovdqa -0x58(%rsp), %xmm3
vmovdqa -0x68(%rsp), %xmm2
vpxorq %xmm21, %xmm23, %xmm0
cmpl $0x100, %esi            # imm = 0x100
jb 0x218e
vpxorq (%rdi), %xmm23, %xmm27
vmovdqa 0x10(%rdi), %xmm1
vmovdqa 0x20(%rdi), %xmm5
vpxorq %xmm23, %xmm1, %xmm25
vpxorq %xmm1, %xmm27, %xmm24
vpxorq %xmm23, %xmm5, %xmm7
vmovdqa %xmm7, -0x48(%rsp)
vpxorq %xmm27, %xmm5, %xmm8
vmovdqa %xmm8, -0x38(%rsp)
vpxorq %xmm5, %xmm25, %xmm12
vmovdqa %xmm12, -0x28(%rsp)
vpxorq %xmm5, %xmm24, %xmm11
vmovdqa %xmm11, -0x18(%rsp)
vaesenc %xmm4, %xmm0, %xmm0
vaesenc %xmm3, %xmm0, %xmm0
vaesenc %xmm2, %xmm0, %xmm0
vaesenc %xmm4, %xmm0, %xmm0
vpxorq %xmm21, %xmm27, %xmm1
vaesenc %xmm4, %xmm1, %xmm1
vaesenc %xmm3, %xmm1, %xmm1
vaesenc %xmm2, %xmm1, %xmm1
vaesenc %xmm4, %xmm1, %xmm1
vpxorq %xmm21, %xmm25, %xmm5
vaesenc %xmm4, %xmm5, %xmm5
vaesenc %xmm3, %xmm5, %xmm5
vaesenc %xmm2, %xmm5, %xmm5
vaesenc %xmm4, %xmm5, %xmm5
vpxorq %xmm21, %xmm24, %xmm6
vaesenc %xmm4, %xmm6, %xmm6
vaesenc %xmm3, %xmm6, %xmm6
vaesenc %xmm2, %xmm6, %xmm6
vaesenc %xmm4, %xmm6, %xmm6
vpxorq %xmm21, %xmm7, %xmm7
vaesenc %xmm4, %xmm7, %xmm7
vaesenc %xmm3, %xmm7, %xmm7
vaesenc %xmm2, %xmm7, %xmm7
vaesenc %xmm4, %xmm7, %xmm9
vpxorq %xmm21, %xmm8, %xmm8
vaesenc %xmm4, %xmm8, %xmm8
vaesenc %xmm3, %xmm8, %xmm8
vaesenc %xmm2, %xmm8, %xmm8
vaesenc %xmm4, %xmm8, %xmm10
vpxorq %xmm21, %xmm12, %xmm8
vaesenc %xmm4, %xmm8, %xmm8
vaesenc %xmm3, %xmm8, %xmm8
vaesenc %xmm2, %xmm8, %xmm8
vaesenc %xmm4, %xmm8, %xmm14
vpxorq %xmm21, %xmm11, %xmm8
vaesenc %xmm4, %xmm8, %xmm8
vaesenc %xmm3, %xmm8, %xmm8
vaesenc %xmm2, %xmm8, %xmm8
vpxor -0x80(%rdx), %xmm0, %xmm15
vpxor -0x70(%rdx), %xmm0, %xmm7
vaesenc %xmm4, %xmm8, %xmm0
vmovdqa64 %xmm0, %xmm19
vpxor -0x60(%rdx), %xmm1, %xmm8
vpternlogq $0x96, %xmm8, %xmm15, %xmm22
vpxor -0x50(%rdx), %xmm1, %xmm0
vpxor -0x40(%rdx), %xmm5, %xmm11
vpxor -0x30(%rdx), %xmm5, %xmm1
vpxor -0x20(%rdx), %xmm6, %xmm12
vpxor -0x10(%rdx), %xmm6, %xmm5
vpxor (%rdx), %xmm9, %xmm13
vpxor 0x10(%rdx), %xmm9, %xmm9
vpternlogq $0x96, %xmm11, %xmm12, %xmm22
vpxorq 0x20(%rdx), %xmm10, %xmm20
vpternlogq $0x96, %xmm13, %xmm20, %xmm22
vpxor 0x30(%rdx), %xmm10, %xmm10
vpxorq 0x40(%rdx), %xmm14, %xmm31
vpxor 0x50(%rdx), %xmm14, %xmm14
vaesenc %xmm2, %xmm7, %xmm6
vmovdqa64 %xmm7, %xmm28
vaesenc %xmm3, %xmm6, %xmm6
vaesenc %xmm4, %xmm6, %xmm6
vaesenc %xmm15, %xmm6, %xmm6
vaesenc %xmm2, %xmm0, %xmm7
vmovdqa64 %xmm0, %xmm30
vaesenc %xmm3, %xmm7, %xmm7
vaesenc %xmm4, %xmm7, %xmm7
vaesenc %xmm8, %xmm7, %xmm7
vaesenc %xmm2, %xmm1, %xmm0
vmovdqa64 %xmm1, %xmm29
vaesenc %xmm3, %xmm0, %xmm0
vaesenc %xmm4, %xmm0, %xmm0
vaesenc %xmm11, %xmm0, %xmm8
vaesenc %xmm2, %xmm5, %xmm0
vmovdqa64 %xmm5, %xmm17
vaesenc %xmm3, %xmm0, %xmm0
vaesenc %xmm4, %xmm0, %xmm0
vaesenc %xmm12, %xmm0, %xmm15
vaesenc %xmm2, %xmm9, %xmm0
vmovdqa64 %xmm9, %xmm16
vaesenc %xmm3, %xmm0, %xmm0
vaesenc %xmm4, %xmm0, %xmm0
vaesenc %xmm13, %xmm0, %xmm11
vaesenc %xmm2, %xmm10, %xmm0
vmovdqa64 %xmm10, %xmm18
vaesenc %xmm3, %xmm0, %xmm0
vaesenc %xmm4, %xmm0, %xmm0
vmovdqa64 %xmm20, %xmm1
vaesenc %xmm1, %xmm0, %xmm9
vpxorq 0x60(%rdx), %xmm19, %xmm1
vpxorq 0x70(%rdx), %xmm19, %xmm13
vmovdqu %xmm6, -0x70(%rdx)
vmovdqu %xmm7, -0x50(%rdx)
vmovdqu %xmm8, -0x30(%rdx)
vmovdqu %xmm15, -0x10(%rdx)
vmovdqu %xmm11, 0x10(%rdx)
vmovdqu %xmm9, 0x30(%rdx)
vaesenc %xmm2, %xmm14, %xmm0
vaesenc %xmm3, %xmm0, %xmm0
vaesenc %xmm4, %xmm0, %xmm0
vmovdqa64 %xmm31, %xmm10
vaesenc %xmm10, %xmm0, %xmm5
vmovdqu %xmm5, 0x50(%rdx)
vpxorq %xmm23, %xmm6, %xmm6
vaesenc %xmm2, %xmm13, %xmm0
vaesenc %xmm3, %xmm0, %xmm0
vaesenc %xmm4, %xmm0, %xmm0
vaesenc %xmm1, %xmm0, %xmm0
vmovdqu %xmm0, 0x70(%rdx)
vaesenc %xmm2, %xmm6, %xmm6
vaesenc %xmm3, %xmm6, %xmm6
vaesenc %xmm4, %xmm6, %xmm6
vmovdqa64 %xmm28, %xmm12
vaesenc %xmm12, %xmm6, %xmm6
vmovdqu %xmm6, -0x80(%rdx)
vpxorq %xmm27, %xmm7, %xmm6
vaesenc %xmm2, %xmm6, %xmm6
vaesenc %xmm3, %xmm6, %xmm6
vaesenc %xmm4, %xmm6, %xmm6
vmovdqa64 %xmm30, %xmm7
vaesenc %xmm7, %xmm6, %xmm6
vmovdqu %xmm6, -0x60(%rdx)
vpxorq %xmm25, %xmm8, %xmm6
vaesenc %xmm2, %xmm6, %xmm6
vaesenc %xmm3, %xmm6, %xmm6
vaesenc %xmm4, %xmm6, %xmm6
vmovdqa64 %xmm29, %xmm7
vaesenc %xmm7, %xmm6, %xmm6
vmovdqu %xmm6, -0x40(%rdx)
vpxorq %xmm24, %xmm15, %xmm6
vaesenc %xmm2, %xmm6, %xmm6
vaesenc %xmm3, %xmm6, %xmm6
vaesenc %xmm4, %xmm6, %xmm6
vmovdqa64 %xmm17, %xmm7
vaesenc %xmm7, %xmm6, %xmm6
vmovdqu %xmm6, -0x20(%rdx)
vpternlogq $0x96, %xmm31, %xmm1, %xmm22
vpxor -0x48(%rsp), %xmm11, %xmm1
vaesenc %xmm2, %xmm1, %xmm1
vaesenc %xmm3, %xmm1, %xmm1
vaesenc %xmm4, %xmm1, %xmm1
vmovdqa64 %xmm16, %xmm6
vaesenc %xmm6, %xmm1, %xmm1
vmovdqu %xmm1, (%rdx)
vpxor -0x38(%rsp), %xmm9, %xmm1
vaesenc %xmm2, %xmm1, %xmm1
vaesenc %xmm3, %xmm1, %xmm1
vaesenc %xmm4, %xmm1, %xmm1
vmovdqa64 %xmm18, %xmm6
vaesenc %xmm6, %xmm1, %xmm1
vmovdqu %xmm1, 0x20(%rdx)
vpxor -0x28(%rsp), %xmm5, %xmm1
vaesenc %xmm2, %xmm1, %xmm1
vaesenc %xmm3, %xmm1, %xmm1
vaesenc %xmm4, %xmm1, %xmm1
vaesenc %xmm14, %xmm1, %xmm1
vmovdqu %xmm1, 0x40(%rdx)
vpxor -0x18(%rsp), %xmm0, %xmm0
vaesenc %xmm2, %xmm0, %xmm0
vaesenc %xmm3, %xmm0, %xmm0
vaesenc %xmm4, %xmm0, %xmm0
vaesenc %xmm13, %xmm0, %xmm0
vmovdqu %xmm0, 0x60(%rdx)
vpshufd $0x93, %xmm26, %xmm0    # xmm0 = xmm26[3,0,1,2]
vpsrad $0x1f, %xmm0, %xmm0
vpaddd %xmm26, %xmm26, %xmm26
vpternlogd $0x78, 0x1eae(%rip), %xmm0, %xmm26 # 0x4020
vpshufb 0x1e84(%rip), %xmm26, %xmm23 # 0x4000
addl $0xffffff00, %esi       # imm = 0xFFFFFF00
addq $0x100, %rdx            # imm = 0x100
jmp 0x1da1
cmpl $0x80, %esi
jb 0x233a
vpxorq (%rdi), %xmm23, %xmm7
vmovdqa 0x10(%rdi), %xmm9
vpxorq %xmm23, %xmm9, %xmm6
vaesenc %xmm4, %xmm0, %xmm0
vmovdqa -0x58(%rsp), %xmm2
vaesenc %xmm2, %xmm0, %xmm0
vmovdqa -0x68(%rsp), %xmm3
vaesenc %xmm3, %xmm0, %xmm0
vaesenc %xmm4, %xmm0, %xmm0
vpxor -0x80(%rdx), %xmm0, %xmm5
vpxor -0x70(%rdx), %xmm0, %xmm1
vaesenc %xmm3, %xmm1, %xmm0
vaesenc %xmm2, %xmm0, %xmm0
vaesenc %xmm4, %xmm0, %xmm0
vaesenc %xmm5, %xmm0, %xmm0
vpxorq %xmm23, %xmm0, %xmm8
vpxorq 0x20(%rdi), %xmm23, %xmm23
vpxor %xmm7, %xmm9, %xmm10
vpxorq %xmm21, %xmm7, %xmm9
vaesenc %xmm4, %xmm9, %xmm9
vaesenc %xmm2, %xmm9, %xmm9
vaesenc %xmm3, %xmm9, %xmm9
vaesenc %xmm4, %xmm9, %xmm9
vpxorq %xmm21, %xmm6, %xmm11
vaesenc %xmm4, %xmm11, %xmm11
vaesenc %xmm2, %xmm11, %xmm11
vaesenc %xmm3, %xmm11, %xmm11
vaesenc %xmm4, %xmm11, %xmm11
vpxorq %xmm21, %xmm10, %xmm12
vaesenc %xmm4, %xmm12, %xmm12
vaesenc %xmm2, %xmm12, %xmm12
vaesenc %xmm3, %xmm12, %xmm12
vaesenc %xmm4, %xmm12, %xmm12
vpxor -0x60(%rdx), %xmm9, %xmm13
vpxor -0x50(%rdx), %xmm9, %xmm14
vpxor -0x40(%rdx), %xmm11, %xmm15
vpxor -0x30(%rdx), %xmm11, %xmm9
vpternlogq $0x96, %xmm13, %xmm5, %xmm22
vpxor -0x20(%rdx), %xmm12, %xmm11
vpternlogq $0x96, %xmm15, %xmm11, %xmm22
vpxor -0x10(%rdx), %xmm12, %xmm5
vmovdqu %xmm0, -0x70(%rdx)
vaesenc %xmm3, %xmm14, %xmm0
vaesenc %xmm2, %xmm0, %xmm0
vaesenc %xmm4, %xmm0, %xmm0
vaesenc %xmm13, %xmm0, %xmm0
vmovdqu %xmm0, -0x50(%rdx)
vaesenc %xmm3, %xmm9, %xmm12
vaesenc %xmm2, %xmm12, %xmm12
vaesenc %xmm4, %xmm12, %xmm12
vaesenc %xmm15, %xmm12, %xmm12
vmovdqu %xmm12, -0x30(%rdx)
vaesenc %xmm3, %xmm5, %xmm13
vaesenc %xmm2, %xmm13, %xmm13
vaesenc %xmm4, %xmm13, %xmm13
vaesenc %xmm11, %xmm13, %xmm11
vmovdqu %xmm11, -0x10(%rdx)
vaesenc %xmm3, %xmm8, %xmm8
vaesenc %xmm2, %xmm8, %xmm8
vaesenc %xmm4, %xmm8, %xmm8
vaesenc %xmm1, %xmm8, %xmm1
vmovdqu %xmm1, -0x80(%rdx)
vpxor %xmm7, %xmm0, %xmm0
vaesenc %xmm3, %xmm0, %xmm0
vaesenc %xmm2, %xmm0, %xmm0
vaesenc %xmm4, %xmm0, %xmm0
vaesenc %xmm14, %xmm0, %xmm0
vmovdqu %xmm0, -0x60(%rdx)
vpxor %xmm6, %xmm12, %xmm0
vaesenc %xmm3, %xmm0, %xmm0
vaesenc %xmm2, %xmm0, %xmm0
vaesenc %xmm4, %xmm0, %xmm0
vaesenc %xmm9, %xmm0, %xmm0
vmovdqu %xmm0, -0x40(%rdx)
vpxor %xmm10, %xmm11, %xmm0
vaesenc %xmm3, %xmm0, %xmm0
vaesenc %xmm2, %xmm0, %xmm0
vaesenc %xmm4, %xmm0, %xmm0
vaesenc %xmm5, %xmm0, %xmm0
vmovdqu %xmm0, -0x20(%rdx)
addl $-0x80, %esi
jmp 0x233e
addq $-0x80, %rdx
cmpl $0x40, %esi
jb 0x2422
vpxorq (%rdi), %xmm23, %xmm1
vpxorq %xmm21, %xmm23, %xmm0
vaesenc %xmm4, %xmm0, %xmm0
vmovdqa -0x58(%rsp), %xmm2
vaesenc %xmm2, %xmm0, %xmm0
vmovdqa -0x68(%rsp), %xmm3
vaesenc %xmm3, %xmm0, %xmm0
vaesenc %xmm4, %xmm0, %xmm0
vpxor (%rdx), %xmm0, %xmm5
vpxor 0x10(%rdx), %xmm0, %xmm0
vaesenc %xmm3, %xmm0, %xmm6
vaesenc %xmm2, %xmm6, %xmm6
vaesenc %xmm4, %xmm6, %xmm6
vaesenc %xmm5, %xmm6, %xmm6
vpxorq %xmm23, %xmm6, %xmm7
vpxorq 0x10(%rdi), %xmm23, %xmm23
vpxorq %xmm21, %xmm1, %xmm8
vaesenc %xmm4, %xmm8, %xmm8
vaesenc %xmm2, %xmm8, %xmm8
vaesenc %xmm3, %xmm8, %xmm8
vaesenc %xmm4, %xmm8, %xmm8
vpxor 0x20(%rdx), %xmm8, %xmm9
vpxor 0x30(%rdx), %xmm8, %xmm8
vpternlogq $0x96, %xmm9, %xmm5, %xmm22
vmovdqu %xmm6, 0x10(%rdx)
vaesenc %xmm3, %xmm8, %xmm5
vaesenc %xmm2, %xmm5, %xmm5
vaesenc %xmm4, %xmm5, %xmm5
vaesenc %xmm9, %xmm5, %xmm5
vmovdqu %xmm5, 0x30(%rdx)
vaesenc %xmm3, %xmm7, %xmm6
vaesenc %xmm2, %xmm6, %xmm6
vaesenc %xmm4, %xmm6, %xmm6
vaesenc %xmm0, %xmm6, %xmm0
vmovdqu %xmm0, (%rdx)
vpxor %xmm1, %xmm5, %xmm0
vaesenc %xmm3, %xmm0, %xmm0
vaesenc %xmm2, %xmm0, %xmm0
vaesenc %xmm4, %xmm0, %xmm0
vaesenc %xmm8, %xmm0, %xmm0
vmovdqu %xmm0, 0x20(%rdx)
addl $-0x40, %esi
addq $0x40, %rdx
testl %esi, %esi
je 0x2492
vpxorq %xmm21, %xmm23, %xmm0
vaesenc %xmm4, %xmm0, %xmm0
vmovdqa -0x58(%rsp), %xmm2
vaesenc %xmm2, %xmm0, %xmm0
vmovdqa -0x68(%rsp), %xmm3
vaesenc %xmm3, %xmm0, %xmm0
vaesenc %xmm4, %xmm0, %xmm0
vpxor (%rdx), %xmm0, %xmm1
vpxorq %xmm22, %xmm1, %xmm22
vpxor 0x10(%rdx), %xmm0, %xmm0
vaesenc %xmm3, %xmm0, %xmm5
vaesenc %xmm2, %xmm5, %xmm5
vaesenc %xmm4, %xmm5, %xmm5
vaesenc %xmm1, %xmm5, %xmm1
vmovdqu %xmm1, 0x10(%rdx)
vpxorq %xmm23, %xmm1, %xmm1
vaesenc %xmm3, %xmm1, %xmm1
vaesenc %xmm2, %xmm1, %xmm1
vaesenc %xmm4, %xmm1, %xmm1
vaesenc %xmm0, %xmm1, %xmm0
vmovdqu %xmm0, (%rdx)
vmovdqa64 %xmm22, %xmm0
retq