// File: /workspace/github_c_makefile_star2_O3/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 0xf3cf(%rip), %rdi      # 0x142c8
callq 0x54de
xorl %eax, %eax
movq %rax, 0xf3c1(%rip)      # 0x142c8
movq %rax, 0xf3c2(%rip)      # 0x142d0
leaq 0xdf9b(%rip), %r13      # 0x12eb0
leaq 0x10564(%rip), %rsi     # 0x15480
movq %r13, %rdi
callq 0x4070
callq 0x5517
cmpl $0x2, 0xef80(%rip)      # 0x13eb0
jl 0x4f51
leaq 0x63cf(%rip), %rdi      # 0xb308
xorl %eax, %eax
callq 0x40c0
movq 0xd089(%rip), %rax      # 0x11fd0
movq (%rax), %rsi
xorl %edi, %edi
callq 0x4cc3
movq 0xf370(%rip), %rax      # 0x142c8
testq %rax, %rax
je 0x50cb
cmpl $0x2, (%rax)
jne 0x50cb
cmpl $0x23, 0x4(%rax)
jne 0x50cb
movq 0x28(%rax), %rbx
movl $0x1, %r14d
testq %rbx, %rbx
je 0x52b3
movl (%rbx), %eax
cmpl $0x1, %eax
je 0x4fa4
cmpl $0x4, %eax
jne 0x509f
movq %rbx, %rdi
callq 0x6297
jmp 0x52b3
movq 0x8(%rbx), %r14
cmpb $0x69, (%r14)
jne 0x4fc0
cmpb $0x66, 0x1(%r14)
jne 0x4fc0
cmpb $0x0, 0x2(%r14)
je 0x5090
leaq 0xcd49(%rip), %r12      # 0x11d10
xorl %r15d, %r15d
cmpq $0xb, %r15
je 0x501c
movq 0x10(%r12), %rsi
addq $0x10, %r12
movq %r14, %rdi
callq 0x4140
incq %r15
testl %eax, %eax
jne 0x4fca
cmpq $0x7, %r15
ja 0x5067
movslq 0xeebf(%rip), %rax      # 0x13eb4
leaq 0xeec4(%rip), %rcx      # 0x13ec0
cmpl $0x0, (%rcx,%rax,4)
je 0x5067
cmpq $0x2, %r15
ja 0x5070
leaq 0x1(%rax), %rdx
movl %edx, 0xeea2(%rip)      # 0x13eb4
movl $0x3, 0x4(%rcx,%rax,4)
jmp 0x5070
leaq 0xa30d(%rip), %rsi      # 0xf330
movq %r14, %rdi
callq 0x4140
testl %eax, %eax
jne 0x50a3
cmpl $0x0, 0xde5e(%rip)      # 0x12e94
movl $0xffffffff, %r14d      # imm = 0xFFFFFFFF
je 0x50e6
cmpl $0x0, 0xf28f(%rip)      # 0x142d8
jne 0x50e6
leaq 0x9964(%rip), %rdx      # 0xe9ba
movl $0x13, %edi
movl $0x3, %esi
callq 0xa2f8
jmp 0x50e6
movq 0x28(%rbx), %rdi
callq *0x8(%r12)
leal 0x2(%r15), %r14d
leal 0x3(%r15), %eax
cmpl $0xd, %eax
ja 0x52b3
movl $0x2809, %ecx           # imm = 0x2809
btl %eax, %ecx
jb 0x50e6
jmp 0x52b3
leaq 0xcc79(%rip), %r12      # 0x11d10
xorl %r15d, %r15d
jmp 0x4fe8
movq 0x8(%rbx), %r14
movq 0xcf4e(%rip), %rax      # 0x11ff8
movq (%rax), %rdi
movq 0xd05c(%rip), %rdx      # 0x12110
movl 0xddd6(%rip), %ecx      # 0x12e90
leaq 0x9918(%rip), %rsi      # 0xe9d9
movq %r14, %r8
xorl %eax, %eax
callq 0x4150
movslq 0xede2(%rip), %rax      # 0x13eb4
leaq 0xede7(%rip), %rcx      # 0x13ec0
xorl %r14d, %r14d
cmpl $0x0, (%rcx,%rax,4)
jne 0x52b3
movl %r14d, -0x2c(%rbp)
movl $0x1, %r15d
leaq 0xf249(%rip), %r12      # 0x14340
leaq 0xddb2(%rip), %r13      # 0x12eb0
leaq 0x9c0b(%rip), %r14      # 0xed10
movq 0xf1bc(%rip), %rdi      # 0x142c8
callq 0x4d79
cmpl $0x0, 0xf1c8(%rip)      # 0x142e0
je 0x5137
movq 0xcfef(%rip), %rsi      # 0x12110
movl 0xdd69(%rip), %edx      # 0x12e90
movq %r14, %rdi
movl %r15d, %ecx
movq %r13, %r8
xorl %eax, %eax
callq 0x40c0
movq %r12, %rdi
movq %r13, %rsi
callq 0x4070
movq 0xf17f(%rip), %rbx      # 0x142c8
testq %rbx, %rbx
je 0x519d
cmpl $0x1, (%rbx)
jne 0x518f
movq 0x8(%rbx), %rdi
callq 0x6a8a
testq %rax, %rax
je 0x518f
movq %rbx, %rdi
movq %rax, %rsi
callq 0x7028
movq %rax, %rbx
movq 0xf152(%rip), %rdi      # 0x142c8
callq 0x4d79
movq %r13, %rdi
movq %r12, %rsi
callq 0x4140
testl %eax, %eax
jne 0x5195
testq %rbx, %rbx
je 0x519d
movq 0x28(%rbx), %rbx
jmp 0x5149
incl %r15d
jmp 0x5105
cmpl $0x0, 0xf13c(%rip)      # 0x142e0
je 0x51bb
leaq 0x9b79(%rip), %rdi      # 0xed26
leaq 0xdcfc(%rip), %rsi      # 0x12eb0
xorl %eax, %eax
callq 0x40c0
cmpl $0x2, 0xecee(%rip)      # 0x13eb0
leaq 0xdce7(%rip), %r13      # 0x12eb0
movl -0x2c(%rbp), %r14d
jl 0x51ee
leaq 0x613b(%rip), %rdi      # 0xb311
xorl %eax, %eax
callq 0x40c0
movq 0xcdec(%rip), %rax      # 0x11fd0
movq (%rax), %rsi
xorl %edi, %edi
callq 0x4cc3
movq 0xf0d3(%rip), %rbx      # 0x142c8
testq %rbx, %rbx
je 0x52b3
cmpl $0x2, (%rbx)
jne 0x52b3
cmpl $0x23, 0x4(%rbx)
jne 0x52b3
movq 0x28(%rbx), %r12
cmpl $0x1, (%r12)
jne 0x52af
movq 0x8(%r12), %r15
cmpb $0x69, (%r15)
jne 0x523d
cmpb $0x66, 0x1(%r15)
jne 0x523d
cmpb $0x0, 0x2(%r15)
je 0x5483
leaq 0x9805(%rip), %rsi      # 0xea49
movq %r15, %rdi
callq 0x4140
testl %eax, %eax
je 0x526f
leaq 0x5ff5(%rip), %rsi      # 0xb24c
movq %r15, %rdi
callq 0x4140
testl %eax, %eax
jne 0x52af
movq 0x28(%r12), %rdi
callq 0x6297
jmp 0x52af
movslq 0xec3e(%rip), %rax      # 0x13eb4
leaq 0xec43(%rip), %r15      # 0x13ec0
movl (%r15,%rax,4), %ecx
cmpl $0x3, %ecx
je 0x52af
cmpl $0x1, %ecx
movl -0x2c(%rbp), %r14d
jne 0x5476
movq %rbx, %rdi
callq 0x90e1
xorl %ecx, %ecx
testl %eax, %eax
sete %cl
movslq 0xec0b(%rip), %rax      # 0x13eb4
movl %ecx, (%r15,%rax,4)
jmp 0x52b3
movl -0x2c(%rbp), %r14d
cmpl $0x2, 0xebf6(%rip)      # 0x13eb0
jl 0x52e6
leaq 0x6057(%rip), %rdi      # 0xb31a
xorl %r15d, %r15d
movl %r14d, %esi
xorl %eax, %eax
callq 0x40c0
testl %r14d, %r14d
je 0x5339
movq 0xccf4(%rip), %rax      # 0x11fd0
movq (%rax), %rsi
xorl %edi, %edi
callq 0x4cc3
cmpl $-0x1, %r14d
jne 0x5336
cmpl $0x0, 0xefe5(%rip)      # 0x142d8
movl %r14d, %r15d
jne 0x5339
movq 0xefc9(%rip), %rax      # 0x142c8
movq 0x28(%rax), %rax
movq 0x28(%rax), %rdi
callq 0x4d79
movq %r13, 0xdb8d(%rip)      # 0x12ea0
movl 0xdb77(%rip), %edi      # 0x12e90
movq 0xcdf0(%rip), %rsi      # 0x12110
callq 0x8785
movl %eax, %r15d
testl %eax, %eax
jne 0x5339
callq 0x4272
xorl %r15d, %r15d
jmp 0x5339
movl %r14d, %r15d
movq 0xef88(%rip), %r12      # 0x142c8
testq %r12, %r12
je 0x541a
movq %r12, %r13
cmpl $0x1, (%r13)
jne 0x540d
movq 0x8(%r13), %rdi
cmpb $0x22, (%rdi)
jne 0x540d
movq 0x28(%r13), %rax
testq %rax, %rax
je 0x540d
cmpl $0x1, (%rax)
jne 0x540d
movq 0x8(%rax), %rbx
cmpb $0x22, (%rbx)
jne 0x540d
callq 0x40a0
movq %rax, %r14
movq %rbx, %rdi
callq 0x40a0
leal (%rax,%r14), %edi
incl %edi
callq 0x4a8a
movq %rax, %rbx
movq 0x8(%r13), %r14
movq %r14, %rdi
callq 0x40a0
leaq -0x1(%rax), %rdx
movq %rbx, %rdi
movq %r14, %rsi
callq 0x4050
movq 0x28(%r13), %rax
movq 0x8(%rax), %rdi
leaq 0x1(%rdi), %r14
callq 0x40a0
leaq -0x1(%rax), %rdx
movq %rbx, %rdi
movq %r14, %rsi
callq 0x4100
movq %rbx, 0x8(%r13)
movq 0x28(%r13), %rax
movq 0x28(%rax), %rax
movq %rax, 0x28(%r13)
testq %rax, %rax
je 0x5402
movq 0x28(%rax), %rax
testq %rax, %rax
je 0x5402
movq %r13, 0x20(%rax)
movq 0x20(%r13), %r13
testq %r13, %r13
cmoveq %r12, %r13
movq 0x28(%r13), %r13
testq %r13, %r13
jne 0x534c
leaq 0x1106b(%rip), %rax     # 0x1648c
cmpl $0x2, (%rax)
jl 0x542f
cmpl $0x0, 0xeeaf(%rip)      # 0x142dc
jne 0x5467
movq 0xcb9a(%rip), %rbx      # 0x11fd0
movq (%rbx), %rsi
movl %r15d, %edi
callq 0x4cc3
cmpb $0x1, 0xee7c(%rip)      # 0x142c4
jne 0x5467
movq (%rbx), %rdi
movq 0xee74(%rip), %rsi      # 0x142c8
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
jmp 0xa020
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movl $0x2, (%r15,%rax,4)
jmp 0x52b3
movslq 0xea2a(%rip), %rax      # 0x13eb4
cmpq $0xff, %rax
jge 0x54d2
leaq 0xea27(%rip), %r15      # 0x13ec0
cmpl $0x1, (%r15,%rax,4)
movl -0x2c(%rbp), %r14d
jg 0x52b3
movq %rbx, %rdi
callq 0x90e1
xorl %ecx, %ecx
testl %eax, %eax
sete %cl
movslq 0xe9f6(%rip), %rax      # 0x13eb4
leaq 0x1(%rax), %rdx
movl %edx, 0xe9ec(%rip)      # 0x13eb4
movl %ecx, 0x4(%r15,%rax,4)
jmp 0x52b3
leaq 0x9c39(%rip), %rdi      # 0xf112
callq 0x4a2c