// File: /workspace/github_c_makefile_star2_O0/maandree[P]libkeccak/./1600.c
// Function: libkeccak_to_lane64
LIBKECCAK_GCC_ONLY(__attribute__((__nonnull__, __nothrow__, __pure__, __hot__, __warn_unused_result__, __gnu_inline__)))
static inline uint64_t
libkeccak_to_lane64(register const unsigned char *message, register size_t msglen, register long int rr, size_t off)
{
	register long int n = (long)((msglen < (size_t)rr ? msglen : (size_t)rr) - off);
	uint64_t rc = 0;
	message += off;
#define X(N) if (__builtin_expect(N < n, 1)) rc |= (uint64_t)message[N] << (N * 8);\
             else return rc
	LIST_8(X, ;);
#undef X
	return rc;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
movq %rdx, -0x20(%rbp)
movq %rcx, -0x28(%rbp)
movq -0x18(%rbp), %rax
cmpq -0x20(%rbp), %rax
jae 0x3e78
movq -0x18(%rbp), %rax
movq %rax, -0x40(%rbp)
jmp 0x3e80
movq -0x20(%rbp), %rax
movq %rax, -0x40(%rbp)
movq -0x40(%rbp), %rax
subq -0x28(%rbp), %rax
movq %rax, -0x30(%rbp)
movq $0x0, -0x38(%rbp)
movq -0x28(%rbp), %rax
addq -0x10(%rbp), %rax
movq %rax, -0x10(%rbp)
xorl %eax, %eax
cmpq -0x30(%rbp), %rax
setl %al
andb $0x1, %al
movzbl %al, %eax
cltq
cmpq $0x0, %rax
je 0x3ecb
movq -0x10(%rbp), %rax
movzbl (%rax), %eax
shlq $0x0, %rax
orq -0x38(%rbp), %rax
movq %rax, -0x38(%rbp)
jmp 0x3ed8
movq -0x38(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0x407b
movl $0x1, %eax
cmpq -0x30(%rbp), %rax
setl %al
andb $0x1, %al
movzbl %al, %eax
cltq
cmpq $0x0, %rax
je 0x3f07
movq -0x10(%rbp), %rax
movzbl 0x1(%rax), %eax
shlq $0x8, %rax
orq -0x38(%rbp), %rax
movq %rax, -0x38(%rbp)
jmp 0x3f14
movq -0x38(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0x407b
movl $0x2, %eax
cmpq -0x30(%rbp), %rax
setl %al
andb $0x1, %al
movzbl %al, %eax
cltq
cmpq $0x0, %rax
je 0x3f43
movq -0x10(%rbp), %rax
movzbl 0x2(%rax), %eax
shlq $0x10, %rax
orq -0x38(%rbp), %rax
movq %rax, -0x38(%rbp)
jmp 0x3f50
movq -0x38(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0x407b
movl $0x3, %eax
cmpq -0x30(%rbp), %rax
setl %al
andb $0x1, %al
movzbl %al, %eax
cltq
cmpq $0x0, %rax
je 0x3f7f
movq -0x10(%rbp), %rax
movzbl 0x3(%rax), %eax
shlq $0x18, %rax
orq -0x38(%rbp), %rax
movq %rax, -0x38(%rbp)
jmp 0x3f8c
movq -0x38(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0x407b
movl $0x4, %eax
cmpq -0x30(%rbp), %rax
setl %al
andb $0x1, %al
movzbl %al, %eax
cltq
cmpq $0x0, %rax
je 0x3fbb
movq -0x10(%rbp), %rax
movzbl 0x4(%rax), %eax
shlq $0x20, %rax
orq -0x38(%rbp), %rax
movq %rax, -0x38(%rbp)
jmp 0x3fc8
movq -0x38(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0x407b
movl $0x5, %eax
cmpq -0x30(%rbp), %rax
setl %al
andb $0x1, %al
movzbl %al, %eax
cltq
cmpq $0x0, %rax
je 0x3ff7
movq -0x10(%rbp), %rax
movzbl 0x5(%rax), %eax
shlq $0x28, %rax
orq -0x38(%rbp), %rax
movq %rax, -0x38(%rbp)
jmp 0x4001
movq -0x38(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0x407b
movl $0x6, %eax
cmpq -0x30(%rbp), %rax
setl %al
andb $0x1, %al
movzbl %al, %eax
cltq
cmpq $0x0, %rax
je 0x4030
movq -0x10(%rbp), %rax
movzbl 0x6(%rax), %eax
shlq $0x30, %rax
orq -0x38(%rbp), %rax
movq %rax, -0x38(%rbp)
jmp 0x403a
movq -0x38(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0x407b
movl $0x7, %eax
cmpq -0x30(%rbp), %rax
setl %al
andb $0x1, %al
movzbl %al, %eax
cltq
cmpq $0x0, %rax
je 0x4069
movq -0x10(%rbp), %rax
movzbl 0x7(%rax), %eax
shlq $0x38, %rax
orq -0x38(%rbp), %rax
movq %rax, -0x38(%rbp)
jmp 0x4073
movq -0x38(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0x407b
movq -0x38(%rbp), %rax
movq %rax, -0x8(%rbp)
movq -0x8(%rbp), %rax
popq %rbp
retq
nopw %cs:(%rax,%rax)