// File: /workspace/github_c_makefile_star2_O0/dxwc[P]sfeed/sfeed.c
// Function: xmltagend
static void
xmltagend(XMLParser *p, const char *t, size_t tl, int isshort)
{
	size_t i;

	if (ctx.feedtype == FeedTypeNone)
		return;

	if (ISINCONTENT(ctx)) {
		/* not close content field */
		if (gettag(ctx.feedtype, t, tl) != ctx.tagid) {
			if (!isshort && ctx.contenttype == ContentTypeHTML) {
				xmldata(p, "</", 2);
				xmldata(p, t, tl);
				xmldata(p, ">", 1);
			}
			return;
		}
	} else if (ctx.tagid == AtomTagLink) {
		/* 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 (atomlinktype && atomlinktype > ctx.fields[fieldmap[atomlinktype]].tagid) {
			string_append(&ctx.fields[fieldmap[atomlinktype]].str,
			              atomlink.data, atomlink.len);
			ctx.fields[fieldmap[atomlinktype]].tagid = atomlinktype;
		}
	} else if (ctx.tagid == RSSTagGuid && rssidpermalink) {
		if (ctx.tagid > ctx.fields[FeedFieldLink].tagid) {
			string_clear(&ctx.fields[FeedFieldLink].str);
			string_append(&ctx.fields[FeedFieldLink].str,
			             ctx.fields[FeedFieldId].str.data,
			             ctx.fields[FeedFieldId].str.len);
			ctx.fields[FeedFieldLink].tagid = ctx.tagid;
		}
	} else if (!ctx.tagid && ((ctx.feedtype == FeedTypeAtom &&
	   istag(t, tl, STRP("entry"))) || /* Atom */
	   (ctx.feedtype == FeedTypeRSS &&
	   istag(t, tl, STRP("item"))))) /* RSS */
	{
		/* end of RSS or Atom entry / item */
		printfields();

		/* clear strings */
		for (i = 0; i < FeedFieldLast; i++) {
			string_clear(&ctx.fields[i].str);
			ctx.fields[i].tagid = TagUnknown;
		}
		ctx.contenttype = ContentTypeNone;
		/* allow parsing of Atom and RSS concatenated in one XML stream. */
		ctx.feedtype = FeedTypeNone;
	} else if (!ctx.tagid ||
	           gettag(ctx.feedtype, t, tl) != ctx.tagid) {
		/* not end of field */
		return;
	}
	/* close field */
	ctx.iscontent = 0;
	ctx.tagid = TagUnknown;
	ctx.field = NULL;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movl %ecx, -0x1c(%rbp)
