// File: /workspace/github_c_makefile_star2_O0/opencoff[P]crypto-rand/./chacha_private.h
// Function: chacha_keysetup
static inline void
chacha_keysetup(chacha_ctx *x,const u8 *k,u32 kbits,u32 ivbits)
{
    const char *constants;

    (void)ivbits;

    x->input[4] = U8TO32_LITTLE(k + 0);
    x->input[5] = U8TO32_LITTLE(k + 4);
    x->input[6] = U8TO32_LITTLE(k + 8);
    x->input[7] = U8TO32_LITTLE(k + 12);
    if (kbits == 256) { /* recommended */
        k += 16;
        constants = sigma;
    } else { /* kbits == 128 */
        constants = tau;
    }
    x->input[8] = U8TO32_LITTLE(k + 0);
    x->input[9] = U8TO32_LITTLE(k + 4);
    x->input[10] = U8TO32_LITTLE(k + 8);
    x->input[11] = U8TO32_LITTLE(k + 12);
    x->input[0] = U8TO32_LITTLE(constants + 0);
    x->input[1] = U8TO32_LITTLE(constants + 4);
    x->input[2] = U8TO32_LITTLE(constants + 8);
    x->input[3] = U8TO32_LITTLE(constants + 12);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movl %edx, -0x14(%rbp)
movl %ecx, -0x18(%rbp)
movq -0x10(%rbp), %rax
movzbl (%rax), %ecx
movq -0x10(%rbp), %rax
movzbl 0x1(%rax), %eax
shll $0x8, %eax
orl %eax, %ecx
movq -0x10(%rbp), %rax
movzbl 0x2(%rax), %eax
shll $0x10, %eax
orl %eax, %ecx
movq -0x10(%rbp), %rax
movzbl 0x3(%rax), %eax
shll $0x18, %eax
orl %eax, %ecx
movq -0x8(%rbp), %rax
movl %ecx, 0x10(%rax)
movq -0x10(%rbp), %rax
movzbl 0x4(%rax), %ecx
movq -0x10(%rbp), %rax
movzbl 0x5(%rax), %eax
shll $0x8, %eax
orl %eax, %ecx
movq -0x10(%rbp), %rax
movzbl 0x6(%rax), %eax
shll $0x10, %eax
orl %eax, %ecx
movq -0x10(%rbp), %rax
movzbl 0x7(%rax), %eax
shll $0x18, %eax
orl %eax, %ecx
movq -0x8(%rbp), %rax
movl %ecx, 0x14(%rax)
movq -0x10(%rbp), %rax
movzbl 0x8(%rax), %ecx
movq -0x10(%rbp), %rax
movzbl 0x9(%rax), %eax
shll $0x8, %eax
orl %eax, %ecx
movq -0x10(%rbp), %rax
movzbl 0xa(%rax), %eax
shll $0x10, %eax
orl %eax, %ecx
movq -0x10(%rbp), %rax
movzbl 0xb(%rax), %eax
shll $0x18, %eax
orl %eax, %ecx
movq -0x8(%rbp), %rax
movl %ecx, 0x18(%rax)
movq -0x10(%rbp), %rax
movzbl 0xc(%rax), %ecx
movq -0x10(%rbp), %rax
movzbl 0xd(%rax), %eax
shll $0x8, %eax
orl %eax, %ecx
movq -0x10(%rbp), %rax
movzbl 0xe(%rax), %eax
shll $0x10, %eax
orl %eax, %ecx
movq -0x10(%rbp), %rax
movzbl 0xf(%rax), %eax
shll $0x18, %eax
orl %eax, %ecx
movq -0x8(%rbp), %rax
movl %ecx, 0x1c(%rax)
cmpl $0x100, -0x14(%rbp)     # imm = 0x100
jne 0x2dbb
movq -0x10(%rbp), %rax
addq $0x10, %rax
movq %rax, -0x10(%rbp)
leaq 0x133b(%rip), %rax      # 0x40f0
movq %rax, -0x20(%rbp)
jmp 0x2dc6
leaq 0x133e(%rip), %rax      # 0x4100
movq %rax, -0x20(%rbp)
movq -0x10(%rbp), %rax
movzbl (%rax), %ecx
movq -0x10(%rbp), %rax
movzbl 0x1(%rax), %eax
shll $0x8, %eax
orl %eax, %ecx
movq -0x10(%rbp), %rax
movzbl 0x2(%rax), %eax
shll $0x10, %eax
orl %eax, %ecx
movq -0x10(%rbp), %rax
movzbl 0x3(%rax), %eax
shll $0x18, %eax
orl %eax, %ecx
movq -0x8(%rbp), %rax
movl %ecx, 0x20(%rax)
movq -0x10(%rbp), %rax
movzbl 0x4(%rax), %ecx
movq -0x10(%rbp), %rax
movzbl 0x5(%rax), %eax
shll $0x8, %eax
orl %eax, %ecx
movq -0x10(%rbp), %rax
movzbl 0x6(%rax), %eax
shll $0x10, %eax
orl %eax, %ecx
movq -0x10(%rbp), %rax
movzbl 0x7(%rax), %eax
shll $0x18, %eax
orl %eax, %ecx
movq -0x8(%rbp), %rax
movl %ecx, 0x24(%rax)
movq -0x10(%rbp), %rax
movzbl 0x8(%rax), %ecx
movq -0x10(%rbp), %rax
movzbl 0x9(%rax), %eax
shll $0x8, %eax
orl %eax, %ecx
movq -0x10(%rbp), %rax
movzbl 0xa(%rax), %eax
shll $0x10, %eax
orl %eax, %ecx
movq -0x10(%rbp), %rax
movzbl 0xb(%rax), %eax
shll $0x18, %eax
orl %eax, %ecx
movq -0x8(%rbp), %rax
movl %ecx, 0x28(%rax)
movq -0x10(%rbp), %rax
movzbl 0xc(%rax), %ecx
movq -0x10(%rbp), %rax
movzbl 0xd(%rax), %eax
shll $0x8, %eax
orl %eax, %ecx
movq -0x10(%rbp), %rax
movzbl 0xe(%rax), %eax
shll $0x10, %eax
orl %eax, %ecx
movq -0x10(%rbp), %rax
movzbl 0xf(%rax), %eax
shll $0x18, %eax
orl %eax, %ecx
movq -0x8(%rbp), %rax
movl %ecx, 0x2c(%rax)
movq -0x20(%rbp), %rax
movsbl (%rax), %ecx
movq -0x20(%rbp), %rax
movsbl 0x1(%rax), %eax
shll $0x8, %eax
orl %eax, %ecx
movq -0x20(%rbp), %rax
movsbl 0x2(%rax), %eax
shll $0x10, %eax
orl %eax, %ecx
movq -0x20(%rbp), %rax
movsbl 0x3(%rax), %eax
shll $0x18, %eax
orl %eax, %ecx
movq -0x8(%rbp), %rax
movl %ecx, (%rax)
movq -0x20(%rbp), %rax
movsbl 0x4(%rax), %ecx
movq -0x20(%rbp), %rax
movsbl 0x5(%rax), %eax
shll $0x8, %eax
orl %eax, %ecx
movq -0x20(%rbp), %rax
movsbl 0x6(%rax), %eax
shll $0x10, %eax
orl %eax, %ecx
movq -0x20(%rbp), %rax
movsbl 0x7(%rax), %eax
shll $0x18, %eax
orl %eax, %ecx
movq -0x8(%rbp), %rax
movl %ecx, 0x4(%rax)
movq -0x20(%rbp), %rax
movsbl 0x8(%rax), %ecx
movq -0x20(%rbp), %rax
movsbl 0x9(%rax), %eax
shll $0x8, %eax
orl %eax, %ecx
movq -0x20(%rbp), %rax
movsbl 0xa(%rax), %eax
shll $0x10, %eax
orl %eax, %ecx
movq -0x20(%rbp), %rax
movsbl 0xb(%rax), %eax
shll $0x18, %eax
orl %eax, %ecx
movq -0x8(%rbp), %rax
movl %ecx, 0x8(%rax)
movq -0x20(%rbp), %rax
movsbl 0xc(%rax), %ecx
movq -0x20(%rbp), %rax
movsbl 0xd(%rax), %eax
shll $0x8, %eax
orl %eax, %ecx
movq -0x20(%rbp), %rax
movsbl 0xe(%rax), %eax
shll $0x10, %eax
orl %eax, %ecx
movq -0x20(%rbp), %rax
movsbl 0xf(%rax), %eax
shll $0x18, %eax
orl %eax, %ecx
movq -0x8(%rbp), %rax
movl %ecx, 0xc(%rax)
popq %rbp
retq
nopw %cs:(%rax,%rax)