// File: /workspace/github_c_makefile_star2_O2/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 %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
pushq %rax
movq %rdi, %r15
movq 0x2e5d0(%rip), %rax     # 0x33ff8
movq (%rax), %rbx
leaq 0x1aac6(%rip), %rdi     # 0x204f8
pushq $0x20
popq %rsi
pushq $0x1
popq %r14
movq %r14, %rdx
movq %rbx, %rcx
callq 0x42c0
movq 0x2e745(%rip), %rdx     # 0x34190
leaq 0x1c82a(%rip), %rsi     # 0x2227c
movq %rbx, %rdi
xorl %eax, %eax
callq 0x41c0
leaq 0x1aab6(%rip), %rdi     # 0x20519
pushq $0x1b
popq %rsi
movq %r14, %rdx
movq %rbx, %rcx
callq 0x42c0
leaq 0x1aabd(%rip), %rsi     # 0x20535
movq %rbx, %rdi
movq %r15, %rdx
xorl %eax, %eax
callq 0x41c0
leaq 0x1aac7(%rip), %rdi     # 0x20553
pushq $0xe
popq %rsi
movq %r14, %rdx
movq %rbx, %rcx
callq 0x42c0
leaq 0x1aac1(%rip), %rdi     # 0x20562
pushq $0x4b
popq %rsi
movq %r14, %rdx
movq %rbx, %rcx
callq 0x42c0
leaq 0x1aaf8(%rip), %rdi     # 0x205ae
pushq $0x24
popq %rsi
movq %r14, %rdx
movq %rbx, %rcx
callq 0x42c0
leaq 0x1ab08(%rip), %rdi     # 0x205d3
pushq $0x33
popq %r15
movq %r15, %rsi
movq %r14, %rdx
movq %rbx, %rcx
callq 0x42c0
leaq 0x1ab23(%rip), %rdi     # 0x20607
pushq $0x34
popq %rsi
movq %r14, %rdx
movq %rbx, %rcx
callq 0x42c0
leaq 0x1ab43(%rip), %rdi     # 0x2063c
pushq $0x3c
popq %rsi
movq %r14, %rdx
movq %rbx, %rcx
callq 0x42c0
leaq 0x1ab6b(%rip), %rdi     # 0x20679
pushq $0x43
popq %rsi
movq %r14, %rdx
movq %rbx, %rcx
callq 0x42c0
leaq 0x1ab9a(%rip), %rdi     # 0x206bd
pushq $0x3a
popq %r13
movq %r13, %rsi
movq %r14, %rdx
movq %rbx, %rcx
callq 0x42c0
leaq 0x1abbc(%rip), %rdi     # 0x206f8
pushq $0x1d
popq %rsi
movq %r14, %rdx
movq %rbx, %rcx
callq 0x42c0
leaq 0x1abc5(%rip), %rdi     # 0x20716
pushq $0x3b
popq %rsi
movq %r14, %rdx
movq %rbx, %rcx
callq 0x42c0
leaq 0x1abec(%rip), %rdi     # 0x20752
pushq $0x31
popq %rsi
movq %r14, %rdx
movq %rbx, %rcx
callq 0x42c0
leaq 0x1ac09(%rip), %rdi     # 0x20784
pushq $0x46
popq %rsi
movq %r14, %rdx
movq %rbx, %rcx
callq 0x42c0
leaq 0x1ac3b(%rip), %rdi     # 0x207cb
pushq $0x44
popq %rsi
movq %r14, %rdx
movq %rbx, %rcx
callq 0x42c0
leaq 0x1ac6b(%rip), %rdi     # 0x20810
pushq $0x47
popq %rbp
movq %rbp, %rsi
movq %r14, %rdx
movq %rbx, %rcx
callq 0x42c0
leaq 0x1ac9b(%rip), %rdi     # 0x20858
movq %r15, %rsi
movq %r14, %rdx
movq %rbx, %rcx
callq 0x42c0
leaq 0x1acba(%rip), %rdi     # 0x2088c
pushq $0x2d
popq %rsi
movq %r14, %rdx
movq %rbx, %rcx
callq 0x42c0
leaq 0x1acd3(%rip), %rdi     # 0x208ba
pushq $0x3f
popq %rsi
movq %r14, %rdx
movq %rbx, %rcx
callq 0x42c0
leaq 0x1acfe(%rip), %rdi     # 0x208fa
pushq $0x2f
popq %rsi
movq %r14, %rdx
movq %rbx, %rcx
callq 0x42c0
movl 0x2e5f8(%rip), %edx     # 0x34208
leaq 0x1ad13(%rip), %rsi     # 0x2092a
movq %rbx, %rdi
xorl %eax, %eax
callq 0x41c0
leaq 0x1ad3c(%rip), %rdi     # 0x20964
pushq $0x37
popq %rsi
movq %r14, %rdx
movq %rbx, %rcx
callq 0x42c0
leaq 0x1ad5f(%rip), %rdi     # 0x2099c
pushq $0x61
popq %rsi
movq %r14, %rdx
movq %rbx, %rcx
callq 0x42c0
leaq 0x1adac(%rip), %rdi     # 0x209fe
pushq $0x1a
popq %rsi
movq %r14, %rdx
movq %rbx, %rcx
callq 0x42c0
leaq 0x1adb2(%rip), %rdi     # 0x20a19
pushq $0x22
popq %r12
movq %r12, %rsi
movq %r14, %rdx
movq %rbx, %rcx
callq 0x42c0
leaq 0x1adbc(%rip), %rdi     # 0x20a3c
movq %r12, %rsi
movq %r14, %rdx
movq %rbx, %rcx
callq 0x42c0
leaq 0x1adca(%rip), %rdi     # 0x20a5f
pushq $0x41
popq %r15
movq %r15, %rsi
movq %r14, %rdx
movq %rbx, %rcx
callq 0x42c0
leaq 0x1adf3(%rip), %rdi     # 0x20aa1
pushq $0x45
popq %rsi
movq %r14, %rdx
movq %rbx, %rcx
callq 0x42c0
leaq 0x1ae24(%rip), %rdi     # 0x20ae7
movq %rbp, %rsi
movq %r14, %rdx
movq %rbx, %rcx
callq 0x42c0
leaq 0x1ae57(%rip), %rdi     # 0x20b2f
movq %r15, %rsi
movq %r14, %rdx
movq %rbx, %rcx
callq 0x42c0
leaq 0x1ae84(%rip), %rdi     # 0x20b71
movq %r13, %rsi
movq %r14, %rdx
movq %rbx, %rcx
callq 0x42c0
leaq 0x1aeaa(%rip), %rdi     # 0x20bac
movq %rbp, %rsi
movq %r14, %rdx
movq %rbx, %rcx
callq 0x42c0
leaq 0x1aedd(%rip), %rdi     # 0x20bf4
pushq $0x4d
popq %rsi
movq %r14, %rdx
movq %rbx, %rcx
callq 0x42c0
leaq 0x1af16(%rip), %rdi     # 0x20c42
pushq $0x24
popq %r15
movq %r15, %rsi
movq %r14, %rdx
movq %rbx, %rcx
callq 0x42c0
leaq 0x1af22(%rip), %rdi     # 0x20c67
pushq $0x33
popq %rbp
movq %rbp, %rsi
movq %r14, %rdx
movq %rbx, %rcx
callq 0x42c0
leaq 0x1af3e(%rip), %rdi     # 0x20c9b
pushq $0x9
popq %rsi
movq %r14, %rdx
movq %rbx, %rcx
callq 0x42c0
leaq 0x1af33(%rip), %rdi     # 0x20ca5
pushq $0x40
popq %rsi
movq %r14, %rdx
movq %rbx, %rcx
callq 0x42c0
leaq 0x1af5f(%rip), %rdi     # 0x20ce6
pushq $0x35
popq %rsi
movq %r14, %rdx
movq %rbx, %rcx
callq 0x42c0
leaq 0x1af80(%rip), %rdi     # 0x20d1c
pushq $0x37
popq %rsi
movq %r14, %rdx
movq %rbx, %rcx
callq 0x42c0
leaq 0x1afa3(%rip), %rdi     # 0x20d54
movq %rbp, %rsi
movq %r14, %rdx
movq %rbx, %rcx
callq 0x42c0
leaq 0x1afc2(%rip), %rdi     # 0x20d88
pushq $0x31
popq %rbp
movq %rbp, %rsi
movq %r14, %rdx
movq %rbx, %rcx
callq 0x42c0
leaq 0x1afdc(%rip), %rdi     # 0x20dba
movq %rbp, %rsi
movq %r14, %rdx
movq %rbx, %rcx
callq 0x42c0
leaq 0x1aff9(%rip), %rdi     # 0x20dec
pushq $0x2d
popq %rbp
movq %rbp, %rsi
movq %r14, %rdx
movq %rbx, %rcx
callq 0x42c0
leaq 0x1b00f(%rip), %rdi     # 0x20e1a
movq %rbp, %rsi
movq %r14, %rdx
movq %rbx, %rcx
callq 0x42c0
leaq 0x1b028(%rip), %rdi     # 0x20e48
pushq $0x45
popq %rsi
movq %r14, %rdx
movq %rbx, %rcx
callq 0x42c0
leaq 0x1b059(%rip), %rdi     # 0x20e8e
movq %r15, %rsi
movq %r14, %rdx
movq %rbx, %rcx
callq 0x42c0
leaq 0x1b069(%rip), %rdi     # 0x20eb3
movq %r12, %rsi
movq %r14, %rdx
movq %rbx, %rcx
callq 0x42c0
leaq 0x1b077(%rip), %rdi     # 0x20ed6
movq %r13, %rsi
movq %r14, %rdx
movq %rbx, %rcx
callq 0x42c0
leaq 0x1b09d(%rip), %rdi     # 0x20f11
pushq $0x48
popq %rsi
movq %r14, %rdx
movq %rbx, %rcx
callq 0x42c0
leaq 0x1b0d1(%rip), %rdi     # 0x20f5a
pushq $0x6
popq %rsi
movq %r14, %rdx
movq %rbx, %rcx
callq 0x42c0
leaq 0x1b0c3(%rip), %rdi     # 0x20f61
pushq $0x1f
popq %rsi
movq %r14, %rdx
movq %rbx, %rcx
callq 0x42c0
leaq 0x1b0ce(%rip), %rdi     # 0x20f81
pushq $0x2e
popq %rsi
movq %r14, %rdx
movq %rbx, %rcx
callq 0x42c0
leaq 0x1b0e8(%rip), %rdi     # 0x20fb0
pushq $0x2c
popq %r15
movq %r15, %rsi
movq %r14, %rdx
movq %rbx, %rcx
callq 0x42c0
leaq 0x1b0fc(%rip), %rdi     # 0x20fdd
pushq $0x34
popq %r12
movq %r12, %rsi
movq %r14, %rdx
movq %rbx, %rcx
callq 0x42c0
leaq 0x1b118(%rip), %rdi     # 0x21012
movq %r15, %rsi
movq %r14, %rdx
movq %rbx, %rcx
callq 0x42c0
leaq 0x1b130(%rip), %rdi     # 0x2103f
pushq $0x27
popq %rsi
movq %r14, %rdx
movq %rbx, %rcx
callq 0x42c0
leaq 0x1b143(%rip), %rdi     # 0x21067
movq %r12, %rsi
movq %r14, %rdx
movq %rbx, %rcx
callq 0x42c0
leaq 0x1b163(%rip), %rdi     # 0x2109c
pushq $0x28
popq %rsi
movq %r14, %rdx
movq %rbx, %rcx
callq 0x42c0
leaq 0x1b177(%rip), %rdi     # 0x210c5
pushq $0xc
popq %rsi
movq %r14, %rdx
movq %rbx, %rcx
callq 0x42c0
leaq 0x1b16f(%rip), %rdi     # 0x210d2
pushq $0x14
popq %rsi
movq %r14, %rdx
movq %rbx, %rcx
callq 0x42c0
leaq 0x1b16f(%rip), %rdi     # 0x210e7
movq %rbp, %rsi
movq %r14, %rdx
movq %rbx, %rcx
callq 0x42c0
leaq 0x1b188(%rip), %rdi     # 0x21115
pushq $0x32
popq %rsi
movq %r14, %rdx
movq %rbx, %rcx
callq 0x42c0
leaq 0x1b1a6(%rip), %rdi     # 0x21148
pushq $0x33
popq %rsi
movq %r14, %rdx
movq %rbx, %rcx
callq 0x42c0
pushq $0x1
popq %rdi
callq 0x42b0