// File: /workspace/github_c_makefile_star2_O0/nimble-code[P]gh_cpp/Src/gh_cpp1.c
// Function: token_pasting
static void
token_pasting(void)
{	TS *f, *fn;

	for (f = frst; f; f = f->nxt)	/* find double-sharp sequences */
		if (f->tok == CHAR
		&&  f->val == '#'
		&&  f->nxt
		&&  f->nxt->tok == CHAR
		&&  f->nxt->val == '#'
		&&  f->nxt->space == 0)
		{	fn = f->nxt->nxt;
			if (f->prv
			&&  f->prv->tok == TPASTE)
				f = f->prv;
			else
				f->tok = TPASTE;
			f->nxt = fn;
			if (fn)
				fn->prv = f;
			else
				lst = f;
		}

	for (f = frst; f; f = f->nxt)
		if (f->tok == TPASTE)
		{	fn = f->nxt;

			if (!pasterize(f, f->prv, fn))
			{	if (f->prv)
					f->prv->nxt = fn;
				else
					frst = fn;

				f->nxt = fn->nxt;

				if (fn)
					f->nxt->prv = f->prv;
				else
					lst = f;

				continue;
			}

			if (f->prv) f->space = f->prv->space;

			if (!f->prv || !f->prv->prv)
			{	frst = f;
				f->space = 0;
				f->prv = (TS *) 0;
			} else
			{	f->prv->prv->nxt = f;
				f->prv = f->prv->prv;
			}

			if (!fn || !fn->nxt)
			{	lst = f;
				f->nxt = (TS *) 0;
			} else
			{	f->nxt = fn->nxt;
				f->nxt->prv = f;
		}	}
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
movq 0xe661(%rip), %rax      # 0x17460
movq %rax, -0x8(%rbp)
cmpq $0x0, -0x8(%rbp)
je 0x8ee6
movq -0x8(%rbp), %rax
cmpl $0x2, (%rax)
jne 0x8ed3
movq -0x8(%rbp), %rax
cmpl $0x23, 0x4(%rax)
jne 0x8ed3
movq -0x8(%rbp), %rax
cmpq $0x0, 0x28(%rax)
je 0x8ed3
movq -0x8(%rbp), %rax
movq 0x28(%rax), %rax
cmpl $0x2, (%rax)
jne 0x8ed3
movq -0x8(%rbp), %rax
movq 0x28(%rax), %rax
cmpl $0x23, 0x4(%rax)
jne 0x8ed3
movq -0x8(%rbp), %rax
movq 0x28(%rax), %rax
cmpl $0x0, 0x10(%rax)
jne 0x8ed3
movq -0x8(%rbp), %rax
movq 0x28(%rax), %rax
movq 0x28(%rax), %rax
movq %rax, -0x10(%rbp)
movq -0x8(%rbp), %rax
cmpq $0x0, 0x20(%rax)
je 0x8e9b
movq -0x8(%rbp), %rax
movq 0x20(%rax), %rax
cmpl $0x20, (%rax)
jne 0x8e9b
movq -0x8(%rbp), %rax
movq 0x20(%rax), %rax
movq %rax, -0x8(%rbp)
jmp 0x8ea5
movq -0x8(%rbp), %rax
movl $0x20, (%rax)
movq -0x10(%rbp), %rcx
movq -0x8(%rbp), %rax
movq %rcx, 0x28(%rax)
cmpq $0x0, -0x10(%rbp)
je 0x8ec6
movq -0x8(%rbp), %rcx
movq -0x10(%rbp), %rax
movq %rcx, 0x20(%rax)
jmp 0x8ed1
movq -0x8(%rbp), %rax
movq %rax, 0xe587(%rip)      # 0x17458
jmp 0x8ed3
jmp 0x8ed5
movq -0x8(%rbp), %rax
movq 0x28(%rax), %rax
movq %rax, -0x8(%rbp)
jmp 0x8e03
movq 0xe573(%rip), %rax      # 0x17460
movq %rax, -0x8(%rbp)
cmpq $0x0, -0x8(%rbp)
je 0x9077
movq -0x8(%rbp), %rax
cmpl $0x20, (%rax)
jne 0x9064
movq -0x8(%rbp), %rax
movq 0x28(%rax), %rax
movq %rax, -0x10(%rbp)
movq -0x8(%rbp), %rdi
movq -0x8(%rbp), %rax
movq 0x20(%rax), %rsi
movq -0x10(%rbp), %rdx
callq 0x9c80
cmpl $0x0, %eax
jne 0x8f94
movq -0x8(%rbp), %rax
cmpq $0x0, 0x20(%rax)
je 0x8f4c
movq -0x10(%rbp), %rcx
movq -0x8(%rbp), %rax
movq 0x20(%rax), %rax
movq %rcx, 0x28(%rax)
jmp 0x8f57
movq -0x10(%rbp), %rax
movq %rax, 0xe509(%rip)      # 0x17460
movq -0x10(%rbp), %rax
movq 0x28(%rax), %rcx
movq -0x8(%rbp), %rax
movq %rcx, 0x28(%rax)
cmpq $0x0, -0x10(%rbp)
je 0x8f84
movq -0x8(%rbp), %rax
movq 0x20(%rax), %rcx
movq -0x8(%rbp), %rax
movq 0x28(%rax), %rax
movq %rcx, 0x20(%rax)
jmp 0x8f8f
movq -0x8(%rbp), %rax
movq %rax, 0xe4c9(%rip)      # 0x17458
jmp 0x9066
movq -0x8(%rbp), %rax
cmpq $0x0, 0x20(%rax)
je 0x8fb1
movq -0x8(%rbp), %rax
movq 0x20(%rax), %rax
movl 0x10(%rax), %ecx
movq -0x8(%rbp), %rax
movl %ecx, 0x10(%rax)
movq -0x8(%rbp), %rax
cmpq $0x0, 0x20(%rax)
je 0x8fcb
movq -0x8(%rbp), %rax
movq 0x20(%rax), %rax
cmpq $0x0, 0x20(%rax)
jne 0x8fef
movq -0x8(%rbp), %rax
movq %rax, 0xe48a(%rip)      # 0x17460
movq -0x8(%rbp), %rax
movl $0x0, 0x10(%rax)
movq -0x8(%rbp), %rax
movq $0x0, 0x20(%rax)
jmp 0x9017
movq -0x8(%rbp), %rcx
movq -0x8(%rbp), %rax
movq 0x20(%rax), %rax
movq 0x20(%rax), %rax
movq %rcx, 0x28(%rax)
movq -0x8(%rbp), %rax
movq 0x20(%rax), %rax
movq 0x20(%rax), %rcx
movq -0x8(%rbp), %rax
movq %rcx, 0x20(%rax)
cmpq $0x0, -0x10(%rbp)
je 0x9029
movq -0x10(%rbp), %rax
cmpq $0x0, 0x28(%rax)
jne 0x9042
movq -0x8(%rbp), %rax
movq %rax, 0xe424(%rip)      # 0x17458
movq -0x8(%rbp), %rax
movq $0x0, 0x28(%rax)
jmp 0x9062
movq -0x10(%rbp), %rax
movq 0x28(%rax), %rcx
movq -0x8(%rbp), %rax
movq %rcx, 0x28(%rax)
movq -0x8(%rbp), %rcx
movq -0x8(%rbp), %rax
movq 0x28(%rax), %rax
movq %rcx, 0x20(%rax)
jmp 0x9064
jmp 0x9066
movq -0x8(%rbp), %rax
movq 0x28(%rax), %rax
movq %rax, -0x8(%rbp)
jmp 0x8ef1
addq $0x10, %rsp
popq %rbp
retq
nopl (%rax)