// File: /workspace/github_c_makefile_star2_O2/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 0xeaa7(%rip), %rdi      # 0x132c8
callq 0x4e29
andq $0x0, 0xea9a(%rip)      # 0x132c8
andq $0x0, 0xea9a(%rip)      # 0x132d0
leaq 0xd673(%rip), %r12      # 0x11eb0
leaq 0xfc3c(%rip), %rsi      # 0x14480
movq %r12, %rdi
callq 0x4070
callq 0x4e62
cmpl $0x2, 0xe658(%rip)      # 0x12eb0
jl 0x4879
leaq 0x5aa7(%rip), %rdi      # 0xa308
xorl %eax, %eax
callq 0x40c0
movq 0xc761(%rip), %rax      # 0x10fd0
movq (%rax), %rsi
xorl %edi, %edi
callq 0x45aa
movq 0xea48(%rip), %rax      # 0x132c8
testq %rax, %rax
je 0x49db
cmpl $0x2, (%rax)
jne 0x49db
cmpl $0x23, 0x4(%rax)
jne 0x49db
pushq $0x1
popq %r13
movq 0x28(%rax), %r15
testq %r15, %r15
je 0x4bdb
movl (%r15), %eax
cmpl $0x1, %eax
je 0x48cb
cmpl $0x4, %eax
jne 0x49af
movq %r15, %rdi
callq 0x5bd1
jmp 0x4bdb
movq %r12, %r13
movq 0x8(%r15), %rbx
leaq 0xc43f(%rip), %r12      # 0x10d18
xorl %r14d, %r14d
cmpq $0xc, %r14
je 0x48fc
movq -0x8(%r12), %rsi
movq %rbx, %rdi
callq 0x4140
testl %eax, %eax
je 0x494b
incq %r14
addq $0x10, %r12
jmp 0x48dc
leaq 0x9a2d(%rip), %rsi      # 0xe330
movq %rbx, %rdi
callq 0x4140
testl %eax, %eax
movq %r13, %r12
jne 0x49b3
cmpl $0x0, 0xd577(%rip)      # 0x11e94
pushq $-0x1
popq %r13
je 0x49f6
cmpl $0x0, 0xe9aa(%rip)      # 0x132d8
jne 0x49f6
leaq 0x907f(%rip), %rdx      # 0xd9ba
pushq $0x13
popq %rdi
pushq $0x3
popq %rsi
callq 0x9bc0
jmp 0x49f6
cmpq $0x7, %r14
ja 0x4982
movslq 0xe55c(%rip), %rax      # 0x12eb4
leaq 0xe561(%rip), %rcx      # 0x12ec0
cmpl $0x0, (%rcx,%rax,4)
je 0x4982
cmpq $0x2, %r14
movq %r13, %r12
ja 0x498d
leaq 0x1(%rax), %rdx
movl %edx, 0xe53c(%rip)      # 0x12eb4
movl $0x3, 0x4(%rcx,%rax,4)
jmp 0x498d
movq 0x28(%r15), %rdi
callq *(%r12)
movq %r13, %r12
leaq 0x2(%r14), %r13
addl $0x3, %r14d
cmpl $0xd, %r14d
ja 0x4bdb
movl $0x2809, %eax           # imm = 0x2809
btl %r14d, %eax
jb 0x49f6
jmp 0x4bdb
movq 0x8(%r15), %rbx
movq 0xc63e(%rip), %rax      # 0x10ff8
movq (%rax), %rdi
movq 0xc74c(%rip), %rdx      # 0x11110
movl 0xd4c6(%rip), %ecx      # 0x11e90
leaq 0x9008(%rip), %rsi      # 0xd9d9
movq %rbx, %r8
xorl %eax, %eax
callq 0x4150
movslq 0xe4d2(%rip), %rax      # 0x12eb4
leaq 0xe4d7(%rip), %rcx      # 0x12ec0
xorl %r13d, %r13d
cmpl $0x0, (%rcx,%rax,4)
jne 0x4bdb
movq %r13, -0x30(%rbp)
pushq $0x1
popq %rax
leaq 0xe93c(%rip), %r15      # 0x13340
leaq 0xd4a5(%rip), %r12      # 0x11eb0
xorl %ebx, %ebx
movl %ebx, %ecx
movl %eax, %ebx
cmpl %ecx, %ebx
jle 0x4ac8
movq 0xe8a8(%rip), %rdi      # 0x132c8
callq 0x465e
cmpl $0x0, 0xe8b4(%rip)      # 0x132e0
je 0x4a4e
movq 0xc6db(%rip), %rsi      # 0x11110
movl 0xd455(%rip), %edx      # 0x11e90
leaq 0x92ce(%rip), %rdi      # 0xdd10
movl %ebx, %ecx
movq %r12, %r8
xorl %eax, %eax
callq 0x40c0
movq %r15, %rdi
movq %r12, %rsi
callq 0x4070
leaq 0xe868(%rip), %r14      # 0x132c8
movq (%r14), %r14
testq %r14, %r14
je 0x4ab9
cmpl $0x1, (%r14)
jne 0x4ab3
movq 0x8(%r14), %rdi
callq 0x6350
testq %rax, %rax
je 0x4ab3
movq %r14, %rdi
movq %rax, %rsi
callq 0x690c
movq %rax, %r13
movq 0xe837(%rip), %rdi      # 0x132c8
callq 0x465e
movq %r12, %rdi
movq %r15, %rsi
callq 0x4140
testl %eax, %eax
jne 0x4ac0
movl $0x0, %r14d
testq %r13, %r13
je 0x4a63
movq %r13, %r14
addq $0x28, %r14
jmp 0x4a60
movl %ebx, %ecx
jmp 0x4a11
leal 0x1(%rbx), %eax
jmp 0x4a0d
cmpl $0x0, 0xe811(%rip)      # 0x132e0
je 0x4ae6
leaq 0x924e(%rip), %rdi      # 0xdd26
leaq 0xd3d1(%rip), %rsi      # 0x11eb0
xorl %eax, %eax
callq 0x40c0
cmpl $0x2, 0xe3c3(%rip)      # 0x12eb0
leaq 0xd3bc(%rip), %r12      # 0x11eb0
movq -0x30(%rbp), %r13
jl 0x4b19
leaq 0x5810(%rip), %rdi      # 0xa311
xorl %eax, %eax
callq 0x40c0
movq 0xc4c1(%rip), %rax      # 0x10fd0
movq (%rax), %rsi
xorl %edi, %edi
callq 0x45aa
movq 0xe7a8(%rip), %rbx      # 0x132c8
testq %rbx, %rbx
je 0x4bdb
cmpl $0x2, (%rbx)
jne 0x4bdb
cmpl $0x23, 0x4(%rbx)
jne 0x4bdb
movq 0x28(%rbx), %r15
cmpl $0x1, (%r15)
jne 0x4bd7
movq 0x8(%r15), %r14
cmpb $0x69, (%r14)
jne 0x4b66
cmpb $0x66, 0x1(%r14)
jne 0x4b66
cmpb $0x0, 0x2(%r14)
je 0x4dce
leaq 0x8edc(%rip), %rsi      # 0xda49
movq %r14, %rdi
callq 0x4140
testl %eax, %eax
je 0x4b97
leaq 0x56cc(%rip), %rsi      # 0xa24c
movq %r14, %rdi
callq 0x4140
testl %eax, %eax
jne 0x4bd7
movq 0x28(%r15), %rdi
callq 0x5bd1
jmp 0x4bd7
movslq 0xe316(%rip), %rax      # 0x12eb4
leaq 0xe31b(%rip), %r14      # 0x12ec0
movl (%r14,%rax,4), %ecx
cmpl $0x3, %ecx
je 0x4bd7
cmpl $0x1, %ecx
movq -0x30(%rbp), %r13
jne 0x4dc1
movq %rbx, %rdi
callq 0x8af0
xorl %ecx, %ecx
testl %eax, %eax
sete %cl
movslq 0xe2e3(%rip), %rax      # 0x12eb4
movl %ecx, (%r14,%rax,4)
jmp 0x4bdb
movq -0x30(%rbp), %r13
cmpl $0x2, 0xe2ce(%rip)      # 0x12eb0
jl 0x4c0b
leaq 0x572f(%rip), %rdi      # 0xa31a
movl %r13d, %esi
xorl %eax, %eax
callq 0x40c0
testl %r13d, %r13d
je 0x4c0b
movq 0xc3cf(%rip), %rax      # 0x10fd0
movq (%rax), %rsi
xorl %edi, %edi
callq 0x45aa
cmpl $-0x1, %r13d
jne 0x4c52
cmpl $0x0, 0xe6c0(%rip)      # 0x132d8
jne 0x4c52
movq 0xe6a7(%rip), %rax      # 0x132c8
movq 0x28(%rax), %rax
movq 0x28(%rax), %rdi
callq 0x465e
movq %r12, 0xd26b(%rip)      # 0x11ea0
movl 0xd255(%rip), %edi      # 0x11e90
movq 0xc4ce(%rip), %rsi      # 0x11110
callq 0x80a1
movl %eax, %r13d
testl %eax, %eax
je 0x4d94
movq 0xe66f(%rip), %r15      # 0x132c8
movq %r15, %r12
testq %r12, %r12
je 0x4d38
cmpl $0x1, (%r12)
jne 0x4d2e
movq 0x8(%r12), %rdi
cmpb $0x22, (%rdi)
jne 0x4d2e
movq 0x28(%r12), %rax
testq %rax, %rax
je 0x4d2e
cmpl $0x1, (%rax)
jne 0x4d2e
movq 0x8(%rax), %rbx
cmpb $0x22, (%rbx)
jne 0x4d2e
callq 0x40a0
movq %rax, %r14
movq %rbx, %rdi
callq 0x40a0
leal (%rax,%r14), %edi
incl %edi
callq 0x4348
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 0x4100
movq %rbx, 0x8(%r12)
movq 0x28(%r12), %rax
movq 0x28(%rax), %rax
movq %rax, 0x28(%r12)
testq %rax, %rax
je 0x4d22
movq 0x28(%rax), %rax
testq %rax, %rax
je 0x4d22
movq %r12, 0x20(%rax)
movq 0x20(%r12), %r12
testq %r12, %r12
cmoveq %r15, %r12
movq 0x28(%r12), %r12
jmp 0x4c5c
leaq 0x1074d(%rip), %rax     # 0x1548c
cmpl $0x2, (%rax)
jl 0x4d4d
cmpl $0x0, 0xe591(%rip)      # 0x132dc
jne 0x4d85
movq 0xc27c(%rip), %rbx      # 0x10fd0
movq (%rbx), %rsi
movl %r13d, %edi
callq 0x45aa
cmpb $0x1, 0xe55e(%rip)      # 0x132c4
jne 0x4d85
movq (%rbx), %rdi
movq 0xe556(%rip), %rsi      # 0x132c8
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
jmp 0x98c8
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq 0xc25d(%rip), %rax      # 0x10ff8
movq (%rax), %rdi
movq 0xc36b(%rip), %rdx      # 0x11110
movl 0xd0e5(%rip), %ecx      # 0x11e90
leaq 0x5572(%rip), %rsi      # 0xa324
xorl %r13d, %r13d
xorl %eax, %eax
callq 0x4150
jmp 0x4c52
movl $0x2, (%r14,%rax,4)
jmp 0x4bdb
movslq 0xe0df(%rip), %rax      # 0x12eb4
cmpq $0xff, %rax
jge 0x4e1d
leaq 0xe0dc(%rip), %r14      # 0x12ec0
cmpl $0x1, (%r14,%rax,4)
movq -0x30(%rbp), %r13
jg 0x4bdb
movq %rbx, %rdi
callq 0x8af0
xorl %ecx, %ecx
testl %eax, %eax
sete %cl
movslq 0xe0ab(%rip), %rax      # 0x12eb4
leaq 0x1(%rax), %rdx
movl %edx, 0xe0a1(%rip)      # 0x12eb4
movl %ecx, 0x4(%r14,%rax,4)
jmp 0x4bdb
leaq 0x92ee(%rip), %rdi      # 0xe112
callq 0x42ec