// File: /workspace/github_c_makefile_star2_O0/hcmiya[P]opuscomment/src/parse-tags.c
// Function: line_vc
static void line_vc(uint8_t *line, size_t n, bool lf) {
	static bool escape_pending = false;
	
	if (!line) {
		if (!first_call) {
			if (O.tag_check_line_term) {
				err_noterm();
			}
			if (!keep_blank) {
				if (escape_pending) err_esc();
				if (on_field) err_nosep();
				finalize_record();
			}
			first_call = true;
		}
		return;
	}
	
	if(test_blank(line, n, lf)) return;
	
	if (escape_pending) {
		*line = esctab(*line);
	}
	
	if (lf) n--;
	uint8_t *bs = memchr(line + escape_pending, 0x5c, n - escape_pending);
	escape_pending = false;
	if (bs) {
		uint8_t *unesc = bs, *end = line + n;
		while (bs < end) {
			uint8_t c = *bs++;
			if (c == 0x5c) {
				if (bs == end) {
					if (lf) err_esc();
					escape_pending = true;
					n--;
					break;
				}
				c = esctab(*bs++);
				n--;
			}
			*unesc++ = c;
		}
	}
	if (on_field) {
		if(!test_tag_field(line, n, true, &on_field, NULL)) err_name();
		if (on_field && lf) err_nosep();
		test_mbp(&line, &n);
	}
	else {
		append_buffer(line, n);
	}
	if (lf) {
		finalize_record();
	}
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x40, %rsp
movb %dl, %al
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
andb $0x1, %al
movb %al, -0x11(%rbp)
cmpq $0x0, -0x8(%rbp)
jne 0x30ff
testb $0x1, 0xa213(%rip)      # 0xd2c8
jne 0x30fa
leaq 0x1a60a(%rip), %rax     # 0x1d6c8
testb $0x1, 0x22(%rax)
je 0x30c9
callq 0x3ce0
testb $0x1, 0xa4e1(%rip)      # 0xd5b1
jne 0x30f3
testb $0x1, 0xa4d7(%rip)      # 0xd5b0
je 0x30e0
callq 0x3d00
testb $0x1, 0xa4cb(%rip)      # 0xd5b2
je 0x30ee
callq 0x3d30
callq 0x3d60
movb $0x1, 0xa1ce(%rip)      # 0xd2c8
jmp 0x32a9
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
movb -0x11(%rbp), %al
andb $0x1, %al
movzbl %al, %edx
callq 0x3e50
testb $0x1, %al
jne 0x311a
jmp 0x311f
jmp 0x32a9
testb $0x1, 0xa48a(%rip)      # 0xd5b0
je 0x313c
movq -0x8(%rbp), %rax
movzbl (%rax), %edi
callq 0x40a0
movb %al, %cl
movq -0x8(%rbp), %rax
movb %cl, (%rax)
testb $0x1, -0x11(%rbp)
je 0x314e
movq -0x10(%rbp), %rax
addq $-0x1, %rax
movq %rax, -0x10(%rbp)
movq -0x8(%rbp), %rdi
movb 0xa458(%rip), %al       # 0xd5b0
andb $0x1, %al
movzbl %al, %eax
cltq
addq %rax, %rdi
movq -0x10(%rbp), %rdx
movb 0xa444(%rip), %al       # 0xd5b0
andb $0x1, %al
movzbl %al, %eax
subq %rax, %rdx
movl $0x5c, %esi
callq 0x2220
movq %rax, -0x20(%rbp)
movb $0x0, 0xa427(%rip)      # 0xd5b0
cmpq $0x0, -0x20(%rbp)
je 0x323e
movq -0x20(%rbp), %rax
movq %rax, -0x28(%rbp)
movq -0x8(%rbp), %rax
addq -0x10(%rbp), %rax
movq %rax, -0x30(%rbp)
movq -0x20(%rbp), %rax
cmpq -0x30(%rbp), %rax
jae 0x323c
movq -0x20(%rbp), %rax
movq %rax, %rcx
addq $0x1, %rcx
movq %rcx, -0x20(%rbp)
movb (%rax), %al
movb %al, -0x31(%rbp)
movzbl -0x31(%rbp), %eax
cmpl $0x5c, %eax
jne 0x3223
movq -0x20(%rbp), %rax
cmpq -0x30(%rbp), %rax
jne 0x31fd
testb $0x1, -0x11(%rbp)
je 0x31e8
callq 0x3d00
movb $0x1, 0xa3c1(%rip)      # 0xd5b0
movq -0x10(%rbp), %rax
addq $-0x1, %rax
movq %rax, -0x10(%rbp)
jmp 0x323c
movq -0x20(%rbp), %rax
movq %rax, %rcx
addq $0x1, %rcx
movq %rcx, -0x20(%rbp)
movzbl (%rax), %edi
callq 0x40a0
movb %al, -0x31(%rbp)
movq -0x10(%rbp), %rax
addq $-0x1, %rax
movq %rax, -0x10(%rbp)
movb -0x31(%rbp), %cl
movq -0x28(%rbp), %rax
movq %rax, %rdx
addq $0x1, %rdx
movq %rdx, -0x28(%rbp)
movb %cl, (%rax)
jmp 0x31a8
jmp 0x323e
testb $0x1, 0xa36d(%rip)      # 0xd5b2
je 0x3291
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
movl $0x1, %edx
leaq 0xa357(%rip), %rcx      # 0xd5b2
xorl %eax, %eax
movl %eax, %r8d
callq 0x6880
testb $0x1, %al
jne 0x326e
callq 0x4110
testb $0x1, 0xa33d(%rip)      # 0xd5b2
je 0x3282
testb $0x1, -0x11(%rbp)
je 0x3282
callq 0x3d30
leaq -0x8(%rbp), %rdi
leaq -0x10(%rbp), %rsi
callq 0x4140
jmp 0x329e
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
callq 0x4310
testb $0x1, -0x11(%rbp)
je 0x32a9
callq 0x3d60
addq $0x40, %rsp
popq %rbp
retq
nop