// File: /workspace/github_c_makefile_star2_O1/nimble-code[P]gh_cpp/Src/gh_cpp1.c
// Function: preprocess
void
preprocess(void)
{	int d;

	release_all(start);
	inl = start = (TS *) 0;

	strcpy(lbuf, ibuf);	/* from gh_cpp2.c */
	do_parsing();

	if (verbose>1) { printf("before: "); show_line(0, stdout); }

	d = do_directives();

	if ((d == 0 && !not_printing[level])
	|| d == -1	/* unrecognized include, may need macro expansion */
	|| d == 2	/*  0 + 2 -> #if   */
	|| d == 10	/*  8 + 2 -> #line */
	|| d == 12)	/* 10 + 2 -> #elif */
	{	macro_expansion();
		if (verbose>1) { printf("during: "); show_line(0, stdout); }
		post_expansion();
	}

	if (verbose>1) { printf("after%d: ", d); if (d) show_line(0, stdout); }

	if (d == -1 && !no_includes)					/* unrecognized include */
	{	prep_line(start->nxt->nxt);
		nowc = lbuf;
		d = do_include(lineno, filename);	/* post macro expansion */
		if (d == 0)	/* 0= not recognized, -1 failed, 1 ok */
		fprintf(stderr, "%s,%d: warning: unrecognized include directive\n",
			filename, lineno);
	}

	string_merge(start);
	if (stack_depth <= 1 || !main_only)
	{	show_line(d, stdout);
		if (explanations)
		 	show_expl(stdout, start);
	}
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
pushq %rax
movq 0xf35e(%rip), %rdi      # 0x142c8
callq 0x550f
xorl %r13d, %r13d
movq %r13, 0xf34f(%rip)      # 0x142c8
movq %r13, 0xf350(%rip)      # 0x142d0
leaq 0xdf29(%rip), %rdi      # 0x12eb0
leaq 0x104f2(%rip), %rsi     # 0x15480
callq 0x4070
callq 0x5548
cmpl $0x2, 0xef11(%rip)      # 0x13eb0
jl 0x4fc0
leaq 0x6360(%rip), %rdi      # 0xb308
xorl %eax, %eax
callq 0x40c0
movq 0xd01a(%rip), %rax      # 0x11fd0
movq (%rax), %rsi
xorl %edi, %edi
callq 0x4d44
movq 0xf301(%rip), %rax      # 0x142c8
testq %rax, %rax
je 0x508f
cmpl $0x2, (%rax)
jne 0x508f
cmpl $0x23, 0x4(%rax)
jne 0x508f
movq 0x28(%rax), %r14
testq %r14, %r14
je 0x5046
movl (%r14), %eax
cmpl $0x4, %eax
je 0x503e
cmpl $0x1, %eax
jne 0x54f6
movq 0x8(%r14), %rbx
leaq 0x9d0c(%rip), %rsi      # 0xed14
movq %rbx, %rdi
callq 0x4140
leaq 0xccf9(%rip), %r12      # 0x11d10
xorl %r15d, %r15d
testl %eax, %eax
je 0x504e
cmpq $0xb, %r15
je 0x52ce
movq 0x10(%r12), %rsi
addq $0x10, %r12
movq %rbx, %rdi
callq 0x4140
incq %r15
jmp 0x501a
movq %r14, %rdi
callq 0x62d2
movl $0x1, %r13d
jmp 0x508f
cmpq $0x7, %r15
ja 0x5082
movslq 0xee59(%rip), %rax      # 0x13eb4
leaq 0xee5e(%rip), %rcx      # 0x13ec0
cmpl $0x0, (%rcx,%rax,4)
je 0x5082
cmpq $0x2, %r15
ja 0x508b
leaq 0x1(%rax), %rdx
movl %edx, 0xee3c(%rip)      # 0x13eb4
movl $0x3, 0x4(%rcx,%rax,4)
jmp 0x508b
movq 0x28(%r14), %rdi
callq *0x8(%r12)
leal 0x2(%r15), %r13d
leal 0x1(%r13), %eax
cmpl $0xd, %eax
ja 0x5325
movl $0x2809, %ecx           # imm = 0x2809
btl %eax, %ecx
jae 0x5247
movq %r13, -0x30(%rbp)
movl $0x1, %r12d
leaq 0xf285(%rip), %r15      # 0x14340
leaq 0xddee(%rip), %r13      # 0x12eb0
leaq 0x9c4e(%rip), %r14      # 0xed17
movq 0xf1f8(%rip), %rdi      # 0x142c8
callq 0x4dfa
cmpl $0x0, 0xf204(%rip)      # 0x142e0
je 0x50fb
movq 0xd02b(%rip), %rsi      # 0x12110
movl 0xdda5(%rip), %edx      # 0x12e90
movq %r14, %rdi
movl %r12d, %ecx
movq %r13, %r8
xorl %eax, %eax
callq 0x40c0
movq %r15, %rdi
movq %r13, %rsi
callq 0x4070
movq 0xf1bb(%rip), %rbx      # 0x142c8
movl %r12d, %eax
testq %rbx, %rbx
je 0x516d
cmpl $0x1, (%rbx)
jne 0x5151
movq 0x8(%rbx), %rdi
callq 0x6aa1
testq %rax, %rax
je 0x5151
movq %rbx, %rdi
movq %rax, %rsi
callq 0x703f
movq %rax, %rbx
movq 0xf18b(%rip), %rdi      # 0x142c8
callq 0x4dfa
movq %r13, %rdi
movq %r15, %rsi
callq 0x4140
testl %eax, %eax
jne 0x5168
testq %rbx, %rbx
je 0x515c
movq 0x28(%rbx), %rbx
jmp 0x515e
xorl %ebx, %ebx
testq %rbx, %rbx
jne 0x5115
movl %r12d, %eax
jmp 0x516d
leal 0x1(%r12), %eax
cmpl %r12d, %eax
movl %eax, %r12d
jg 0x50c9
cmpl $0x0, 0xf160(%rip)      # 0x142e0
je 0x5197
leaq 0x9ba4(%rip), %rdi      # 0xed2d
leaq 0xdd20(%rip), %rsi      # 0x12eb0
xorl %eax, %eax
callq 0x40c0
cmpl $0x2, 0xed12(%rip)      # 0x13eb0
movq -0x30(%rbp), %r13
jl 0x51c3
leaq 0x6166(%rip), %rdi      # 0xb311
xorl %eax, %eax
callq 0x40c0
movq 0xce17(%rip), %rax      # 0x11fd0
movq (%rax), %rsi
xorl %edi, %edi
callq 0x4d44
movq 0xf0fe(%rip), %rbx      # 0x142c8
testq %rbx, %rbx
je 0x5325
cmpl $0x2, (%rbx)
jne 0x5325
cmpl $0x23, 0x4(%rbx)
jne 0x5325
movq 0x28(%rbx), %r15
cmpl $0x1, (%r15)
jne 0x5325
movq 0x8(%r15), %r14
leaq 0x9b15(%rip), %rsi      # 0xed14
movq %r14, %rdi
callq 0x4140
testl %eax, %eax
je 0x5286
leaq 0x983b(%rip), %rsi      # 0xea4d
movq %r14, %rdi
callq 0x4140
testl %eax, %eax
je 0x5320
leaq 0x6023(%rip), %rsi      # 0xb24c
movq %r14, %rdi
callq 0x4140
testl %eax, %eax
jne 0x5325
movq 0x28(%r15), %rdi
callq 0x62d2
jmp 0x5325
cmpl $0x1, %eax
jne 0x5325
movslq 0xec5d(%rip), %rax      # 0x13eb4
leaq 0xec62(%rip), %rcx      # 0x13ec0
cmpl $0x0, (%rcx,%rax,4)
je 0x50aa
cmpl $0xc, %r13d
ja 0x5325
movl $0x1404, %eax           # imm = 0x1404
btl %r13d, %eax
jb 0x50aa
jmp 0x5325
movslq 0xec27(%rip), %rax      # 0x13eb4
cmpq $0xff, %rax
jge 0x5503
leaq 0xec20(%rip), %r14      # 0x13ec0
cmpl $0x1, (%r14,%rax,4)
jg 0x5325
movq %rbx, %rdi
callq 0x9131
xorl %ecx, %ecx
testl %eax, %eax
sete %cl
movslq 0xebf7(%rip), %rax      # 0x13eb4
leaq 0x1(%rax), %rdx
movl %edx, 0xebed(%rip)      # 0x13eb4
movl %ecx, 0x4(%r14,%rax,4)
jmp 0x5325
leaq 0xa062(%rip), %rsi      # 0xf337
movq %rbx, %rdi
callq 0x4140
testl %eax, %eax
jne 0x54f6
cmpl $0x0, 0xdba8(%rip)      # 0x12e94
movl $0xffffffff, %r13d      # imm = 0xFFFFFFFF
je 0x508f
cmpl $0x0, 0xefd9(%rip)      # 0x142d8
jne 0x508f
leaq 0x96b2(%rip), %rdx      # 0xe9be
movl $0x13, %edi
movl $0x3, %esi
callq 0xa250
jmp 0x508f
callq 0x866a
cmpl $0x2, 0xeb84(%rip)      # 0x13eb0
jl 0x5355
leaq 0x5fe5(%rip), %rdi      # 0xb31a
movl %r13d, %esi
xorl %eax, %eax
callq 0x40c0
testl %r13d, %r13d
je 0x5355
movq 0xcc85(%rip), %rax      # 0x11fd0
movq (%rax), %rsi
xorl %edi, %edi
callq 0x4d44
cmpl $-0x1, %r13d
jne 0x53a3
cmpl $0x0, 0xef76(%rip)      # 0x142d8
jne 0x53a3
movq 0xef5d(%rip), %rax      # 0x142c8
movq 0x28(%rax), %rax
movq 0x28(%rax), %rdi
callq 0x4dfa
leaq 0xdb31(%rip), %rax      # 0x12eb0
movq %rax, 0xdb1a(%rip)      # 0x12ea0
movl 0xdb04(%rip), %edi      # 0x12e90
movq 0xcd7d(%rip), %rsi      # 0x12110
callq 0x87fb
movl %eax, %r13d
testl %eax, %eax
je 0x54e9
movq 0xef1e(%rip), %r15      # 0x142c8
testq %r15, %r15
je 0x548d
movq %r15, %r12
cmpl $0x1, (%r12)
jne 0x547f
movq 0x8(%r12), %rdi
cmpb $0x22, (%rdi)
jne 0x547f
movq 0x28(%r12), %rax
testq %rax, %rax
je 0x547f
cmpl $0x1, (%rax)
jne 0x547f
movq 0x8(%rax), %rbx
cmpb $0x22, (%rbx)
jne 0x547f
callq 0x40a0
movq %rax, %r14
movq %rbx, %rdi
callq 0x40a0
leal (%rax,%r14), %edi
incl %edi
callq 0x4afa
movq %rax, %rbx
movq 0x8(%r12), %r14
movq %r14, %rdi
callq 0x40a0
leaq -0x1(%rax), %rdx
movq %rbx, %rdi
movq %r14, %rsi
callq 0x4050
movq 0x28(%r12), %rax
movq 0x8(%rax), %rdi
leaq 0x1(%rdi), %r14
callq 0x40a0
leaq -0x1(%rax), %rdx
movq %rbx, %rdi
movq %r14, %rsi
callq 0x4110
movq %rbx, 0x8(%r12)
movq 0x28(%r12), %rax
movq 0x28(%rax), %rax
movq %rax, 0x28(%r12)
testq %rax, %rax
je 0x5473
movq 0x28(%rax), %rax
testq %rax, %rax
je 0x5473
movq %r12, 0x20(%rax)
movq 0x20(%r12), %r12
testq %r12, %r12
cmoveq %r15, %r12
movq 0x28(%r12), %r12
testq %r12, %r12
jne 0x53b6
leaq 0x10ff8(%rip), %rax     # 0x1648c
cmpl $0x2, (%rax)
jl 0x54a2
cmpl $0x0, 0xee3c(%rip)      # 0x142dc
jne 0x54da
movq 0xcb27(%rip), %rbx      # 0x11fd0
movq (%rbx), %rsi
movl %r13d, %edi
callq 0x4d44
cmpb $0x1, 0xee09(%rip)      # 0x142c4
jne 0x54da
movq (%rbx), %rdi
movq 0xee01(%rip), %rsi      # 0x142c8
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
jmp 0x9f88
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
callq 0x42b3
xorl %r13d, %r13d
jmp 0x53a3
movq %r14, %rdi
callq 0x4282
jmp 0x508f
leaq 0x9c0f(%rip), %rdi      # 0xf119
callq 0x4a9c