// File: /workspace/github_c_makefile_star2_O0/mjosaarinen[P]brutus/crypto_aead/scream10v3/sse/scream.c
// Function: tweakey_set
void tweakey_set(v16qi *TK, int i, int j, uint8_t x) {
  v16qi *K = &TK[3*16];
  v16qi *T = &TK[4*16];

  T[key_idx(j)][i] = x;
  UPDATE(j);
}

// Assembly:
movb %cl, %al
movq %rdi, -0x8(%rsp)
movl %esi, -0xc(%rsp)
movl %edx, -0x10(%rsp)
movb %al, -0x11(%rsp)
movq -0x8(%rsp), %rax
addq $0x300, %rax            # imm = 0x300
movq %rax, -0x20(%rsp)
movq -0x8(%rsp), %rax
addq $0x400, %rax            # imm = 0x400
movq %rax, -0x28(%rsp)
movq -0x28(%rsp), %rcx
movl -0x10(%rsp), %eax
movl %eax, %esi
sarl %esi
andl $0x1, %eax
movl %eax, %edx
movl %esi, %eax
leal (%rax,%rdx,8), %eax
movslq %eax, %rdx
shlq $0x4, %rdx
movq %rcx, %rax
addq %rdx, %rax
vmovdqa (%rcx,%rdx), %xmm0
vmovdqa 0x528c(%rip), %xmm2     # 0xb010
vpbroadcastb -0xc(%rsp), %xmm1
vpcmpeqb %xmm2, %xmm1, %k1
vpbroadcastb -0x11(%rsp), %xmm1
vmovdqu8 %xmm1, %xmm0 {%k1}
vmovdqa %xmm0, (%rax)
movq -0x28(%rsp), %rax
movl -0x10(%rsp), %ecx
sarl %ecx
movl -0x10(%rsp), %edx
andl $0x1, %edx
shll $0x3, %edx
addl %edx, %ecx
movslq %ecx, %rcx
shlq $0x4, %rcx
addq %rcx, %rax
vmovdqa (%rax), %xmm0
movq -0x20(%rsp), %rax
movl -0x10(%rsp), %ecx
sarl %ecx
movl -0x10(%rsp), %edx
andl $0x1, %edx
shll $0x3, %edx
addl %edx, %ecx
movslq %ecx, %rcx
shlq $0x4, %rcx
addq %rcx, %rax
vpxor (%rax), %xmm0, %xmm0
movq -0x8(%rsp), %rax
movl -0x10(%rsp), %ecx
sarl %ecx
movl -0x10(%rsp), %edx
andl $0x1, %edx
shll $0x3, %edx
addl %edx, %ecx
movslq %ecx, %rcx
shlq $0x4, %rcx
addq %rcx, %rax
vmovdqa %xmm0, (%rax)
movq -0x28(%rsp), %rax
movl -0x10(%rsp), %ecx
sarl %ecx
movl -0x10(%rsp), %edx
andl $0x1, %edx
shll $0x3, %edx
addl %edx, %ecx
movslq %ecx, %rcx
shlq $0x4, %rcx
addq %rcx, %rax
vmovdqa (%rax), %xmm0
movq -0x28(%rsp), %rax
movl -0x10(%rsp), %ecx
subl $0x8, %ecx
sarl %ecx
movl -0x10(%rsp), %edx
subl $0x8, %edx
andl $0x1, %edx
shll $0x3, %edx
addl %edx, %ecx
movslq %ecx, %rcx
shlq $0x4, %rcx
addq %rcx, %rax
vpxor (%rax), %xmm0, %xmm0
movq -0x20(%rsp), %rax
movl -0x10(%rsp), %ecx
subl $0x8, %ecx
sarl %ecx
movl -0x10(%rsp), %edx
subl $0x8, %edx
andl $0x1, %edx
shll $0x3, %edx
addl %edx, %ecx
movslq %ecx, %rcx
shlq $0x4, %rcx
addq %rcx, %rax
vpxor (%rax), %xmm0, %xmm0
movq -0x8(%rsp), %rax
movl -0x10(%rsp), %ecx
subl $0x8, %ecx
sarl %ecx
movl -0x10(%rsp), %edx
subl $0x8, %edx
andl $0x1, %edx
shll $0x3, %edx
addl %edx, %ecx
addl $0x10, %ecx
movslq %ecx, %rcx
shlq $0x4, %rcx
addq %rcx, %rax
vmovdqa %xmm0, (%rax)
movq -0x28(%rsp), %rax
movl -0x10(%rsp), %ecx
sarl %ecx
movl -0x10(%rsp), %edx
andl $0x1, %edx
shll $0x3, %edx
addl %edx, %ecx
movslq %ecx, %rcx
shlq $0x4, %rcx
addq %rcx, %rax
vmovdqa (%rax), %xmm0
movq -0x20(%rsp), %rax
movl -0x10(%rsp), %ecx
subl $0x8, %ecx
sarl %ecx
movl -0x10(%rsp), %edx
subl $0x8, %edx
andl $0x1, %edx
shll $0x3, %edx
addl %edx, %ecx
movslq %ecx, %rcx
shlq $0x4, %rcx
addq %rcx, %rax
vpxor (%rax), %xmm0, %xmm0
movq -0x8(%rsp), %rax
movl -0x10(%rsp), %ecx
subl $0x8, %ecx
sarl %ecx
movl -0x10(%rsp), %edx
subl $0x8, %edx
andl $0x1, %edx
shll $0x3, %edx
addl %edx, %ecx
addl $0x20, %ecx
movslq %ecx, %rcx
shlq $0x4, %rcx
addq %rcx, %rax
vmovdqa %xmm0, (%rax)
movq -0x28(%rsp), %rax
movl -0x10(%rsp), %ecx
sarl %ecx
movl -0x10(%rsp), %edx
andl $0x1, %edx
shll $0x3, %edx
addl %edx, %ecx
movslq %ecx, %rcx
shlq $0x4, %rcx
addq %rcx, %rax
vmovdqa (%rax), %xmm0
movq -0x28(%rsp), %rax
movl -0x10(%rsp), %ecx
subl $0x8, %ecx
sarl %ecx
movl -0x10(%rsp), %edx
subl $0x8, %edx
andl $0x1, %edx
shll $0x3, %edx
addl %edx, %ecx
movslq %ecx, %rcx
shlq $0x4, %rcx
addq %rcx, %rax
vpxor (%rax), %xmm0, %xmm0
movq -0x20(%rsp), %rax
movl -0x10(%rsp), %ecx
sarl %ecx
movl -0x10(%rsp), %edx
andl $0x1, %edx
shll $0x3, %edx
addl %edx, %ecx
movslq %ecx, %rcx
shlq $0x4, %rcx
addq %rcx, %rax
vpxor (%rax), %xmm0, %xmm0
movq -0x8(%rsp), %rax
movl -0x10(%rsp), %ecx
sarl %ecx
movl -0x10(%rsp), %edx
andl $0x1, %edx
shll $0x3, %edx
addl %edx, %ecx
addl $0x20, %ecx
movslq %ecx, %rcx
shlq $0x4, %rcx
addq %rcx, %rax
vmovdqa %xmm0, (%rax)
retq
nopw %cs:(%rax,%rax)