// File: /workspace/github_c_makefile_star2_O0/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
subq $0x10, %rsp
movq 0x11939(%rip), %rdi     # 0x163c8
callq 0x4c60
movq $0x0, 0x11929(%rip) # 0x163c8
movq $0x0, 0x11926(%rip) # 0x163d0
leaq 0x104ff(%rip), %rdi     # 0x14fb0
leaq 0x12ac8(%rip), %rsi     # 0x17580
callq 0x4060
callq 0x4cb0
cmpl $0x1, 0x114e7(%rip)     # 0x15fb0
jle 0x4aea
leaq 0x8a3a(%rip), %rdi      # 0xd50c
movb $0x0, %al
callq 0x40a0
movq 0xf4f0(%rip), %rax      # 0x13fd0
movq (%rax), %rsi
xorl %edi, %edi
callq 0x4750
callq 0x4eb0
movl %eax, -0x4(%rbp)
cmpl $0x0, -0x4(%rbp)
jne 0x4b0c
movslq 0x114b5(%rip), %rcx     # 0x15fb4
leaq 0x114ba(%rip), %rax     # 0x15fc0
cmpl $0x0, (%rax,%rcx,4)
je 0x4b24
cmpl $-0x1, -0x4(%rbp)
je 0x4b24
cmpl $0x2, -0x4(%rbp)
je 0x4b24
cmpl $0xa, -0x4(%rbp)
je 0x4b24
cmpl $0xc, -0x4(%rbp)
jne 0x4b56
callq 0x4f00
cmpl $0x1, 0x11480(%rip)     # 0x15fb0
jle 0x4b51
leaq 0x89dc(%rip), %rdi      # 0xd515
movb $0x0, %al
callq 0x40a0
movq 0xf489(%rip), %rax      # 0x13fd0
movq (%rax), %rsi
xorl %edi, %edi
callq 0x4750
callq 0x5050
cmpl $0x1, 0x11453(%rip)     # 0x15fb0
jle 0x4b89
movl -0x4(%rbp), %esi
leaq 0x89b5(%rip), %rdi      # 0xd51e
movb $0x0, %al
callq 0x40a0
cmpl $0x0, -0x4(%rbp)
je 0x4b87
movq 0xf453(%rip), %rax      # 0x13fd0
movq (%rax), %rsi
xorl %edi, %edi
callq 0x4750
jmp 0x4b89
cmpl $-0x1, -0x4(%rbp)
jne 0x4bfc
cmpl $0x0, 0x11842(%rip)     # 0x163d8
jne 0x4bfc
movq 0x11829(%rip), %rax     # 0x163c8
movq 0x28(%rax), %rax
movq 0x28(%rax), %rdi
callq 0x4830
leaq 0x103fd(%rip), %rax     # 0x14fb0
movq %rax, 0x103e6(%rip)     # 0x14fa0
movl 0x103d0(%rip), %edi     # 0x14f90
movq 0xf529(%rip), %rsi      # 0x140f0
callq 0xa380
movl %eax, -0x4(%rbp)
cmpl $0x0, -0x4(%rbp)
jne 0x4bfa
movq 0xf41c(%rip), %rax      # 0x13ff8
movq (%rax), %rdi
movq 0xf50a(%rip), %rdx      # 0x140f0
movl 0x103a4(%rip), %ecx     # 0x14f90
leaq 0x8935(%rip), %rsi      # 0xd528
movb $0x0, %al
callq 0x4110
jmp 0x4bfc
movq 0x117c5(%rip), %rdi     # 0x163c8
callq 0x5120
leaq 0x1397d(%rip), %rax     # 0x1858c
cmpl $0x1, (%rax)
jle 0x4c1d
cmpl $0x0, 0x117c1(%rip)     # 0x163dc
jne 0x4c50
movl -0x4(%rbp), %edi
movq 0xf3a9(%rip), %rax      # 0x13fd0
movq (%rax), %rsi
callq 0x4750
cmpl $0x0, 0x1178e(%rip)     # 0x163c4
je 0x4c4e
movq 0xf391(%rip), %rax      # 0x13fd0
movq (%rax), %rdi
movq 0x1177f(%rip), %rsi     # 0x163c8
callq 0xc570
jmp 0x4c50
addq $0x10, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)