// File: /workspace/github_c_makefile_star2_O0/mjosaarinen[P]brutus/crypto_aead/scream10v3/sse/scream.c
// Function: tweakey_increment
void tweakey_increment(v16qi *TK, size_t idx) {
  v16qi *K = &TK[3*16];
  v16qi *T = &TK[4*16];

  T[key_idx(14)] += V(16);
  UPDATE(14);
  if (((idx+256) & 0xfff) == 0) {
    T[key_idx(13)] += V(1);
    UPDATE(13);
    if (((idx+256) & 0xfffff) == 0) {
      T[key_idx(12)] += V(1);
      UPDATE(12);
      if (((idx+256) & 0xfffffff) == 0) {
	T[key_idx(11)] += V(1);
	UPDATE(11);
      }
    }
  }
}

// Assembly:
movq %rdi, -0x8(%rsp)
movq %rsi, -0x10(%rsp)
movq -0x8(%rsp), %rax
addq $0x300, %rax            # imm = 0x300
movq %rax, -0x18(%rsp)
movq -0x8(%rsp), %rax
addq $0x400, %rax            # imm = 0x400
movq %rax, -0x20(%rsp)
vmovdqa 0x567e(%rip), %xmm0     # 0xb020
vmovdqa %xmm0, -0x38(%rsp)
vmovdqa -0x38(%rsp), %xmm0
movq -0x20(%rsp), %rax
vpaddb 0x70(%rax), %xmm0, %xmm0
vmovdqa %xmm0, 0x70(%rax)
movq -0x20(%rsp), %rax
vmovdqa 0x70(%rax), %xmm0
movq -0x18(%rsp), %rax
vpxor 0x70(%rax), %xmm0, %xmm0
movq -0x8(%rsp), %rax
vmovdqa %xmm0, 0x70(%rax)
movq -0x20(%rsp), %rax
vmovdqa 0x70(%rax), %xmm0
movq -0x20(%rsp), %rax
vpxor 0x30(%rax), %xmm0, %xmm0
movq -0x18(%rsp), %rax
vpxor 0x30(%rax), %xmm0, %xmm0
movq -0x8(%rsp), %rax
vmovdqa %xmm0, 0x130(%rax)
movq -0x20(%rsp), %rax
vmovdqa 0x70(%rax), %xmm0
movq -0x18(%rsp), %rax
vpxor 0x30(%rax), %xmm0, %xmm0
movq -0x8(%rsp), %rax
vmovdqa %xmm0, 0x230(%rax)
movq -0x20(%rsp), %rax
vmovdqa 0x70(%rax), %xmm0
movq -0x20(%rsp), %rax
vpxor 0x30(%rax), %xmm0, %xmm0
movq -0x18(%rsp), %rax
vpxor 0x70(%rax), %xmm0, %xmm0
movq -0x8(%rsp), %rax
vmovdqa %xmm0, 0x270(%rax)
movq -0x10(%rsp), %rax
addq $0x100, %rax            # imm = 0x100
andq $0xfff, %rax            # imm = 0xFFF
cmpq $0x0, %rax
jne 0x5d1f
vmovdqa 0x55bb(%rip), %xmm0     # 0xb030
vmovdqa %xmm0, -0x48(%rsp)
vmovdqa -0x48(%rsp), %xmm0
movq -0x20(%rsp), %rax
vpaddb 0xe0(%rax), %xmm0, %xmm0
vmovdqa %xmm0, 0xe0(%rax)
movq -0x20(%rsp), %rax
vmovdqa 0xe0(%rax), %xmm0
movq -0x18(%rsp), %rax
vpxor 0xe0(%rax), %xmm0, %xmm0
movq -0x8(%rsp), %rax
vmovdqa %xmm0, 0xe0(%rax)
movq -0x20(%rsp), %rax
vmovdqa 0xe0(%rax), %xmm0
movq -0x20(%rsp), %rax
vpxor 0xa0(%rax), %xmm0, %xmm0
movq -0x18(%rsp), %rax
vpxor 0xa0(%rax), %xmm0, %xmm0
movq -0x8(%rsp), %rax
vmovdqa %xmm0, 0x1a0(%rax)
movq -0x20(%rsp), %rax
vmovdqa 0xe0(%rax), %xmm0
movq -0x18(%rsp), %rax
vpxor 0xa0(%rax), %xmm0, %xmm0
movq -0x8(%rsp), %rax
vmovdqa %xmm0, 0x2a0(%rax)
movq -0x20(%rsp), %rax
vmovdqa 0xe0(%rax), %xmm0
movq -0x20(%rsp), %rax
vpxor 0xa0(%rax), %xmm0, %xmm0
movq -0x18(%rsp), %rax
vpxor 0xe0(%rax), %xmm0, %xmm0
movq -0x8(%rsp), %rax
vmovdqa %xmm0, 0x2e0(%rax)
movq -0x10(%rsp), %rax
addq $0x100, %rax            # imm = 0x100
andq $0xfffff, %rax          # imm = 0xFFFFF
cmpq $0x0, %rax
jne 0x5d1d
vmovdqa 0x54c1(%rip), %xmm0     # 0xb030
vmovdqa %xmm0, -0x58(%rsp)
vmovdqa -0x58(%rsp), %xmm0
movq -0x20(%rsp), %rax
vpaddb 0x60(%rax), %xmm0, %xmm0
vmovdqa %xmm0, 0x60(%rax)
movq -0x20(%rsp), %rax
vmovdqa 0x60(%rax), %xmm0
movq -0x18(%rsp), %rax
vpxor 0x60(%rax), %xmm0, %xmm0
movq -0x8(%rsp), %rax
vmovdqa %xmm0, 0x60(%rax)
movq -0x20(%rsp), %rax
vmovdqa 0x60(%rax), %xmm0
movq -0x20(%rsp), %rax
vpxor 0x20(%rax), %xmm0, %xmm0
movq -0x18(%rsp), %rax
vpxor 0x20(%rax), %xmm0, %xmm0
movq -0x8(%rsp), %rax
vmovdqa %xmm0, 0x120(%rax)
movq -0x20(%rsp), %rax
vmovdqa 0x60(%rax), %xmm0
movq -0x18(%rsp), %rax
vpxor 0x20(%rax), %xmm0, %xmm0
movq -0x8(%rsp), %rax
vmovdqa %xmm0, 0x220(%rax)
movq -0x20(%rsp), %rax
vmovdqa 0x60(%rax), %xmm0
movq -0x20(%rsp), %rax
vpxor 0x20(%rax), %xmm0, %xmm0
movq -0x18(%rsp), %rax
vpxor 0x60(%rax), %xmm0, %xmm0
movq -0x8(%rsp), %rax
vmovdqa %xmm0, 0x260(%rax)
movq -0x10(%rsp), %rax
addq $0x100, %rax            # imm = 0x100
andq $0xfffffff, %rax        # imm = 0xFFFFFFF
cmpq $0x0, %rax
jne 0x5d1b
vmovdqa 0x53ee(%rip), %xmm0     # 0xb030
vmovdqa %xmm0, -0x68(%rsp)
vmovdqa -0x68(%rsp), %xmm0
movq -0x20(%rsp), %rax
vpaddb 0xd0(%rax), %xmm0, %xmm0
vmovdqa %xmm0, 0xd0(%rax)
movq -0x20(%rsp), %rax
vmovdqa 0xd0(%rax), %xmm0
movq -0x18(%rsp), %rax
vpxor 0xd0(%rax), %xmm0, %xmm0
movq -0x8(%rsp), %rax
vmovdqa %xmm0, 0xd0(%rax)
movq -0x20(%rsp), %rax
vmovdqa 0xd0(%rax), %xmm0
movq -0x20(%rsp), %rax
vpxor 0x90(%rax), %xmm0, %xmm0
movq -0x18(%rsp), %rax
vpxor 0x90(%rax), %xmm0, %xmm0
movq -0x8(%rsp), %rax
vmovdqa %xmm0, 0x190(%rax)
movq -0x20(%rsp), %rax
vmovdqa 0xd0(%rax), %xmm0
movq -0x18(%rsp), %rax
vpxor 0x90(%rax), %xmm0, %xmm0
movq -0x8(%rsp), %rax
vmovdqa %xmm0, 0x290(%rax)
movq -0x20(%rsp), %rax
vmovdqa 0xd0(%rax), %xmm0
movq -0x20(%rsp), %rax
vpxor 0x90(%rax), %xmm0, %xmm0
movq -0x18(%rsp), %rax
vpxor 0xd0(%rax), %xmm0, %xmm0
movq -0x8(%rsp), %rax
vmovdqa %xmm0, 0x2d0(%rax)
jmp 0x5d1b
jmp 0x5d1d
jmp 0x5d1f
retq