// File: /workspace/github_c_makefile_star2_O0/wahern[P]cqueues/src/socket.c
// Function: iov_eoh
static size_t iov_eoh(const struct iovec *iov, _Bool eof, int flags, int *_error) {
	const char *tp, *p, *pe;
	size_t n;
	int error;

	tp = iov->iov_base;
	p = tp;
	pe = tp + iov->iov_len;

	while (p < pe && mime_isfname(*p))
		p++;

	if (p == tp && p < pe && !(flags & IOV_F_EMPTYFNAME))
		return 0; /* not allowing empty field names */

	while (p < pe && mime_isblank(*p))
		p++;

	if (p < pe && *p != ':')
		return 0; /* not a valid field name */

	while (p < pe && (p = memchr(p, '\n', pe - p))) {
		if (++p < pe && !mime_isblank(*p))
			return p - tp; /* found */
	}

	if (eof)
		return 0; /* do not allow truncated headers */

	if ((error = iov_addzu(&n, iov->iov_len, 1)))
		goto error;

	return n; /* need more */
error:
	*_error = error;

	return -1;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x50, %rsp
movb %sil, %al
movq %rdi, -0x10(%rbp)
andb $0x1, %al
movb %al, -0x11(%rbp)
movl %edx, -0x18(%rbp)
movq %rcx, -0x20(%rbp)
movq -0x10(%rbp), %rax
movq (%rax), %rax
movq %rax, -0x28(%rbp)
movq -0x28(%rbp), %rax
movq %rax, -0x30(%rbp)
movq -0x28(%rbp), %rax
movq -0x10(%rbp), %rcx
addq 0x8(%rcx), %rax
movq %rax, -0x38(%rbp)
movq -0x30(%rbp), %rcx
xorl %eax, %eax
cmpq -0x38(%rbp), %rcx
movb %al, -0x45(%rbp)
jae 0x1e2ac
movq -0x30(%rbp), %rax
movzbl (%rax), %edi
callq 0x1e420
movb %al, -0x45(%rbp)
movb -0x45(%rbp), %al
testb $0x1, %al
jne 0x1e2b5
jmp 0x1e2c3
movq -0x30(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x30(%rbp)
jmp 0x1e28e
movq -0x30(%rbp), %rax
cmpq -0x28(%rbp), %rax
jne 0x1e2ef
movq -0x30(%rbp), %rax
cmpq -0x38(%rbp), %rax
jae 0x1e2ef
movl -0x18(%rbp), %eax
andl $0x1, %eax
cmpl $0x0, %eax
jne 0x1e2ef
movq $0x0, -0x8(%rbp)
jmp 0x1e40a
jmp 0x1e2f1
movq -0x30(%rbp), %rcx
xorl %eax, %eax
cmpq -0x38(%rbp), %rcx
movb %al, -0x46(%rbp)
jae 0x1e30f
movq -0x30(%rbp), %rax
movzbl (%rax), %edi
callq 0x1e460
movb %al, -0x46(%rbp)
movb -0x46(%rbp), %al
testb $0x1, %al
jne 0x1e318
jmp 0x1e326
movq -0x30(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x30(%rbp)
jmp 0x1e2f1
movq -0x30(%rbp), %rax
cmpq -0x38(%rbp), %rax
jae 0x1e349
movq -0x30(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x3a, %eax
je 0x1e349
movq $0x0, -0x8(%rbp)
jmp 0x1e40a
jmp 0x1e34b
movq -0x30(%rbp), %rcx
xorl %eax, %eax
cmpq -0x38(%rbp), %rcx
movb %al, -0x47(%rbp)
jae 0x1e381
movq -0x30(%rbp), %rdi
movq -0x38(%rbp), %rdx
movq -0x30(%rbp), %rax
subq %rax, %rdx
movl $0xa, %esi
callq 0xffa0
movq %rax, -0x30(%rbp)
cmpq $0x0, %rax
setne %al
movb %al, -0x47(%rbp)
movb -0x47(%rbp), %al
testb $0x1, %al
jne 0x1e38a
jmp 0x1e3bf
movq -0x30(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x30(%rbp)
cmpq -0x38(%rbp), %rax
jae 0x1e3bd
movq -0x30(%rbp), %rax
movzbl (%rax), %edi
callq 0x1e460
testb $0x1, %al
jne 0x1e3bd
movq -0x30(%rbp), %rax
movq -0x28(%rbp), %rcx
subq %rcx, %rax
movq %rax, -0x8(%rbp)
jmp 0x1e40a
jmp 0x1e34b
testb $0x1, -0x11(%rbp)
je 0x1e3cf
movq $0x0, -0x8(%rbp)
jmp 0x1e40a
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rsi
leaq -0x40(%rbp), %rdi
movl $0x1, %edx
callq 0x1e490
movl %eax, -0x44(%rbp)
cmpl $0x0, %eax
je 0x1e3ef
jmp 0x1e3f9
movq -0x40(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0x1e40a
movl -0x44(%rbp), %ecx
movq -0x20(%rbp), %rax
movl %ecx, (%rax)
movq $-0x1, -0x8(%rbp)
movq -0x8(%rbp), %rax
addq $0x50, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)