// File: /workspace/github_c_makefile_star2_O0/nimble-code[P]gh_cpp/Src/gh_cpp2.c
// Function: do_file
void
do_file(char *from, int ln, char *to)
{	FILE *ofd = mfd;
	int len, olevel = level;

	if (not_printing[level])
		return;

	push_stacker(to);

	if (strcmp(to, "<stdin>") == 0)
		mfd = stdin;
	else if ((mfd = fopen(to, "r")) == NULL)
		fatal_error("no such file");

	filename = to;
	lineno = 0;
	sawcode = 0;
	printf("# 1 \"%s\"\n", to);

	while (fgets(ibuf, MAXIN, mfd) != NULL)
	{	lineno += 1+delta; delta = 0;
		nowc = ibuf;

		len = trimline(ibuf);
		while (len > 1 && ibuf[len-2] == '\\')	/* one before newline */
		{	len -= 2;
			ibuf[len] = '\0';	/* remove \\ */

			if (fgets(&ibuf[len], MAXIN, mfd) == NULL)
				fatal_error("unexpected eof");

			delta++;
			len = trimline(ibuf);

			if (verbose>1)
			{	fprintf(stderr, "len %d of ", len);
				fprintf(stderr, "expanded line: %s\n", ibuf);
			}
		}

		skipwhite();
		if (!no_includes && *nowc++ == '#')
		{	skipwhite();
			if (strncmp(nowc, "include", strlen("include")) == 0
			&&  ((*(nowc+strlen("include")) == ' ')
			||   (*(nowc+strlen("include")) == '\t')))
			{	nowc += strlen("include");
				if (do_include(ln, to) != 0)	/* can call do_file recursively */
					continue;
		}	}

		preprocess();	/* should really always do this before do_include */
	}
	if (incomment)
	{	fprintf(stderr, "%s,%d: unterminated comment\n", filename, lineno);
		incomment = 0;
	}
	if (misra_rules && olevel != level)
		m_rule(19, 17, "unbalanced #if/#ifdef/#else/#elif/#endif directives");

	filename = from;
	lineno = ln;	/* restore to previous file */
	fclose(mfd);
	mfd = ofd;
	sawcode = 0;

	pop_stacker(to);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movq %rdi, -0x8(%rbp)
movl %esi, -0xc(%rbp)
movq %rdx, -0x18(%rbp)
movq 0xde46(%rip), %rax      # 0x18580
movq %rax, -0x20(%rbp)
leaq 0xb86f(%rip), %rax      # 0x15fb4
movl (%rax), %eax
movl %eax, -0x28(%rbp)
leaq 0xb863(%rip), %rax      # 0x15fb4
movslq (%rax), %rcx
leaq 0xb865(%rip), %rax      # 0x15fc0
cmpl $0x0, (%rax,%rcx,4)
je 0xa766
jmp 0xaac3
movq -0x18(%rbp), %rdi
callq 0xacc0
movq -0x18(%rbp), %rdi
leaq 0x630f(%rip), %rsi      # 0x10a89
callq 0x4100
cmpl $0x0, %eax
jne 0xa797
movq 0x984d(%rip), %rax      # 0x13fd8
movq (%rax), %rax
movq %rax, 0xddeb(%rip)      # 0x18580
jmp 0xa7c2
movq -0x18(%rbp), %rdi
leaq 0x3ed6(%rip), %rsi      # 0xe678
callq 0x4140
movq %rax, 0xddd2(%rip)      # 0x18580
cmpq $0x0, %rax
jne 0xa7c0
leaq 0x6c09(%rip), %rdi      # 0x113c4
callq 0x42b0
jmp 0xa7c2
movq -0x18(%rbp), %rcx
leaq 0x9923(%rip), %rax      # 0x140f0
movq %rcx, (%rax)
leaq 0xa7b9(%rip), %rax      # 0x14f90
movl $0x0, (%rax)
leaq 0xbc0c(%rip), %rax      # 0x163f0
movl $0x0, (%rax)
movq -0x18(%rbp), %rsi
leaq 0x6bdc(%rip), %rdi      # 0x113d1
movb $0x0, %al
callq 0x40a0
movq 0xdd7d(%rip), %rdx      # 0x18580
leaq 0xcd76(%rip), %rdi      # 0x17580
movl $0x1000, %esi           # imm = 0x1000
callq 0x40f0
cmpq $0x0, %rax
je 0xaa08
movl 0xdd64(%rip), %ecx      # 0x18588
addl $0x1, %ecx
leaq 0xa762(%rip), %rax      # 0x14f90
addl (%rax), %ecx
leaq 0xa759(%rip), %rax      # 0x14f90
movl %ecx, (%rax)
movl $0x0, 0xdd45(%rip)      # 0x18588
leaq 0xa756(%rip), %rax      # 0x14fa0
leaq 0xcd2f(%rip), %rcx      # 0x17580
movq %rcx, (%rax)
leaq 0xcd25(%rip), %rdi      # 0x17580
callq 0xa2c0
movl %eax, -0x24(%rbp)
xorl %eax, %eax
cmpl $0x1, -0x24(%rbp)
movb %al, -0x29(%rbp)
jle 0xa88b
movl -0x24(%rbp), %eax
subl $0x2, %eax
movslq %eax, %rcx
leaq 0xcd02(%rip), %rax      # 0x17580
movsbl (%rax,%rcx), %eax
cmpl $0x5c, %eax
sete %al
movb %al, -0x29(%rbp)
movb -0x29(%rbp), %al
testb $0x1, %al
jne 0xa897
jmp 0xa949
movl -0x24(%rbp), %eax
subl $0x2, %eax
movl %eax, -0x24(%rbp)
movslq -0x24(%rbp), %rcx
leaq 0xccd5(%rip), %rax      # 0x17580
movb $0x0, (%rax,%rcx)
movslq -0x24(%rbp), %rax
leaq 0xccc6(%rip), %rdi      # 0x17580
addq %rax, %rdi
movq 0xdcbc(%rip), %rdx      # 0x18580
movl $0x1000, %esi           # imm = 0x1000
callq 0x40f0
cmpq $0x0, %rax
jne 0xa8e0
leaq 0x6a57(%rip), %rdi      # 0x11332
callq 0x42b0
movl 0xdca2(%rip), %eax      # 0x18588
addl $0x1, %eax
movl %eax, 0xdc99(%rip)      # 0x18588
leaq 0xcc8a(%rip), %rdi      # 0x17580
callq 0xa2c0
movl %eax, -0x24(%rbp)
leaq 0xb6ab(%rip), %rax      # 0x15fb0
cmpl $0x1, (%rax)
jle 0xa944
movq 0x96e7(%rip), %rax      # 0x13ff8
movq (%rax), %rdi
movl -0x24(%rbp), %edx
leaq 0x6abd(%rip), %rsi      # 0x113db
movb $0x0, %al
callq 0x4110
movq 0x96cc(%rip), %rax      # 0x13ff8
movq (%rax), %rdi
leaq 0x6ab0(%rip), %rsi      # 0x113e6
leaq 0xcc43(%rip), %rdx      # 0x17580
movb $0x0, %al
callq 0x4110
jmp 0xa863
callq 0x4690
leaq 0xba83(%rip), %rax      # 0x163d8
cmpl $0x0, (%rax)
jne 0xa9fe
leaq 0xa63b(%rip), %rax      # 0x14fa0
movq (%rax), %rax
movq %rax, %rdx
addq $0x1, %rdx
leaq 0xa62a(%rip), %rcx      # 0x14fa0
movq %rdx, (%rcx)
movsbl (%rax), %eax
cmpl $0x23, %eax
jne 0xa9fe
callq 0x4690
leaq 0xa613(%rip), %rax      # 0x14fa0
movq (%rax), %rdi
leaq 0x6b8c(%rip), %rsi      # 0x11523
movl $0x7, %edx
callq 0x4050
cmpl $0x0, %eax
jne 0xa9fc
leaq 0xa5f3(%rip), %rax      # 0x14fa0
movq (%rax), %rax
movsbl 0x7(%rax), %eax
cmpl $0x20, %eax
je 0xa9cc
leaq 0xa5e0(%rip), %rax      # 0x14fa0
movq (%rax), %rax
movsbl 0x7(%rax), %eax
cmpl $0x9, %eax
jne 0xa9fc
leaq 0xa5cd(%rip), %rax      # 0x14fa0
movq (%rax), %rcx
addq $0x7, %rcx
leaq 0xa5bf(%rip), %rax      # 0x14fa0
movq %rcx, (%rax)
movl -0xc(%rbp), %edi
movq -0x18(%rbp), %rsi
callq 0xa380
cmpl $0x0, %eax
je 0xa9fa
jmp 0xa7fc
jmp 0xa9fc
jmp 0xa9fe
callq 0x4a80
jmp 0xa7fc
leaq 0xb9e5(%rip), %rax      # 0x163f4
cmpl $0x0, (%rax)
je 0xaa4c
movq 0x95dd(%rip), %rax      # 0x13ff8
movq (%rax), %rdi
leaq 0x96cb(%rip), %rax      # 0x140f0
movq (%rax), %rdx
leaq 0xa561(%rip), %rax      # 0x14f90
movl (%rax), %ecx
leaq 0x69c1(%rip), %rsi      # 0x113f9
movb $0x0, %al
callq 0x4110
leaq 0xb9ae(%rip), %rax      # 0x163f4
movl $0x0, (%rax)
leaq 0xa541(%rip), %rax      # 0x14f94
cmpl $0x0, (%rax)
je 0xaa7c
movl -0x28(%rbp), %eax
leaq 0xb552(%rip), %rcx      # 0x15fb4
cmpl (%rcx), %eax
je 0xaa7c
movl $0x13, %edi
movl $0x11, %esi
leaq 0x699f(%rip), %rdx      # 0x11416
callq 0xca50
movq -0x8(%rbp), %rcx
leaq 0x9669(%rip), %rax      # 0x140f0
movq %rcx, (%rax)
movl -0xc(%rbp), %ecx
leaq 0xa4fc(%rip), %rax      # 0x14f90
movl %ecx, (%rax)
movq 0xdae3(%rip), %rdi      # 0x18580
callq 0x4070
movq -0x20(%rbp), %rax
movq %rax, 0xdad3(%rip)      # 0x18580
leaq 0xb93c(%rip), %rax      # 0x163f0
movl $0x0, (%rax)
movq -0x18(%rbp), %rdi
callq 0xae80
addq $0x30, %rsp
popq %rbp
retq
nopl (%rax)