// File: /workspace/github_c_makefile_star2_O0/nimble-code[P]gh_cpp/Src/gh_cpp1.c
// Function: main
int
main(int argc, char *argv[])
{	int i;

	while (argc > 1 && argv[1][0] == '-')
	{	switch (argv[1][1]) {
		case 'D': add_def(&argv[1][2]); break;
		case 'd': debugging++; break;
		case 'I': add_sysdir(&argv[1][2]); break;
		case 'i': no_includes++; break;
		case 'm': misra_rules++; break;
		case 'n': numbered++; break;
		case 'U': rm_def(&argv[1][2]); break;
		case 'x': main_only = 1; break;
		case 'e': explanations = 1; break;
		case 'v': verbose++; break;
		default:
			fprintf(stderr, "usage: gh_cpp -[vinm] -[IDU] filename.c\n");
			fprintf(stderr, "	-I, -D, -U as in cpp\n");
			fprintf(stderr, "	-d	debugging, extra verbose\n");
			fprintf(stderr, "	-i	do not expand include files\n");
			fprintf(stderr, "	-m	check ~35 simple misra rules\n");
			fprintf(stderr, "	-m -m	check rules also for included files\n");
			fprintf(stderr, "	-n	numbered output\n");
			fprintf(stderr, "	-x	show only output for toplevel file\n");
			fprintf(stderr, "	-e	explain macro expansions\n");
			fprintf(stderr, "	-v	verbose\n");
			exit(1);
		}
		argc--; argv++;
	}

	add_sysdir("/usr/include");
	add_sysdir("/usr/include/sys");
#ifdef PC
	add_sysdir("/usr/lib/gcc-lib/i686-pc-cygwin/3.3.1/include");
#else
	add_sysdir("/usr/lib/gcc-lib/x86_64-redhat-linux/3.3.3/include");	/* ? */
#endif
	preconfigure();

	for (i = 0; predefs[i]; i++)
		add_def(predefs[i]);

	if (argc <= 1)
		do_file("<stdin>", 0, "<stdin>");	/* gh_cpp2.c */
	else while (argc > 1)
	{	do_file("<stdin>", 0, next_file(argv[1]));
		argc--; argv++;
	}

	if (misra_rules) show_violations();

	return 0;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movl $0x0, -0x4(%rbp)
movl %edi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
xorl %eax, %eax
cmpl $0x1, -0x8(%rbp)
movb %al, -0x15(%rbp)
jle 0x5375
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rax
movsbl (%rax), %eax
cmpl $0x2d, %eax
sete %al
movb %al, -0x15(%rbp)
movb -0x15(%rbp), %al
testb $0x1, %al
jne 0x5381
jmp 0x558b
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rax
movsbl 0x1(%rax), %eax
addl $-0x44, %eax
movl %eax, %ecx
movq %rcx, -0x20(%rbp)
subl $0x34, %eax
ja 0x5477
movq -0x20(%rbp), %rax
leaq 0x7d5e(%rip), %rcx      # 0xd108
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rdi
addq $0x2, %rdi
callq 0x5660
jmp 0x5571
movl 0x11011(%rip), %eax     # 0x163e0
addl $0x1, %eax
movl %eax, 0x11008(%rip)     # 0x163e0
jmp 0x5571
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rdi
addq $0x2, %rdi
callq 0xa170
jmp 0x5571
movl 0x10fdf(%rip), %eax     # 0x163d8
addl $0x1, %eax
movl %eax, 0x10fd6(%rip)     # 0x163d8
jmp 0x5571
movl 0xfb87(%rip), %eax      # 0x14f94
addl $0x1, %eax
movl %eax, 0xfb7e(%rip)      # 0x14f94
jmp 0x5571
movl 0x10f9f(%rip), %eax     # 0x163c0
addl $0x1, %eax
movl %eax, 0x10f96(%rip)     # 0x163c0
jmp 0x5571
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rdi
addq $0x2, %rdi
callq 0x5750
jmp 0x5571
movl $0x1, 0x10f8d(%rip)     # 0x163dc
jmp 0x5571
movl $0x1, 0x10f66(%rip)     # 0x163c4
jmp 0x5571
movl 0x10b47(%rip), %eax     # 0x15fb0
addl $0x1, %eax
movl %eax, 0x10b3e(%rip)     # 0x15fb0
jmp 0x5571
movq 0xeb7a(%rip), %rax      # 0x13ff8
movq (%rax), %rdi
leaq 0xb47b(%rip), %rsi      # 0x10903
movb $0x0, %al
callq 0x4110
movq 0xeb62(%rip), %rax      # 0x13ff8
movq (%rax), %rdi
leaq 0xb48c(%rip), %rsi      # 0x1092c
movb $0x0, %al
callq 0x4110
movq 0xeb4a(%rip), %rax      # 0x13ff8
movq (%rax), %rdi
leaq 0xb48b(%rip), %rsi      # 0x10943
movb $0x0, %al
callq 0x4110
movq 0xeb32(%rip), %rax      # 0x13ff8
movq (%rax), %rdi
leaq 0xb491(%rip), %rsi      # 0x10961
movb $0x0, %al
callq 0x4110
movq 0xeb1a(%rip), %rax      # 0x13ff8
movq (%rax), %rdi
leaq 0xb49a(%rip), %rsi      # 0x10982
movb $0x0, %al
callq 0x4110
movq 0xeb02(%rip), %rax      # 0x13ff8
movq (%rax), %rdi
leaq 0xb4a4(%rip), %rsi      # 0x109a4
movb $0x0, %al
callq 0x4110
movq 0xeaea(%rip), %rax      # 0x13ff8
movq (%rax), %rdi
leaq 0xb4b8(%rip), %rsi      # 0x109d0
movb $0x0, %al
callq 0x4110
movq 0xead2(%rip), %rax      # 0x13ff8
movq (%rax), %rdi
leaq 0xb4b5(%rip), %rsi      # 0x109e5
movb $0x0, %al
callq 0x4110
movq 0xeaba(%rip), %rax      # 0x13ff8
movq (%rax), %rdi
leaq 0xb4c5(%rip), %rsi      # 0x10a0d
movb $0x0, %al
callq 0x4110
movq 0xeaa2(%rip), %rax      # 0x13ff8
movq (%rax), %rdi
leaq 0xb4cb(%rip), %rsi      # 0x10a2b
movb $0x0, %al
callq 0x4110
movl $0x1, %edi
callq 0x4180
movl -0x8(%rbp), %eax
addl $-0x1, %eax
movl %eax, -0x8(%rbp)
movq -0x10(%rbp), %rax
addq $0x8, %rax
movq %rax, -0x10(%rbp)
jmp 0x5356
leaq 0xb4a6(%rip), %rdi      # 0x10a38
callq 0xa170
leaq 0xb4a7(%rip), %rdi      # 0x10a45
callq 0xa170
leaq 0xb4ac(%rip), %rdi      # 0x10a56
callq 0xa170
callq 0x52e0
movl $0x0, -0x14(%rbp)
movslq -0x14(%rbp), %rcx
leaq 0xf89a(%rip), %rax      # 0x14e60
cmpq $0x0, (%rax,%rcx,8)
je 0x55ec
movslq -0x14(%rbp), %rcx
leaq 0xf888(%rip), %rax      # 0x14e60
movq (%rax,%rcx,8), %rdi
callq 0x5660
movl -0x14(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x14(%rbp)
jmp 0x55bb
cmpl $0x1, -0x8(%rbp)
jg 0x5605
leaq 0xb490(%rip), %rdx      # 0x10a89
xorl %esi, %esi
movq %rdx, %rdi
callq 0xa720
jmp 0x5644
jmp 0x5607
cmpl $0x1, -0x8(%rbp)
jle 0x5642
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rdi
callq 0xa230
movq %rax, %rdx
leaq 0xb465(%rip), %rdi      # 0x10a89
xorl %esi, %esi
callq 0xa720
movl -0x8(%rbp), %eax
addl $-0x1, %eax
movl %eax, -0x8(%rbp)
movq -0x10(%rbp), %rax
addq $0x8, %rax
movq %rax, -0x10(%rbp)
jmp 0x5607
jmp 0x5644
cmpl $0x0, 0xf949(%rip)      # 0x14f94
je 0x5652
callq 0xcc00
xorl %eax, %eax
addq $0x20, %rsp
popq %rbp
retq
nopw (%rax,%rax)