cmpl $0x0, 0x9512(%rip)      # 0xbe70
jne 0x2965
jmp 0x2c1e
cmpl $0x0, 0x94f8(%rip)      # 0xbe64
je 0x29e6
cmpl $0x0, 0x94f3(%rip)      # 0xbe68
jne 0x29e6
movl 0x94f3(%rip), %edi      # 0xbe70
movq -0x10(%rbp), %rsi
movq -0x18(%rbp), %rdx
callq 0x30c0
cmpl 0x94d0(%rip), %eax      # 0xbe60
je 0x29e1
cmpl $0x0, -0x1c(%rbp)
jne 0x29dc
cmpl $0x2, 0x94cd(%rip)      # 0xbe6c
jne 0x29dc
movq -0x8(%rbp), %rdi
leaq 0x46c6(%rip), %rsi      # 0x7072
movl $0x2, %edx
callq 0x2860
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
movq -0x18(%rbp), %rdx
callq 0x2860
movq -0x8(%rbp), %rdi
leaq 0x47b1(%rip), %rsi      # 0x7183
movl $0x1, %edx
callq 0x2860
jmp 0x2c1e
jmp 0x2bff
cmpl $0x13, 0x9473(%rip)     # 0xbe60
jne 0x2a9b
cmpl $0x0, 0x9482(%rip)      # 0xbe7c
je 0x2a96
movl 0x9476(%rip), %eax      # 0xbe7c
movl 0x9470(%rip), %ecx      # 0xbe7c
movl %ecx, %edx
leaq 0x670b(%rip), %rcx      # 0x9120
movslq (%rcx,%rdx,4), %rdx
leaq 0x9358(%rip), %rcx      # 0xbd78
addq $0x8, %rcx
shlq $0x5, %rdx
addq %rdx, %rcx
cmpl 0x18(%rcx), %eax
jbe 0x2a96
movl 0x9446(%rip), %eax      # 0xbe7c
movl %eax, %ecx
leaq 0x66e1(%rip), %rax      # 0x9120
movslq (%rax,%rcx,4), %rax
leaq 0x932e(%rip), %rdi      # 0xbd78
addq $0x8, %rdi
shlq $0x5, %rax
addq %rax, %rdi
movq 0x9424(%rip), %rsi      # 0xbe80
movq 0x9425(%rip), %rdx      # 0xbe88
callq 0x2f50
movl 0x940e(%rip), %ecx      # 0xbe7c
movl 0x9408(%rip), %eax      # 0xbe7c
movl %eax, %edx
leaq 0x66a3(%rip), %rax      # 0x9120
movslq (%rax,%rdx,4), %rdx
leaq 0x92f0(%rip), %rax      # 0xbd78
addq $0x8, %rax
shlq $0x5, %rdx
addq %rdx, %rax
movl %ecx, 0x18(%rax)
jmp 0x2bfd
cmpl $0x7, 0x93be(%rip)      # 0xbe60
jne 0x2b02
cmpl $0x0, 0x93cd(%rip)      # 0xbe78
je 0x2b02
movl 0x93ad(%rip), %eax      # 0xbe60
cmpl 0x931f(%rip), %eax      # 0xbdd8
jbe 0x2afd
leaq 0x92b6(%rip), %rdi      # 0xbd78
addq $0x8, %rdi
addq $0x40, %rdi
callq 0x3170
movq 0x932a(%rip), %rsi      # 0xbe00
movq 0x932b(%rip), %rdx      # 0xbe08
leaq 0x9294(%rip), %rdi      # 0xbd78
addq $0x8, %rdi
addq $0x40, %rdi
callq 0x2f50
movl 0x9369(%rip), %eax      # 0xbe60
movl %eax, 0x92db(%rip)      # 0xbdd8
jmp 0x2bfb
cmpl $0x0, 0x9357(%rip)      # 0xbe60
jne 0x2bd1
cmpl $0x2, 0x935a(%rip)      # 0xbe70
jne 0x2b36
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
leaq 0x454e(%rip), %rdx      # 0x7075
movl $0x5, %ecx
callq 0x3070
cmpl $0x0, %eax
jne 0x2b61
cmpl $0x1, 0x9333(%rip)      # 0xbe70
jne 0x2bd1
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
leaq 0x4529(%rip), %rdx      # 0x707b
movl $0x4, %ecx
callq 0x3070
cmpl $0x0, %eax
je 0x2bd1
callq 0x31a0
movq $0x0, -0x28(%rbp)
cmpq $0x7, -0x28(%rbp)
jae 0x2bbb
movq -0x28(%rbp), %rax
leaq 0x91f8(%rip), %rdi      # 0xbd78
addq $0x8, %rdi
shlq $0x5, %rax
addq %rax, %rdi
callq 0x3170
movq -0x28(%rbp), %rcx
leaq 0x91dd(%rip), %rax      # 0xbd78
addq $0x8, %rax
shlq $0x5, %rcx
addq %rcx, %rax
movl $0x0, 0x18(%rax)
movq -0x28(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x28(%rbp)
jmp 0x2b6e
movl $0x0, 0x92a7(%rip)      # 0xbe6c
movl $0x0, 0x92a1(%rip)      # 0xbe70
jmp 0x2bf9
cmpl $0x0, 0x9288(%rip)      # 0xbe60
je 0x2bf5
movl 0x9290(%rip), %edi      # 0xbe70
movq -0x10(%rbp), %rsi
movq -0x18(%rbp), %rdx
callq 0x30c0
cmpl 0x926d(%rip), %eax      # 0xbe60
je 0x2bf7
jmp 0x2c1e
jmp 0x2bf9
jmp 0x2bfb
jmp 0x2bfd
jmp 0x2bff
movl $0x0, 0x925b(%rip)      # 0xbe64
movl $0x0, 0x924d(%rip)      # 0xbe60
movq $0x0, 0x915a(%rip) # 0xbd78
addq $0x30, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)