// File: /workspace/github_cpp_makefile_star2_O2/cgvwzq[P]aes_bf/include/aes_ni.h
// Function: aes128_load_key(unsigned char*, long long vector[2]*)
static void aes128_load_key_enc_only(uint8_t *enc_key, __m128i *key_schedule){
    key_schedule[0] = _mm_loadu_si128((const __m128i*) enc_key);
    key_schedule[1]  = AES_128_key_exp(key_schedule[0], 0x01);
    key_schedule[2]  = AES_128_key_exp(key_schedule[1], 0x02);
    key_schedule[3]  = AES_128_key_exp(key_schedule[2], 0x04);
    key_schedule[4]  = AES_128_key_exp(key_schedule[3], 0x08);
    key_schedule[5]  = AES_128_key_exp(key_schedule[4], 0x10);
    key_schedule[6]  = AES_128_key_exp(key_schedule[5], 0x20);
    key_schedule[7]  = AES_128_key_exp(key_schedule[6], 0x40);
    key_schedule[8]  = AES_128_key_exp(key_schedule[7], 0x80);
    key_schedule[9]  = AES_128_key_exp(key_schedule[8], 0x1B);
    key_schedule[10] = AES_128_key_exp(key_schedule[9], 0x36);
}

// Assembly:
vmovdqu (%rdi), %xmm0
vaeskeygenassist $0x1, %xmm0, %xmm1
vpslldq $0x4, %xmm0, %xmm2      # xmm2 = zero,zero,zero,zero,xmm0[0,1,2,3,4,5,6,7,8,9,10,11]
vmovdqa %xmm0, (%rsi)
vxorpd %xmm2, %xmm0, %xmm0
vpslldq $0x4, %xmm0, %xmm2      # xmm2 = zero,zero,zero,zero,xmm0[0,1,2,3,4,5,6,7,8,9,10,11]
vxorpd %xmm2, %xmm0, %xmm2
vpshufd $0xff, %xmm1, %xmm1     # xmm1 = xmm1[3,3,3,3]
vpslldq $0x4, %xmm2, %xmm0      # xmm0 = zero,zero,zero,zero,xmm2[0,1,2,3,4,5,6,7,8,9,10,11]
vpternlogq $0x96, %xmm1, %xmm2, %xmm0
vaeskeygenassist $0x2, %xmm0, %xmm1
vmovdqa %xmm0, 0x10(%rsi)
vpshufd $0xff, %xmm1, %xmm2     # xmm2 = xmm1[3,3,3,3]
vpslldq $0x4, %xmm0, %xmm1      # xmm1 = zero,zero,zero,zero,xmm0[0,1,2,3,4,5,6,7,8,9,10,11]
vxorpd %xmm1, %xmm0, %xmm1
vaesimc %xmm0, %xmm0
vpslldq $0x4, %xmm1, %xmm3      # xmm3 = zero,zero,zero,zero,xmm1[0,1,2,3,4,5,6,7,8,9,10,11]
vxorpd %xmm3, %xmm1, %xmm3
vpslldq $0x4, %xmm3, %xmm1      # xmm1 = zero,zero,zero,zero,xmm3[0,1,2,3,4,5,6,7,8,9,10,11]
vpternlogq $0x96, %xmm2, %xmm3, %xmm1
vaeskeygenassist $0x4, %xmm1, %xmm2
vmovdqa %xmm1, 0x20(%rsi)
vpshufd $0xff, %xmm2, %xmm3     # xmm3 = xmm2[3,3,3,3]
vpslldq $0x4, %xmm1, %xmm2      # xmm2 = zero,zero,zero,zero,xmm1[0,1,2,3,4,5,6,7,8,9,10,11]
vxorpd %xmm2, %xmm1, %xmm2
vaesimc %xmm1, %xmm1
vpslldq $0x4, %xmm2, %xmm4      # xmm4 = zero,zero,zero,zero,xmm2[0,1,2,3,4,5,6,7,8,9,10,11]
vxorpd %xmm4, %xmm2, %xmm4
vpslldq $0x4, %xmm4, %xmm2      # xmm2 = zero,zero,zero,zero,xmm4[0,1,2,3,4,5,6,7,8,9,10,11]
vpternlogq $0x96, %xmm3, %xmm4, %xmm2
vaeskeygenassist $0x8, %xmm2, %xmm3
vmovdqa %xmm2, 0x30(%rsi)
vpshufd $0xff, %xmm3, %xmm4     # xmm4 = xmm3[3,3,3,3]
vpslldq $0x4, %xmm2, %xmm3      # xmm3 = zero,zero,zero,zero,xmm2[0,1,2,3,4,5,6,7,8,9,10,11]
vxorpd %xmm3, %xmm2, %xmm3
vaesimc %xmm2, %xmm2
vpslldq $0x4, %xmm3, %xmm5      # xmm5 = zero,zero,zero,zero,xmm3[0,1,2,3,4,5,6,7,8,9,10,11]
vxorpd %xmm5, %xmm3, %xmm5
vpslldq $0x4, %xmm5, %xmm3      # xmm3 = zero,zero,zero,zero,xmm5[0,1,2,3,4,5,6,7,8,9,10,11]
vpternlogq $0x96, %xmm4, %xmm5, %xmm3
vaeskeygenassist $0x10, %xmm3, %xmm4
vmovdqa %xmm3, 0x40(%rsi)
vpshufd $0xff, %xmm4, %xmm5     # xmm5 = xmm4[3,3,3,3]
vpslldq $0x4, %xmm3, %xmm4      # xmm4 = zero,zero,zero,zero,xmm3[0,1,2,3,4,5,6,7,8,9,10,11]
vxorpd %xmm4, %xmm3, %xmm4
vaesimc %xmm3, %xmm3
vpslldq $0x4, %xmm4, %xmm6      # xmm6 = zero,zero,zero,zero,xmm4[0,1,2,3,4,5,6,7,8,9,10,11]
vxorpd %xmm6, %xmm4, %xmm6
vpslldq $0x4, %xmm6, %xmm4      # xmm4 = zero,zero,zero,zero,xmm6[0,1,2,3,4,5,6,7,8,9,10,11]
vpternlogq $0x96, %xmm5, %xmm6, %xmm4
vaeskeygenassist $0x20, %xmm4, %xmm5
vmovdqa %xmm4, 0x50(%rsi)
vpshufd $0xff, %xmm5, %xmm6     # xmm6 = xmm5[3,3,3,3]
vpslldq $0x4, %xmm4, %xmm5      # xmm5 = zero,zero,zero,zero,xmm4[0,1,2,3,4,5,6,7,8,9,10,11]
vxorpd %xmm5, %xmm4, %xmm5
vaesimc %xmm4, %xmm4
vpslldq $0x4, %xmm5, %xmm7      # xmm7 = zero,zero,zero,zero,xmm5[0,1,2,3,4,5,6,7,8,9,10,11]
vxorpd %xmm7, %xmm5, %xmm7
vpslldq $0x4, %xmm7, %xmm5      # xmm5 = zero,zero,zero,zero,xmm7[0,1,2,3,4,5,6,7,8,9,10,11]
vpternlogq $0x96, %xmm6, %xmm7, %xmm5
vaeskeygenassist $0x40, %xmm5, %xmm6
vmovdqa %xmm5, 0x60(%rsi)
vpshufd $0xff, %xmm6, %xmm7     # xmm7 = xmm6[3,3,3,3]
vpslldq $0x4, %xmm5, %xmm6      # xmm6 = zero,zero,zero,zero,xmm5[0,1,2,3,4,5,6,7,8,9,10,11]
vxorpd %xmm6, %xmm5, %xmm6
vaesimc %xmm5, %xmm5
vpslldq $0x4, %xmm6, %xmm8      # xmm8 = zero,zero,zero,zero,xmm6[0,1,2,3,4,5,6,7,8,9,10,11]
vxorpd %xmm6, %xmm8, %xmm8
vpslldq $0x4, %xmm8, %xmm6      # xmm6 = zero,zero,zero,zero,xmm8[0,1,2,3,4,5,6,7,8,9,10,11]
vpternlogq $0x96, %xmm7, %xmm8, %xmm6
vaeskeygenassist $0x80, %xmm6, %xmm7
vpslldq $0x4, %xmm6, %xmm8      # xmm8 = zero,zero,zero,zero,xmm6[0,1,2,3,4,5,6,7,8,9,10,11]
vmovdqa %xmm6, 0x70(%rsi)
vxorpd %xmm6, %xmm8, %xmm8
vaesimc %xmm6, %xmm6
vpslldq $0x4, %xmm8, %xmm9      # xmm9 = zero,zero,zero,zero,xmm8[0,1,2,3,4,5,6,7,8,9,10,11]
vxorpd %xmm9, %xmm8, %xmm8
vpshufd $0xff, %xmm7, %xmm7     # xmm7 = xmm7[3,3,3,3]
vpslldq $0x4, %xmm8, %xmm9      # xmm9 = zero,zero,zero,zero,xmm8[0,1,2,3,4,5,6,7,8,9,10,11]
vpternlogq $0x96, %xmm7, %xmm8, %xmm9
vaeskeygenassist $0x1b, %xmm9, %xmm7
vpslldq $0x4, %xmm9, %xmm8      # xmm8 = zero,zero,zero,zero,xmm9[0,1,2,3,4,5,6,7,8,9,10,11]
vmovdqa %xmm9, 0x80(%rsi)
vxorpd %xmm8, %xmm9, %xmm8
vpslldq $0x4, %xmm8, %xmm10     # xmm10 = zero,zero,zero,zero,xmm8[0,1,2,3,4,5,6,7,8,9,10,11]
vxorpd %xmm10, %xmm8, %xmm8
vpshufd $0xff, %xmm7, %xmm7     # xmm7 = xmm7[3,3,3,3]
vpslldq $0x4, %xmm8, %xmm10     # xmm10 = zero,zero,zero,zero,xmm8[0,1,2,3,4,5,6,7,8,9,10,11]
vpternlogq $0x96, %xmm7, %xmm8, %xmm10
vaeskeygenassist $0x36, %xmm10, %xmm7
vpslldq $0x4, %xmm10, %xmm8     # xmm8 = zero,zero,zero,zero,xmm10[0,1,2,3,4,5,6,7,8,9,10,11]
vmovdqa %xmm10, 0x90(%rsi)
vxorpd %xmm8, %xmm10, %xmm8
vpslldq $0x4, %xmm8, %xmm11     # xmm11 = zero,zero,zero,zero,xmm8[0,1,2,3,4,5,6,7,8,9,10,11]
vxorpd %xmm11, %xmm8, %xmm8
vpshufd $0xff, %xmm7, %xmm7     # xmm7 = xmm7[3,3,3,3]
vpslldq $0x4, %xmm8, %xmm11     # xmm11 = zero,zero,zero,zero,xmm8[0,1,2,3,4,5,6,7,8,9,10,11]
vpternlogq $0x96, %xmm7, %xmm8, %xmm11
vaesimc %xmm10, %xmm7
vmovdqa %xmm11, 0xa0(%rsi)
vmovdqa %xmm7, 0xb0(%rsi)
vaesimc %xmm9, %xmm7
vmovdqa %xmm7, 0xc0(%rsi)
vmovdqa %xmm6, 0xd0(%rsi)
vmovdqa %xmm5, 0xe0(%rsi)
vmovdqa %xmm4, 0xf0(%rsi)
vmovdqa %xmm3, 0x100(%rsi)
vmovdqa %xmm2, 0x110(%rsi)
vmovdqa %xmm1, 0x120(%rsi)
vmovdqa %xmm0, 0x130(%rsi)
retq