// File: /workspace/github_c_makefile_star2_O0/hcmiya[P]opuscomment/src/parse-tags.c
// Function: test_blank
static bool test_blank(uint8_t *line, size_t n, bool lf) {
	if (first_call) {
		// = で始まってたらすぐエラー(575)
		if (*line == 0x3d) err_empty();
		first_call = false;
		on_field = true;
		fieldlen = 0;
		keep_blank = true;
		wsplen = 0;
		recordlen = 0;
		store_picture = false;
		b64term = false;
		b64pos = 0;
	}
	if (keep_blank) {
		size_t i;
		bool blank_with_ctrl = false;
		for (i = 0; i < n; i++) {
			switch (line[i]) {
			case 0x9:
			case 0xa:
			case 0xd:
				blank_with_ctrl = true;
			case 0x20:
				break;
			default:
				keep_blank = false;
			}
			if (!keep_blank) break;
		}
		if (keep_blank) {
			// まだ先頭から空白が続いている時
			if (lf) {
				// 行が終わったが全て空白だったので飛ばして次の行へ
				first_call = true;
			}
			else {
				// 行が続いている
				wsplen += n;
			}
			return true;
		}
		// 空白状態を抜けてフィールド判別状態にある
		if (blank_with_ctrl) {
			//空白がwsp以外を含んでいたらエラー
			err_name();
		}
		editlen += 4 + wsplen;
		if (editlen > TAG_LENGTH_LIMIT__OUTPUT) {
			exceed_output_limit();
		}
		fieldlen = recordlen = wsplen;
		if (wsplen <= 22) {
			memset(field_pending, 0x20, wsplen);
		}
		else {
			// 空白と見做していた分を書き込み
			uint8_t buf[STACK_BUF_LEN];
			memset(buf, 0x20, STACK_BUF_LEN);
			while (wsplen) {
				size_t wlen = wsplen > STACK_BUF_LEN ? STACK_BUF_LEN : wsplen;
				fwrite(buf, 1, wlen, strstore);
				wsplen -= wlen;
			}
		}
	}
	return false;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x1050, %rsp           # imm = 0x1050
movb %dl, %al
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
andb $0x1, %al
movb %al, -0x19(%rbp)
testb $0x1, 0x9457(%rip)      # 0xd2c8
je 0x3ece
movq -0x10(%rbp), %rax
movzbl (%rax), %eax
cmpl $0x3d, %eax
jne 0x3e84
callq 0x4450
movb $0x0, 0x943d(%rip)      # 0xd2c8
movb $0x1, 0x9720(%rip)      # 0xd5b2
movq $0x0, 0x972b(%rip) # 0xd5c8
movb $0x1, 0x970d(%rip)      # 0xd5b1
movq $0x0, 0x9721(%rip) # 0xd5d0
movl $0x0, 0x9707(%rip)      # 0xd5c0
movb $0x0, 0x96f3(%rip)      # 0xd5b3
movb $0x0, 0x9711(%rip)      # 0xd5d8
movb $0x0, 0x96e6(%rip)      # 0xd5b4
testb $0x1, 0x96dc(%rip)      # 0xd5b1
je 0x4089
movb $0x0, -0x29(%rbp)
movq $0x0, -0x28(%rbp)
movq -0x28(%rbp), %rax
cmpq -0x18(%rbp), %rax
jae 0x3f4f
movq -0x10(%rbp), %rax
movq -0x28(%rbp), %rcx
movzbl (%rax,%rcx), %eax
movl %eax, -0x103c(%rbp)
addl $-0x9, %eax
subl $0x2, %eax
jb 0x3f27
jmp 0x3f0d
movl -0x103c(%rbp), %eax
subl $0xd, %eax
je 0x3f27
jmp 0x3f1a
movl -0x103c(%rbp), %eax
subl $0x20, %eax
je 0x3f2b
jmp 0x3f2d
movb $0x1, -0x29(%rbp)
jmp 0x3f34
movb $0x0, 0x967d(%rip)      # 0xd5b1
testb $0x1, 0x9676(%rip)      # 0xd5b1
jne 0x3f3f
jmp 0x3f4f
jmp 0x3f41
movq -0x28(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x28(%rbp)
jmp 0x3ee7
testb $0x1, 0x965b(%rip)      # 0xd5b1
je 0x3f82
testb $0x1, -0x19(%rbp)
je 0x3f67
movb $0x1, 0x9363(%rip)      # 0xd2c8
jmp 0x3f79
movq -0x18(%rbp), %rax
addq 0x965e(%rip), %rax      # 0xd5d0
movq %rax, 0x9657(%rip)      # 0xd5d0
movb $0x1, -0x1(%rbp)
jmp 0x408d
testb $0x1, -0x29(%rbp)
je 0x3f8d
callq 0x4110
movq 0x963c(%rip), %rax      # 0xd5d0
addq $0x4, %rax
addq 0x9641(%rip), %rax      # 0xd5e0
movq %rax, 0x963a(%rip)      # 0xd5e0
cmpq $0x2800000, 0x962f(%rip) # imm = 0x2800000
jbe 0x3fb8
callq 0x8ad0
movq 0x9611(%rip), %rax      # 0xd5d0
movl %eax, 0x95fb(%rip)      # 0xd5c0
movl %eax, %eax
movq %rax, 0x95fa(%rip)      # 0xd5c8
cmpq $0x16, 0x95fa(%rip)     # 0xd5d0
ja 0x3ff5
movq 0x95f1(%rip), %rdx      # 0xd5d0
leaq 0x960a(%rip), %rdi      # 0xd5f0
movl $0x20, %esi
callq 0x21b0
jmp 0x4087
leaq -0x1030(%rbp), %rdi
movl $0x20, %esi
movl $0x1000, %edx           # imm = 0x1000
callq 0x21b0
cmpq $0x0, 0x95bd(%rip)      # 0xd5d0
je 0x4085
cmpq $0x1000, 0x95b0(%rip) # imm = 0x1000
jbe 0x4030
movl $0x1000, %eax           # imm = 0x1000
movq %rax, -0x1048(%rbp)
jmp 0x403e
movq 0x9599(%rip), %rax      # 0xd5d0
movq %rax, -0x1048(%rbp)
movq -0x1048(%rbp), %rax
movq %rax, -0x1038(%rbp)
leaq -0x1030(%rbp), %rdi
movq -0x1038(%rbp), %rdx
movq 0x951f(%rip), %rcx      # 0xd580
movl $0x1, %esi
callq 0x2490
movq -0x1038(%rbp), %rcx
movq 0x9557(%rip), %rax      # 0xd5d0
subq %rcx, %rax
movq %rax, 0x954d(%rip)      # 0xd5d0
jmp 0x400b
jmp 0x4087
jmp 0x4089
movb $0x0, -0x1(%rbp)
movb -0x1(%rbp), %al
andb $0x1, %al
addq $0x1050, %rsp           # imm = 0x1050
popq %rbp
retq
nopl (%rax,%rax)