// File: /workspace/github_c_makefile_star2_O1/dxwc[P]sfeed/sfeed.c
// Function: xmltagstart
static void
xmltagstart(XMLParser *p, const char *t, size_t tl)
{
	enum TagId tagid;

	if (ISINCONTENT(ctx)) {
		ctx.attrcount = 0;
		if (ctx.contenttype == ContentTypeHTML) {
			xmldata(p, "<", 1);
			xmldata(p, t, tl);
		}
		return;
	}

	/* start of RSS or Atom item / entry */
	if (ctx.feedtype == FeedTypeNone) {
		if (istag(t, tl, STRP("entry")))
			ctx.feedtype = FeedTypeAtom;
		else if (istag(t, tl, STRP("item")))
			ctx.feedtype = FeedTypeRSS;
		return;
	}

	/* field tagid already set, nested tags are not allowed: return */
	if (ctx.tagid)
		return;

	/* in item */
	tagid = gettag(ctx.feedtype, t, tl);
	ctx.tagid = tagid;

	/* without a rel attribute the default link type is "alternate" */
	if (tagid == AtomTagLink) {
		atomlinktype = AtomTagLinkAlternate;
		string_clear(&atomlink); /* reuse and clear temporary link */
	} else if (tagid == RSSTagGuid) {
		/* without a ispermalink attribute the default value is "true" */
		rssidpermalink = 1;
	}

	/* map tag type to field: unknown or lesser priority is ignored,
	   when tags of the same type are repeated only the first is used. */
	if (fieldmap[tagid] == -1 || tagid <= ctx.fields[fieldmap[tagid]].tagid) {
		ctx.field = NULL;
		return;
	}

	if (fieldmap[ctx.tagid] == FeedFieldContent) {
		/* handle default content-type per tag, Atom, RSS, MRSS. */
		switch (tagid) {
		case RSSTagContentEncoded:
		case RSSTagDescription:
			ctx.contenttype = ContentTypeHTML;
			break;
		default:
			ctx.contenttype = ContentTypePlain;
		}
		ctx.iscontenttag = 1;
	} else {
		ctx.iscontenttag = 0;
	}

	ctx.field = &(ctx.fields[fieldmap[ctx.tagid]].str);
	ctx.fields[fieldmap[ctx.tagid]].tagid = tagid;
	/* clear field */
	string_clear(ctx.field);
}

// Assembly:
pushq %r15
pushq %r14
pushq %rbx
movq %rdx, %r14
movq %rsi, %rbx
cmpl $0x0, 0x7245(%rip)      # 0x9c84
je 0x2a88
cmpl $0x0, 0x7240(%rip)      # 0x9c88
jne 0x2a88
movl $0x0, 0x7240(%rip)      # 0x9c94
cmpl $0x2, 0x7231(%rip)      # 0x9c8c
jne 0x2bf4
movq %rdi, %r15
leaq 0x2715(%rip), %rsi      # 0x5180
movl $0x1, %edx
callq 0x274a
movq %r15, %rdi
movq %rbx, %rsi
movq %r14, %rdx
popq %rbx
popq %r14
popq %r15
jmp 0x274a
movl 0x7202(%rip), %edi      # 0x9c90
testl %edi, %edi
je 0x2aed
cmpl $0x0, 0x71e7(%rip)      # 0x9c80
jne 0x2bf4
movq %rbx, %rsi
callq 0x2ce8
movl %eax, 0x71d3(%rip)      # 0x9c80
testl %eax, %eax
je 0x2bdd
cmpl $0x7, %eax
je 0x2b44
cmpl $0x13, %eax
jne 0x2b5c
movl $0x14, 0x71cb(%rip)     # 0x9c9c
movq 0x71c8(%rip), %rcx      # 0x9ca0
testq %rcx, %rcx
je 0x2ae0
movb $0x0, (%rcx)
movq $0x0, 0x71bd(%rip) # 0x9ca8
jmp 0x2b4b
cmpq $0x4, %r14
je 0x2b1e
cmpq $0x5, %r14
jne 0x2bf4
leaq 0x2571(%rip), %rsi      # 0x5075
movq %rbx, %rdi
callq 0x2040
testl %eax, %eax
je 0x2bea
cmpq $0x4, %r14
jne 0x2bf4
leaq 0x2556(%rip), %rsi      # 0x507b
movq %rbx, %rdi
callq 0x2040
testl %eax, %eax
jne 0x2bf4
movl $0x1, 0x7151(%rip)      # 0x9c90
jmp 0x2bf4
movb $0x1, 0x714d(%rip)      # 0x9c98
testl %eax, %eax
je 0x2bdd
cmpl $0x13, %eax
je 0x2bdd
movl %eax, %edx
leaq 0x262b(%rip), %rcx      # 0x5190
movslq (%rcx,%rdx,4), %rsi
shlq $0x5, %rsi
leaq 0x7024(%rip), %rdx      # 0x9b98
cmpl 0x20(%rsi,%rdx), %eax
jbe 0x2bdd
movl 0x7100(%rip), %esi      # 0x9c80
xorl %edi, %edi
movl $0x38070, %r8d          # imm = 0x38070
btq %rsi, %r8
jae 0x2ba9
movl %eax, %edi
addl $-0x5, %edi
xorl %r8d, %r8d
cmpl $0x2, %edi
adcl $0x1, %r8d
movl %r8d, 0x70e8(%rip)      # 0x9c8c
movl $0x1, %edi
movl %edi, 0x70d9(%rip)      # 0x9c88
movslq (%rcx,%rsi,4), %rcx
shlq $0x5, %rcx
addq %rdx, %rcx
addq $0x8, %rcx
movq %rcx, 0x6fd3(%rip)      # 0x9b98
movl %eax, 0x18(%rcx)
movq (%rcx), %rax
testq %rax, %rax
je 0x2bd3
movb $0x0, (%rax)
movq $0x0, 0x8(%rcx)
jmp 0x2bf4
movq $0x0, 0x6fb0(%rip) # 0x9b98
jmp 0x2bf4
movl $0x2, 0x709c(%rip)      # 0x9c90
popq %rbx
popq %r14
popq %r15
retq