// File: /workspace/github_c_makefile_star2_O0/mjosaarinen[P]brutus/crypto_aead/aezv3/aesni/aez_ni.c
// Function: cipher_aez_tiny
int cipher_aez_tiny(aez_ctx_t *ctx, __m128i t, int d, char *src, unsigned bytes, unsigned abytes, char *dst) {
    __m128i l, r, tmp, one, rcon, buf[2], mask_10, mask_ff;
    __m128i I=ctx->I, L=ctx->L, J=ctx->J[0], t_orig = t;
    unsigned rnds, i;

    /* load src into buf, zero pad, update bytes for abytes */
    if (bytes >= 16) {
        buf[0] = load(src);
        buf[1] = zero_pad(load_partial(src+16,bytes-16),32-bytes);
    } else {
        buf[0] = zero_pad(load_partial(src,bytes),16-bytes);
        buf[1] = zero;
    }
    if (!d) bytes += abytes;

    /* load l/r, create 10* padding masks, shift r 4 bits if odd length */
    l = buf[0];
    r = loadu((char*)buf+bytes/2);
    mask_ff = loadu(pad+16-bytes/2);
    mask_10 = loadu(pad+32-bytes/2);
    if (bytes&1) {  /* Odd length. Deal with nibbles. */
        mask_10 = _mm_srli_epi32(mask_10,4);
        ((char*)&mask_ff)[bytes/2] = 0xf0;
        r = bswap16(r);
        r = vor(_mm_slli_epi64(r, 4), _mm_srli_epi64(_mm_slli_si128(r, 8), 60));
        r = bswap16(r);
    }
    r = vor(vand(r, mask_ff), mask_10);

    /* Add tweak offset into t, and determine the number of rounds */
    if (bytes >= 16) {
        t = vxor3(t, ctx->J[1], ctx->J[2]);             /* (0,6) offset */
        rnds = 8;
    } else {
        t = vxor4(t, ctx->J[0], ctx->J[1], ctx->J[2]);  /* (0,7) offset */
        if (bytes>=3) rnds = 10; else if (bytes==2) rnds = 16; else rnds = 24;
    }

    if (!d) {
        one = _mm_insert_epi8(zero,1,15);
        rcon = zero;
    } else {
        one = _mm_insert_epi8(zero,-1,15);
        rcon = _mm_insert_epi8(zero,rnds-1,15);
    }

    if ((d) && (bytes < 16)) {
        tmp = vor(l, loadu(pad+32));
        tmp = aes4(vxor4(tmp,t_orig,ctx->J[0],ctx->J[1]), I, J, L, zero);
        tmp = vand(tmp, loadu(pad+32));
        l = vxor(l, tmp);
    }

    /* Feistel */
    for (i=0; i<rnds; i+=2) {
        l = vor(vand(aes4(vxor3(t,r,rcon), I, J, L, l), mask_ff), mask_10);
        rcon = _mm_add_epi8(rcon,one);
        r = vor(vand(aes4(vxor3(t,l,rcon), I, J, L, r), mask_ff), mask_10);
        rcon = _mm_add_epi8(rcon,one);
    }
    buf[0] = r;
    if (bytes&1) {
        l = bswap16(l);
        l = vor(_mm_srli_epi64(l, 4), _mm_slli_epi64(_mm_srli_si128(l, 8), 60));
        l = bswap16(l);
        r = vand(loadu((char*)buf+bytes/2), _mm_insert_epi8(zero,0xf0,0));
        l = vor(l, r);
    }
    storeu((char*)buf+bytes/2, l);
    if (d) {
        bytes -= abytes;
        if (abytes==16) tmp = loadu((char*)buf+bytes);
        else {
            tmp = zero;
            for (i=0; i<abytes; i++) ((char*)&tmp)[i] = ((char*)buf+bytes)[i];
        }
        if (!_mm_testz_si128(tmp,tmp)) return -1;
    } else if (bytes < 16) {
        tmp = vor(zero_pad(buf[0], 16-bytes), loadu(pad+32));
        tmp = aes4(vxor4(tmp,t_orig,ctx->J[0],ctx->J[1]), I, J, L, zero);
        buf[0] = vxor(buf[0], vand(tmp, loadu(pad+32)));
    }
    for (i=0; i<bytes; i++) dst[i] = ((char*)buf)[i];
    return 0;
}

