// File: jBlinden[P]private-codis/./aes.h
// Function: AES_128_Key_Expansion(unsigned char const*, AESKey*)
static inline void AES_128_Key_Expansion(const unsigned char *userkey, AESKey *key) {
    __m128i x0, x1, x2;
    __m128i *kp = (__m128i *) key;
    kp[0] = x0 = _mm_loadu_si128((__m128i *) userkey);
    x2 = _mm_setzero_si128();
    EXPAND_ASSIST(x0, x1, x2, x0, 255, 1);
    kp[1] = x0;
    EXPAND_ASSIST(x0, x1, x2, x0, 255, 2);
    kp[2] = x0;
    EXPAND_ASSIST(x0, x1, x2, x0, 255, 4);
    kp[3] = x0;
    EXPAND_ASSIST(x0, x1, x2, x0, 255, 8);
    kp[4] = x0;
    EXPAND_ASSIST(x0, x1, x2, x0, 255, 16);
    kp[5] = x0;
    EXPAND_ASSIST(x0, x1, x2, x0, 255, 32);
    kp[6] = x0;
    EXPAND_ASSIST(x0, x1, x2, x0, 255, 64);
    kp[7] = x0;
    EXPAND_ASSIST(x0, x1, x2, x0, 255, 128);
    kp[8] = x0;
    EXPAND_ASSIST(x0, x1, x2, x0, 255, 27);
    kp[9] = x0;
    EXPAND_ASSIST(x0, x1, x2, x0, 255, 54);
    kp[10] = x0;

    key->rounds = 10;
}

