// File: /workspace/github_c_makefile_star2_O0/nimble-code[P]Modex/Src/modex.c
// Function: mkruncmd
void
mkruncmd(void)
{	FILE *fd;
	char buf[1024];
	char buf_w[32];

	if ((fd = fopen("_modex_.run", MFLAGS)) == NULL)
	{	fprintf(stderr, "modex: cannot create run cmd\n");
		return;
	}
if (debug_io) fprintf(stderr, "Open %s -> %p\n", "_modex_.run", fd);

	sprintf(buf, "%s -DVECTORSZ=%d -DMEMLIM=%d %s ", CC, vectorsz, memlim, optimized);

	if (exhaustive)
	{	quality = 10;
	}

	if (quality < 0)
	{	fprintf(stderr, "quality parameter must be 1..10, assuming 1\n");
		quality = 1;
	}
	if (quality > 10)
	{	fprintf(stderr, "quality parameter must be 1..10, assuming 10\n");
		quality = 10;
	}
	if (quality == 9)
	{	if (!bfs_par)
		{	strcat(buf, "-DHC4 ");
		}
	} else if (quality < 9)
	{	strcat(buf, "-DBITSTATE ");
	}

	if (bfs_par)
	{	strcat(buf, "-DBFS_PAR ");
	} else if (bfsx)
	{	strcat(buf, "-DBFS ");
	}

	/* liveness */
	if (!loops && !np_loops)
	{	/* strcat(buf, "-DSAFETY "); */
		/* misses presence of ltl formula */
	} else if (np_loops)
	{	if (bfs_par || bfsx)
		{	fprintf(stderr, "np_loops disabled by bfs%s\n", (bfs_par)?"_par":"");
		} else
		{	strcat(buf, "-DNP ");
	}	}

	/* shortest */
	if (shortest && !bfsx && !bfs_par)
	{	strcat(buf, "-DREACH ");
	}

	strcat(buf, "-o pan pan.c");

	fprintf(fd, "## generated by %s\n## from %s\n\n", VERSION, file_name);
	if (0) fprintf(fd, "set -v\n");

	fprintf(fd, "r_flags=\"\"\n");
	fprintf(fd, "while [ $# -gt 0 ]\n");
	fprintf(fd, "do\n");
	fprintf(fd, "	case $1 in\n");
	fprintf(fd, "	\"-E\")\n");
	fprintf(fd, "		r_flags=\"$r_flags -E\"\n");
	fprintf(fd, "		shift\n");
	fprintf(fd, "		;;\n");
	fprintf(fd, "	\"-A\")\n");
	fprintf(fd, "		r_flags=\"$r_flags -A\"\n");
	fprintf(fd, "		shift\n");
	fprintf(fd, "		;;\n");
	fprintf(fd, "	\"-a\")\n");
	fprintf(fd, "		r_flags=\"$r_flags -a\"\n");
	fprintf(fd, "		shift\n");
	fprintf(fd, "		;;\n");
	fprintf(fd, "	*)\n");
	fprintf(fd, "		break\n");
	fprintf(fd, "		;;\n");
	fprintf(fd, "	esac\n");
	fprintf(fd, "done\n\n");

	fprintf(fd, "if [ $# -eq 1 ]\n");
	fprintf(fd, "then\n");
	fprintf(fd, "	case $1 in\n");
	fprintf(fd, "	pprep)\n");
				boiler_plate(fd, 1);
	fprintf(fd, "		exit 0	# preserve tmp files\n");
	fprintf(fd, "		;;\n");
	fprintf(fd, "	prep)\n");
				boiler_plate(fd, 0);
	fprintf(fd, "		if [ -f _modex_.cln ]\n");
	fprintf(fd, "		then %s _modex_.cln # cleanup\n", SH);
	fprintf(fd, "		fi\n");
	fprintf(fd, "		exit 0\n");
	fprintf(fd, "		;;\n");
	fprintf(fd, "	*)\n");
	fprintf(fd, "		if [ -f _modex_.cln ]\n");
	fprintf(fd, "		then	%s _modex_.cln # cleanup and run\n", SH);
	fprintf(fd, "		fi\n");
	fprintf(fd, "		;;\n");
	fprintf(fd, "	esac\n");
	fprintf(fd, "fi\n\n");

	fprintf(fd, "if [ -f model ]\n");
	fprintf(fd, "then	true\n");
	fprintf(fd, "else\n");
	fprintf(fd, "	echo \"no model file\"\n");
	fprintf(fd, "	exit 1\n");
	fprintf(fd, "fi\n");

	fprintf(fd, "if %s model && %s %s\n", SPIN,
		buf, lnkage_info?lnkage_info:"");
	fprintf(fd, "then\n\t");

	if (bfsx || bfs_par)
	{	sprintf(buf, "./pan -n ");
	} else
	{	sprintf(buf, "./pan $r_flags -n -m%d ", maxdepth);
	}
#if 0
	int wmax = (int) log2( ((double)memlim / (double)vectorsz)*1024.*1024. );
	int wmin = (int) log2( ((double)memlim / (double)8)*1024.*1024. );
	fprintf(stderr, "w: %d .. %d (%d)\n", wmax, wmin, sizeof(long));
#endif

	if (quality >= 9)
	{	sprintf(buf_w, "-w%d ",
			(int) log2( ((double)memlim / (double)8)*1024.*1024. ) - 1);
	} else
	{	sprintf(buf_w, "-w%d ", 20+quality); /* 21 .. 28 */
	}
	strcat(buf, buf_w);

	if (np_loops)
		strcat(buf, "-l ");
	else if (loops)
		strcat(buf, "-a ");
	if (noend)
		strcat(buf, "-E ");
	if (noassert)
		strcat(buf, "-A ");
	if (shortest && !bfsx && !bfs_par)
		strcat(buf, "-i ");
	if (strlen(runtime) > 0)	/* can override builtin options */
		strcat(buf, runtime);

	fprintf(fd, "%s\n", buf);

	fprintf(fd, "else\n");
	fprintf(fd, "	exit 1\n");

	fprintf(fd, "fi\n");
	fprintf(fd, "exit 0\n");
if (debug_io) fprintf(stderr, "close 4 %p\n", fd);
	Fclose(fd);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x450, %rsp            # imm = 0x450
leaq 0x2b863(%rip), %rdi     # 0x346b5
leaq 0x31f56(%rip), %rsi     # 0x3adaf
callq 0x4230
movq %rax, -0x8(%rbp)
cmpq $0x0, %rax
jne 0x8e85
movq 0x3c189(%rip), %rax     # 0x44ff8
movq (%rax), %rdi
leaq 0x2b848(%rip), %rsi     # 0x346c1
movb $0x0, %al
callq 0x4190
jmp 0x96ba
cmpl $0x0, 0x3ed5c(%rip)     # 0x47be8
je 0x8eb1
movq 0x3c163(%rip), %rax     # 0x44ff8
movq (%rax), %rdi
movq -0x8(%rbp), %rcx
leaq 0x2b57a(%rip), %rsi     # 0x3441d
leaq 0x2b80b(%rip), %rdx     # 0x346b5
movb $0x0, %al
callq 0x4190
leaq -0x410(%rbp), %rdi
movl 0x3c326(%rip), %ecx     # 0x451e4
movl 0x3c31b(%rip), %r8d     # 0x451e0
movq 0x3c2e4(%rip), %r9      # 0x451b0
leaq 0x2b80c(%rip), %rsi     # 0x346df
leaq 0x2b826(%rip), %rdx     # 0x34700
movb $0x0, %al
callq 0x4260
cmpl $0x0, 0x3f400(%rip)     # 0x482e8
je 0x8ef4
movl $0xa, 0x3c2e4(%rip)     # 0x451d8
cmpl $0x0, 0x3c2dd(%rip)     # 0x451d8
jge 0x8f1f
movq 0x3c0f4(%rip), %rax     # 0x44ff8
movq (%rax), %rdi
leaq 0x2b7fc(%rip), %rsi     # 0x3470a
movb $0x0, %al
callq 0x4190
movl $0x1, 0x3c2b9(%rip)     # 0x451d8
cmpl $0xa, 0x3c2b2(%rip)     # 0x451d8
jle 0x8f4a
movq 0x3c0c9(%rip), %rax     # 0x44ff8
movq (%rax), %rdi
leaq 0x2b7fe(%rip), %rsi     # 0x34737
movb $0x0, %al
callq 0x4190
movl $0xa, 0x3c28e(%rip)     # 0x451d8
cmpl $0x9, 0x3c287(%rip)     # 0x451d8
jne 0x8f71
cmpl $0x0, 0x3f38a(%rip)     # 0x482e4
jne 0x8f6f
leaq -0x410(%rbp), %rdi
leaq 0x2b7fb(%rip), %rsi     # 0x34765
callq 0x4250
jmp 0x8f8f
cmpl $0x9, 0x3c260(%rip)     # 0x451d8
jge 0x8f8d
leaq -0x410(%rbp), %rdi
leaq 0x2b7e4(%rip), %rsi     # 0x3476c
callq 0x4250
jmp 0x8f8f
cmpl $0x0, 0x3f34e(%rip)     # 0x482e4
je 0x8fad
leaq -0x410(%rbp), %rdi
leaq 0x2b7d2(%rip), %rsi     # 0x34778
callq 0x4250
jmp 0x8fcb
cmpl $0x0, 0x3f32c(%rip)     # 0x482e0
je 0x8fc9
leaq -0x410(%rbp), %rdi
leaq 0x2b7bf(%rip), %rsi     # 0x34783
callq 0x4250
jmp 0x8fcb
cmpl $0x0, 0x3f31a(%rip)     # 0x482ec
jne 0x8fdf
cmpl $0x0, 0x3f31d(%rip)     # 0x482f8
jne 0x8fdf
jmp 0x9046
cmpl $0x0, 0x3f312(%rip)     # 0x482f8
je 0x9044
cmpl $0x0, 0x3f2f5(%rip)     # 0x482e4
jne 0x8ffa
cmpl $0x0, 0x3f2e8(%rip)     # 0x482e0
je 0x902f
movq 0x3bff7(%rip), %rax     # 0x44ff8
movq (%rax), %rdi
movl 0x3f2da(%rip), %ecx     # 0x482e4
leaq 0x2e4ad(%rip), %rdx     # 0x374be
leaq 0x2b78e(%rip), %rax     # 0x347a6
cmpl $0x0, %ecx
cmovneq %rax, %rdx
leaq 0x2b764(%rip), %rsi     # 0x3478a
movb $0x0, %al
callq 0x4190
jmp 0x9042
leaq -0x410(%rbp), %rdi
leaq 0x2b76e(%rip), %rsi     # 0x347ab
callq 0x4250
jmp 0x9044
jmp 0x9046
cmpl $0x0, 0x3f2af(%rip)     # 0x482fc
je 0x9074
cmpl $0x0, 0x3f28a(%rip)     # 0x482e0
jne 0x9074
cmpl $0x0, 0x3f285(%rip)     # 0x482e4
jne 0x9074
leaq -0x410(%rbp), %rdi
leaq 0x2b742(%rip), %rsi     # 0x347b1
callq 0x4250
leaq -0x410(%rbp), %rdi
leaq 0x2b738(%rip), %rsi     # 0x347ba
callq 0x4250
movq -0x8(%rbp), %rdi
movq 0x3c0ce(%rip), %rdx     # 0x45160
movq 0x3ebbf(%rip), %rcx     # 0x47c58
leaq 0x2b727(%rip), %rsi     # 0x347c7
movb $0x0, %al
callq 0x4190
movq -0x8(%rbp), %rdi
leaq 0x2b735(%rip), %rsi     # 0x347e7
movb $0x0, %al
callq 0x4190
movq -0x8(%rbp), %rdi
leaq 0x2b72f(%rip), %rsi     # 0x347f3
movb $0x0, %al
callq 0x4190
movq -0x8(%rbp), %rdi
leaq 0x2d650(%rip), %rsi     # 0x36726
movb $0x0, %al
callq 0x4190
movq -0x8(%rbp), %rdi
leaq 0x2b71f(%rip), %rsi     # 0x34807
movb $0x0, %al
callq 0x4190
movq -0x8(%rbp), %rdi
leaq 0x2b71a(%rip), %rsi     # 0x34814
movb $0x0, %al
callq 0x4190
movq -0x8(%rbp), %rdi
leaq 0x2b710(%rip), %rsi     # 0x3481c
movb $0x0, %al
callq 0x4190
movq -0x8(%rbp), %rdi
leaq 0x2b717(%rip), %rsi     # 0x34835
movb $0x0, %al
callq 0x4190
movq -0x8(%rbp), %rdi
leaq 0x2b70e(%rip), %rsi     # 0x3483e
movb $0x0, %al
callq 0x4190
movq -0x8(%rbp), %rdi
leaq 0x2b702(%rip), %rsi     # 0x34844
movb $0x0, %al
callq 0x4190
movq -0x8(%rbp), %rdi
leaq 0x2b6f8(%rip), %rsi     # 0x3484c
movb $0x0, %al
callq 0x4190
movq -0x8(%rbp), %rdi
leaq 0x2b6cf(%rip), %rsi     # 0x34835
movb $0x0, %al
callq 0x4190
movq -0x8(%rbp), %rdi
leaq 0x2b6c6(%rip), %rsi     # 0x3483e
movb $0x0, %al
callq 0x4190
movq -0x8(%rbp), %rdi
leaq 0x2b6db(%rip), %rsi     # 0x34865
movb $0x0, %al
callq 0x4190
movq -0x8(%rbp), %rdi
leaq 0x2b6d1(%rip), %rsi     # 0x3486d
movb $0x0, %al
callq 0x4190
movq -0x8(%rbp), %rdi
leaq 0x2b687(%rip), %rsi     # 0x34835
movb $0x0, %al
callq 0x4190
movq -0x8(%rbp), %rdi
leaq 0x2b67e(%rip), %rsi     # 0x3483e
movb $0x0, %al
callq 0x4190
movq -0x8(%rbp), %rdi
leaq 0x2b6b4(%rip), %rsi     # 0x34886
movb $0x0, %al
callq 0x4190
movq -0x8(%rbp), %rdi
leaq 0x2b6a7(%rip), %rsi     # 0x3488b
movb $0x0, %al
callq 0x4190
movq -0x8(%rbp), %rdi
leaq 0x2b648(%rip), %rsi     # 0x3483e
movb $0x0, %al
callq 0x4190
movq -0x8(%rbp), %rdi
leaq 0x2b68c(%rip), %rsi     # 0x34894
movb $0x0, %al
callq 0x4190
movq -0x8(%rbp), %rdi
leaq 0x2b681(%rip), %rsi     # 0x3489b
movb $0x0, %al
callq 0x4190
movq -0x8(%rbp), %rdi
leaq 0x2b676(%rip), %rsi     # 0x348a2
movb $0x0, %al
callq 0x4190
movq -0x8(%rbp), %rdi
leaq 0x2b675(%rip), %rsi     # 0x348b3
movb $0x0, %al
callq 0x4190
movq -0x8(%rbp), %rdi
leaq 0x2b5b7(%rip), %rsi     # 0x34807
movb $0x0, %al
callq 0x4190
movq -0x8(%rbp), %rdi
leaq 0x2b657(%rip), %rsi     # 0x348b9
movb $0x0, %al
callq 0x4190
movq -0x8(%rbp), %rdi
movl $0x1, %esi
callq 0x8cb0
movq -0x8(%rbp), %rdi
leaq 0x2b640(%rip), %rsi     # 0x348c2
movb $0x0, %al
callq 0x4190
movq -0x8(%rbp), %rdi
leaq 0x2b5aa(%rip), %rsi     # 0x3483e
movb $0x0, %al
callq 0x4190
movq -0x8(%rbp), %rdi
leaq 0x2b63b(%rip), %rsi     # 0x348e1
movb $0x0, %al
callq 0x4190
movq -0x8(%rbp), %rdi
xorl %esi, %esi
callq 0x8cb0
movq -0x8(%rbp), %rdi
leaq 0x2b626(%rip), %rsi     # 0x348e9
movb $0x0, %al
callq 0x4190
movq -0x8(%rbp), %rdi
leaq 0x2b62d(%rip), %rsi     # 0x34902
leaq 0x2b647(%rip), %rdx     # 0x34923
movb $0x0, %al
callq 0x4190
movq -0x8(%rbp), %rdi
leaq 0x2b37a(%rip), %rsi     # 0x34668
movb $0x0, %al
callq 0x4190
movq -0x8(%rbp), %rdi
leaq 0x2b626(%rip), %rsi     # 0x34926
movb $0x0, %al
callq 0x4190
movq -0x8(%rbp), %rdi
leaq 0x2b52c(%rip), %rsi     # 0x3483e
movb $0x0, %al
callq 0x4190
movq -0x8(%rbp), %rdi
leaq 0x2b562(%rip), %rsi     # 0x34886
movb $0x0, %al
callq 0x4190
movq -0x8(%rbp), %rdi
leaq 0x2b5b3(%rip), %rsi     # 0x348e9
movb $0x0, %al
callq 0x4190
movq -0x8(%rbp), %rdi
leaq 0x2b5e8(%rip), %rsi     # 0x34930
leaq 0x2b5d4(%rip), %rdx     # 0x34923
movb $0x0, %al
callq 0x4190
movq -0x8(%rbp), %rdi
leaq 0x2b307(%rip), %rsi     # 0x34668
movb $0x0, %al
callq 0x4190
movq -0x8(%rbp), %rdi
leaq 0x2b4cb(%rip), %rsi     # 0x3483e
movb $0x0, %al
callq 0x4190
movq -0x8(%rbp), %rdi
leaq 0x2b50f(%rip), %rsi     # 0x34894
movb $0x0, %al
callq 0x4190
movq -0x8(%rbp), %rdi
leaq 0x2b1ce(%rip), %rsi     # 0x34565
movb $0x0, %al
callq 0x4190
movq -0x8(%rbp), %rdi
leaq 0x2b5b0(%rip), %rsi     # 0x34959
movb $0x0, %al
callq 0x4190
movq -0x8(%rbp), %rdi
leaq 0x2b166(%rip), %rsi     # 0x34521
movb $0x0, %al
callq 0x4190
movq -0x8(%rbp), %rdi
leaq 0x2d393(%rip), %rsi     # 0x36760
movb $0x0, %al
callq 0x4190
movq -0x8(%rbp), %rdi
leaq 0x2b58b(%rip), %rsi     # 0x3496a
movb $0x0, %al
callq 0x4190
movq -0x8(%rbp), %rdi
leaq 0x2b169(%rip), %rsi     # 0x3455a
movb $0x0, %al
callq 0x4190
movq -0x8(%rbp), %rdi
leaq 0x2b267(%rip), %rsi     # 0x3466a
movb $0x0, %al
callq 0x4190
movq -0x8(%rbp), %rax
movq %rax, -0x440(%rbp)
leaq -0x410(%rbp), %rax
movq %rax, -0x438(%rbp)
cmpq $0x0, 0x3eed5(%rip)     # 0x48300
je 0x943d
movq 0x3eecc(%rip), %rax     # 0x48300
movq %rax, -0x448(%rbp)
jmp 0x944d
leaq 0x2e07a(%rip), %rax     # 0x374be
movq %rax, -0x448(%rbp)
jmp 0x944d
movq -0x438(%rbp), %rcx
movq -0x440(%rbp), %rdi
movq -0x448(%rbp), %r8
leaq 0x2b518(%rip), %rsi     # 0x34981
leaq 0x2b527(%rip), %rdx     # 0x34997
movb $0x0, %al
callq 0x4190
movq -0x8(%rbp), %rdi
leaq 0x2b51d(%rip), %rsi     # 0x3499f
movb $0x0, %al
callq 0x4190
cmpl $0x0, 0x3ee50(%rip)     # 0x482e0
jne 0x949b
cmpl $0x0, 0x3ee4b(%rip)     # 0x482e4
je 0x94b2
leaq -0x410(%rbp), %rdi
leaq 0x2b4fd(%rip), %rsi     # 0x349a6
movb $0x0, %al
callq 0x4260
jmp 0x94cd
leaq -0x410(%rbp), %rdi
movl 0x3bd1d(%rip), %edx     # 0x451dc
leaq 0x2b4ea(%rip), %rsi     # 0x349b0
movb $0x0, %al
callq 0x4260
cmpl $0x9, 0x3bd04(%rip)     # 0x451d8
jl 0x9533
leaq -0x430(%rbp), %rax
movq %rax, -0x450(%rbp)
cvtsi2sdl 0x3bcf4(%rip), %xmm0 # 0x451e0
movsd 0x2a0b4(%rip), %xmm1    # 0x335a8
divsd %xmm1, %xmm0
movsd 0x2a0a0(%rip), %xmm1    # 0x335a0
mulsd %xmm1, %xmm0
movsd 0x2a094(%rip), %xmm1    # 0x335a0
mulsd %xmm1, %xmm0
callq 0x4040
movq -0x450(%rbp), %rdi
cvttsd2si %xmm0, %edx
subl $0x1, %edx
leaq 0x2b49e(%rip), %rsi     # 0x349c8
movb $0x0, %al
callq 0x4260
jmp 0x9551
leaq -0x430(%rbp), %rdi
movl 0x3bc98(%rip), %edx     # 0x451d8
addl $0x14, %edx
leaq 0x2b47e(%rip), %rsi     # 0x349c8
movb $0x0, %al
callq 0x4260
leaq -0x410(%rbp), %rdi
leaq -0x430(%rbp), %rsi
callq 0x4250
cmpl $0x0, 0x3ed8d(%rip)     # 0x482f8
je 0x9582
leaq -0x410(%rbp), %rdi
leaq 0x2b453(%rip), %rsi     # 0x349ce
callq 0x4250
jmp 0x95a0
cmpl $0x0, 0x3ed63(%rip)     # 0x482ec
je 0x959e
leaq -0x410(%rbp), %rdi
leaq 0x2b439(%rip), %rsi     # 0x349d2
callq 0x4250
jmp 0x95a0
cmpl $0x0, 0x3ed49(%rip)     # 0x482f0
je 0x95bc
leaq -0x410(%rbp), %rdi
leaq 0x2b41f(%rip), %rsi     # 0x349d6
callq 0x4250
cmpl $0x0, 0x3ed31(%rip)     # 0x482f4
je 0x95d8
leaq -0x410(%rbp), %rdi
leaq 0x2b407(%rip), %rsi     # 0x349da
callq 0x4250
cmpl $0x0, 0x3ed1d(%rip)     # 0x482fc
je 0x9606
cmpl $0x0, 0x3ecf8(%rip)     # 0x482e0
jne 0x9606
cmpl $0x0, 0x3ecf3(%rip)     # 0x482e4
jne 0x9606
leaq -0x410(%rbp), %rdi
leaq 0x2b3dd(%rip), %rsi     # 0x349de
callq 0x4250
movq 0x3bb93(%rip), %rdi     # 0x451a0
callq 0x40f0
cmpq $0x0, %rax
jbe 0x962b
leaq -0x410(%rbp), %rdi
movq 0x3bb7a(%rip), %rsi     # 0x451a0
callq 0x4250
movq -0x8(%rbp), %rdi
leaq -0x410(%rbp), %rdx
leaq 0x2c02c(%rip), %rsi     # 0x35669
movb $0x0, %al
callq 0x4190
movq -0x8(%rbp), %rdi
leaq 0x2d111(%rip), %rsi     # 0x36760
movb $0x0, %al
callq 0x4190
movq -0x8(%rbp), %rdi
leaq 0x2aef9(%rip), %rsi     # 0x3455a
movb $0x0, %al
callq 0x4190
movq -0x8(%rbp), %rdi
leaq 0x2aff7(%rip), %rsi     # 0x3466a
movb $0x0, %al
callq 0x4190
movq -0x8(%rbp), %rdi
leaq 0x2b2a3(%rip), %rsi     # 0x34928
movb $0x0, %al
callq 0x4190
cmpl $0x0, 0x3e555(%rip)     # 0x47be8
je 0x96b1
movq 0x3b95c(%rip), %rax     # 0x44ff8
movq (%rax), %rdi
movq -0x8(%rbp), %rdx
leaq 0x2b338(%rip), %rsi     # 0x349e2
movb $0x0, %al
callq 0x4190
movq -0x8(%rbp), %rdi
callq 0x6d20
addq $0x450, %rsp            # imm = 0x450
popq %rbp
retq
nopw %cs:(%rax,%rax)