// File: /workspace/github_c_makefile_star2_O1/nimble-code[P]Modex/Src/modex.c
// Function: Usage
void
Usage(char *prog)
{	FILE *fd = stderr;
	fprintf(fd, "Model Extractor for ANSI-C code\n");
	fprintf(fd, "%s\n", VERSION);
	fprintf(fd, "==========================\n");
	fprintf(fd,"Usage: %s ..options.. file.c\n", prog);

	fprintf(fd,"\nGlobal Modes\n");
	fprintf(fd,"\t-A\tadd print statements to all steps (*after* the step, see also -printf)\n");
	fprintf(fd,"\t-b fname.c\tchange input to fname.c\n");
	fprintf(fd,"\t-c\tturn off c_code mode, and use builtin defaults\n");
	fprintf(fd,"\t-t\ttreat falling out of a switch stmnt as an error\n");
	fprintf(fd,"\t-g\tgenerate (only) a global declarations file for all fcts\n");
	fprintf(fd,"\t-G\tinvert default on #including globals (defaults to off with -n)\n");
	fprintf(fd,"\t-H\tinvert default on #including locals  (defaults to on)\n");
	fprintf(fd,"\t-K\tmap everything to 'keep'\n");
	fprintf(fd,"\t-P\tuse previously preprocessed .M file unless .c is newer\n");
	fprintf(fd,"\t-S\tsuppress generation of variable declarations\n");
	fprintf(fd,"\t-Z\tinvert default on checking assert_p and assert_r (defaults to on)\n");
	fprintf(fd,"\t-z\tdo not strip system include files before parsing target sources\n");
	fprintf(fd,"\t-heapsize N\tset spin heapsize for spin_malloc to N byte (default 256)\n");

	fprintf(fd,"\t-master x\tprepend file x to source before parsing\n");
	fprintf(fd,"\t-nopre \tremove all preprocessing directives\n");
	fprintf(fd,"\t-nostructs\tdont generate default data structures and typedefs\n");
	fprintf(fd,"\t-qN    \tset verification quality to N (1..10)\n");
	fprintf(fd,"\t\t1..8 = bitstate, 9 = hashcompact 10 = full, default %d\n", quality);
	fprintf(fd,"\t-run \tdo all processing and then run the verification\n");
	fprintf(fd,"\t-printf\tadd a printf statement to all imported C code in model (*before* the step, see also -A)\n");

	fprintf(fd,"\nPreprocessing Directives\n");
	fprintf(fd,"\t-D\tdefine a name,   e.g. -DDEBUG\n");
	fprintf(fd,"\t-U\tundefine a name, e.g. -UDEBUG\n");
	fprintf(fd,"\t-I\tadd directory to search for include files, e.g. -I. -IPublic\n");
	fprintf(fd,"\t-O\tadd directives for compilation of pan, e.g. -O \"-DVECTORSZ=4096\"\n");
	fprintf(fd,"\t-Q\tset series of preprocessing macros, e.g. -Q \"-DDEBUG -I. -IPublic\"\n");
	fprintf(fd,"\t-R \"...\" define additional ./pan runtime flags for verification\n");
	fprintf(fd,"\t-T\tset preprocessing sed cmd, e.g. -T \"s;replace;with;g\"\n");

	fprintf(fd,"\nLookup Table	(default: use but do not update lookup table if present)\n");
	fprintf(fd,"\t-k\t\tcreate new lookup tables, use extension .nlut (-V adds decls on stdout)\n");
	fprintf(fd,"\t-L lname\tuse lookup table in lname\n");
	fprintf(fd,"\t-M suffix\tlike -k, but use suffix instead of nlut\n");

	fprintf(fd,"\nTargets\n");
	fprintf(fd,"\t-a[n] pname\tgenerate 1 (or n) active proctype(s) for fct pname\n");
	fprintf(fd,"\t-i pname\tlike -a but generates an inline definition\n");
	fprintf(fd,"\t-n pname\tlike -a but generates only the proctype body\n");
	fprintf(fd,"\t-p pname\tlike -a but generates a passive proctype\n");
	fprintf(fd,"\t-e pname\tlike -a with parameter passing support\n");
	fprintf(fd,"\t-E pname\tlike -p with parameter passing support\n");
	fprintf(fd,"\t-x[n]\t\textract all fcts as active proctypes\n");
	fprintf(fd,"\t-xE\t\textract all fcts as extended proctypes\n");
	fprintf(fd,"\t-xe[n]\t\textract all fcts (except main) as extended active proctypes\n");
	fprintf(fd,"\t-xp\t\textract all fcts as proctypes\n");
	fprintf(fd,"\t-xi\t\textract all fcts as inlines\n");
	fprintf(fd,"\t-m mname\tuse mname as a basename for the generated files\n");
	fprintf(fd,"\t-Nn\tset the default nr of active processes to instantiate per fct to n\n");

	fprintf(fd,"\nInfo\n");
	fprintf(fd,"\t-C\tattempt to reproduce input\n");
	fprintf(fd,"\t-F\tprint all fct names encountered on stdout\n");
	fprintf(fd,"\t-o\tprint all omissions in the lookup table\n");
	fprintf(fd,"\t-r\tprint all redundant entries in the lookup table\n");
	fprintf(fd,"\t-s\tshow symbol table information on stdout\n");
	fprintf(fd,"\t-V\tprint version information and exit\n");
	fprintf(fd,"\t-X\tshow dependency graph, including trans. closure\n");
	fprintf(fd,"\t-Y\tprint commands as they are executed\n");
	fprintf(fd,"\t-v\tverbose\n");
	fprintf(fd,"\t-w\tprint warnings\n\n");

	fprintf(fd, "\t-parsetree\tgenerate dot output of parsetree\n");
	fprintf(fd, "\t-cfg\t\tgenerate dot output for control-flow graph\n");
	fprintf(fd, "\t-fcg\t\tgenerate dot output for function-call graph\n");

#if 0
	fprintf(fd,"\nExperimental\n");
	fprintf(fd, "\t-defuse\ttry to generate a def/use model\n");
#endif
	exit(1);
}

