// File: /workspace/github_c_makefile_star2_O1/mjosaarinen[P]brutus/crypto_aead/aes128poetv2aes128ni/ref/poet.c
// Function: process_header
void process_header(poet_ctx_t *ctx,
                    const unsigned char *header,
                    unsigned long long header_len)
{
    __m128i l = ctx->l;
    __m128i sum = encode_parameters(NUM_BLOCKS_PER_PART, INTERMEDIATE_TAGLEN);
    sum = aes_encrypt(vxor(sum, l), ctx->aes_enc);
    l = double_block(l);

    while (header_len >= 8 * BLOCKLEN) {
        sum = vxor(sum, aes_encrypt(vxor(load(header     ), l), ctx->aes_enc));
        l = double_block(l);
        sum = vxor(sum, aes_encrypt(vxor(load(header + 16), l), ctx->aes_enc));
        l = double_block(l);
        sum = vxor(sum, aes_encrypt(vxor(load(header + 32), l), ctx->aes_enc));
        l = double_block(l);
        sum = vxor(sum, aes_encrypt(vxor(load(header + 48), l), ctx->aes_enc));
        l = double_block(l);
        sum = vxor(sum, aes_encrypt(vxor(load(header + 64), l), ctx->aes_enc));
        l = double_block(l);
        sum = vxor(sum, aes_encrypt(vxor(load(header + 80), l), ctx->aes_enc));
        l = double_block(l);
        sum = vxor(sum, aes_encrypt(vxor(load(header + 96), l), ctx->aes_enc));
        l = double_block(l);
        sum = vxor(sum, aes_encrypt(vxor(load(header + 112), l), ctx->aes_enc));
        l = double_block(l);
        header_len -= 8 * BLOCKLEN;
        header += 8 * BLOCKLEN;
    }

    if (header_len >= 4 * BLOCKLEN) {
        sum = vxor(sum, aes_encrypt(vxor(load(header     ), l), ctx->aes_enc));
        l = double_block(l);
        sum = vxor(sum, aes_encrypt(vxor(load(header + 16), l), ctx->aes_enc));
        l = double_block(l);
        sum = vxor(sum, aes_encrypt(vxor(load(header + 32), l), ctx->aes_enc));
        l = double_block(l);
        sum = vxor(sum, aes_encrypt(vxor(load(header + 48), l), ctx->aes_enc));
        l = double_block(l);
        header_len -= 4 * BLOCKLEN;
        header += 4 * BLOCKLEN;
    }

    if (header_len >= 2 * BLOCKLEN) {
        sum = vxor(sum, aes_encrypt(vxor(load(header     ), l), ctx->aes_enc));
        l = double_block(l);
        sum = vxor(sum, aes_encrypt(vxor(load(header + 16), l), ctx->aes_enc));
        l = double_block(l);
        header_len -= 2 * BLOCKLEN;
        header += 2 * BLOCKLEN;
    }

    if (header_len >= BLOCKLEN) {
        sum = vxor(aes_encrypt(vxor(load(header), l), ctx->aes_enc), sum);
        l = double_block(l);
        header_len -= BLOCKLEN;
        header += BLOCKLEN;
    }

    __m128i tmp = one_zero_pad(
        load_n_bytes(header, header_len), BLOCKLEN - header_len
    );
    sum = vxor(aes_encrypt(vxor(l, tmp), ctx->aes_enc), sum);

    ctx->tau = aes_encrypt(sum, ctx->aes_enc);
    ctx->x = ctx->tau;
    ctx->y = vxor(ctx->tau, one);
}