// Assembly:
subq $0x6e8, %rsp            # imm = 0x6E8
movq %rdi, 0x160(%rsp)
vmovdqa %xmm0, 0x150(%rsp)
movl %esi, 0x14c(%rsp)
movq %rdx, 0x140(%rsp)
movl %ecx, 0x13c(%rsp)
movl %r8d, 0x138(%rsp)
movq %r9, 0x130(%rsp)
movq 0x160(%rsp), %rax
vmovdqa (%rax), %xmm0
vmovdqa %xmm0, 0x90(%rsp)
movq 0x160(%rsp), %rax
vmovdqa 0x10(%rax), %xmm0
vmovdqa %xmm0, 0x80(%rsp)
movq 0x160(%rsp), %rax
vmovdqa 0x20(%rax), %xmm0
vmovdqa %xmm0, 0x70(%rsp)
vmovdqa 0x150(%rsp), %xmm0
vmovdqa %xmm0, 0x60(%rsp)
cmpl $0x10, 0x13c(%rsp)
jb 0x9f32
movq 0x140(%rsp), %rdi
callq 0x26f0
vmovdqa %xmm0, 0xc0(%rsp)
movq 0x140(%rsp), %rdi
addq $0x10, %rdi
movl 0x13c(%rsp), %esi
subl $0x10, %esi
callq 0x2870
movl $0x20, %edi
subl 0x13c(%rsp), %edi
callq 0x9b90
vmovdqa %xmm0, 0xd0(%rsp)
jmp 0x9f81
movq 0x140(%rsp), %rdi
movl 0x13c(%rsp), %esi
callq 0x2870
movl 0x13c(%rsp), %eax
movl $0x10, %edi
subl %eax, %edi
callq 0x9b90
vmovdqa %xmm0, 0xc0(%rsp)
vpxor %xmm0, %xmm0, %xmm0
vmovdqa %xmm0, 0x410(%rsp)
vmovdqa 0x410(%rsp), %xmm0
vmovdqa %xmm0, 0xd0(%rsp)
cmpl $0x0, 0x14c(%rsp)
jne 0x9fa0
movl 0x138(%rsp), %eax
addl 0x13c(%rsp), %eax
movl %eax, 0x13c(%rsp)
vmovdqa 0xc0(%rsp), %xmm0
vmovdqa %xmm0, 0x120(%rsp)
leaq 0xc0(%rsp), %rdi
movl 0x13c(%rsp), %eax
shrl %eax
movl %eax, %eax
addq %rax, %rdi
callq 0x41b0
vmovdqa %xmm0, 0x110(%rsp)
movl 0x13c(%rsp), %eax
shrl %eax
movl %eax, %eax
movl %eax, %ecx
xorl %eax, %eax
subq %rcx, %rax
leaq 0x2011(%rip), %rdi      # 0xc000
addq $0x10, %rdi
addq %rax, %rdi
callq 0x41b0
vmovdqa %xmm0, 0xa0(%rsp)
movl 0x13c(%rsp), %eax
shrl %eax
movl %eax, %eax
movl %eax, %ecx
xorl %eax, %eax
subq %rcx, %rax
leaq 0x1fe3(%rip), %rdi      # 0xc000
addq $0x20, %rdi
addq %rax, %rdi
callq 0x41b0
vmovdqa %xmm0, 0xb0(%rsp)
movl 0x13c(%rsp), %eax
andl $0x1, %eax
cmpl $0x0, %eax
je 0xa15a
vmovdqa 0xb0(%rsp), %xmm0
vmovdqa %xmm0, 0x470(%rsp)
movl $0x4, 0x46c(%rsp)
vmovdqa 0x470(%rsp), %xmm0
vmovd 0x46c(%rsp), %xmm1
vpsrld %xmm1, %xmm0, %xmm0
vmovdqa %xmm0, 0xb0(%rsp)
movl 0x13c(%rsp), %eax
shrl %eax
movb $-0x10, 0xa0(%rsp,%rax)
vmovdqa 0x110(%rsp), %xmm0
callq 0x28f0
vmovdqa %xmm0, 0x110(%rsp)
vmovdqa 0x110(%rsp), %xmm0
vmovdqa %xmm0, 0x5b0(%rsp)
movl $0x4, 0x5ac(%rsp)
vmovdqa 0x5b0(%rsp), %xmm0
vmovd 0x5ac(%rsp), %xmm1
vpsllq %xmm1, %xmm0, %xmm1
vmovdqa 0x110(%rsp), %xmm0
vpslldq $0x8, %xmm0, %xmm0      # xmm0 = zero,zero,zero,zero,zero,zero,zero,zero,xmm0[0,1,2,3,4,5,6,7]
vmovdqa %xmm0, 0x5f0(%rsp)
movl $0x3c, 0x5ec(%rsp)
vmovdqa 0x5f0(%rsp), %xmm0
movl 0x5ec(%rsp), %eax
vmovd %eax, %xmm2
vpsrlq %xmm2, %xmm0, %xmm0
vmovdqa %xmm1, 0x570(%rsp)
vmovdqa %xmm0, 0x560(%rsp)
vmovdqa 0x570(%rsp), %xmm0
vpor 0x560(%rsp), %xmm0, %xmm0
vmovdqa %xmm0, 0x110(%rsp)
vmovdqa 0x110(%rsp), %xmm0
callq 0x28f0
vmovdqa %xmm0, 0x110(%rsp)
vmovdqa 0x110(%rsp), %xmm1
vmovdqa 0xa0(%rsp), %xmm0
vmovdqa %xmm1, 0x6b0(%rsp)
vmovdqa %xmm0, 0x6a0(%rsp)
vmovdqa 0x6b0(%rsp), %xmm0
vpand 0x6a0(%rsp), %xmm0, %xmm1
vmovdqa 0xb0(%rsp), %xmm0
vmovdqa %xmm1, 0x550(%rsp)
vmovdqa %xmm0, 0x540(%rsp)
vmovdqa 0x550(%rsp), %xmm0
vpor 0x540(%rsp), %xmm0, %xmm0
vmovdqa %xmm0, 0x110(%rsp)
cmpl $0x10, 0x13c(%rsp)
jb 0xa255
vmovdqa 0x150(%rsp), %xmm1
movq 0x160(%rsp), %rax
vmovdqa 0x30(%rax), %xmm0
vmovdqa %xmm1, 0x380(%rsp)
vmovdqa %xmm0, 0x370(%rsp)
vmovdqa 0x380(%rsp), %xmm0
vpxor 0x370(%rsp), %xmm0, %xmm1
movq 0x160(%rsp), %rax
vmovdqa 0x40(%rax), %xmm0
vmovdqa %xmm1, 0x360(%rsp)
vmovdqa %xmm0, 0x350(%rsp)
vmovdqa 0x360(%rsp), %xmm0
vpxor 0x350(%rsp), %xmm0, %xmm0
vmovdqa %xmm0, 0x150(%rsp)
movl $0x8, 0x5c(%rsp)
jmp 0xa32e
vmovdqa 0x150(%rsp), %xmm1
movq 0x160(%rsp), %rax
vmovdqa 0x20(%rax), %xmm0
vmovdqa %xmm1, 0x340(%rsp)
vmovdqa %xmm0, 0x330(%rsp)
vmovdqa 0x340(%rsp), %xmm0
vpxor 0x330(%rsp), %xmm0, %xmm1
movq 0x160(%rsp), %rax
vmovdqa 0x30(%rax), %xmm2
movq 0x160(%rsp), %rax
vmovdqa 0x40(%rax), %xmm0
vmovdqa %xmm2, 0x320(%rsp)
vmovdqa %xmm0, 0x310(%rsp)
vmovdqa 0x320(%rsp), %xmm0
vpxor 0x310(%rsp), %xmm0, %xmm0
vmovdqa %xmm1, 0x300(%rsp)
vmovdqa %xmm0, 0x2f0(%rsp)
vmovdqa 0x300(%rsp), %xmm0
vpxor 0x2f0(%rsp), %xmm0, %xmm0
vmovdqa %xmm0, 0x150(%rsp)
cmpl $0x3, 0x13c(%rsp)
jb 0xa30e
movl $0xa, 0x5c(%rsp)
jmp 0xa32c
cmpl $0x2, 0x13c(%rsp)
jne 0xa322
movl $0x10, 0x5c(%rsp)
jmp 0xa32a
movl $0x18, 0x5c(%rsp)
jmp 0xa32c
jmp 0xa32e
cmpl $0x0, 0x14c(%rsp)
jne 0xa37f
vpxor %xmm0, %xmm0, %xmm0
vmovdqa %xmm0, 0x400(%rsp)
vmovdqa 0x400(%rsp), %xmm1
movl $0x1, %eax
vpinsrb $0xf, %eax, %xmm1, %xmm1
vmovdqa %xmm1, 0xf0(%rsp)
vmovdqa %xmm0, 0x3f0(%rsp)
vmovdqa 0x3f0(%rsp), %xmm0
vmovdqa %xmm0, 0xe0(%rsp)
jmp 0xa3d2
vpxor %xmm0, %xmm0, %xmm0
vmovdqa %xmm0, 0x3e0(%rsp)
vmovdqa 0x3e0(%rsp), %xmm1
movl $0xff, %eax
vpinsrb $0xf, %eax, %xmm1, %xmm1
vmovdqa %xmm1, 0xf0(%rsp)
vmovdqa %xmm0, 0x3d0(%rsp)
vmovdqa 0x3d0(%rsp), %xmm0
movb 0x5c(%rsp), %cl
decb %cl
movb %cl, %al
vpinsrb $0xf, %eax, %xmm0, %xmm0
vmovdqa %xmm0, 0xe0(%rsp)
cmpl $0x0, 0x14c(%rsp)
je 0xa5a6
cmpl $0x10, 0x13c(%rsp)
jae 0xa5a6
vmovdqa 0x120(%rsp), %xmm0
vmovaps %xmm0, 0x30(%rsp)
leaq 0x1c1c(%rip), %rdi      # 0xc020
callq 0x41b0
vmovaps 0x30(%rsp), %xmm1
vmovdqa %xmm1, 0x530(%rsp)
vmovdqa %xmm0, 0x520(%rsp)
vmovdqa 0x530(%rsp), %xmm0
vmovdqa 0x520(%rsp), %xmm1
vpor %xmm1, %xmm0, %xmm0
vmovdqa %xmm0, 0x100(%rsp)
vmovdqa 0x100(%rsp), %xmm1
vmovdqa 0x60(%rsp), %xmm0
vmovdqa %xmm1, 0x2e0(%rsp)
vmovdqa %xmm0, 0x2d0(%rsp)
vmovdqa 0x2e0(%rsp), %xmm0
vmovdqa 0x2d0(%rsp), %xmm1
vpxor %xmm1, %xmm0, %xmm1
movq 0x160(%rsp), %rax
vmovdqa 0x20(%rax), %xmm2
vmovdqa 0x30(%rax), %xmm0
vmovdqa %xmm2, 0x2c0(%rsp)
vmovdqa %xmm0, 0x2b0(%rsp)
vmovdqa 0x2c0(%rsp), %xmm0
vmovdqa 0x2b0(%rsp), %xmm2
vpxor %xmm2, %xmm0, %xmm0
vmovdqa %xmm1, 0x2a0(%rsp)
vmovdqa %xmm0, 0x290(%rsp)
vmovdqa 0x2a0(%rsp), %xmm0
vmovdqa 0x290(%rsp), %xmm1
vpxor %xmm1, %xmm0, %xmm0
vmovdqa 0x90(%rsp), %xmm1
vmovdqa 0x70(%rsp), %xmm2
vmovdqa 0x80(%rsp), %xmm3
vpxor %xmm4, %xmm4, %xmm4
vmovdqa %xmm4, 0x3c0(%rsp)
vmovdqa 0x3c0(%rsp), %xmm4
callq 0x2710
vmovdqa %xmm0, 0x100(%rsp)
vmovdqa 0x100(%rsp), %xmm0
vmovaps %xmm0, 0x40(%rsp)
leaq 0x1ad5(%rip), %rdi      # 0xc000
addq $0x20, %rdi
callq 0x41b0
vmovaps 0x40(%rsp), %xmm1
vmovdqa %xmm1, 0x690(%rsp)
vmovdqa %xmm0, 0x680(%rsp)
vmovdqa 0x690(%rsp), %xmm0
vpand 0x680(%rsp), %xmm0, %xmm0
vmovdqa %xmm0, 0x100(%rsp)
vmovdqa 0x120(%rsp), %xmm1
vmovdqa 0x100(%rsp), %xmm0
vmovdqa %xmm1, 0x280(%rsp)
vmovdqa %xmm0, 0x270(%rsp)
vmovdqa 0x280(%rsp), %xmm0
vpxor 0x270(%rsp), %xmm0, %xmm0
vmovdqa %xmm0, 0x120(%rsp)
movl $0x0, 0x58(%rsp)
movl 0x58(%rsp), %eax
cmpl 0x5c(%rsp), %eax
jae 0xa832
vmovdqa 0x150(%rsp), %xmm1
vmovdqa 0x110(%rsp), %xmm0
vmovdqa %xmm1, 0x260(%rsp)
vmovdqa %xmm0, 0x250(%rsp)
vmovdqa 0x260(%rsp), %xmm0
vpxor 0x250(%rsp), %xmm0, %xmm1
vmovdqa 0xe0(%rsp), %xmm0
vmovdqa %xmm1, 0x240(%rsp)
vmovdqa %xmm0, 0x230(%rsp)
vmovdqa 0x240(%rsp), %xmm0
vpxor 0x230(%rsp), %xmm0, %xmm0
vmovdqa 0x90(%rsp), %xmm1
vmovdqa 0x70(%rsp), %xmm2
vmovdqa 0x80(%rsp), %xmm3
vmovdqa 0x120(%rsp), %xmm4
callq 0x2710
vmovaps %xmm0, %xmm1
vmovdqa 0xa0(%rsp), %xmm0
vmovdqa %xmm1, 0x670(%rsp)
vmovdqa %xmm0, 0x660(%rsp)
vmovdqa 0x670(%rsp), %xmm0
vpand 0x660(%rsp), %xmm0, %xmm1
vmovdqa 0xb0(%rsp), %xmm0
vmovdqa %xmm1, 0x510(%rsp)
vmovdqa %xmm0, 0x500(%rsp)
vmovdqa 0x510(%rsp), %xmm0
vpor 0x500(%rsp), %xmm0, %xmm0
vmovdqa %xmm0, 0x120(%rsp)
vmovdqa 0xe0(%rsp), %xmm1
vmovdqa 0xf0(%rsp), %xmm0
vmovdqa %xmm1, 0x450(%rsp)
vmovdqa %xmm0, 0x440(%rsp)
vmovdqa 0x450(%rsp), %xmm0
vmovdqa 0x440(%rsp), %xmm1
vpaddb %xmm1, %xmm0, %xmm0
vmovdqa %xmm0, 0xe0(%rsp)
vmovdqa 0x150(%rsp), %xmm1
vmovdqa 0x120(%rsp), %xmm0
vmovdqa %xmm1, 0x220(%rsp)
vmovdqa %xmm0, 0x210(%rsp)
vmovdqa 0x220(%rsp), %xmm0
vpxor 0x210(%rsp), %xmm0, %xmm1
vmovdqa 0xe0(%rsp), %xmm0
vmovdqa %xmm1, 0x200(%rsp)
vmovdqa %xmm0, 0x1f0(%rsp)
vmovdqa 0x200(%rsp), %xmm0
vpxor 0x1f0(%rsp), %xmm0, %xmm0
vmovdqa 0x90(%rsp), %xmm1
vmovdqa 0x70(%rsp), %xmm2
vmovdqa 0x80(%rsp), %xmm3
vmovdqa 0x110(%rsp), %xmm4
callq 0x2710
vmovaps %xmm0, %xmm1
vmovdqa 0xa0(%rsp), %xmm0
vmovdqa %xmm1, 0x650(%rsp)
vmovdqa %xmm0, 0x640(%rsp)
vmovdqa 0x650(%rsp), %xmm0
vpand 0x640(%rsp), %xmm0, %xmm1
vmovdqa 0xb0(%rsp), %xmm0
vmovdqa %xmm1, 0x4f0(%rsp)
vmovdqa %xmm0, 0x4e0(%rsp)
vmovdqa 0x4f0(%rsp), %xmm0
vpor 0x4e0(%rsp), %xmm0, %xmm0
vmovdqa %xmm0, 0x110(%rsp)
vmovdqa 0xe0(%rsp), %xmm1
vmovdqa 0xf0(%rsp), %xmm0
vmovdqa %xmm1, 0x430(%rsp)
vmovdqa %xmm0, 0x420(%rsp)
vmovdqa 0x430(%rsp), %xmm0
vmovdqa 0x420(%rsp), %xmm1
vpaddb %xmm1, %xmm0, %xmm0
vmovdqa %xmm0, 0xe0(%rsp)
movl 0x58(%rsp), %eax
addl $0x2, %eax
movl %eax, 0x58(%rsp)
jmp 0xa5ae
vmovdqa 0x110(%rsp), %xmm0
vmovdqa %xmm0, 0xc0(%rsp)
movl 0x13c(%rsp), %eax
andl $0x1, %eax
cmpl $0x0, %eax
je 0xa9c8
vmovdqa 0x120(%rsp), %xmm0
callq 0x28f0
vmovdqa %xmm0, 0x120(%rsp)
vmovdqa 0x120(%rsp), %xmm0
vmovdqa %xmm0, 0x5d0(%rsp)
movl $0x4, 0x5cc(%rsp)
vmovdqa 0x5d0(%rsp), %xmm0
vmovd 0x5cc(%rsp), %xmm1
vpsrlq %xmm1, %xmm0, %xmm1
vmovdqa 0x120(%rsp), %xmm0
vpsrldq $0x8, %xmm0, %xmm0      # xmm0 = xmm0[8,9,10,11,12,13,14,15],zero,zero,zero,zero,zero,zero,zero,zero
vmovdqa %xmm0, 0x590(%rsp)
movl $0x3c, 0x58c(%rsp)
vmovdqa 0x590(%rsp), %xmm0
vmovd 0x58c(%rsp), %xmm2
vpsllq %xmm2, %xmm0, %xmm0
vmovdqa %xmm1, 0x4d0(%rsp)
vmovdqa %xmm0, 0x4c0(%rsp)
vmovdqa 0x4d0(%rsp), %xmm0
vmovdqa 0x4c0(%rsp), %xmm1
vpor %xmm1, %xmm0, %xmm0
vmovdqa %xmm0, 0x120(%rsp)
vmovdqa 0x120(%rsp), %xmm0
callq 0x28f0
vmovdqa %xmm0, 0x120(%rsp)
movl 0x13c(%rsp), %eax
shrl %eax
leaq 0xc0(%rsp,%rax), %rdi
callq 0x41b0
vmovaps %xmm0, %xmm1
vpxor %xmm0, %xmm0, %xmm0
vmovdqa %xmm0, 0x3b0(%rsp)
vmovdqa 0x3b0(%rsp), %xmm0
movl $0xf0, %eax
vpinsrb $0x0, %eax, %xmm0, %xmm0
vmovdqa %xmm1, 0x630(%rsp)
vmovdqa %xmm0, 0x620(%rsp)
vmovdqa 0x630(%rsp), %xmm0
vpand 0x620(%rsp), %xmm0, %xmm0
vmovdqa %xmm0, 0x110(%rsp)
vmovdqa 0x120(%rsp), %xmm1
vmovdqa 0x110(%rsp), %xmm0
vmovdqa %xmm1, 0x4b0(%rsp)
vmovdqa %xmm0, 0x4a0(%rsp)
vmovdqa 0x4b0(%rsp), %xmm0
vpor 0x4a0(%rsp), %xmm0, %xmm0
vmovdqa %xmm0, 0x120(%rsp)
leaq 0xc0(%rsp), %rdi
movl 0x13c(%rsp), %eax
shrl %eax
movl %eax, %eax
addq %rax, %rdi
vmovdqa 0x120(%rsp), %xmm0
callq 0x9e10
cmpl $0x0, 0x14c(%rsp)
je 0xaaff
movl 0x138(%rsp), %ecx
movl 0x13c(%rsp), %eax
subl %ecx, %eax
movl %eax, 0x13c(%rsp)
cmpl $0x10, 0x138(%rsp)
jne 0xaa3d
leaq 0xc0(%rsp), %rdi
movl 0x13c(%rsp), %eax
addq %rax, %rdi
callq 0x41b0
vmovdqa %xmm0, 0x100(%rsp)
jmp 0xaaa4
vpxor %xmm0, %xmm0, %xmm0
vmovdqa %xmm0, 0x3a0(%rsp)
vmovdqa 0x3a0(%rsp), %xmm0
vmovdqa %xmm0, 0x100(%rsp)
movl $0x0, 0x58(%rsp)
movl 0x58(%rsp), %eax
cmpl 0x138(%rsp), %eax
jae 0xaaa2
leaq 0xc0(%rsp), %rax
movl 0x13c(%rsp), %ecx
addq %rcx, %rax
movl 0x58(%rsp), %ecx
movb (%rax,%rcx), %cl
movl 0x58(%rsp), %eax
movb %cl, 0x100(%rsp,%rax)
movl 0x58(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x58(%rsp)
jmp 0xaa64
jmp 0xaaa4
vmovdqa 0x100(%rsp), %xmm1
vmovdqa 0x100(%rsp), %xmm0
vmovdqa %xmm1, 0x6d0(%rsp)
vmovdqa %xmm0, 0x6c0(%rsp)
vmovdqa 0x6d0(%rsp), %xmm0
vmovdqa 0x6c0(%rsp), %xmm1
vptest %xmm1, %xmm0
sete %al
movzbl %al, %eax
cmpl $0x0, %eax
jne 0xaafa
movl $0xffffffff, 0x16c(%rsp) # imm = 0xFFFFFFFF
jmp 0xad19
jmp 0xacd2
cmpl $0x10, 0x13c(%rsp)
jae 0xacd0
vmovdqa 0xc0(%rsp), %xmm0
movl 0x13c(%rsp), %eax
movl $0x10, %edi
subl %eax, %edi
callq 0x9b90
vmovaps %xmm0, (%rsp)
leaq 0x14eb(%rip), %rdi      # 0xc020
callq 0x41b0
vmovaps (%rsp), %xmm1
vmovdqa %xmm1, 0x490(%rsp)
vmovdqa %xmm0, 0x480(%rsp)
vmovdqa 0x490(%rsp), %xmm0
vmovdqa 0x480(%rsp), %xmm1
vpor %xmm1, %xmm0, %xmm0
vmovdqa %xmm0, 0x100(%rsp)
vmovdqa 0x100(%rsp), %xmm1
vmovdqa 0x60(%rsp), %xmm0
vmovdqa %xmm1, 0x1e0(%rsp)
vmovdqa %xmm0, 0x1d0(%rsp)
vmovdqa 0x1e0(%rsp), %xmm0
vmovdqa 0x1d0(%rsp), %xmm1
vpxor %xmm1, %xmm0, %xmm1
movq 0x160(%rsp), %rax
vmovdqa 0x20(%rax), %xmm2
vmovdqa 0x30(%rax), %xmm0
vmovdqa %xmm2, 0x1c0(%rsp)
vmovdqa %xmm0, 0x1b0(%rsp)
vmovdqa 0x1c0(%rsp), %xmm0
vmovdqa 0x1b0(%rsp), %xmm2
vpxor %xmm2, %xmm0, %xmm0
vmovdqa %xmm1, 0x1a0(%rsp)
vmovdqa %xmm0, 0x190(%rsp)
vmovdqa 0x1a0(%rsp), %xmm0
vmovdqa 0x190(%rsp), %xmm1
vpxor %xmm1, %xmm0, %xmm0
vmovdqa 0x90(%rsp), %xmm1
vmovdqa 0x70(%rsp), %xmm2
vmovdqa 0x80(%rsp), %xmm3
vpxor %xmm4, %xmm4, %xmm4
vmovdqa %xmm4, 0x390(%rsp)
vmovdqa 0x390(%rsp), %xmm4
callq 0x2710
vmovdqa %xmm0, 0x100(%rsp)
vmovdqa 0xc0(%rsp), %xmm0
vmovaps %xmm0, 0x20(%rsp)
vmovdqa 0x100(%rsp), %xmm0
vmovaps %xmm0, 0x10(%rsp)
leaq 0x1396(%rip), %rdi      # 0xc000
addq $0x20, %rdi
callq 0x41b0
vmovaps 0x10(%rsp), %xmm2
vmovaps 0x20(%rsp), %xmm1
vmovdqa %xmm2, 0x610(%rsp)
vmovdqa %xmm0, 0x600(%rsp)
vmovdqa 0x610(%rsp), %xmm0
vpand 0x600(%rsp), %xmm0, %xmm0
vmovdqa %xmm1, 0x180(%rsp)
vmovdqa %xmm0, 0x170(%rsp)
vmovdqa 0x180(%rsp), %xmm0
vpxor 0x170(%rsp), %xmm0, %xmm0
vmovdqa %xmm0, 0xc0(%rsp)
jmp 0xacd2
movl $0x0, 0x58(%rsp)
movl 0x58(%rsp), %eax
cmpl 0x13c(%rsp), %eax
jae 0xad0e
movl 0x58(%rsp), %eax
movb 0xc0(%rsp,%rax), %dl
movq 0x130(%rsp), %rax
movl 0x58(%rsp), %ecx
movb %dl, (%rax,%rcx)
movl 0x58(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x58(%rsp)
jmp 0xacda
movl $0x0, 0x16c(%rsp)
movl 0x16c(%rsp), %eax
addq $0x6e8, %rsp            # imm = 0x6E8
retq
nopl (%rax,%rax)