// File: /workspace/github_c_makefile_star2_O0/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 %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
cmpl $0x0, 0x9219(%rip)      # 0xbe64
je 0x2c94
cmpl $0x0, 0x9214(%rip)      # 0xbe68
jne 0x2c94
movl $0x0, 0x9214(%rip)      # 0xbe74
cmpl $0x2, 0x9205(%rip)      # 0xbe6c
jne 0x2c8f
movq -0x8(%rbp), %rdi
leaq 0x450c(%rip), %rsi      # 0x7180
movl $0x1, %edx
callq 0x2860
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
movq -0x18(%rbp), %rdx
callq 0x2860
jmp 0x2e50
cmpl $0x0, 0x91d5(%rip)      # 0xbe70
jne 0x2cf6
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
leaq 0x43c9(%rip), %rdx      # 0x7075
movl $0x5, %ecx
callq 0x3070
cmpl $0x0, %eax
je 0x2cc7
movl $0x2, 0x91ab(%rip)      # 0xbe70
jmp 0x2cf1
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
leaq 0x43a5(%rip), %rdx      # 0x707b
movl $0x4, %ecx
callq 0x3070
cmpl $0x0, %eax
je 0x2cef
movl $0x1, 0x9181(%rip)      # 0xbe70
jmp 0x2cf1
jmp 0x2e50
cmpl $0x0, 0x9163(%rip)      # 0xbe60
je 0x2d04
jmp 0x2e50
movl 0x9166(%rip), %edi      # 0xbe70
movq -0x10(%rbp), %rsi
movq -0x18(%rbp), %rdx
callq 0x30c0
movl %eax, -0x1c(%rbp)
movl -0x1c(%rbp), %eax
movl %eax, 0x913d(%rip)      # 0xbe60
cmpl $0x13, -0x1c(%rbp)
jne 0x2d41
movl $0x14, 0x9149(%rip)     # 0xbe7c
leaq 0x9146(%rip), %rdi      # 0xbe80
callq 0x3170
jmp 0x2d53
cmpl $0x7, -0x1c(%rbp)
jne 0x2d51
movl $0x1, 0x9127(%rip)      # 0xbe78
jmp 0x2d53
movl -0x1c(%rbp), %eax
movl %eax, %ecx
leaq 0x63c1(%rip), %rax      # 0x9120
cmpl $-0x1, (%rax,%rcx,4)
je 0x2d8f
movl -0x1c(%rbp), %eax
movl -0x1c(%rbp), %ecx
movl %ecx, %edx
leaq 0x63ac(%rip), %rcx      # 0x9120
movslq (%rcx,%rdx,4), %rdx
leaq 0x8ff9(%rip), %rcx      # 0xbd78
addq $0x8, %rcx
shlq $0x5, %rdx
addq %rdx, %rcx
cmpl 0x18(%rcx), %eax
ja 0x2d9f
movq $0x0, 0x8fde(%rip) # 0xbd78
jmp 0x2e50
movl 0x90bb(%rip), %eax      # 0xbe60
movl %eax, %ecx
leaq 0x6372(%rip), %rax      # 0x9120
cmpl $0x3, (%rax,%rcx,4)
jne 0x2de3
movl -0x1c(%rbp), %eax
addl $-0x5, %eax
subl $0x1, %eax
ja 0x2dcd
jmp 0x2dc1
movl $0x2, 0x90a1(%rip)      # 0xbe6c
jmp 0x2dd7
movl $0x1, 0x9095(%rip)      # 0xbe6c
movl $0x1, 0x9087(%rip)      # 0xbe68
jmp 0x2ded
movl $0x0, 0x907b(%rip)      # 0xbe68
movl 0x906d(%rip), %eax      # 0xbe60
movl %eax, %ecx
leaq 0x6324(%rip), %rax      # 0x9120
movslq (%rax,%rcx,4), %rcx
leaq 0x8f71(%rip), %rax      # 0xbd78
addq $0x8, %rax
shlq $0x5, %rcx
addq %rcx, %rax
movq %rax, 0x8f5f(%rip)      # 0xbd78
movl -0x1c(%rbp), %ecx
movl 0x903e(%rip), %eax      # 0xbe60
movl %eax, %edx
leaq 0x62f5(%rip), %rax      # 0x9120
movslq (%rax,%rdx,4), %rdx
leaq 0x8f42(%rip), %rax      # 0xbd78
addq $0x8, %rax
shlq $0x5, %rdx
addq %rdx, %rax
movl %ecx, 0x18(%rax)
movq 0x8f2d(%rip), %rdi      # 0xbd78
callq 0x3170
addq $0x20, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)