// File: /workspace/github_c_makefile_star2_O2/nimble-code[P]gh_cpp/Src/gh_cpp1.c
// Function: expand_macro
static TS *
expand_macro(TS *s, MD *m)
{	TS *ni;
	ML *mp;
#ifdef RECURSE
	TS  *li, *hold_start, *hold_last;
	ARL *sa, *hold_saa;
	MD *mm;
#endif
	ni = prelude(s, m);
	if (ni) return ni;

	if (debugging)
	{	Enesting++; nested("");
		printf("Expand %s\n", m->nm);
	}

#ifdef RECURSE
	/* preserve copy of original actual params */
	/* to be used for formals preceded by # or ## in macro body */

	for (sa = saa; sa; sa = sa->nxt)
		sa->oal = cpy_orig(sa->al);

	/* expand actual params */
	hold_start = start;
	hold_saa   = saa;
	hold_last  = last;
	for (sa = saa; sa; sa = sa->nxt)	/* for each actual param */
	for (ni = sa->al; ni; ni = ni->nxt)	/* check token sequence  */
	{	if (ni->tok == NAME		/* for macro names */
		&& (mm = is_macro(ni->name)) != NULL)
		{
			if (debugging)
			{	nested("expanding macro ");
				printf("%s, pre-expand actual param %s\n",
					m->nm, ni->name);
				nested("Before: "); prep_line(start); printf("%s\n", lbuf);
				nested("Fragmt: "); prep_line(ni); printf("%s\n", lbuf);
			}
			start = ni;
			li = expand_macro(ni, mm);

			if (debugging)
			{	nested("Expnd : "); prep_line(start); printf("%s\n", lbuf);
				nested("LI    : "); prep_line(li); printf("%s\n", lbuf);
			}

			if (start != ni)
			{	if (ni->prv)
				{	ni->prv->nxt = start;
					if (start) start->prv = ni->prv;
				} else
				{	sa->al = start;
				}
				ni = li;
			}	/* else: macro not replaced - e.g., no params */

			start = hold_start;
			saa   = hold_saa;
			last  = hold_last;

			if (debugging)
			{	ARL *na;
				nested("new actual param list:\n");
				for (na = saa; na; na = na->nxt)
				{	prep_line(na->al);
					nested(""); printf("\t%s\n", lbuf);
					printf("\n"); fflush(stdout);
	}	}	}	}
#endif
	frst = lst = (TS *) 0;

	if (debugging && !m->body) printf("	empty body\n");

	purge_body(s, last, m, m->body);

	if (debugging)
	{	nested("PostPurge: ");
		prep_line(frst);
		printf("%s\n", lbuf);
	}

	token_pasting();

	if (debugging)
	{	nested("PostPaste: ");
		prep_line(frst);
		printf("%s\n", lbuf);
	}

	for (ni = frst; ni; ni = ni->nxt)		/* tag new TS seq with macro   */
	{	add_tag(ni, m);
		if (debugging)
		{	nested("");
			printf("tag expansion of %p with %s\t", ni, m->nm);
			tokfull(ni, stdout);
			printf("\n");
		}
		inherit_tags(s, last, ni);
	}

	if (frst)	/* replace macro s..last with expansion frst..lst */
	{	frst->space = s->space;
		if (!s->prv)
		{	start = frst;
			if (debugging) nested("new start\n");
		} else
		{	s->prv->nxt = frst;
			frst->prv = s->prv;
		}
	
		if (last && last->nxt)
		{	last->nxt->prv = lst;
			lst->nxt = last->nxt;
		}
	} else
	{	if (!s->prv)
		{	/* start = s->nxt; */
			start = last?last->nxt:last;
			if (debugging) nested("new start - no frst\n");
		} else
			s->prv->nxt = s->nxt;
	}
	if (debugging)
	{	nested("Done Expanding"); printf(" %s\n\n", m->nm);
		nested("PostAll: "); prep_line(start); printf("%s\n", lbuf);
	
		for (ni = start; ni; ni = ni->nxt)
		{	if (!ni->ml) continue;
			nested(""); printf("tags on %p ", ni);
			tokfull(ni, stdout);
			printf("are: ");
			for (mp = ni->ml; mp; mp = mp->nxt)
				printf(" %s,", mp->m->nm);
			printf("\n");
		}
		printf("\n");
		Enesting--;
	}

	return last;	/* point in parse string now reached */
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x48, %rsp
movq %rsi, -0x38(%rbp)
movq (%rsi), %rbx
cmpb $0x5f, (%rbx)
movq %rdi, -0x30(%rbp)
jne 0x6b06
cmpb $0x5f, 0x1(%rbx)
jne 0x6b06
leaq 0x7574(%rip), %rsi      # 0xdeb6
movq %rbx, %rdi
callq 0x4140
testl %eax, %eax
je 0x6a00
leaq 0x7571(%rip), %rsi      # 0xdeca
movq %rbx, %rdi
callq 0x4140
testl %eax, %eax
je 0x6a09
leaq 0x756c(%rip), %rsi      # 0xdedc
movq %rbx, %rdi
callq 0x4140
testl %eax, %eax
je 0x6a12
leaq 0x755e(%rip), %rsi      # 0xdee5
movq %rbx, %rdi
callq 0x4140
testl %eax, %eax
je 0x6aaa
leaq 0x7550(%rip), %rsi      # 0xdeee
movq %rbx, %rdi
callq 0x4140
testl %eax, %eax
je 0x6ab2
leaq 0x754b(%rip), %rsi      # 0xdf00
movq %rbx, %rdi
callq 0x4140
testl %eax, %eax
je 0x786a
leaq 0x753d(%rip), %rsi      # 0xdf09
movq %rbx, %rdi
callq 0x4140
testl %eax, %eax
je 0x7876
leaq 0x7536(%rip), %rsi      # 0xdf19
movq %rbx, %rdi
callq 0x4140
testl %eax, %eax
movq -0x30(%rbp), %rdi
jne 0x6b06
leaq 0x752c(%rip), %rbx      # 0xdf2a
jmp 0x6a59
leaq 0x74b8(%rip), %rbx      # 0xdebf
jmp 0x6a55
leaq 0x74c3(%rip), %rbx      # 0xded3
jmp 0x6a55
movq 0xa6f7(%rip), %rdi      # 0x11110
callq 0x40a0
leal 0x3(%rax), %edi
callq 0x4348
movq %rax, %rbx
movq %rax, 0xc8b8(%rip)      # 0x132e8
movw $0x22, %r14w
movw %r14w, (%rax)
movq 0xa6d0(%rip), %rsi      # 0x11110
movq %rax, %rdi
callq 0x4190
movq %rbx, %rdi
callq 0x40a0
movw %r14w, (%rbx,%rax)
movq -0x30(%rbp), %rdi
movq %rdi, %r14
pushq $0x1
popq %rdi
callq 0x5acc
movq %rbx, 0x8(%rax)
movl 0x10(%r14), %ecx
movl %ecx, 0x10(%rax)
movq 0x20(%r14), %rcx
leaq 0x28(%rcx), %rdx
testq %rcx, %rcx
leaq 0xc847(%rip), %rsi      # 0x132c8
cmovneq %rdx, %rsi
cmoveq %rax, %rcx
movq %rax, (%rsi)
movq %rcx, 0x20(%rax)
movq 0x28(%r14), %rcx
testq %rcx, %rcx
je 0x77b3
movq %rax, 0x20(%rcx)
movq %rcx, 0x28(%rax)
jmp 0x77b3
movl 0xb3e0(%rip), %edx      # 0x11e90
jmp 0x6abd
leaq 0xe9d3(%rip), %rax      # 0x1548c
movl (%rax), %edx
decl %edx
leaq 0xb3ec(%rip), %r14      # 0x11eb0
leaq 0x6ddd(%rip), %rsi      # 0xd8a8
movq %r14, %rdi
xorl %eax, %eax
callq 0x41a0
movq %r14, %rdi
callq 0x40a0
movl %eax, %edi
callq 0x4348
movq %rax, %rbx
movq %rax, 0xc7fa(%rip)      # 0x132e8
movq %rax, %rdi
movq %r14, %rsi
callq 0x4070
testq %rbx, %rbx
movq -0x30(%rbp), %rdi
jne 0x6a59
movq -0x38(%rbp), %rax
leaq 0x18(%rax), %r15
xorl %r12d, %r12d
leaq 0x6e35(%rip), %rbx      # 0xd94d
pushq $0x1
popq %r13
xorl %r14d, %r14d
movq (%r15), %r15
testq %r15, %r15
je 0x6b45
movq (%r15), %rdi
movq %rbx, %rsi
callq 0x4140
movq -0x30(%rbp), %rdi
testl %eax, %eax
cmovel %r13d, %r14d
incl %r12d
addq $0x8, %r15
jmp 0x6b1f
andq $0x0, 0xd7fb(%rip)      # 0x14348
movq %rdi, %rax
testl %r12d, %r12d
movq -0x38(%rbp), %rbx
movl %r12d, -0x68(%rbp)
je 0x6dde
movq 0x28(%rdi), %r15
movq %rdi, %rax
testq %r15, %r15
je 0x6dde
cmpl $0x2, (%r15)
movq %rdi, %rax
jne 0x6dde
cmpl $0x28, 0x4(%r15)
movq %rdi, %rax
jne 0x6dde
movq 0x28(%r15), %rax
testq %rax, %rax
je 0x6ba4
cmpl $0x2, (%rax)
jne 0x6ba4
cmpl $0x29, 0x4(%rax)
je 0x6dde
movl %r13d, -0x50(%rbp)
leaq 0xb301(%rip), %r12      # 0x11eb0
leaq 0xd8ca(%rip), %r13      # 0x14480
xorl %esi, %esi
movq $0x0, -0x48(%rbp)
movq $0x0, -0x58(%rbp)
movq %r15, %rbx
movq %rax, %r15
movq %rsi, -0x40(%rbp)
testq %r15, %r15
jne 0x6c69
cmpl $0x0, -0x50(%rbp)
jg 0x6c0f
jmp 0x6dd4
testl %eax, %eax
je 0x6c0f
movq 0xa407(%rip), %rax      # 0x10ff8
movq (%rax), %rdi
movq 0xa515(%rip), %rdx      # 0x11110
movl 0xb28f(%rip), %ecx      # 0x11e90
leaq 0x733f(%rip), %rsi      # 0xdf47
xorl %eax, %eax
callq 0x4150
callq 0x8009
movq %r12, %rdi
movq %r13, %rsi
callq 0x4070
callq 0x4e62
movq 0x28(%rbx), %r15
movl 0xc6b2(%rip), %eax      # 0x132e0
testq %r15, %r15
je 0x6be6
testl %eax, %eax
movq -0x40(%rbp), %rsi
je 0x6bd2
movq 0xa3b6(%rip), %rax      # 0x10ff8
movq (%rax), %rdi
movq 0xa4c4(%rip), %rdx      # 0x11110
movl 0xb23e(%rip), %ecx      # 0x11e90
leaq 0x72d8(%rip), %rsi      # 0xdf31
xorl %eax, %eax
callq 0x4150
movq -0x40(%rbp), %rsi
jmp 0x6bd2
movl (%r15), %eax
leal -0x3(%rax), %ecx
cmpl $0x2, %ecx
jb 0x6cf8
cmpl $0x1, %eax
movq -0x58(%rbp), %rbx
je 0x6d0c
cmpl $0x2, %eax
jne 0x788a
movl 0x4(%r15), %eax
xorl %ecx, %ecx
cmpl $0x28, %eax
sete %cl
movl -0x50(%rbp), %edx
addl %ecx, %edx
movl %edx, -0x50(%rbp)
cmpl $0x1, %edx
jne 0x6d8a
cmpl $0x2c, %eax
je 0x6cb9
cmpl $0x29, %eax
jne 0x6d8a
pushq $0x18
popq %rdi
callq 0x4348
movq -0x48(%rbp), %rcx
movq %rcx, (%rax)
testq %rbx, %rbx
je 0x6cd1
movq %rax, 0x10(%rbx)
cmpq $0x0, 0xd66f(%rip)      # 0x14348
movq -0x30(%rbp), %rdi
jne 0x6ce6
movq %rax, 0xd662(%rip)      # 0x14348
xorl %ecx, %ecx
movq $0x0, -0x48(%rbp)
movq %rax, %rbx
jmp 0x6d99
movq %r15, %rdi
callq 0x7c77
movq %rax, %rcx
movq -0x58(%rbp), %rbx
jmp 0x6db5
movq %r15, %rdi
callq 0x7c77
movq %rax, -0x40(%rbp)
cmpl $0x0, 0xb175(%rip)      # 0x11e94
je 0x6db1
movq 0x8(%r15), %rdi
movq %rdi, -0x60(%rbp)
leaq 0x75fc(%rip), %rsi      # 0xe330
callq 0x4140
testl %eax, %eax
jne 0x6d4f
pushq $0x13
popq %rdi
pushq $0x9
popq %rsi
leaq 0x721a(%rip), %rdx      # 0xdf64
callq 0x9bc0
xorl %ebx, %ebx
cmpq $0xc0, %rbx
je 0x6dad
leaq 0x9faf(%rip), %rax      # 0x10d10
movq (%rbx,%rax), %rsi
movq -0x60(%rbp), %rdi
callq 0x4140
testl %eax, %eax
jne 0x6d84
pushq $0x13
popq %rdi
pushq $0x9
popq %rsi
leaq 0x71e5(%rip), %rdx      # 0xdf64
callq 0x9bc0
addq $0x10, %rbx
jmp 0x6d51
movq %r15, %rdi
callq 0x7c77
movq %rax, %rcx
movq -0x30(%rbp), %rdi
xorl %eax, %eax
cmpl $0x29, 0x4(%r15)
sete %al
subl %eax, -0x50(%rbp)
jne 0x6db5
jmp 0x7882
movq -0x58(%rbp), %rbx
movq -0x40(%rbp), %rcx
movq %rbx, -0x58(%rbp)
movq -0x48(%rbp), %rax
testq %rax, %rax
cmoveq %rcx, %rax
movq %rax, -0x48(%rbp)
movq 0x28(%r15), %rax
movq %rcx, %rsi
jmp 0x6bc8
xorl %eax, %eax
movq -0x30(%rbp), %rdi
movq -0x38(%rbp), %rbx
movq %rax, 0xd56b(%rip)      # 0x14350
movq %rdi, %rcx
leaq 0x18(%rcx), %rdx
movq (%rdx), %rsi
testq %rsi, %rsi
je 0x6e0c
leaq 0x8(%rsi), %rdx
cmpq %rbx, (%rsi)
jne 0x6dec
cmpq %rax, %rcx
je 0x77c2
movq 0x28(%rcx), %rcx
jmp 0x6de8
leaq 0xd535(%rip), %r13      # 0x14348
movq 0xa1b6(%rip), %r15      # 0x10fd0
xorl %ebx, %ebx
movq (%r13), %r13
testq %r13, %r13
je 0x6e6b
incl %ebx
cmpl $0x0, 0xc4b2(%rip)      # 0x132e0
je 0x6e65
leaq 0x7153(%rip), %rdi      # 0xdf8a
movl %ebx, %esi
xorl %eax, %eax
callq 0x40c0
movq %r13, %r12
movq (%r12), %r12
testq %r12, %r12
je 0x6e5d
movq (%r15), %rsi
movq %r12, %rdi
callq 0x5a09
addq $0x28, %r12
jmp 0x6e43
pushq $0xa
popq %rdi
callq 0x4040
addq $0x10, %r13
jmp 0x6e1c
movl -0x68(%rbp), %r9d
cmpl %ebx, %r9d
je 0x6ed7
testl %r14d, %r14d
sete %al
cmpl %r9d, %ebx
setb %cl
orb %al, %cl
cmpb $0x1, %cl
jne 0x6ed7
movslq 0xc026(%rip), %rax      # 0x12eb4
leaq 0xc02b(%rip), %rcx      # 0x12ec0
cmpl $0x0, (%rcx,%rax,4)
sete %al
testl %ebx, %ebx
setne %cl
andb %al, %cl
cmpb $0x1, %cl
je 0x781a
cmpl $0x0, 0xafe1(%rip)      # 0x11e94
je 0x6ec7
pushq $0x10
popq %rsi
leaq 0x6fd0(%rip), %rdx      # 0xde8f
pushq $0x13
popq %rdi
callq 0x9bc0
movq 0xd482(%rip), %rax      # 0x14350
testq %rax, %rax
jne 0x77b3
cmpl $0x0, 0xc402(%rip)      # 0x132e0
je 0x6f07
incl 0xd45a(%rip)            # 0x14340
leaq 0x76a7(%rip), %rdi      # 0xe594
callq 0x7896
movq -0x38(%rbp), %rax
movq (%rax), %rsi
leaq 0x6e32(%rip), %rdi      # 0xdd32
xorl %eax, %eax
callq 0x40c0
leaq 0xd43a(%rip), %rbx      # 0x14348
movq (%rbx), %rbx
testq %rbx, %rbx
je 0x6f28
movq (%rbx), %rdi
callq 0x78db
movq %rax, 0x8(%rbx)
addq $0x10, %rbx
jmp 0x6f0e
movq 0xc399(%rip), %rax      # 0x132c8
movq %rax, -0x50(%rbp)
movq 0xd40e(%rip), %rbx      # 0x14348
movq 0xd40f(%rip), %rcx      # 0x14350
movq %rcx, -0x60(%rbp)
leaq 0x6e5e(%rip), %r13      # 0xddaa
leaq 0xaf5d(%rip), %r14      # 0x11eb0
pushq $0xa
popq %r15
movq %rbx, -0x68(%rbp)
testq %rbx, %rbx
je 0x7129
movq %rbx, -0x48(%rbp)
movq (%rbx), %rbx
testq %rbx, %rbx
je 0x711c
cmpl $0x1, (%rbx)
jne 0x7113
movq 0x8(%rbx), %rdi
callq 0x6350
testq %rax, %rax
je 0x7113
movq %rax, %r12
cmpl $0x0, 0xc347(%rip)      # 0x132e0
je 0x6ffc
leaq 0x6d9b(%rip), %rdi      # 0xdd3d
callq 0x7896
movq -0x38(%rbp), %rax
movq (%rax), %rsi
movq 0x8(%rbx), %rdx
leaq 0x6d95(%rip), %rdi      # 0xdd4e
xorl %eax, %eax
callq 0x40c0
leaq 0x6da7(%rip), %rdi      # 0xdd6e
callq 0x7896
movq 0xc2f5(%rip), %rdi      # 0x132c8
callq 0x465e
movq %r14, %rdi
callq 0x4080
leaq 0x6d90(%rip), %rdi      # 0xdd77
callq 0x7896
movq %rbx, %rdi
callq 0x465e
movq %r14, %rdi
callq 0x4080
movq %rbx, 0xc2c5(%rip)      # 0x132c8
movq %rbx, %rdi
movq %r12, %rsi
callq 0x690c
movq %rax, %r12
cmpl $0x0, 0xc2c8(%rip)      # 0x132e0
je 0x7056
leaq 0x6d5f(%rip), %rdi      # 0xdd80
callq 0x7896
movq 0xc29b(%rip), %rdi      # 0x132c8
callq 0x465e
movq %r14, %rdi
callq 0x4080
leaq 0x6d48(%rip), %rdi      # 0xdd89
callq 0x7896
movq %r12, %rdi
callq 0x465e
movq %r14, %rdi
callq 0x4080
movq %r12, -0x40(%rbp)
movq 0xc267(%rip), %rax      # 0x132c8
cmpq %rbx, %rax
movq 0x9f65(%rip), %r12      # 0x10fd0
je 0x7085
movq 0x20(%rbx), %rcx
testq %rcx, %rcx
je 0x708b
movq %rax, 0x28(%rcx)
testq %rax, %rax
je 0x7092
movq %rcx, 0x20(%rax)
jmp 0x7092
movq %rbx, -0x40(%rbp)
jmp 0x7092
movq -0x48(%rbp), %rcx
movq %rax, (%rcx)
movq -0x50(%rbp), %rax
movq %rax, 0xc22b(%rip)      # 0x132c8
movq -0x68(%rbp), %rax
movq %rax, 0xd2a0(%rip)      # 0x14348
movq -0x60(%rbp), %rax
movq %rax, 0xd29d(%rip)      # 0x14350
cmpl $0x0, 0xc226(%rip)      # 0x132e0
je 0x710f
leaq 0x6ccf(%rip), %rdi      # 0xdd92
callq 0x7896
leaq 0xd279(%rip), %rbx      # 0x14348
movq (%rbx), %rbx
testq %rbx, %rbx
je 0x710f
movq (%rbx), %rdi
callq 0x465e
leaq 0x74ae(%rip), %rdi      # 0xe594
callq 0x7896
movq %r13, %rdi
movq %r14, %rsi
xorl %eax, %eax
callq 0x40c0
movl %r15d, %edi
callq 0x4040
movq (%r12), %rdi
callq 0x4160
addq $0x10, %rbx
jmp 0x70cf
movq -0x40(%rbp), %rbx
addq $0x28, %rbx
jmp 0x6f68
movq -0x48(%rbp), %rbx
movq 0x10(%rbx), %rbx
jmp 0x6f5b
andq $0x0, 0xd227(%rip)      # 0x14358
andq $0x0, 0xd227(%rip)      # 0x14360
cmpl $0x0, 0xc1a0(%rip)      # 0x132e0
movq -0x38(%rbp), %rbx
je 0x7159
cmpq $0x0, 0x20(%rbx)
jne 0x7159
leaq 0x6fd7(%rip), %rdi      # 0xe12b
callq 0x4080
movq 0x20(%rbx), %rsi
movq %rbx, %rdi
callq 0x7941
cmpl $0x0, 0xc174(%rip)      # 0x132e0
je 0x7192
leaq 0x6c3a(%rip), %rdi      # 0xddaf
callq 0x7896
movq 0xd1df(%rip), %rdi      # 0x14360
callq 0x465e
leaq 0xad23(%rip), %rdi      # 0x11eb0
callq 0x4080
leaq 0xd1c7(%rip), %rcx      # 0x14360
leaq 0xd1b8(%rip), %rax      # 0x14358
movq -0x30(%rbp), %rdi
movq (%rcx), %rcx
testq %rcx, %rcx
je 0x7207
cmpl $0x2, (%rcx)
jne 0x7201
cmpl $0x23, 0x4(%rcx)
jne 0x7201
movq 0x28(%rcx), %rdx
testq %rdx, %rdx
je 0x7201
cmpl $0x2, (%rdx)
jne 0x7201
cmpl $0x23, 0x4(%rdx)
jne 0x7201
cmpl $0x0, 0x10(%rdx)
jne 0x7201
movq 0x28(%rdx), %rsi
movq 0x20(%rcx), %rdx
testq %rdx, %rdx
je 0x71e3
cmpl $0x20, (%rdx)
je 0x71ec
movl $0x20, (%rcx)
movq %rcx, %rdx
movq %rsi, 0x28(%rdx)
leaq 0x20(%rsi), %rcx
testq %rsi, %rsi
cmoveq %rax, %rcx
movq %rdx, (%rcx)
movq %rdx, %rcx
addq $0x28, %rcx
jmp 0x71a4
leaq 0xd152(%rip), %r15      # 0x14360
movq %r15, %r12
movq (%r12), %r12
testq %r12, %r12
je 0x74b9
cmpl $0x20, (%r12)
jne 0x744e
movq 0x20(%r12), %r14
movq 0x28(%r12), %r13
movl (%r14), %eax
movl %eax, %edx
xorl $0x1, %edx
movl (%r13), %ecx
movl %ecx, %esi
xorl $0x1, %esi
orl %edx, %esi
jne 0x72cc
movq 0x8(%r14), %rax
movzbl (%rax), %eax
cmpl $0x22, %eax
je 0x7272
cmpl $0x27, %eax
je 0x7272
movq 0x8(%r13), %rax
movzbl (%rax), %eax
cmpl $0x22, %eax
je 0x7272
cmpl $0x27, %eax
jne 0x7370
movq 0x9d7f(%rip), %rax      # 0x10ff8
movq (%rax), %rdi
movq 0x9e8d(%rip), %rdx      # 0x11110
movl 0xac07(%rip), %ecx      # 0x11e90
movl 0x4(%r14), %r8d
movl 0x4(%r13), %r9d
leaq 0x6d72(%rip), %rsi      # 0xe00a
xorl %eax, %eax
callq 0x4150
movq 0x20(%r12), %rax
leaq 0x28(%rax), %rcx
testq %rax, %rax
cmoveq %r15, %rcx
movq %r13, (%rcx)
movq 0x28(%r13), %rcx
movq %rcx, 0x28(%r12)
movq %rax, 0x20(%rcx)
movq -0x30(%rbp), %rdi
movq -0x38(%rbp), %rbx
jmp 0x744e
cmpl $0x2, %ecx
jne 0x72dc
cmpl $0x3b, 0x4(%r13)
je 0x7457
cmpl $0x2, %eax
jne 0x7370
movl (%r13), %eax
cmpl $0x2, %eax
jne 0x7332
cmpl $0x2f, 0x4(%r14)
jne 0x7370
movl 0x4(%r13), %r9d
cmpl $0x2f, %r9d
je 0x7305
cmpl $0x2a, %r9d
jne 0x7370
movq 0x9cec(%rip), %rax      # 0x10ff8
movq (%rax), %rdi
movq 0x9dfa(%rip), %rdx      # 0x11110
movl 0xab74(%rip), %ecx      # 0x11e90
leaq 0x6d5a(%rip), %rsi      # 0xe07d
pushq $0x2f
popq %r8
xorl %eax, %eax
callq 0x4150
movl (%r13), %eax
cmpl $0x1, %eax
jne 0x7370
cmpl $0x23, 0x4(%r14)
jne 0x7370
movq 0x8(%r13), %rbx
movq %rbx, %rdi
leaq 0x684f(%rip), %rsi      # 0xdb9b
callq 0x4140
testl %eax, %eax
je 0x7488
movq %rbx, %rdi
leaq 0x6fcd(%rip), %rsi      # 0xe330
callq 0x4140
testl %eax, %eax
je 0x7488
movq %r14, %rdi
callq 0x7ef7
movl %eax, %ebx
movq %r13, %rdi
callq 0x7ef7
addl %ebx, %eax
leal 0x5(,%rax,2), %edi
callq 0x4348
movq %rax, %rbx
movq %r14, %rdi
movq %r14, %rsi
callq 0x7dcb
movq %rbx, %rdi
movq %rax, %rsi
callq 0x4070
movq %r13, %rdi
movq %r13, %rsi
callq 0x7dcb
movq %rbx, %rdi
movq %rax, %rsi
callq 0x4190
cmpl $0x4, (%r14)
jne 0x73e3
cmpl $0x4, (%r13)
jne 0x73e3
movl $0x4, (%r12)
movq %rbx, %rdi
callq 0x4180
movl %eax, 0x4(%r12)
jmp 0x73f0
movl $0x1, (%r12)
movq %rbx, 0x8(%r12)
movq 0x20(%r12), %rax
testq %rax, %rax
movq -0x30(%rbp), %rdi
movq -0x38(%rbp), %rbx
je 0x7419
movl 0x10(%rax), %ecx
movl %ecx, 0x10(%r12)
movq 0x20(%rax), %rax
testq %rax, %rax
je 0x7419
movq %r12, 0x28(%rax)
jmp 0x7428
movq %r12, 0xcf40(%rip)      # 0x14360
andl $0x0, 0x10(%r12)
xorl %eax, %eax
movq %rax, 0x20(%r12)
movq 0x28(%r13), %rax
testq %rax, %rax
je 0x7441
movq %rax, 0x28(%r12)
movq %r12, 0x20(%rax)
jmp 0x744e
movq %r12, 0xcf10(%rip)      # 0x14358
andq $0x0, 0x28(%r12)
addq $0x28, %r12
jmp 0x7211
movq 0x9b9a(%rip), %rax      # 0x10ff8
movq (%rax), %rdi
movq 0x9ca8(%rip), %rdx      # 0x11110
movl 0xaa22(%rip), %ecx      # 0x11e90
leaq 0x6bd2(%rip), %rsi      # 0xe047
pushq $0x3b
popq %r8
xorl %eax, %eax
callq 0x4150
movl (%r14), %eax
jmp 0x72dc
movq 0x9b69(%rip), %rax      # 0x10ff8
movq (%rax), %rdi
movq 0x9c77(%rip), %rdx      # 0x11110
movl 0xa9f1(%rip), %ecx      # 0x11e90
leaq 0x6c13(%rip), %rsi      # 0xe0b9
pushq $0x23
popq %r8
movq %rbx, %r9
xorl %eax, %eax
callq 0x4150
jmp 0x7370
cmpl $0x0, 0xbe20(%rip)      # 0x132e0
je 0x74ea
leaq 0x68f2(%rip), %rdi      # 0xddbb
callq 0x7896
movq 0xce8b(%rip), %rdi      # 0x14360
callq 0x465e
leaq 0xa9cf(%rip), %rdi      # 0x11eb0
callq 0x4080
movq -0x30(%rbp), %rdi
leaq 0x18(%rdi), %rax
movq %rax, -0x40(%rbp)
leaq 0xce67(%rip), %r14      # 0x14360
leaq 0x7094(%rip), %r15      # 0xe594
pushq $0xa
popq %r13
movq 0x9ac5(%rip), %r12      # 0x10fd0
movq (%r14), %r14
testq %r14, %r14
je 0x7611
movq %r14, %rdi
movq %rbx, %rsi
callq 0x6386
cmpl $0x0, 0xbdb7(%rip)      # 0x132e0
je 0x755b
movq %r15, %rdi
callq 0x7896
movq (%rbx), %rdx
leaq 0x688a(%rip), %rdi      # 0xddc7
movq %r14, %rsi
xorl %eax, %eax
callq 0x40c0
movq (%r12), %rsi
movq %r14, %rdi
callq 0x5a09
movl %r13d, %edi
callq 0x4040
movq 0xcdee(%rip), %rbx      # 0x14350
movq -0x40(%rbp), %r12
movq -0x30(%rbp), %rdi
movq (%r12), %r12
testq %r12, %r12
je 0x7604
movq (%r12), %rsi
cmpq %rdi, %rbx
je 0x75a8
movq %rdi, %rax
movq 0x28(%rax), %rax
testq %rax, %rax
je 0x75a8
cmpq %rbx, %rax
je 0x75a8
leaq 0x18(%rax), %rcx
movq (%rcx), %rdx
testq %rdx, %rdx
je 0x75fb
leaq 0x8(%rdx), %rcx
cmpq %rsi, (%rdx)
jne 0x7595
jmp 0x7583
movq %r14, %rdi
callq 0x6386
movq -0x30(%rbp), %rdi
cmpl $0x0, 0xbd25(%rip)      # 0x132e0
je 0x75fb
movq %r15, %rdi
callq 0x7896
movq (%r12), %rax
movq (%rax), %rdx
leaq 0x6b22(%rip), %rdi      # 0xe0f5
movq %r14, %rsi
xorl %eax, %eax
callq 0x40c0
movq 0x99ec(%rip), %rax      # 0x10fd0
movq (%rax), %rsi
movq %r14, %rdi
callq 0x5a09
movl %r13d, %edi
callq 0x4040
movq -0x30(%rbp), %rdi
addq $0x8, %r12
jmp 0x756a
addq $0x28, %r14
movq -0x38(%rbp), %rbx
jmp 0x7504
movq 0xcd48(%rip), %rax      # 0x14360
testq %rax, %rax
je 0x7636
movl 0x10(%rdi), %ecx
movl %ecx, 0x10(%rax)
movq 0x20(%rdi), %rcx
testq %rcx, %rcx
je 0x7649
movq %rax, 0x28(%rcx)
movq %rcx, 0x20(%rax)
jmp 0x7665
movq 0x20(%rdi), %rax
testq %rax, %rax
je 0x768b
movq 0x28(%rdi), %rcx
movq %rcx, 0x28(%rax)
jmp 0x76bf
movq %rax, 0xbc78(%rip)      # 0x132c8
cmpl $0x0, 0xbc89(%rip)      # 0x132e0
je 0x7665
leaq 0x6784(%rip), %rdi      # 0xdde4
callq 0x7896
movq 0xcce4(%rip), %rax      # 0x14350
testq %rax, %rax
je 0x76bf
movq 0x28(%rax), %rax
testq %rax, %rax
je 0x76bf
movq 0xccd7(%rip), %rcx      # 0x14358
movq %rcx, 0x20(%rax)
movq %rax, 0x28(%rcx)
jmp 0x76bf
movq 0xccbe(%rip), %rax      # 0x14350
testq %rax, %rax
je 0x769d
movq 0x28(%rax), %rax
jmp 0x769f
xorl %eax, %eax
movq %rax, 0xbc22(%rip)      # 0x132c8
cmpl $0x0, 0xbc33(%rip)      # 0x132e0
je 0x77ac
leaq 0x6735(%rip), %rdi      # 0xddef
callq 0x7896
cmpl $0x0, 0xbc1a(%rip)      # 0x132e0
je 0x77ac
leaq 0x6731(%rip), %rdi      # 0xde04
callq 0x7896
movq (%rbx), %rsi
leaq 0x6731(%rip), %rdi      # 0xde13
xorl %eax, %eax
callq 0x40c0
leaq 0x6729(%rip), %rdi      # 0xde19
callq 0x7896
leaq 0xbbcc(%rip), %rbx      # 0x132c8
movq 0xbbc5(%rip), %rdi      # 0x132c8
callq 0x465e
leaq 0xa7a1(%rip), %rdi      # 0x11eb0
callq 0x4080
leaq 0x6714(%rip), %r12      # 0xde2f
pushq $0xa
popq %r13
leaq 0x670f(%rip), %r14      # 0xde35
movq (%rbx), %rbx
testq %rbx, %rbx
je 0x779e
cmpq $0x0, 0x18(%rbx)
je 0x7798
leaq 0x18(%rbx), %r15
leaq 0x6e54(%rip), %rdi      # 0xe594
callq 0x7896
leaq 0x66d7(%rip), %rdi      # 0xde23
movq %rbx, %rsi
xorl %eax, %eax
callq 0x40c0
movq 0x9873(%rip), %rax      # 0x10fd0
movq (%rax), %rsi
movq %rbx, %rdi
callq 0x5a09
movq %r12, %rdi
xorl %eax, %eax
callq 0x40c0
movq (%r15), %r15
testq %r15, %r15
je 0x7790
movq (%r15), %rax
movq (%rax), %rsi
movq %r14, %rdi
xorl %eax, %eax
callq 0x40c0
addq $0x8, %r15
jmp 0x7772
movl %r13d, %edi
callq 0x4040
addq $0x28, %rbx
jmp 0x7726
pushq $0xa
popq %rdi
callq 0x4040
decl 0xcb94(%rip)            # 0x14340
movq 0xcb9d(%rip), %rax      # 0x14350
addq $0x48, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
cmpl $0x0, 0xb6e7(%rip)      # 0x12eb0
movq %rdi, %rax
je 0x6ece
cmpl $0x0, 0xbb07(%rip)      # 0x132e0
je 0x77f3
incl 0xcb5f(%rip)            # 0x14340
leaq 0x6dac(%rip), %rdi      # 0xe594
callq 0x7896
decl 0xcb4d(%rip)            # 0x14340
movq 0x9916(%rip), %rsi      # 0x11110
movl 0xa690(%rip), %edx      # 0x11e90
movq (%rbx), %rcx
leaq 0x6630(%rip), %rdi      # 0xde3a
xorl %eax, %eax
callq 0x40c0
movq -0x30(%rbp), %rax
jmp 0x6ece
cmpl %r9d, %ebx
setb %r14b
movq 0x97d0(%rip), %rax      # 0x10ff8
movq (%rax), %rdi
movq 0x98de(%rip), %rdx      # 0x11110
movl 0xa658(%rip), %ecx      # 0x11e90
movq -0x38(%rbp), %rax
movq (%rax), %r8
movl %ebx, (%rsp)
leaq 0x6613(%rip), %rsi      # 0xde5c
xorl %eax, %eax
callq 0x4150
cmpl $0x0, 0xa63d(%rip)      # 0x11e94
setne %al
testb %r14b, %al
je 0x6ec7
pushq $0x8
jmp 0x6eb7
leaq 0x38ab(%rip), %rbx      # 0xb11c
jmp 0x6a55
leaq 0x6c5c(%rip), %rbx      # 0xe4d9
jmp 0x6a55
movq %r15, %rax
jmp 0x6dda
leaq 0x62d9(%rip), %rdi      # 0xdb6a
callq 0x42ec