// Assembly:
subq $0x778, %rsp            # imm = 0x778
movq %rdi, -0x30(%rsp)
movq %rsi, -0x38(%rsp)
movq -0x38(%rsp), %rax
movq %rax, -0x78(%rsp)
movq -0x30(%rsp), %rax
movq %rax, -0x28(%rsp)
movq -0x28(%rsp), %rax
vmovdqu (%rax), %xmm0
vmovdqa %xmm0, -0x50(%rsp)
movq -0x78(%rsp), %rax
vmovdqa %xmm0, (%rax)
vpxor %xmm0, %xmm0, %xmm0
vmovdqa %xmm0, -0x20(%rsp)
vmovdqa -0x20(%rsp), %xmm0
vmovdqa %xmm0, -0x70(%rsp)
vmovdqa -0x50(%rsp), %xmm0
vaeskeygenassist $0x1, %xmm0, %xmm0
vmovdqa %xmm0, -0x60(%rsp)
vmovdqa -0x70(%rsp), %xmm0
vmovdqa %xmm0, 0x3a0(%rsp)
vmovaps 0x3a0(%rsp), %xmm0
vmovdqa -0x50(%rsp), %xmm1
vmovdqa %xmm1, 0x390(%rsp)
vmovaps 0x390(%rsp), %xmm1
vshufps $0x10, %xmm1, %xmm0, %xmm0 # xmm0 = xmm0[0,0],xmm1[1,0]
vmovaps %xmm0, 0x120(%rsp)
vmovaps 0x120(%rsp), %xmm0
vmovaps %xmm0, -0x70(%rsp)
vmovdqa -0x50(%rsp), %xmm1
vmovdqa -0x70(%rsp), %xmm0
vmovdqa %xmm1, 0x760(%rsp)
vmovdqa %xmm0, 0x750(%rsp)
vmovdqa 0x760(%rsp), %xmm0
vmovdqa 0x750(%rsp), %xmm1
vpxor %xmm1, %xmm0, %xmm0
vmovdqa %xmm0, -0x50(%rsp)
vmovdqa -0x70(%rsp), %xmm0
vmovdqa %xmm0, 0x380(%rsp)
vmovaps 0x380(%rsp), %xmm0
vmovdqa -0x50(%rsp), %xmm1
vmovdqa %xmm1, 0x370(%rsp)
vmovaps 0x370(%rsp), %xmm1
vshufps $0x8c, %xmm1, %xmm0, %xmm0 # xmm0 = xmm0[0,3],xmm1[0,2]
vmovaps %xmm0, 0x110(%rsp)
vmovaps 0x110(%rsp), %xmm0
vmovaps %xmm0, -0x70(%rsp)
vmovdqa -0x50(%rsp), %xmm1
vmovdqa -0x70(%rsp), %xmm0
vmovdqa %xmm1, 0x740(%rsp)
vmovdqa %xmm0, 0x730(%rsp)
vmovdqa 0x740(%rsp), %xmm0
vmovdqa 0x730(%rsp), %xmm1
vpxor %xmm1, %xmm0, %xmm0
vmovdqa %xmm0, -0x50(%rsp)
vpbroadcastd -0x54(%rsp), %xmm0
vmovdqa %xmm0, -0x60(%rsp)
vmovdqa -0x50(%rsp), %xmm1
vmovdqa -0x60(%rsp), %xmm0
vmovdqa %xmm1, 0x720(%rsp)
vmovdqa %xmm0, 0x710(%rsp)
vmovdqa 0x720(%rsp), %xmm0
vmovdqa 0x710(%rsp), %xmm1
vpxor %xmm1, %xmm0, %xmm0
vmovdqa %xmm0, -0x50(%rsp)
vmovdqa -0x50(%rsp), %xmm0
movq -0x78(%rsp), %rax
vmovdqa %xmm0, 0x10(%rax)
vmovdqa -0x50(%rsp), %xmm0
vaeskeygenassist $0x2, %xmm0, %xmm0
vmovdqa %xmm0, -0x60(%rsp)
vmovdqa -0x70(%rsp), %xmm0
vmovdqa %xmm0, 0x360(%rsp)
vmovaps 0x360(%rsp), %xmm0
vmovdqa -0x50(%rsp), %xmm1
vmovdqa %xmm1, 0x350(%rsp)
vmovaps 0x350(%rsp), %xmm1
vshufps $0x10, %xmm1, %xmm0, %xmm0 # xmm0 = xmm0[0,0],xmm1[1,0]
vmovaps %xmm0, 0x100(%rsp)
vmovaps 0x100(%rsp), %xmm0
vmovaps %xmm0, -0x70(%rsp)
vmovdqa -0x50(%rsp), %xmm1
vmovdqa -0x70(%rsp), %xmm0
vmovdqa %xmm1, 0x700(%rsp)
vmovdqa %xmm0, 0x6f0(%rsp)
vmovdqa 0x700(%rsp), %xmm0
vmovdqa 0x6f0(%rsp), %xmm1
vpxor %xmm1, %xmm0, %xmm0
vmovdqa %xmm0, -0x50(%rsp)
vmovdqa -0x70(%rsp), %xmm0
vmovdqa %xmm0, 0x340(%rsp)
vmovaps 0x340(%rsp), %xmm0
vmovdqa -0x50(%rsp), %xmm1
vmovdqa %xmm1, 0x330(%rsp)
vmovaps 0x330(%rsp), %xmm1
vshufps $0x8c, %xmm1, %xmm0, %xmm0 # xmm0 = xmm0[0,3],xmm1[0,2]
vmovaps %xmm0, 0xf0(%rsp)
vmovaps 0xf0(%rsp), %xmm0
vmovaps %xmm0, -0x70(%rsp)
vmovdqa -0x50(%rsp), %xmm1
vmovdqa -0x70(%rsp), %xmm0
vmovdqa %xmm1, 0x6e0(%rsp)
vmovdqa %xmm0, 0x6d0(%rsp)
vmovdqa 0x6e0(%rsp), %xmm0
vmovdqa 0x6d0(%rsp), %xmm1
vpxor %xmm1, %xmm0, %xmm0
vmovdqa %xmm0, -0x50(%rsp)
vpbroadcastd -0x54(%rsp), %xmm0
vmovdqa %xmm0, -0x60(%rsp)
vmovdqa -0x50(%rsp), %xmm1
vmovdqa -0x60(%rsp), %xmm0
vmovdqa %xmm1, 0x6c0(%rsp)
vmovdqa %xmm0, 0x6b0(%rsp)
vmovdqa 0x6c0(%rsp), %xmm0
vmovdqa 0x6b0(%rsp), %xmm1
vpxor %xmm1, %xmm0, %xmm0
vmovdqa %xmm0, -0x50(%rsp)
vmovdqa -0x50(%rsp), %xmm0
movq -0x78(%rsp), %rax
vmovdqa %xmm0, 0x20(%rax)
vmovdqa -0x50(%rsp), %xmm0
vaeskeygenassist $0x4, %xmm0, %xmm0
vmovdqa %xmm0, -0x60(%rsp)
vmovdqa -0x70(%rsp), %xmm0
vmovdqa %xmm0, 0x320(%rsp)
vmovaps 0x320(%rsp), %xmm0
vmovdqa -0x50(%rsp), %xmm1
vmovdqa %xmm1, 0x310(%rsp)
vmovaps 0x310(%rsp), %xmm1
vshufps $0x10, %xmm1, %xmm0, %xmm0 # xmm0 = xmm0[0,0],xmm1[1,0]
vmovaps %xmm0, 0xe0(%rsp)
vmovaps 0xe0(%rsp), %xmm0
vmovaps %xmm0, -0x70(%rsp)
vmovdqa -0x50(%rsp), %xmm1
vmovdqa -0x70(%rsp), %xmm0
vmovdqa %xmm1, 0x6a0(%rsp)
vmovdqa %xmm0, 0x690(%rsp)
vmovdqa 0x6a0(%rsp), %xmm0
vmovdqa 0x690(%rsp), %xmm1
vpxor %xmm1, %xmm0, %xmm0
vmovdqa %xmm0, -0x50(%rsp)
vmovdqa -0x70(%rsp), %xmm0
vmovdqa %xmm0, 0x300(%rsp)
vmovaps 0x300(%rsp), %xmm0
vmovdqa -0x50(%rsp), %xmm1
vmovdqa %xmm1, 0x2f0(%rsp)
vmovaps 0x2f0(%rsp), %xmm1
vshufps $0x8c, %xmm1, %xmm0, %xmm0 # xmm0 = xmm0[0,3],xmm1[0,2]
vmovaps %xmm0, 0xd0(%rsp)
vmovaps 0xd0(%rsp), %xmm0
vmovaps %xmm0, -0x70(%rsp)
vmovdqa -0x50(%rsp), %xmm1
vmovdqa -0x70(%rsp), %xmm0
vmovdqa %xmm1, 0x680(%rsp)
vmovdqa %xmm0, 0x670(%rsp)
vmovdqa 0x680(%rsp), %xmm0
vmovdqa 0x670(%rsp), %xmm1
vpxor %xmm1, %xmm0, %xmm0
vmovdqa %xmm0, -0x50(%rsp)
vpbroadcastd -0x54(%rsp), %xmm0
vmovdqa %xmm0, -0x60(%rsp)
vmovdqa -0x50(%rsp), %xmm1
vmovdqa -0x60(%rsp), %xmm0
vmovdqa %xmm1, 0x660(%rsp)
vmovdqa %xmm0, 0x650(%rsp)
vmovdqa 0x660(%rsp), %xmm0
vmovdqa 0x650(%rsp), %xmm1
vpxor %xmm1, %xmm0, %xmm0
vmovdqa %xmm0, -0x50(%rsp)
vmovdqa -0x50(%rsp), %xmm0
movq -0x78(%rsp), %rax
vmovdqa %xmm0, 0x30(%rax)
vmovdqa -0x50(%rsp), %xmm0
vaeskeygenassist $0x8, %xmm0, %xmm0
vmovdqa %xmm0, -0x60(%rsp)
vmovdqa -0x70(%rsp), %xmm0
vmovdqa %xmm0, 0x2e0(%rsp)
vmovaps 0x2e0(%rsp), %xmm0
vmovdqa -0x50(%rsp), %xmm1
vmovdqa %xmm1, 0x2d0(%rsp)
vmovaps 0x2d0(%rsp), %xmm1
vshufps $0x10, %xmm1, %xmm0, %xmm0 # xmm0 = xmm0[0,0],xmm1[1,0]
vmovaps %xmm0, 0xc0(%rsp)
vmovaps 0xc0(%rsp), %xmm0
vmovaps %xmm0, -0x70(%rsp)
vmovdqa -0x50(%rsp), %xmm1
vmovdqa -0x70(%rsp), %xmm0
vmovdqa %xmm1, 0x640(%rsp)
vmovdqa %xmm0, 0x630(%rsp)
vmovdqa 0x640(%rsp), %xmm0
vmovdqa 0x630(%rsp), %xmm1
vpxor %xmm1, %xmm0, %xmm0
vmovdqa %xmm0, -0x50(%rsp)
vmovdqa -0x70(%rsp), %xmm0
vmovdqa %xmm0, 0x2c0(%rsp)
vmovaps 0x2c0(%rsp), %xmm0
vmovdqa -0x50(%rsp), %xmm1
vmovdqa %xmm1, 0x2b0(%rsp)
vmovaps 0x2b0(%rsp), %xmm1
vshufps $0x8c, %xmm1, %xmm0, %xmm0 # xmm0 = xmm0[0,3],xmm1[0,2]
vmovaps %xmm0, 0xb0(%rsp)
vmovaps 0xb0(%rsp), %xmm0
vmovaps %xmm0, -0x70(%rsp)
vmovdqa -0x50(%rsp), %xmm1
vmovdqa -0x70(%rsp), %xmm0
vmovdqa %xmm1, 0x620(%rsp)
vmovdqa %xmm0, 0x610(%rsp)
vmovdqa 0x620(%rsp), %xmm0
vmovdqa 0x610(%rsp), %xmm1
vpxor %xmm1, %xmm0, %xmm0
vmovdqa %xmm0, -0x50(%rsp)
vpbroadcastd -0x54(%rsp), %xmm0
vmovdqa %xmm0, -0x60(%rsp)
vmovdqa -0x50(%rsp), %xmm1
vmovdqa -0x60(%rsp), %xmm0
vmovdqa %xmm1, 0x600(%rsp)
vmovdqa %xmm0, 0x5f0(%rsp)
vmovdqa 0x600(%rsp), %xmm0
vmovdqa 0x5f0(%rsp), %xmm1
vpxor %xmm1, %xmm0, %xmm0
vmovdqa %xmm0, -0x50(%rsp)
vmovdqa -0x50(%rsp), %xmm0
movq -0x78(%rsp), %rax
vmovdqa %xmm0, 0x40(%rax)
vmovdqa -0x50(%rsp), %xmm0
vaeskeygenassist $0x10, %xmm0, %xmm0
vmovdqa %xmm0, -0x60(%rsp)
vmovdqa -0x70(%rsp), %xmm0
vmovdqa %xmm0, 0x2a0(%rsp)
vmovaps 0x2a0(%rsp), %xmm0
vmovdqa -0x50(%rsp), %xmm1
vmovdqa %xmm1, 0x290(%rsp)
vmovaps 0x290(%rsp), %xmm1
vshufps $0x10, %xmm1, %xmm0, %xmm0 # xmm0 = xmm0[0,0],xmm1[1,0]
vmovaps %xmm0, 0xa0(%rsp)
vmovaps 0xa0(%rsp), %xmm0
vmovaps %xmm0, -0x70(%rsp)
vmovdqa -0x50(%rsp), %xmm1
vmovdqa -0x70(%rsp), %xmm0
vmovdqa %xmm1, 0x5e0(%rsp)
vmovdqa %xmm0, 0x5d0(%rsp)
vmovdqa 0x5e0(%rsp), %xmm0
vmovdqa 0x5d0(%rsp), %xmm1
vpxor %xmm1, %xmm0, %xmm0
vmovdqa %xmm0, -0x50(%rsp)
vmovdqa -0x70(%rsp), %xmm0
vmovdqa %xmm0, 0x280(%rsp)
vmovaps 0x280(%rsp), %xmm0
vmovdqa -0x50(%rsp), %xmm1
vmovdqa %xmm1, 0x270(%rsp)
vmovaps 0x270(%rsp), %xmm1
vshufps $0x8c, %xmm1, %xmm0, %xmm0 # xmm0 = xmm0[0,3],xmm1[0,2]
vmovaps %xmm0, 0x90(%rsp)
vmovaps 0x90(%rsp), %xmm0
vmovaps %xmm0, -0x70(%rsp)
vmovdqa -0x50(%rsp), %xmm1
vmovdqa -0x70(%rsp), %xmm0
vmovdqa %xmm1, 0x5c0(%rsp)
vmovdqa %xmm0, 0x5b0(%rsp)
vmovdqa 0x5c0(%rsp), %xmm0
vmovdqa 0x5b0(%rsp), %xmm1
vpxor %xmm1, %xmm0, %xmm0
vmovdqa %xmm0, -0x50(%rsp)
vpbroadcastd -0x54(%rsp), %xmm0
vmovdqa %xmm0, -0x60(%rsp)
vmovdqa -0x50(%rsp), %xmm1
vmovdqa -0x60(%rsp), %xmm0
vmovdqa %xmm1, 0x5a0(%rsp)
vmovdqa %xmm0, 0x590(%rsp)
vmovdqa 0x5a0(%rsp), %xmm0
vmovdqa 0x590(%rsp), %xmm1
vpxor %xmm1, %xmm0, %xmm0
vmovdqa %xmm0, -0x50(%rsp)
vmovdqa -0x50(%rsp), %xmm0
movq -0x78(%rsp), %rax
vmovdqa %xmm0, 0x50(%rax)
vmovdqa -0x50(%rsp), %xmm0
vaeskeygenassist $0x20, %xmm0, %xmm0
vmovdqa %xmm0, -0x60(%rsp)
vmovdqa -0x70(%rsp), %xmm0
vmovdqa %xmm0, 0x260(%rsp)
vmovaps 0x260(%rsp), %xmm0
vmovdqa -0x50(%rsp), %xmm1
vmovdqa %xmm1, 0x250(%rsp)
vmovaps 0x250(%rsp), %xmm1
vshufps $0x10, %xmm1, %xmm0, %xmm0 # xmm0 = xmm0[0,0],xmm1[1,0]
vmovaps %xmm0, 0x80(%rsp)
vmovaps 0x80(%rsp), %xmm0
vmovaps %xmm0, -0x70(%rsp)
vmovdqa -0x50(%rsp), %xmm1
vmovdqa -0x70(%rsp), %xmm0
vmovdqa %xmm1, 0x580(%rsp)
vmovdqa %xmm0, 0x570(%rsp)
vmovdqa 0x580(%rsp), %xmm0
vmovdqa 0x570(%rsp), %xmm1
vpxor %xmm1, %xmm0, %xmm0
vmovdqa %xmm0, -0x50(%rsp)
vmovdqa -0x70(%rsp), %xmm0
vmovdqa %xmm0, 0x240(%rsp)
vmovaps 0x240(%rsp), %xmm0
vmovdqa -0x50(%rsp), %xmm1
vmovdqa %xmm1, 0x230(%rsp)
vmovaps 0x230(%rsp), %xmm1
vshufps $0x8c, %xmm1, %xmm0, %xmm0 # xmm0 = xmm0[0,3],xmm1[0,2]
vmovaps %xmm0, 0x70(%rsp)
vmovaps 0x70(%rsp), %xmm0
vmovaps %xmm0, -0x70(%rsp)
vmovdqa -0x50(%rsp), %xmm1
vmovdqa -0x70(%rsp), %xmm0
vmovdqa %xmm1, 0x560(%rsp)
vmovdqa %xmm0, 0x550(%rsp)
vmovdqa 0x560(%rsp), %xmm0
vmovdqa 0x550(%rsp), %xmm1
vpxor %xmm1, %xmm0, %xmm0
vmovdqa %xmm0, -0x50(%rsp)
vpbroadcastd -0x54(%rsp), %xmm0
vmovdqa %xmm0, -0x60(%rsp)
vmovdqa -0x50(%rsp), %xmm1
vmovdqa -0x60(%rsp), %xmm0
vmovdqa %xmm1, 0x540(%rsp)
vmovdqa %xmm0, 0x530(%rsp)
vmovdqa 0x540(%rsp), %xmm0
vmovdqa 0x530(%rsp), %xmm1
vpxor %xmm1, %xmm0, %xmm0
vmovdqa %xmm0, -0x50(%rsp)
vmovdqa -0x50(%rsp), %xmm0
movq -0x78(%rsp), %rax
vmovdqa %xmm0, 0x60(%rax)
vmovdqa -0x50(%rsp), %xmm0
vaeskeygenassist $0x40, %xmm0, %xmm0
vmovdqa %xmm0, -0x60(%rsp)
vmovdqa -0x70(%rsp), %xmm0
vmovdqa %xmm0, 0x220(%rsp)
vmovaps 0x220(%rsp), %xmm0
vmovdqa -0x50(%rsp), %xmm1
vmovdqa %xmm1, 0x210(%rsp)
vmovaps 0x210(%rsp), %xmm1
vshufps $0x10, %xmm1, %xmm0, %xmm0 # xmm0 = xmm0[0,0],xmm1[1,0]
vmovaps %xmm0, 0x60(%rsp)
vmovaps 0x60(%rsp), %xmm0
vmovaps %xmm0, -0x70(%rsp)
vmovdqa -0x50(%rsp), %xmm1
vmovdqa -0x70(%rsp), %xmm0
vmovdqa %xmm1, 0x520(%rsp)
vmovdqa %xmm0, 0x510(%rsp)
vmovdqa 0x520(%rsp), %xmm0
vmovdqa 0x510(%rsp), %xmm1
vpxor %xmm1, %xmm0, %xmm0
vmovdqa %xmm0, -0x50(%rsp)
vmovdqa -0x70(%rsp), %xmm0
vmovdqa %xmm0, 0x200(%rsp)
vmovaps 0x200(%rsp), %xmm0
vmovdqa -0x50(%rsp), %xmm1
vmovdqa %xmm1, 0x1f0(%rsp)
vmovaps 0x1f0(%rsp), %xmm1
vshufps $0x8c, %xmm1, %xmm0, %xmm0 # xmm0 = xmm0[0,3],xmm1[0,2]
vmovaps %xmm0, 0x50(%rsp)
vmovaps 0x50(%rsp), %xmm0
vmovaps %xmm0, -0x70(%rsp)
vmovdqa -0x50(%rsp), %xmm1
vmovdqa -0x70(%rsp), %xmm0
vmovdqa %xmm1, 0x500(%rsp)
vmovdqa %xmm0, 0x4f0(%rsp)
vmovdqa 0x500(%rsp), %xmm0
vmovdqa 0x4f0(%rsp), %xmm1
vpxor %xmm1, %xmm0, %xmm0
vmovdqa %xmm0, -0x50(%rsp)
vpbroadcastd -0x54(%rsp), %xmm0
vmovdqa %xmm0, -0x60(%rsp)
vmovdqa -0x50(%rsp), %xmm1
vmovdqa -0x60(%rsp), %xmm0
vmovdqa %xmm1, 0x4e0(%rsp)
vmovdqa %xmm0, 0x4d0(%rsp)
vmovdqa 0x4e0(%rsp), %xmm0
vmovdqa 0x4d0(%rsp), %xmm1
vpxor %xmm1, %xmm0, %xmm0
vmovdqa %xmm0, -0x50(%rsp)
vmovdqa -0x50(%rsp), %xmm0
movq -0x78(%rsp), %rax
vmovdqa %xmm0, 0x70(%rax)
vmovdqa -0x50(%rsp), %xmm0
vaeskeygenassist $0x80, %xmm0, %xmm0
vmovdqa %xmm0, -0x60(%rsp)
vmovdqa -0x70(%rsp), %xmm0
vmovdqa %xmm0, 0x1e0(%rsp)
vmovaps 0x1e0(%rsp), %xmm0
vmovdqa -0x50(%rsp), %xmm1
vmovdqa %xmm1, 0x1d0(%rsp)
vmovaps 0x1d0(%rsp), %xmm1
vshufps $0x10, %xmm1, %xmm0, %xmm0 # xmm0 = xmm0[0,0],xmm1[1,0]
vmovaps %xmm0, 0x40(%rsp)
vmovaps 0x40(%rsp), %xmm0
vmovaps %xmm0, -0x70(%rsp)
vmovdqa -0x50(%rsp), %xmm1
vmovdqa -0x70(%rsp), %xmm0
vmovdqa %xmm1, 0x4c0(%rsp)
vmovdqa %xmm0, 0x4b0(%rsp)
vmovdqa 0x4c0(%rsp), %xmm0
vmovdqa 0x4b0(%rsp), %xmm1
vpxor %xmm1, %xmm0, %xmm0
vmovdqa %xmm0, -0x50(%rsp)
vmovdqa -0x70(%rsp), %xmm0
vmovdqa %xmm0, 0x1c0(%rsp)
vmovaps 0x1c0(%rsp), %xmm0
vmovdqa -0x50(%rsp), %xmm1
vmovdqa %xmm1, 0x1b0(%rsp)
vmovaps 0x1b0(%rsp), %xmm1
vshufps $0x8c, %xmm1, %xmm0, %xmm0 # xmm0 = xmm0[0,3],xmm1[0,2]
vmovaps %xmm0, 0x30(%rsp)
vmovaps 0x30(%rsp), %xmm0
vmovaps %xmm0, -0x70(%rsp)
vmovdqa -0x50(%rsp), %xmm1
vmovdqa -0x70(%rsp), %xmm0
vmovdqa %xmm1, 0x4a0(%rsp)
vmovdqa %xmm0, 0x490(%rsp)
vmovdqa 0x4a0(%rsp), %xmm0
vmovdqa 0x490(%rsp), %xmm1
vpxor %xmm1, %xmm0, %xmm0
vmovdqa %xmm0, -0x50(%rsp)
vpbroadcastd -0x54(%rsp), %xmm0
vmovdqa %xmm0, -0x60(%rsp)
vmovdqa -0x50(%rsp), %xmm1
vmovdqa -0x60(%rsp), %xmm0
vmovdqa %xmm1, 0x480(%rsp)
vmovdqa %xmm0, 0x470(%rsp)
vmovdqa 0x480(%rsp), %xmm0
vmovdqa 0x470(%rsp), %xmm1
vpxor %xmm1, %xmm0, %xmm0
vmovdqa %xmm0, -0x50(%rsp)
vmovdqa -0x50(%rsp), %xmm0
movq -0x78(%rsp), %rax
vmovdqa %xmm0, 0x80(%rax)
vmovdqa -0x50(%rsp), %xmm0
vaeskeygenassist $0x1b, %xmm0, %xmm0
vmovdqa %xmm0, -0x60(%rsp)
vmovdqa -0x70(%rsp), %xmm0
vmovdqa %xmm0, 0x1a0(%rsp)
vmovaps 0x1a0(%rsp), %xmm0
vmovdqa -0x50(%rsp), %xmm1
vmovdqa %xmm1, 0x190(%rsp)
vmovaps 0x190(%rsp), %xmm1
vshufps $0x10, %xmm1, %xmm0, %xmm0 # xmm0 = xmm0[0,0],xmm1[1,0]
vmovaps %xmm0, 0x20(%rsp)
vmovaps 0x20(%rsp), %xmm0
vmovaps %xmm0, -0x70(%rsp)
vmovdqa -0x50(%rsp), %xmm1
vmovdqa -0x70(%rsp), %xmm0
vmovdqa %xmm1, 0x460(%rsp)
vmovdqa %xmm0, 0x450(%rsp)
vmovdqa 0x460(%rsp), %xmm0
vmovdqa 0x450(%rsp), %xmm1
vpxor %xmm1, %xmm0, %xmm0
vmovdqa %xmm0, -0x50(%rsp)
vmovdqa -0x70(%rsp), %xmm0
vmovdqa %xmm0, 0x180(%rsp)
vmovaps 0x180(%rsp), %xmm0
vmovdqa -0x50(%rsp), %xmm1
vmovdqa %xmm1, 0x170(%rsp)
vmovaps 0x170(%rsp), %xmm1
vshufps $0x8c, %xmm1, %xmm0, %xmm0 # xmm0 = xmm0[0,3],xmm1[0,2]
vmovaps %xmm0, 0x10(%rsp)
vmovaps 0x10(%rsp), %xmm0
vmovaps %xmm0, -0x70(%rsp)
vmovdqa -0x50(%rsp), %xmm1
vmovdqa -0x70(%rsp), %xmm0
vmovdqa %xmm1, 0x440(%rsp)
vmovdqa %xmm0, 0x430(%rsp)
vmovdqa 0x440(%rsp), %xmm0
vmovdqa 0x430(%rsp), %xmm1
vpxor %xmm1, %xmm0, %xmm0
vmovdqa %xmm0, -0x50(%rsp)
vpbroadcastd -0x54(%rsp), %xmm0
vmovdqa %xmm0, -0x60(%rsp)
vmovdqa -0x50(%rsp), %xmm1
vmovdqa -0x60(%rsp), %xmm0
vmovdqa %xmm1, 0x420(%rsp)
vmovdqa %xmm0, 0x410(%rsp)
vmovdqa 0x420(%rsp), %xmm0
vmovdqa 0x410(%rsp), %xmm1
vpxor %xmm1, %xmm0, %xmm0
vmovdqa %xmm0, -0x50(%rsp)
vmovdqa -0x50(%rsp), %xmm0
movq -0x78(%rsp), %rax
vmovdqa %xmm0, 0x90(%rax)
vmovdqa -0x50(%rsp), %xmm0
vaeskeygenassist $0x36, %xmm0, %xmm0
vmovdqa %xmm0, -0x60(%rsp)
vmovdqa -0x70(%rsp), %xmm0
vmovdqa %xmm0, 0x160(%rsp)
vmovaps 0x160(%rsp), %xmm0
vmovdqa -0x50(%rsp), %xmm1
vmovdqa %xmm1, 0x150(%rsp)
vmovaps 0x150(%rsp), %xmm1
vshufps $0x10, %xmm1, %xmm0, %xmm0 # xmm0 = xmm0[0,0],xmm1[1,0]
vmovaps %xmm0, (%rsp)
vmovaps (%rsp), %xmm0
vmovaps %xmm0, -0x70(%rsp)
vmovdqa -0x50(%rsp), %xmm1
vmovdqa -0x70(%rsp), %xmm0
vmovdqa %xmm1, 0x400(%rsp)
vmovdqa %xmm0, 0x3f0(%rsp)
vmovdqa 0x400(%rsp), %xmm0
vmovdqa 0x3f0(%rsp), %xmm1
vpxor %xmm1, %xmm0, %xmm0
vmovdqa %xmm0, -0x50(%rsp)
vmovdqa -0x70(%rsp), %xmm0
vmovdqa %xmm0, 0x140(%rsp)
vmovaps 0x140(%rsp), %xmm0
vmovdqa -0x50(%rsp), %xmm1
vmovdqa %xmm1, 0x130(%rsp)
vmovaps 0x130(%rsp), %xmm1
vshufps $0x8c, %xmm1, %xmm0, %xmm0 # xmm0 = xmm0[0,3],xmm1[0,2]
vmovaps %xmm0, -0x10(%rsp)
vmovaps -0x10(%rsp), %xmm0
vmovaps %xmm0, -0x70(%rsp)
vmovdqa -0x50(%rsp), %xmm1
vmovdqa -0x70(%rsp), %xmm0
vmovdqa %xmm1, 0x3e0(%rsp)
vmovdqa %xmm0, 0x3d0(%rsp)
vmovdqa 0x3e0(%rsp), %xmm0
vmovdqa 0x3d0(%rsp), %xmm1
vpxor %xmm1, %xmm0, %xmm0
vmovdqa %xmm0, -0x50(%rsp)
vpbroadcastd -0x54(%rsp), %xmm0
vmovdqa %xmm0, -0x60(%rsp)
vmovdqa -0x50(%rsp), %xmm1
vmovdqa -0x60(%rsp), %xmm0
vmovdqa %xmm1, 0x3c0(%rsp)
vmovdqa %xmm0, 0x3b0(%rsp)
vmovdqa 0x3c0(%rsp), %xmm0
vpxor 0x3b0(%rsp), %xmm0, %xmm0
vmovdqa %xmm0, -0x50(%rsp)
vmovdqa -0x50(%rsp), %xmm0
movq -0x78(%rsp), %rax
vmovdqa %xmm0, 0xa0(%rax)
movq -0x38(%rsp), %rax
movl $0xa, 0xf0(%rax)
addq $0x778, %rsp            # imm = 0x778
retq
nopl (%rax)