// Assembly:
pushq %r15
pushq %r14
pushq %rbx
subq $0x150, %rsp            # imm = 0x150
movq %rdi, %rbx
vmovdqa 0x210(%rdi), %xmm0
vmovdqa (%rdi), %xmm1
vmovdqa 0x10(%rdi), %xmm2
movq %rdx, %r14
movq %rsi, %r15
vmovdqa 0x20(%rdi), %xmm3
vmovdqa 0x30(%rdi), %xmm4
vmovdqa %xmm1, 0xa0(%rsp)
vpxor %xmm0, %xmm1, %xmm1
vmovdqa %xmm2, 0x90(%rsp)
vaesenc %xmm2, %xmm1, %xmm1
vmovdqa %xmm3, 0x80(%rsp)
vaesenc %xmm3, %xmm1, %xmm1
vmovdqa %xmm4, 0x70(%rsp)
vaesenc %xmm4, %xmm1, %xmm1
vmovdqa 0x40(%rdi), %xmm2
vmovdqa %xmm2, 0x60(%rsp)
vaesenc %xmm2, %xmm1, %xmm1
vmovdqa 0x50(%rdi), %xmm2
vmovdqa %xmm2, 0x50(%rsp)
vaesenc %xmm2, %xmm1, %xmm1
vmovdqa 0x60(%rdi), %xmm2
vmovdqa %xmm2, 0x40(%rsp)
vaesenc %xmm2, %xmm1, %xmm1
vmovdqa 0x70(%rdi), %xmm2
vmovdqa %xmm2, 0x30(%rsp)
vaesenc %xmm2, %xmm1, %xmm1
vmovdqa 0x80(%rdi), %xmm2
vmovdqa %xmm2, 0x20(%rsp)
vaesenc %xmm2, %xmm1, %xmm1
vmovdqa 0x90(%rdi), %xmm2
vmovdqa %xmm2, 0x10(%rsp)
vaesenc %xmm2, %xmm1, %xmm1
vmovdqa 0xa0(%rdi), %xmm2
vmovdqa %xmm2, (%rsp)
vaesenclast %xmm2, %xmm1, %xmm1
vmovdqa %xmm1, 0xd0(%rsp)
callq 0x3675
vpshufd $0x93, %xmm0, %xmm1     # xmm1 = xmm0[3,0,1,2]
vpsrad $0x1f, %xmm1, %xmm1
vpaddd %xmm0, %xmm0, %xmm0
vpternlogd $0x78, 0x2b61(%rip), %xmm1, %xmm0 # 0x4000
callq 0x3675
cmpq $0x80, %r14
jb 0x1954
vpshufd $0x93, 0x2b56(%rip), %xmm1 # xmm1 = mem[3,0,1,2]
vmovdqa %xmm1, 0xb0(%rsp)
vmovdqa (%r15), %xmm1
vpternlogq $0x96, 0xa0(%rsp), %xmm0, %xmm1
vaesenc 0x90(%rsp), %xmm1, %xmm1
vaesenc 0x80(%rsp), %xmm1, %xmm1
vaesenc 0x70(%rsp), %xmm1, %xmm1
vaesenc 0x60(%rsp), %xmm1, %xmm1
vaesenc 0x50(%rsp), %xmm1, %xmm1
vaesenc 0x40(%rsp), %xmm1, %xmm1
vaesenc 0x30(%rsp), %xmm1, %xmm1
vaesenc 0x20(%rsp), %xmm1, %xmm1
vaesenc 0x10(%rsp), %xmm1, %xmm1
vaesenclast (%rsp), %xmm1, %xmm1
vmovdqa %xmm1, 0xf0(%rsp)
callq 0x3675
vpshufd $0x93, %xmm0, %xmm1     # xmm1 = xmm0[3,0,1,2]
vpsrad $0x1f, %xmm1, %xmm1
vpaddd %xmm0, %xmm0, %xmm0
vpternlogd $0x78, 0xb0(%rsp), %xmm1, %xmm0
callq 0x3675
vmovdqa 0x10(%r15), %xmm1
vpternlogq $0x96, 0xa0(%rsp), %xmm0, %xmm1
vaesenc 0x90(%rsp), %xmm1, %xmm1
vaesenc 0x80(%rsp), %xmm1, %xmm1
vaesenc 0x70(%rsp), %xmm1, %xmm1
vaesenc 0x60(%rsp), %xmm1, %xmm1
vaesenc 0x50(%rsp), %xmm1, %xmm1
vaesenc 0x40(%rsp), %xmm1, %xmm1
vaesenc 0x30(%rsp), %xmm1, %xmm1
vaesenc 0x20(%rsp), %xmm1, %xmm1
vaesenc 0x10(%rsp), %xmm1, %xmm1
vaesenclast (%rsp), %xmm1, %xmm1
vmovdqa %xmm1, 0xc0(%rsp)
callq 0x3675
vpshufd $0x93, %xmm0, %xmm1     # xmm1 = xmm0[3,0,1,2]
vpsrad $0x1f, %xmm1, %xmm1
vpaddd %xmm0, %xmm0, %xmm0
vpternlogd $0x78, 0xb0(%rsp), %xmm1, %xmm0
callq 0x3675
vmovdqa 0x20(%r15), %xmm1
vpternlogq $0x96, 0xa0(%rsp), %xmm0, %xmm1
vaesenc 0x90(%rsp), %xmm1, %xmm1
vaesenc 0x80(%rsp), %xmm1, %xmm1
vaesenc 0x70(%rsp), %xmm1, %xmm1
vaesenc 0x60(%rsp), %xmm1, %xmm1
vaesenc 0x50(%rsp), %xmm1, %xmm1
vaesenc 0x40(%rsp), %xmm1, %xmm1
vaesenc 0x30(%rsp), %xmm1, %xmm1
vaesenc 0x20(%rsp), %xmm1, %xmm1
vaesenc 0x10(%rsp), %xmm1, %xmm1
vaesenclast (%rsp), %xmm1, %xmm1
vmovdqa %xmm1, 0xe0(%rsp)
callq 0x3675
vpshufd $0x93, %xmm0, %xmm1     # xmm1 = xmm0[3,0,1,2]
vpsrad $0x1f, %xmm1, %xmm1
vpaddd %xmm0, %xmm0, %xmm0
vpternlogd $0x78, 0xb0(%rsp), %xmm1, %xmm0
callq 0x3675
vmovdqa 0x30(%r15), %xmm1
vpternlogq $0x96, 0xa0(%rsp), %xmm0, %xmm1
vaesenc 0x90(%rsp), %xmm1, %xmm1
vaesenc 0x80(%rsp), %xmm1, %xmm1
vaesenc 0x70(%rsp), %xmm1, %xmm1
vaesenc 0x60(%rsp), %xmm1, %xmm1
vaesenc 0x50(%rsp), %xmm1, %xmm1
vaesenc 0x40(%rsp), %xmm1, %xmm1
vaesenc 0x30(%rsp), %xmm1, %xmm1
vaesenc 0x20(%rsp), %xmm1, %xmm1
vaesenc 0x10(%rsp), %xmm1, %xmm1
vaesenclast (%rsp), %xmm1, %xmm1
vmovdqa %xmm1, 0x130(%rsp)
callq 0x3675
vpshufd $0x93, %xmm0, %xmm1     # xmm1 = xmm0[3,0,1,2]
vpsrad $0x1f, %xmm1, %xmm1
vpaddd %xmm0, %xmm0, %xmm0
vpternlogd $0x78, 0xb0(%rsp), %xmm1, %xmm0
callq 0x3675
vmovdqa 0x40(%r15), %xmm1
vpternlogq $0x96, 0xa0(%rsp), %xmm0, %xmm1
vaesenc 0x90(%rsp), %xmm1, %xmm1
vaesenc 0x80(%rsp), %xmm1, %xmm1
vaesenc 0x70(%rsp), %xmm1, %xmm1
vaesenc 0x60(%rsp), %xmm1, %xmm1
vaesenc 0x50(%rsp), %xmm1, %xmm1
vaesenc 0x40(%rsp), %xmm1, %xmm1
vaesenc 0x30(%rsp), %xmm1, %xmm1
vaesenc 0x20(%rsp), %xmm1, %xmm1
vaesenc 0x10(%rsp), %xmm1, %xmm1
vaesenclast (%rsp), %xmm1, %xmm1
vmovdqa %xmm1, 0x120(%rsp)
callq 0x3675
vpshufd $0x93, %xmm0, %xmm1     # xmm1 = xmm0[3,0,1,2]
vpsrad $0x1f, %xmm1, %xmm1
vpaddd %xmm0, %xmm0, %xmm0
vpternlogd $0x78, 0xb0(%rsp), %xmm1, %xmm0
callq 0x3675
vmovdqa 0x50(%r15), %xmm1
vpternlogq $0x96, 0xa0(%rsp), %xmm0, %xmm1
vaesenc 0x90(%rsp), %xmm1, %xmm1
vaesenc 0x80(%rsp), %xmm1, %xmm1
vaesenc 0x70(%rsp), %xmm1, %xmm1
vaesenc 0x60(%rsp), %xmm1, %xmm1
vaesenc 0x50(%rsp), %xmm1, %xmm1
vaesenc 0x40(%rsp), %xmm1, %xmm1
vaesenc 0x30(%rsp), %xmm1, %xmm1
vaesenc 0x20(%rsp), %xmm1, %xmm1
vaesenc 0x10(%rsp), %xmm1, %xmm1
vaesenclast (%rsp), %xmm1, %xmm1
vmovdqa %xmm1, 0x110(%rsp)
callq 0x3675
vpshufd $0x93, %xmm0, %xmm1     # xmm1 = xmm0[3,0,1,2]
vpsrad $0x1f, %xmm1, %xmm1
vpaddd %xmm0, %xmm0, %xmm0
vpternlogd $0x78, 0xb0(%rsp), %xmm1, %xmm0
callq 0x3675
vmovdqa 0x60(%r15), %xmm1
vpternlogq $0x96, 0xa0(%rsp), %xmm0, %xmm1
vaesenc 0x90(%rsp), %xmm1, %xmm1
vaesenc 0x80(%rsp), %xmm1, %xmm1
vaesenc 0x70(%rsp), %xmm1, %xmm1
vaesenc 0x60(%rsp), %xmm1, %xmm1
vaesenc 0x50(%rsp), %xmm1, %xmm1
vaesenc 0x40(%rsp), %xmm1, %xmm1
vaesenc 0x30(%rsp), %xmm1, %xmm1
vaesenc 0x20(%rsp), %xmm1, %xmm1
vaesenc 0x10(%rsp), %xmm1, %xmm1
vaesenclast (%rsp), %xmm1, %xmm1
vmovdqa %xmm1, 0x100(%rsp)
callq 0x3675
vpshufd $0x93, %xmm0, %xmm1     # xmm1 = xmm0[3,0,1,2]
vpsrad $0x1f, %xmm1, %xmm1
vpaddd %xmm0, %xmm0, %xmm0
vpternlogd $0x78, 0xb0(%rsp), %xmm1, %xmm0
callq 0x3675
vmovdqa 0xc0(%rsp), %xmm1
vmovdqa 0xf0(%rsp), %xmm2
vpternlogq $0x96, 0xd0(%rsp), %xmm2, %xmm1
vmovdqa 0x130(%rsp), %xmm2
vpternlogq $0x96, 0xe0(%rsp), %xmm2, %xmm1
vmovdqa 0x110(%rsp), %xmm2
vpternlogq $0x96, 0x120(%rsp), %xmm2, %xmm1
vmovdqa %xmm1, %xmm2
vmovdqa 0x70(%r15), %xmm1
vpternlogq $0x96, 0xa0(%rsp), %xmm0, %xmm1
vaesenc 0x90(%rsp), %xmm1, %xmm1
vaesenc 0x80(%rsp), %xmm1, %xmm1
vaesenc 0x70(%rsp), %xmm1, %xmm1
vaesenc 0x60(%rsp), %xmm1, %xmm1
vaesenc 0x50(%rsp), %xmm1, %xmm1
vaesenc 0x40(%rsp), %xmm1, %xmm1
vaesenc 0x30(%rsp), %xmm1, %xmm1
vaesenc 0x20(%rsp), %xmm1, %xmm1
vaesenc 0x10(%rsp), %xmm1, %xmm1
vaesenclast (%rsp), %xmm1, %xmm1
vpternlogq $0x96, 0x100(%rsp), %xmm1, %xmm2
vmovdqa %xmm2, 0xc0(%rsp)
callq 0x3675
vpshufd $0x93, %xmm0, %xmm1     # xmm1 = xmm0[3,0,1,2]
vpsrad $0x1f, %xmm1, %xmm1
vpaddd %xmm0, %xmm0, %xmm0
vpternlogd $0x78, 0xb0(%rsp), %xmm1, %xmm0
callq 0x3675
vmovdqa 0xc0(%rsp), %xmm1
addq $-0x80, %r14
subq $-0x80, %r15
vmovdqa %xmm1, 0xd0(%rsp)
cmpq $0x7f, %r14
ja 0x14c3
jmp 0x195d
vmovdqa 0xd0(%rsp), %xmm1
cmpq $0x40, %r14
vmovdqa %xmm1, 0xc0(%rsp)
jb 0x1bc2
vmovdqa (%r15), %xmm1
vpternlogq $0x96, 0xa0(%rsp), %xmm0, %xmm1
vaesenc 0x90(%rsp), %xmm1, %xmm1
vaesenc 0x80(%rsp), %xmm1, %xmm1
vaesenc 0x70(%rsp), %xmm1, %xmm1
vaesenc 0x60(%rsp), %xmm1, %xmm1
vaesenc 0x50(%rsp), %xmm1, %xmm1
vaesenc 0x40(%rsp), %xmm1, %xmm1
vaesenc 0x30(%rsp), %xmm1, %xmm1
vaesenc 0x20(%rsp), %xmm1, %xmm1
vaesenc 0x10(%rsp), %xmm1, %xmm1
vaesenclast (%rsp), %xmm1, %xmm1
vmovdqa %xmm1, 0xd0(%rsp)
callq 0x3675
vpshufd $0x93, %xmm0, %xmm1     # xmm1 = xmm0[3,0,1,2]
vpsrad $0x1f, %xmm1, %xmm1
vpshufd $0x93, 0x2626(%rip), %xmm2 # xmm2 = mem[3,0,1,2]
vmovdqa %xmm2, 0xb0(%rsp)
vpaddd %xmm0, %xmm0, %xmm0
vpternlogd $0x78, %xmm2, %xmm1, %xmm0
callq 0x3675
vmovdqa 0x10(%r15), %xmm1
vpternlogq $0x96, 0xa0(%rsp), %xmm0, %xmm1
vaesenc 0x90(%rsp), %xmm1, %xmm1
vaesenc 0x80(%rsp), %xmm1, %xmm1
vaesenc 0x70(%rsp), %xmm1, %xmm1
vaesenc 0x60(%rsp), %xmm1, %xmm1
vaesenc 0x50(%rsp), %xmm1, %xmm1
vaesenc 0x40(%rsp), %xmm1, %xmm1
vaesenc 0x30(%rsp), %xmm1, %xmm1
vaesenc 0x20(%rsp), %xmm1, %xmm1
vaesenc 0x10(%rsp), %xmm1, %xmm1
vaesenclast (%rsp), %xmm1, %xmm1
vmovdqa %xmm1, 0xf0(%rsp)
callq 0x3675
vpshufd $0x93, %xmm0, %xmm1     # xmm1 = xmm0[3,0,1,2]
vpsrad $0x1f, %xmm1, %xmm1
vpaddd %xmm0, %xmm0, %xmm0
vpternlogd $0x78, 0xb0(%rsp), %xmm1, %xmm0
callq 0x3675
vmovdqa 0x20(%r15), %xmm1
vpternlogq $0x96, 0xa0(%rsp), %xmm0, %xmm1
vaesenc 0x90(%rsp), %xmm1, %xmm1
vaesenc 0x80(%rsp), %xmm1, %xmm1
vaesenc 0x70(%rsp), %xmm1, %xmm1
vaesenc 0x60(%rsp), %xmm1, %xmm1
vaesenc 0x50(%rsp), %xmm1, %xmm1
vaesenc 0x40(%rsp), %xmm1, %xmm1
vaesenc 0x30(%rsp), %xmm1, %xmm1
vaesenc 0x20(%rsp), %xmm1, %xmm1
vaesenc 0x10(%rsp), %xmm1, %xmm1
vaesenclast (%rsp), %xmm1, %xmm1
vmovdqa %xmm1, 0xe0(%rsp)
callq 0x3675
vpshufd $0x93, %xmm0, %xmm1     # xmm1 = xmm0[3,0,1,2]
vpsrad $0x1f, %xmm1, %xmm1
vpaddd %xmm0, %xmm0, %xmm0
vpternlogd $0x78, 0xb0(%rsp), %xmm1, %xmm0
callq 0x3675
vmovdqa 0x30(%r15), %xmm1
vpternlogq $0x96, 0xa0(%rsp), %xmm0, %xmm1
vaesenc 0x90(%rsp), %xmm1, %xmm1
vaesenc 0x80(%rsp), %xmm1, %xmm1
vaesenc 0x70(%rsp), %xmm1, %xmm1
vaesenc 0x60(%rsp), %xmm1, %xmm1
vaesenc 0x50(%rsp), %xmm1, %xmm1
vaesenc 0x40(%rsp), %xmm1, %xmm1
vaesenc 0x30(%rsp), %xmm1, %xmm1
vaesenc 0x20(%rsp), %xmm1, %xmm1
vaesenc 0x10(%rsp), %xmm1, %xmm1
vaesenclast (%rsp), %xmm1, %xmm1
vmovdqa 0xf0(%rsp), %xmm2
vmovdqa 0xe0(%rsp), %xmm3
vpternlogq $0x96, 0xd0(%rsp), %xmm2, %xmm3
vmovdqa 0xc0(%rsp), %xmm2
vpternlogq $0x96, %xmm1, %xmm3, %xmm2
vmovdqa %xmm2, 0xc0(%rsp)
callq 0x3675
vpshufd $0x93, %xmm0, %xmm1     # xmm1 = xmm0[3,0,1,2]
vpsrad $0x1f, %xmm1, %xmm1
vpaddd %xmm0, %xmm0, %xmm0
vpternlogd $0x78, 0xb0(%rsp), %xmm1, %xmm0
callq 0x3675
addq $-0x40, %r14
addq $0x40, %r15
cmpq $0x20, %r14
jb 0x1cfd
vmovdqa (%r15), %xmm1
vpternlogq $0x96, 0xa0(%rsp), %xmm0, %xmm1
vaesenc 0x90(%rsp), %xmm1, %xmm1
vaesenc 0x80(%rsp), %xmm1, %xmm1
vaesenc 0x70(%rsp), %xmm1, %xmm1
vaesenc 0x60(%rsp), %xmm1, %xmm1
vaesenc 0x50(%rsp), %xmm1, %xmm1
vaesenc 0x40(%rsp), %xmm1, %xmm1
vaesenc 0x30(%rsp), %xmm1, %xmm1
vaesenc 0x20(%rsp), %xmm1, %xmm1
vaesenc 0x10(%rsp), %xmm1, %xmm1
vaesenclast (%rsp), %xmm1, %xmm1
vmovdqa %xmm1, 0xb0(%rsp)
callq 0x3675
vpshufd $0x93, %xmm0, %xmm1     # xmm1 = xmm0[3,0,1,2]
vpsrad $0x1f, %xmm1, %xmm1
vpshufd $0x93, 0x23ca(%rip), %xmm2 # xmm2 = mem[3,0,1,2]
vmovdqa %xmm2, 0xd0(%rsp)
vpaddd %xmm0, %xmm0, %xmm0
vpternlogd $0x78, %xmm2, %xmm1, %xmm0
callq 0x3675
vmovdqa 0x10(%r15), %xmm1
vpternlogq $0x96, 0xa0(%rsp), %xmm0, %xmm1
vaesenc 0x90(%rsp), %xmm1, %xmm1
vaesenc 0x80(%rsp), %xmm1, %xmm1
vaesenc 0x70(%rsp), %xmm1, %xmm1
vaesenc 0x60(%rsp), %xmm1, %xmm1
vaesenc 0x50(%rsp), %xmm1, %xmm1
vaesenc 0x40(%rsp), %xmm1, %xmm1
vaesenc 0x30(%rsp), %xmm1, %xmm1
vaesenc 0x20(%rsp), %xmm1, %xmm1
vaesenc 0x10(%rsp), %xmm1, %xmm1
vaesenclast (%rsp), %xmm1, %xmm1
vmovdqa 0xc0(%rsp), %xmm2
vpternlogq $0x96, 0xb0(%rsp), %xmm1, %xmm2
vmovdqa %xmm2, 0xc0(%rsp)
callq 0x3675
vpshufd $0x93, %xmm0, %xmm1     # xmm1 = xmm0[3,0,1,2]
vpsrad $0x1f, %xmm1, %xmm1
vpaddd %xmm0, %xmm0, %xmm0
vpternlogd $0x78, 0xd0(%rsp), %xmm1, %xmm0
callq 0x3675
addq $-0x20, %r14
addq $0x20, %r15
cmpq $0x10, %r14
jb 0x1da1
vmovdqa (%r15), %xmm1
vpternlogq $0x96, 0xa0(%rsp), %xmm0, %xmm1
vaesenc 0x90(%rsp), %xmm1, %xmm1
vaesenc 0x80(%rsp), %xmm1, %xmm1
vaesenc 0x70(%rsp), %xmm1, %xmm1
vaesenc 0x60(%rsp), %xmm1, %xmm1
vaesenc 0x50(%rsp), %xmm1, %xmm1
vaesenc 0x40(%rsp), %xmm1, %xmm1
vaesenc 0x30(%rsp), %xmm1, %xmm1
vaesenc 0x20(%rsp), %xmm1, %xmm1
vaesenc 0x10(%rsp), %xmm1, %xmm1
vaesenclast (%rsp), %xmm1, %xmm1
vmovdqa 0xc0(%rsp), %xmm2
vpxor %xmm2, %xmm1, %xmm2
vmovdqa %xmm2, 0xc0(%rsp)
callq 0x3675
vpshufd $0x93, %xmm0, %xmm1     # xmm1 = xmm0[3,0,1,2]
vpsrad $0x1f, %xmm1, %xmm1
vpaddd %xmm0, %xmm0, %xmm0
vpternlogd $0x78, 0x226c(%rip), %xmm1, %xmm0 # 0x4000
callq 0x3675
addq $-0x10, %r14
addq $0x10, %r15
testq %r14, %r14
vmovdqa 0xa0(%rsp), %xmm3
vmovdqa 0x90(%rsp), %xmm4
vmovdqa 0x80(%rsp), %xmm5
vmovdqa 0x70(%rsp), %xmm6
vmovdqa 0x60(%rsp), %xmm7
vmovdqa 0x50(%rsp), %xmm8
vmovdqa 0x40(%rsp), %xmm9
vmovdqa 0x30(%rsp), %xmm10
vmovdqa 0x20(%rsp), %xmm11
vmovdqa 0x10(%rsp), %xmm12
vmovdqa (%rsp), %xmm13
je 0x1e18
testb $0xf, %r14b
je 0x1e1e
xorl %eax, %eax
movb (%r15,%rax), %cl
movb %cl, 0x140(%rsp,%rax)
incq %rax
movl %eax, %ecx
cmpq %rcx, %r14
ja 0x1df8
vmovdqa 0x140(%rsp), %xmm1
jmp 0x1e23
vpxor %xmm1, %xmm1, %xmm1
jmp 0x1e23
vmovdqu (%r15), %xmm1
leaq 0x2236(%rip), %rax      # 0x4060
subq %r14, %rax
vmovdqu 0x10(%rax), %xmm2
vpternlogq $0xea, 0x20(%rax), %xmm1, %xmm2
vpternlogq $0x96, %xmm2, %xmm3, %xmm0
vaesenc %xmm4, %xmm0, %xmm0
vaesenc %xmm5, %xmm0, %xmm0
vaesenc %xmm6, %xmm0, %xmm0
vaesenc %xmm7, %xmm0, %xmm0
vaesenc %xmm8, %xmm0, %xmm0
vaesenc %xmm9, %xmm0, %xmm0
vaesenc %xmm10, %xmm0, %xmm0
vaesenc %xmm11, %xmm0, %xmm0
vaesenc %xmm12, %xmm0, %xmm0
vaesenclast %xmm13, %xmm0, %xmm0
vmovdqa 0xc0(%rsp), %xmm1
vpternlogq $0x96, %xmm0, %xmm3, %xmm1
vaesenc %xmm4, %xmm1, %xmm0
vaesenc %xmm5, %xmm0, %xmm0
vaesenc %xmm6, %xmm0, %xmm0
vaesenc %xmm7, %xmm0, %xmm0
vaesenc %xmm8, %xmm0, %xmm0
vaesenc %xmm9, %xmm0, %xmm0
vaesenc %xmm10, %xmm0, %xmm0
vaesenc %xmm11, %xmm0, %xmm0
vaesenc %xmm12, %xmm0, %xmm0
vaesenclast %xmm13, %xmm0, %xmm0
vmovdqa %xmm0, 0x240(%rbx)
vmovdqa %xmm0, 0x220(%rbx)
vpxor 0x2153(%rip), %xmm0, %xmm0 # 0x4020
vmovdqa %xmm0, 0x230(%rbx)
addq $0x150, %rsp            # imm = 0x150
popq %rbx
popq %r14
popq %r15
retq