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

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

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

		if (datalen < sizeof(x->data) - 1) {
			x->data[datalen++] = c;
		} else {
			x->data[datalen] = '\0';
			if (x->xmlcomment)
				x->xmlcomment(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, 0x38(%rax)
je 0x5825
movq -0x8(%rbp), %rax
movq 0x38(%rax), %rax
movq -0x8(%rbp), %rdi
callq *%rax
jmp 0x5827
callq 0x2140
movl %eax, -0x1c(%rbp)
cmpl $-0x1, %eax
je 0x59e4
cmpl $0x2d, -0x1c(%rbp)
je 0x5844
cmpl $0x3e, -0x1c(%rbp)
jne 0x5886
movq -0x8(%rbp), %rax
cmpq $0x0, 0x40(%rax)
je 0x5884
movq -0x8(%rbp), %rax
movq -0x10(%rbp), %rcx
movb $0x0, 0x894(%rax,%rcx)
movq -0x8(%rbp), %rax
movq 0x40(%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 0x5886
cmpl $0x2d, -0x1c(%rbp)
jne 0x58e9
movq -0x18(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x18(%rbp)
cmpq $0x2, %rax
jbe 0x58e4
movq -0x8(%rbp), %rax
cmpq $0x0, 0x40(%rax)
je 0x58dc
jmp 0x58ab
cmpq $0x2, -0x18(%rbp)
jbe 0x58da
movq -0x8(%rbp), %rax
movq 0x40(%rax), %rax
movq -0x8(%rbp), %rdi
leaq 0x19e2(%rip), %rsi      # 0x72a7
movl $0x1, %edx
callq *%rax
movq -0x18(%rbp), %rax
addq $-0x1, %rax
movq %rax, -0x18(%rbp)
jmp 0x58ab
jmp 0x58dc
movq $0x2, -0x18(%rbp)
jmp 0x5827
cmpl $0x3e, -0x1c(%rbp)
jne 0x5914
cmpq $0x2, -0x18(%rbp)
jne 0x5914
movq -0x8(%rbp), %rax
cmpq $0x0, 0x48(%rax)
je 0x590f
movq -0x8(%rbp), %rax
movq 0x48(%rax), %rax
movq -0x8(%rbp), %rdi
callq *%rax
jmp 0x59e4
cmpq $0x0, -0x18(%rbp)
je 0x5961
movq -0x8(%rbp), %rax
cmpq $0x0, 0x40(%rax)
je 0x5959
jmp 0x5928
cmpq $0x0, -0x18(%rbp)
jbe 0x5957
movq -0x8(%rbp), %rax
movq 0x40(%rax), %rax
movq -0x8(%rbp), %rdi
leaq 0x1965(%rip), %rsi      # 0x72a7
movl $0x1, %edx
callq *%rax
movq -0x18(%rbp), %rax
addq $-0x1, %rax
movq %rax, -0x18(%rbp)
jmp 0x5928
jmp 0x5959
movq $0x0, -0x18(%rbp)
jmp 0x5963
jmp 0x5965
cmpq $0x1fff, -0x10(%rbp)    # imm = 0x1FFF
jae 0x5990
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 0x59df
movq -0x8(%rbp), %rax
movq -0x10(%rbp), %rcx
movb $0x0, 0x894(%rax,%rcx)
movq -0x8(%rbp), %rax
cmpq $0x0, 0x40(%rax)
je 0x59c8
movq -0x8(%rbp), %rax
movq 0x40(%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 0x5827
addq $0x20, %rsp
popq %rbp
retq
nopw (%rax,%rax)