// File: /workspace/github_c_makefile_star2_O3/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 0x2e7e7(%rip), %rax     # 0x35ff8
movq (%rax), %rbx
leaq 0x1acdd(%rip), %rdi     # 0x224f8
movl $0x20, %esi
movl $0x1, %edx
movq %rbx, %rcx
callq 0x42c0
movq 0x2e95c(%rip), %rdx     # 0x36190
leaq 0x1cb41(%rip), %rsi     # 0x2437c
movq %rbx, %rdi
xorl %eax, %eax
callq 0x41d0
leaq 0x1accd(%rip), %rdi     # 0x22519
movl $0x1b, %esi
movl $0x1, %edx
movq %rbx, %rcx
callq 0x42c0
leaq 0x1acd0(%rip), %rsi     # 0x22535
movq %rbx, %rdi
movq %r14, %rdx
xorl %eax, %eax
callq 0x41d0
leaq 0x1acda(%rip), %rdi     # 0x22553
movl $0xe, %esi
movl $0x1, %edx
movq %rbx, %rcx
callq 0x42c0
leaq 0x1acd0(%rip), %rdi     # 0x22562
movl $0x4b, %esi
movl $0x1, %edx
movq %rbx, %rcx
callq 0x42c0
leaq 0x1ad03(%rip), %rdi     # 0x225ae
movl $0x24, %esi
movl $0x1, %edx
movq %rbx, %rcx
callq 0x42c0
leaq 0x1ad0f(%rip), %rdi     # 0x225d3
movl $0x33, %esi
movl $0x1, %edx
movq %rbx, %rcx
callq 0x42c0
leaq 0x1ad2a(%rip), %rdi     # 0x22607
movl $0x34, %esi
movl $0x1, %edx
movq %rbx, %rcx
callq 0x42c0
leaq 0x1ad46(%rip), %rdi     # 0x2263c
movl $0x3c, %esi
movl $0x1, %edx
movq %rbx, %rcx
callq 0x42c0
leaq 0x1ad6a(%rip), %rdi     # 0x22679
movl $0x43, %esi
movl $0x1, %edx
movq %rbx, %rcx
callq 0x42c0
leaq 0x1ad95(%rip), %rdi     # 0x226bd
movl $0x3a, %esi
movl $0x1, %edx
movq %rbx, %rcx
callq 0x42c0
leaq 0x1adb7(%rip), %rdi     # 0x226f8
movl $0x1d, %esi
movl $0x1, %edx
movq %rbx, %rcx
callq 0x42c0
leaq 0x1adbc(%rip), %rdi     # 0x22716
movl $0x3b, %esi
movl $0x1, %edx
movq %rbx, %rcx
callq 0x42c0
leaq 0x1addf(%rip), %rdi     # 0x22752
movl $0x31, %esi
movl $0x1, %edx
movq %rbx, %rcx
callq 0x42c0
leaq 0x1adf8(%rip), %rdi     # 0x22784
movl $0x46, %esi
movl $0x1, %edx
movq %rbx, %rcx
callq 0x42c0
leaq 0x1ae26(%rip), %rdi     # 0x227cb
movl $0x44, %esi
movl $0x1, %edx
movq %rbx, %rcx
callq 0x42c0
leaq 0x1ae52(%rip), %rdi     # 0x22810
movl $0x47, %esi
movl $0x1, %edx
movq %rbx, %rcx
callq 0x42c0
leaq 0x1ae81(%rip), %rdi     # 0x22858
movl $0x33, %esi
movl $0x1, %edx
movq %rbx, %rcx
callq 0x42c0
leaq 0x1ae9c(%rip), %rdi     # 0x2288c
movl $0x2d, %esi
movl $0x1, %edx
movq %rbx, %rcx
callq 0x42c0
leaq 0x1aeb1(%rip), %rdi     # 0x228ba
movl $0x3f, %esi
movl $0x1, %edx
movq %rbx, %rcx
callq 0x42c0
leaq 0x1aed8(%rip), %rdi     # 0x228fa
movl $0x2f, %esi
movl $0x1, %edx
movq %rbx, %rcx
callq 0x42c0
movl 0x2e7ce(%rip), %edx     # 0x36208
leaq 0x1aee9(%rip), %rsi     # 0x2292a
movq %rbx, %rdi
xorl %eax, %eax
callq 0x41d0
leaq 0x1af12(%rip), %rdi     # 0x22964
movl $0x37, %esi
movl $0x1, %edx
movq %rbx, %rcx
callq 0x42c0
leaq 0x1af31(%rip), %rdi     # 0x2299c
movl $0x61, %esi
movl $0x1, %edx
movq %rbx, %rcx
callq 0x42c0
leaq 0x1af7a(%rip), %rdi     # 0x229fe
movl $0x1a, %esi
movl $0x1, %edx
movq %rbx, %rcx
callq 0x42c0
leaq 0x1af7c(%rip), %rdi     # 0x22a19
movl $0x22, %esi
movl $0x1, %edx
movq %rbx, %rcx
callq 0x42c0
leaq 0x1af86(%rip), %rdi     # 0x22a3c
movl $0x22, %esi
movl $0x1, %edx
movq %rbx, %rcx
callq 0x42c0
leaq 0x1af90(%rip), %rdi     # 0x22a5f
movl $0x41, %esi
movl $0x1, %edx
movq %rbx, %rcx
callq 0x42c0
leaq 0x1afb9(%rip), %rdi     # 0x22aa1
movl $0x45, %esi
movl $0x1, %edx
movq %rbx, %rcx
callq 0x42c0
leaq 0x1afe6(%rip), %rdi     # 0x22ae7
movl $0x47, %esi
movl $0x1, %edx
movq %rbx, %rcx
callq 0x42c0
leaq 0x1b015(%rip), %rdi     # 0x22b2f
movl $0x41, %esi
movl $0x1, %edx
movq %rbx, %rcx
callq 0x42c0
leaq 0x1b03e(%rip), %rdi     # 0x22b71
movl $0x3a, %esi
movl $0x1, %edx
movq %rbx, %rcx
callq 0x42c0
leaq 0x1b060(%rip), %rdi     # 0x22bac
movl $0x47, %esi
movl $0x1, %edx
movq %rbx, %rcx
callq 0x42c0
leaq 0x1b08f(%rip), %rdi     # 0x22bf4
movl $0x4d, %esi
movl $0x1, %edx
movq %rbx, %rcx
callq 0x42c0
leaq 0x1b0c4(%rip), %rdi     # 0x22c42
movl $0x24, %esi
movl $0x1, %edx
movq %rbx, %rcx
callq 0x42c0
leaq 0x1b0d0(%rip), %rdi     # 0x22c67
movl $0x33, %esi
movl $0x1, %edx
movq %rbx, %rcx
callq 0x42c0
leaq 0x1b0eb(%rip), %rdi     # 0x22c9b
movl $0x9, %esi
movl $0x1, %edx
movq %rbx, %rcx
callq 0x42c0
leaq 0x1b0dc(%rip), %rdi     # 0x22ca5
movl $0x40, %esi
movl $0x1, %edx
movq %rbx, %rcx
callq 0x42c0
leaq 0x1b104(%rip), %rdi     # 0x22ce6
movl $0x35, %esi
movl $0x1, %edx
movq %rbx, %rcx
callq 0x42c0
leaq 0x1b121(%rip), %rdi     # 0x22d1c
movl $0x37, %esi
movl $0x1, %edx
movq %rbx, %rcx
callq 0x42c0
leaq 0x1b140(%rip), %rdi     # 0x22d54
movl $0x33, %esi
movl $0x1, %edx
movq %rbx, %rcx
callq 0x42c0
leaq 0x1b15b(%rip), %rdi     # 0x22d88
movl $0x31, %esi
movl $0x1, %edx
movq %rbx, %rcx
callq 0x42c0
leaq 0x1b174(%rip), %rdi     # 0x22dba
movl $0x31, %esi
movl $0x1, %edx
movq %rbx, %rcx
callq 0x42c0
leaq 0x1b18d(%rip), %rdi     # 0x22dec
movl $0x2d, %esi
movl $0x1, %edx
movq %rbx, %rcx
callq 0x42c0
leaq 0x1b1a2(%rip), %rdi     # 0x22e1a
movl $0x2d, %esi
movl $0x1, %edx
movq %rbx, %rcx
callq 0x42c0
leaq 0x1b1b7(%rip), %rdi     # 0x22e48
movl $0x45, %esi
movl $0x1, %edx
movq %rbx, %rcx
callq 0x42c0
leaq 0x1b1e4(%rip), %rdi     # 0x22e8e
movl $0x24, %esi
movl $0x1, %edx
movq %rbx, %rcx
callq 0x42c0
leaq 0x1b1f0(%rip), %rdi     # 0x22eb3
movl $0x22, %esi
movl $0x1, %edx
movq %rbx, %rcx
callq 0x42c0
leaq 0x1b1fa(%rip), %rdi     # 0x22ed6
movl $0x3a, %esi
movl $0x1, %edx
movq %rbx, %rcx
callq 0x42c0
leaq 0x1b21c(%rip), %rdi     # 0x22f11
movl $0x48, %esi
movl $0x1, %edx
movq %rbx, %rcx
callq 0x42c0
leaq 0x1b24c(%rip), %rdi     # 0x22f5a
movl $0x6, %esi
movl $0x1, %edx
movq %rbx, %rcx
callq 0x42c0
leaq 0x1b23a(%rip), %rdi     # 0x22f61
movl $0x1f, %esi
movl $0x1, %edx
movq %rbx, %rcx
callq 0x42c0
leaq 0x1b241(%rip), %rdi     # 0x22f81
movl $0x2e, %esi
movl $0x1, %edx
movq %rbx, %rcx
callq 0x42c0
leaq 0x1b257(%rip), %rdi     # 0x22fb0
movl $0x2c, %esi
movl $0x1, %edx
movq %rbx, %rcx
callq 0x42c0
leaq 0x1b26b(%rip), %rdi     # 0x22fdd
movl $0x34, %esi
movl $0x1, %edx
movq %rbx, %rcx
callq 0x42c0
leaq 0x1b287(%rip), %rdi     # 0x23012
movl $0x2c, %esi
movl $0x1, %edx
movq %rbx, %rcx
callq 0x42c0
leaq 0x1b29b(%rip), %rdi     # 0x2303f
movl $0x27, %esi
movl $0x1, %edx
movq %rbx, %rcx
callq 0x42c0
leaq 0x1b2aa(%rip), %rdi     # 0x23067
movl $0x34, %esi
movl $0x1, %edx
movq %rbx, %rcx
callq 0x42c0
leaq 0x1b2c6(%rip), %rdi     # 0x2309c
movl $0x28, %esi
movl $0x1, %edx
movq %rbx, %rcx
callq 0x42c0
leaq 0x1b2d6(%rip), %rdi     # 0x230c5
movl $0xc, %esi
movl $0x1, %edx
movq %rbx, %rcx
callq 0x42c0
leaq 0x1b2ca(%rip), %rdi     # 0x230d2
movl $0x14, %esi
movl $0x1, %edx
movq %rbx, %rcx
callq 0x42c0
leaq 0x1b2c6(%rip), %rdi     # 0x230e7
movl $0x2d, %esi
movl $0x1, %edx
movq %rbx, %rcx
callq 0x42c0
leaq 0x1b2db(%rip), %rdi     # 0x23115
movl $0x32, %esi
movl $0x1, %edx
movq %rbx, %rcx
callq 0x42c0
leaq 0x1b2f5(%rip), %rdi     # 0x23148
movl $0x33, %esi
movl $0x1, %edx
movq %rbx, %rcx
callq 0x42c0
movl $0x1, %edi
callq 0x42b0