// Assembly:
pushq %r14
pushq %rbx
pushq %rax
movq %rdi, %r14
movq 0x2f67b(%rip), %rax     # 0x36ff8
movq (%rax), %rbx
leaq 0x1bb71(%rip), %rdi     # 0x234f8
movl $0x20, %esi
movl $0x1, %edx
movq %rbx, %rcx
callq 0x42b0
movq 0x2f7e0(%rip), %rdx     # 0x37180
leaq 0x1d9d5(%rip), %rsi     # 0x2537c
movq %rbx, %rdi
xorl %eax, %eax
callq 0x41c0
leaq 0x1bb61(%rip), %rdi     # 0x23519
movl $0x1b, %esi
movl $0x1, %edx
movq %rbx, %rcx
callq 0x42b0
leaq 0x1bb64(%rip), %rsi     # 0x23535
movq %rbx, %rdi
movq %r14, %rdx
xorl %eax, %eax
callq 0x41c0
leaq 0x1bb6e(%rip), %rdi     # 0x23553
movl $0xe, %esi
movl $0x1, %edx
movq %rbx, %rcx
callq 0x42b0
leaq 0x1bb64(%rip), %rdi     # 0x23562
movl $0x4b, %esi
movl $0x1, %edx
movq %rbx, %rcx
callq 0x42b0
leaq 0x1bb97(%rip), %rdi     # 0x235ae
movl $0x24, %esi
movl $0x1, %edx
movq %rbx, %rcx
callq 0x42b0
leaq 0x1bba3(%rip), %rdi     # 0x235d3
movl $0x33, %esi
movl $0x1, %edx
movq %rbx, %rcx
callq 0x42b0
leaq 0x1bbbe(%rip), %rdi     # 0x23607
movl $0x34, %esi
movl $0x1, %edx
movq %rbx, %rcx
callq 0x42b0
leaq 0x1bbda(%rip), %rdi     # 0x2363c
movl $0x3c, %esi
movl $0x1, %edx
movq %rbx, %rcx
callq 0x42b0
leaq 0x1bbfe(%rip), %rdi     # 0x23679
movl $0x43, %esi
movl $0x1, %edx
movq %rbx, %rcx
callq 0x42b0
leaq 0x1bc29(%rip), %rdi     # 0x236bd
movl $0x3a, %esi
movl $0x1, %edx
movq %rbx, %rcx
callq 0x42b0
leaq 0x1bc4b(%rip), %rdi     # 0x236f8
movl $0x1d, %esi
movl $0x1, %edx
movq %rbx, %rcx
callq 0x42b0
leaq 0x1bc50(%rip), %rdi     # 0x23716
movl $0x3b, %esi
movl $0x1, %edx
movq %rbx, %rcx
callq 0x42b0
leaq 0x1bc73(%rip), %rdi     # 0x23752
movl $0x31, %esi
movl $0x1, %edx
movq %rbx, %rcx
callq 0x42b0
leaq 0x1bc8c(%rip), %rdi     # 0x23784
movl $0x46, %esi
movl $0x1, %edx
movq %rbx, %rcx
callq 0x42b0
leaq 0x1bcba(%rip), %rdi     # 0x237cb
movl $0x44, %esi
movl $0x1, %edx
movq %rbx, %rcx
callq 0x42b0
leaq 0x1bce6(%rip), %rdi     # 0x23810
movl $0x47, %esi
movl $0x1, %edx
movq %rbx, %rcx
callq 0x42b0
leaq 0x1bd15(%rip), %rdi     # 0x23858
movl $0x33, %esi
movl $0x1, %edx
movq %rbx, %rcx
callq 0x42b0
leaq 0x1bd30(%rip), %rdi     # 0x2388c
movl $0x2d, %esi
movl $0x1, %edx
movq %rbx, %rcx
callq 0x42b0
leaq 0x1bd45(%rip), %rdi     # 0x238ba
movl $0x3f, %esi
movl $0x1, %edx
movq %rbx, %rcx
callq 0x42b0
leaq 0x1bd6c(%rip), %rdi     # 0x238fa
movl $0x2f, %esi
movl $0x1, %edx
movq %rbx, %rcx
callq 0x42b0
movl 0x2f652(%rip), %edx     # 0x371f8
leaq 0x1bd7d(%rip), %rsi     # 0x2392a
movq %rbx, %rdi
xorl %eax, %eax
callq 0x41c0
leaq 0x1bda6(%rip), %rdi     # 0x23964
movl $0x37, %esi
movl $0x1, %edx
movq %rbx, %rcx
callq 0x42b0
leaq 0x1bdc5(%rip), %rdi     # 0x2399c
movl $0x61, %esi
movl $0x1, %edx
movq %rbx, %rcx
callq 0x42b0
leaq 0x1be0e(%rip), %rdi     # 0x239fe
movl $0x1a, %esi
movl $0x1, %edx
movq %rbx, %rcx
callq 0x42b0
leaq 0x1be10(%rip), %rdi     # 0x23a19
movl $0x22, %esi
movl $0x1, %edx
movq %rbx, %rcx
callq 0x42b0
leaq 0x1be1a(%rip), %rdi     # 0x23a3c
movl $0x22, %esi
movl $0x1, %edx
movq %rbx, %rcx
callq 0x42b0
leaq 0x1be24(%rip), %rdi     # 0x23a5f
movl $0x41, %esi
movl $0x1, %edx
movq %rbx, %rcx
callq 0x42b0
leaq 0x1be4d(%rip), %rdi     # 0x23aa1
movl $0x45, %esi
movl $0x1, %edx
movq %rbx, %rcx
callq 0x42b0
leaq 0x1be7a(%rip), %rdi     # 0x23ae7
movl $0x47, %esi
movl $0x1, %edx
movq %rbx, %rcx
callq 0x42b0
leaq 0x1bea9(%rip), %rdi     # 0x23b2f
movl $0x41, %esi
movl $0x1, %edx
movq %rbx, %rcx
callq 0x42b0
leaq 0x1bed2(%rip), %rdi     # 0x23b71
movl $0x3a, %esi
movl $0x1, %edx
movq %rbx, %rcx
callq 0x42b0
leaq 0x1bef4(%rip), %rdi     # 0x23bac
movl $0x47, %esi
movl $0x1, %edx
movq %rbx, %rcx
callq 0x42b0
leaq 0x1bf23(%rip), %rdi     # 0x23bf4
movl $0x4d, %esi
movl $0x1, %edx
movq %rbx, %rcx
callq 0x42b0
leaq 0x1bf58(%rip), %rdi     # 0x23c42
movl $0x24, %esi
movl $0x1, %edx
movq %rbx, %rcx
callq 0x42b0
leaq 0x1bf64(%rip), %rdi     # 0x23c67
movl $0x33, %esi
movl $0x1, %edx
movq %rbx, %rcx
callq 0x42b0
leaq 0x1bf7f(%rip), %rdi     # 0x23c9b
movl $0x9, %esi
movl $0x1, %edx
movq %rbx, %rcx
callq 0x42b0
leaq 0x1bf70(%rip), %rdi     # 0x23ca5
movl $0x40, %esi
movl $0x1, %edx
movq %rbx, %rcx
callq 0x42b0
leaq 0x1bf98(%rip), %rdi     # 0x23ce6
movl $0x35, %esi
movl $0x1, %edx
movq %rbx, %rcx
callq 0x42b0
leaq 0x1bfb5(%rip), %rdi     # 0x23d1c
movl $0x37, %esi
movl $0x1, %edx
movq %rbx, %rcx
callq 0x42b0
leaq 0x1bfd4(%rip), %rdi     # 0x23d54
movl $0x33, %esi
movl $0x1, %edx
movq %rbx, %rcx
callq 0x42b0
leaq 0x1bfef(%rip), %rdi     # 0x23d88
movl $0x31, %esi
movl $0x1, %edx
movq %rbx, %rcx
callq 0x42b0
leaq 0x1c008(%rip), %rdi     # 0x23dba
movl $0x31, %esi
movl $0x1, %edx
movq %rbx, %rcx
callq 0x42b0
leaq 0x1c021(%rip), %rdi     # 0x23dec
movl $0x2d, %esi
movl $0x1, %edx
movq %rbx, %rcx
callq 0x42b0
leaq 0x1c036(%rip), %rdi     # 0x23e1a
movl $0x2d, %esi
movl $0x1, %edx
movq %rbx, %rcx
callq 0x42b0
leaq 0x1c04b(%rip), %rdi     # 0x23e48
movl $0x45, %esi
movl $0x1, %edx
movq %rbx, %rcx
callq 0x42b0
leaq 0x1c078(%rip), %rdi     # 0x23e8e
movl $0x24, %esi
movl $0x1, %edx
movq %rbx, %rcx
callq 0x42b0
leaq 0x1c084(%rip), %rdi     # 0x23eb3
movl $0x22, %esi
movl $0x1, %edx
movq %rbx, %rcx
callq 0x42b0
leaq 0x1c08e(%rip), %rdi     # 0x23ed6
movl $0x3a, %esi
movl $0x1, %edx
movq %rbx, %rcx
callq 0x42b0
leaq 0x1c0b0(%rip), %rdi     # 0x23f11
movl $0x48, %esi
movl $0x1, %edx
movq %rbx, %rcx
callq 0x42b0
leaq 0x1c0e0(%rip), %rdi     # 0x23f5a
movl $0x6, %esi
movl $0x1, %edx
movq %rbx, %rcx
callq 0x42b0
leaq 0x1c0ce(%rip), %rdi     # 0x23f61
movl $0x1f, %esi
movl $0x1, %edx
movq %rbx, %rcx
callq 0x42b0
leaq 0x1c0d5(%rip), %rdi     # 0x23f81
movl $0x2e, %esi
movl $0x1, %edx
movq %rbx, %rcx
callq 0x42b0
leaq 0x1c0eb(%rip), %rdi     # 0x23fb0
movl $0x2c, %esi
movl $0x1, %edx
movq %rbx, %rcx
callq 0x42b0
leaq 0x1c0ff(%rip), %rdi     # 0x23fdd
movl $0x34, %esi
movl $0x1, %edx
movq %rbx, %rcx
callq 0x42b0
leaq 0x1c11b(%rip), %rdi     # 0x24012
movl $0x2c, %esi
movl $0x1, %edx
movq %rbx, %rcx
callq 0x42b0
leaq 0x1c12f(%rip), %rdi     # 0x2403f
movl $0x27, %esi
movl $0x1, %edx
movq %rbx, %rcx
callq 0x42b0
leaq 0x1c13e(%rip), %rdi     # 0x24067
movl $0x34, %esi
movl $0x1, %edx
movq %rbx, %rcx
callq 0x42b0
leaq 0x1c15a(%rip), %rdi     # 0x2409c
movl $0x28, %esi
movl $0x1, %edx
movq %rbx, %rcx
callq 0x42b0
leaq 0x1c16a(%rip), %rdi     # 0x240c5
movl $0xc, %esi
movl $0x1, %edx
movq %rbx, %rcx
callq 0x42b0
leaq 0x1c15e(%rip), %rdi     # 0x240d2
movl $0x14, %esi
movl $0x1, %edx
movq %rbx, %rcx
callq 0x42b0
leaq 0x1c15a(%rip), %rdi     # 0x240e7
movl $0x2d, %esi
movl $0x1, %edx
movq %rbx, %rcx
callq 0x42b0
leaq 0x1c16f(%rip), %rdi     # 0x24115
movl $0x32, %esi
movl $0x1, %edx
movq %rbx, %rcx
callq 0x42b0
leaq 0x1c189(%rip), %rdi     # 0x24148
movl $0x33, %esi
movl $0x1, %edx
movq %rbx, %rcx
callq 0x42b0
movl $0x1, %edi
callq 0x42a0