// File: /workspace/github_c_makefile_star2_O0/dxwc[P]sfeed/xml.c
// Function: xml_parsecdata
static void
xml_parsecdata(XMLParser *x)
{
	size_t datalen = 0, i = 0;
	int c;

	if (x->xmlcdatastart)
		x->xmlcdatastart(x);
	while ((c = GETNEXT()) != EOF) {
		if (c == ']' || c == '>') {
			if (x->xmlcdata) {
				x->data[datalen] = '\0';
				x->xmlcdata(x, x->data, datalen);
				datalen = 0;
			}
		}

		if (c == ']') {
			if (++i > 2) {
				if (x->xmlcdata)
					for (; i > 2; i--)
						x->xmlcdata(x, "]", 1);
				i = 2;
			}
			continue;
		} else if (c == '>' && i == 2) {
			if (x->xmlcdataend)
				x->xmlcdataend(x);
			return;
		} else if (i) {
			if (x->xmlcdata)
				for (; i > 0; i--)
					x->xmlcdata(x, "]", 1);
			i = 0;
		}

		if (datalen < sizeof(x->data) - 1) {
			x->data[datalen++] = c;
		} else {
			x->data[datalen] = '\0';
			if (x->xmlcdata)
				x->xmlcdata(x, x->data, datalen);
			x->data[0] = c;
			datalen = 1;
		}
	}
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x8(%rbp)
movq $0x0, -0x10(%rbp)
movq $0x0, -0x18(%rbp)
movq -0x8(%rbp), %rax
cmpq $0x0, 0x20(%rax)
je 0x5a25
movq -0x8(%rbp), %rax
movq 0x20(%rax), %rax
movq -0x8(%rbp), %rdi
callq *%rax
jmp 0x5a27
callq 0x2140
movl %eax, -0x1c(%rbp)
cmpl $-0x1, %eax
je 0x5be4
cmpl $0x5d, -0x1c(%rbp)
je 0x5a44
cmpl $0x3e, -0x1c(%rbp)
jne 0x5a86
movq -0x8(%rbp), %rax
cmpq $0x0, 0x28(%rax)
je 0x5a84
movq -0x8(%rbp), %rax
movq -0x10(%rbp), %rcx
movb $0x0, 0x894(%rax,%rcx)
movq -0x8(%rbp), %rax
movq 0x28(%rax), %rax
movq -0x8(%rbp), %rdi
movq -0x8(%rbp), %rsi
addq $0x894, %rsi            # imm = 0x894
movq -0x10(%rbp), %rdx
callq *%rax
movq $0x0, -0x10(%rbp)
jmp 0x5a86
cmpl $0x5d, -0x1c(%rbp)
jne 0x5ae9
movq -0x18(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x18(%rbp)
cmpq $0x2, %rax
jbe 0x5ae4
movq -0x8(%rbp), %rax
cmpq $0x0, 0x28(%rax)
je 0x5adc
jmp 0x5aab
cmpq $0x2, -0x18(%rbp)
jbe 0x5ada
movq -0x8(%rbp), %rax
movq 0x28(%rax), %rax
movq -0x8(%rbp), %rdi
leaq 0x17e4(%rip), %rsi      # 0x72a9
movl $0x1, %edx
callq *%rax
movq -0x18(%rbp), %rax
addq $-0x1, %rax
movq %rax, -0x18(%rbp)
jmp 0x5aab
jmp 0x5adc
movq $0x2, -0x18(%rbp)
jmp 0x5a27
cmpl $0x3e, -0x1c(%rbp)
jne 0x5b14
cmpq $0x2, -0x18(%rbp)
jne 0x5b14
movq -0x8(%rbp), %rax
cmpq $0x0, 0x30(%rax)
je 0x5b0f
movq -0x8(%rbp), %rax
movq 0x30(%rax), %rax
movq -0x8(%rbp), %rdi
callq *%rax
jmp 0x5be4
cmpq $0x0, -0x18(%rbp)
je 0x5b61
movq -0x8(%rbp), %rax
cmpq $0x0, 0x28(%rax)
je 0x5b59
jmp 0x5b28
cmpq $0x0, -0x18(%rbp)
jbe 0x5b57
movq -0x8(%rbp), %rax
movq 0x28(%rax), %rax
movq -0x8(%rbp), %rdi
leaq 0x1767(%rip), %rsi      # 0x72a9
movl $0x1, %edx
callq *%rax
movq -0x18(%rbp), %rax
addq $-0x1, %rax
movq %rax, -0x18(%rbp)
jmp 0x5b28
jmp 0x5b59
movq $0x0, -0x18(%rbp)
jmp 0x5b63
jmp 0x5b65
cmpq $0x1fff, -0x10(%rbp)    # imm = 0x1FFF
jae 0x5b90
movl -0x1c(%rbp), %eax
movb %al, %dl
movq -0x8(%rbp), %rax
movq -0x10(%rbp), %rcx
movq %rcx, %rsi
addq $0x1, %rsi
movq %rsi, -0x10(%rbp)
movb %dl, 0x894(%rax,%rcx)
jmp 0x5bdf
movq -0x8(%rbp), %rax
movq -0x10(%rbp), %rcx
movb $0x0, 0x894(%rax,%rcx)
movq -0x8(%rbp), %rax
cmpq $0x0, 0x28(%rax)
je 0x5bc8
movq -0x8(%rbp), %rax
movq 0x28(%rax), %rax
movq -0x8(%rbp), %rdi
movq -0x8(%rbp), %rsi
addq $0x894, %rsi            # imm = 0x894
movq -0x10(%rbp), %rdx
callq *%rax
movl -0x1c(%rbp), %eax
movb %al, %cl
movq -0x8(%rbp), %rax
movb %cl, 0x894(%rax)
movq $0x1, -0x10(%rbp)
jmp 0x5a27
addq $0x20, %rsp
popq %rbp
retq
nopw (%rax,%rax)