// File: /workspace/github_c_makefile_star2_O3/Tarsnap[P]kivaloo/liball/../libcperciva/alg/sha256.c
// Function: libcperciva_SHA256_Init
void
SHA256_Init(SHA256_CTX * ctx)
{

	/* Zero bits processed so far. */
	ctx->count = 0;

	/* Initialize state. */
	memcpy(ctx->state, initial_state, sizeof(initial_state));

#ifdef HWACCEL
	/* Ensure that we've chosen the type of hardware acceleration. */
	hwaccel_init();
#endif
}

// Assembly:
movq $0x0, 0x20(%rdi)
movaps 0x5059(%rip), %xmm2     # 0x133c0
movups %xmm2, 0x10(%rdi)
movaps 0x503e(%rip), %xmm3     # 0x133b0
movups %xmm3, (%rdi)
cmpl $0x3, 0xa378(%rip)      # 0x186f4
jne 0xe5c7
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x1a0, %rsp            # imm = 0x1A0
movl $0x0, 0xa358(%rip)      # 0x186f4
movdqa 0x4fcc(%rip), %xmm0     # 0x13370
xorl %eax, %eax
movdqa 0x4fd2(%rip), %xmm1     # 0x13380
movdqa %xmm0, 0x60(%rsp,%rax)
addq $0x10, %rax
paddb %xmm1, %xmm0
cmpq $0x40, %rax
jne 0xe3ae
leaq 0x1a51f(%rip), %rbx     # 0x288e8
cmpl $0x0, (%rbx)
je 0xe480
leaq 0x1a51f(%rip), %rbx     # 0x288f8
cmpl $0x0, (%rbx)
je 0xe4b3
leaq 0x40(%rsp), %rbx
movaps %xmm3, (%rbx)
movaps %xmm2, 0x10(%rbx)
leaq 0x60(%rsp), %r14
leaq 0xa0(%rsp), %rdx
movq %rsp, %rcx
movq %rbx, %rdi
movq %r14, %rsi
callq 0xedcd
leaq 0x20(%rsp), %r15
movaps 0x4fab(%rip), %xmm0     # 0x133c0
movaps %xmm0, 0x10(%r15)
movaps 0x4f8f(%rip), %xmm0     # 0x133b0
movaps %xmm0, (%r15)
movq %r15, %rdi
movq %r14, %rsi
callq 0xfaa8
movdqa (%rbx), %xmm0
movdqa 0x10(%rbx), %xmm1
pcmpeqb 0x10(%r15), %xmm1
pcmpeqb (%r15), %xmm0
pand %xmm1, %xmm0
pmovmskb %xmm0, %eax
cmpl $0xffff, %eax           # imm = 0xFFFF
je 0xe5ad
leaq 0x5013(%rip), %rdi      # 0x13471
xorl %eax, %eax
callq 0x58d7
callq 0x3040
movl $0x0, (%rax)
movaps 0x4f49(%rip), %xmm2     # 0x133c0
movaps 0x4f32(%rip), %xmm3     # 0x133b0
jmp 0xe4c4
leaq 0x1a465(%rip), %r14     # 0x288ec
cmpl $0x0, (%r14)
jne 0xe4c4
callq 0x10920
movaps 0x4f17(%rip), %xmm3     # 0x133b0
movaps 0x4f20(%rip), %xmm2     # 0x133c0
movl %eax, (%rbx)
movl $0x1, (%r14)
testl %eax, %eax
jne 0xe3d2
jmp 0xe4c4
leaq 0x1a442(%rip), %r14     # 0x288fc
cmpl $0x0, (%r14)
je 0xe5c8
leaq 0x1a425(%rip), %rbx     # 0x288f0
cmpl $0x0, (%rbx)
je 0xe56e
leaq 0x40(%rsp), %rbx
movaps %xmm3, (%rbx)
movaps %xmm2, 0x10(%rbx)
leaq 0x60(%rsp), %r14
leaq 0xa0(%rsp), %r15
movq %rsp, %r12
movq %rbx, %rdi
movq %r14, %rsi
movq %r15, %rdx
movq %r12, %rcx
callq 0xedcd
leaq 0x20(%rsp), %r13
movaps 0x4eb3(%rip), %xmm0     # 0x133c0
movaps %xmm0, 0x10(%r13)
movaps 0x4e97(%rip), %xmm0     # 0x133b0
movaps %xmm0, (%r13)
movq %r13, %rdi
movq %r14, %rsi
movq %r15, %rdx
movq %r12, %rcx
callq 0xfe14
movdqa (%rbx), %xmm0
movdqa 0x10(%rbx), %xmm1
pcmpeqb 0x10(%r13), %xmm1
pcmpeqb (%r13), %xmm0
pand %xmm1, %xmm0
pmovmskb %xmm0, %eax
cmpl $0xffff, %eax           # imm = 0xFFFF
je 0xe5a1
leaq 0x4f46(%rip), %rdi      # 0x134a0
xorl %eax, %eax
callq 0x58d7
callq 0x3040
movl $0x0, (%rax)
jmp 0xe5b7
leaq 0x1a37f(%rip), %r14     # 0x288f4
cmpl $0x0, (%r14)
jne 0xe5b7
callq 0x1094c
movaps 0x4e29(%rip), %xmm3     # 0x133b0
movaps 0x4e32(%rip), %xmm2     # 0x133c0
movl %eax, (%rbx)
movl $0x1, (%r14)
testl %eax, %eax
jne 0xe4d4
jmp 0xe5b7
movl $0x2, 0xa149(%rip)      # 0x186f4
jmp 0xe5b7
movl $0x1, 0xa13d(%rip)      # 0x186f4
addq $0x1a0, %rsp            # imm = 0x1A0
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
retq
callq 0x10974
movaps 0x4ddc(%rip), %xmm3     # 0x133b0
movaps 0x4de5(%rip), %xmm2     # 0x133c0
movl %eax, (%rbx)
movl $0x1, (%r14)
testl %eax, %eax
jne 0xe3e2
jmp 0xe4c4