// File: /workspace/github_c_makefile_star2_O0/Tarsnap[P]libcperciva/tests/fork_func/main.c
// Function: main
int
main(int argc, char ** argv)
{
	int child_ms = -1;
	int num_reps = -1;
	const char * ch;
	enum modes mode = UNSET;

	WARNP_INIT;

	/* Process arguments. */
	while ((ch = GETOPT(argc, argv)) != NULL) {
		GETOPT_SWITCH(ch) {
		GETOPT_OPT("-c"):
			mode = CHECK_ORDER;
			break;
		GETOPT_OPTARG("-d"):
			if (PARSENUM(&child_ms, optarg, 0, 10000)) {
				warnp("parsenum");
				goto err0;
			}
			break;
		GETOPT_OPT("-e"):
			mode = CHECK_EXEC;
			break;
		GETOPT_OPTARG("-n"):
			if (PARSENUM(&num_reps, optarg, 0, 10000)) {
				warnp("parsenum");
				goto err0;
			}
			break;
		GETOPT_OPT("-t"):
			mode = PERFTEST;
			break;
		GETOPT_OPT("-x"):
			mode = CHECK_EXIT;
			break;
		GETOPT_DEFAULT:
			usage();
		}
	}
	argc -= optind;
	argv += optind;

	/* We should have processed all the arguments. */
	if (argc != 0)
		usage();
	(void)argv; /* argv is not used beyond this point. */

	/* Run test. */
	switch (mode) {
	case CHECK_ORDER:
		/* Sanity test. */
		if ((child_ms != -1) || (num_reps != -1))
			usage();

		/* Run check. */
		if (check_order())
			goto err0;
		break;
	case CHECK_EXEC:
		/* Sanity test. */
		if ((child_ms != -1) || (num_reps != -1))
			usage();

		/* Run check. */
		if (check_exec())
			goto err0;
		break;
	case CHECK_EXIT:
		/* Sanity test. */
		if ((child_ms != -1) || (num_reps != -1))
			usage();

		/* Run check. */
		if (check_exit())
			goto err0;
		break;
	case PERFTEST:
		/* Sanity test. */
		if ((child_ms == -1) || (num_reps == -1))
			usage();

		/* Run perftest. */
		if (check_perftest(child_ms, num_reps))
			goto err0;
		break;
	case UNSET:
		usage();
	}

	/* Success! */
	exit(0);

err0:
	/* Failure! */
	exit(1);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x70, %rsp
movl $0x0, -0x4(%rbp)
movl %edi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movl $0xffffffff, -0x14(%rbp) # imm = 0xFFFFFFFF
movl $0xffffffff, -0x18(%rbp) # imm = 0xFFFFFFFF
movl $0x0, -0x24(%rbp)
movq -0x10(%rbp), %rax
cmpq $0x0, (%rax)
je 0x1381
movq -0x10(%rbp), %rax
movq (%rax), %rdi
callq 0x3680
jmp 0x1383
jmp 0x1385
movl -0x8(%rbp), %edi
movq -0x10(%rbp), %rsi
callq 0x2650
movq %rax, -0x20(%rbp)
cmpq $0x0, %rax
je 0x1862
movq $0x27, -0x30(%rbp)
movq -0x30(%rbp), %rax
decq %rax
movq %rax, -0x38(%rbp)
movl $0x0, -0x3c(%rbp)
leaq 0x4(%rip), %rax         # 0x13c4
movq %rax, -0x48(%rbp)
leaq 0x4dad(%rip), %rax      # 0x6178
cmpl $0x0, (%rax)
je 0x13e6
movq -0x20(%rbp), %rdi
callq 0x2d10
movq -0x30(%rbp), %rcx
addq %rcx, %rax
movq %rax, -0x50(%rbp)
jmp 0x13f9
movq -0x38(%rbp), %rax
movq %rax, %rcx
addq $0x1, %rcx
movq %rcx, -0x38(%rbp)
movq %rax, -0x50(%rbp)
movq -0x50(%rbp), %rax
addq $-0x28, %rax
movq %rax, -0x58(%rbp)
subq $0x18, %rax
ja 0x181d
movq -0x58(%rbp), %rax
leaq 0x2c0a(%rip), %rcx      # 0x4024
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
leaq 0x4d4e(%rip), %rax      # 0x6178
cmpl $0x0, (%rax)
je 0x1431
jmp 0x1458
movq -0x30(%rbp), %rax
movl $0x28, %esi
subq %rax, %rsi
leaq 0x2c44(%rip), %rdi      # 0x4088
xorl %edx, %edx
callq 0x2e60
movq -0x48(%rbp), %rax
movq %rax, -0x60(%rbp)
jmp 0x1956
movl $0x1, -0x24(%rbp)
jmp 0x185d
leaq 0x4d0d(%rip), %rax      # 0x6178
cmpl $0x0, (%rax)
je 0x14a0
leaq 0x4cf9(%rip), %rax      # 0x6170
cmpq $0x0, (%rax)
je 0x147f
jmp 0x149e
leaq 0x2c05(%rip), %rdi      # 0x408b
leaq 0x2c0d(%rip), %rsi      # 0x409a
movl $0x2b, %edx
leaq 0x2c08(%rip), %rcx      # 0x40a1
callq 0x1110
jmp 0x14ca
movq -0x30(%rbp), %rax
movl $0x2b, %esi
subq %rax, %rsi
leaq 0x2c05(%rip), %rdi      # 0x40b8
movl $0x1, %edx
callq 0x2e60
movq -0x48(%rbp), %rax
movq %rax, -0x60(%rbp)
jmp 0x1956
callq 0x1080
movl $0x0, (%rax)
movl $0x1, -0x14(%rbp)
movl -0x14(%rbp), %eax
movl $0x2, %ecx
cltd
idivl %ecx
movl %eax, -0x14(%rbp)
cmpl $0x0, %eax
jle 0x1514
leaq 0x4c7a(%rip), %rax      # 0x6170
movq (%rax), %rdi
xorps %xmm0, %xmm0
movsd 0x2b04(%rip), %xmm1     # 0x4008
xorl %esi, %esi
callq 0x1960
cvttsd2si %xmm0, %eax
movl %eax, -0x14(%rbp)
jmp 0x158e
movl $0xffffffff, -0x14(%rbp) # imm = 0xFFFFFFFF
movb $0x1, %al
testb $0x1, %al
jne 0x1523
jmp 0x1561
leaq 0x4c46(%rip), %rax      # 0x6170
movq (%rax), %rdi
movl -0x14(%rbp), %ecx
xorl %eax, %eax
cmpl $0x0, %ecx
cmovlel %eax, %eax
movslq %eax, %rsi
movl -0x14(%rbp), %edx
xorl %eax, %eax
movl $0x2710, %ecx           # imm = 0x2710
cmpl $0x0, %edx
cmovlel %ecx, %eax
movslq %eax, %rdx
xorl %r8d, %r8d
movl %r8d, %ecx
callq 0x1a10
movl %eax, -0x14(%rbp)
movl %eax, -0x64(%rbp)
jmp 0x158b
leaq 0x4c08(%rip), %rax      # 0x6170
movq (%rax), %rdi
movslq -0x14(%rbp), %rcx
xorl %eax, %eax
movl %eax, %esi
movl $0x2710, %edx           # imm = 0x2710
xorl %r9d, %r9d
movl %r9d, %r8d
callq 0x1ad0
movl %eax, -0x14(%rbp)
xorl %eax, %eax
movl %eax, -0x64(%rbp)
movl -0x64(%rbp), %eax
callq 0x1080
cmpl $0x0, (%rax)
je 0x15d4
jmp 0x159a
callq 0x1080
cmpl $0x0, (%rax)
je 0x15bf
leaq 0x2b10(%rip), %rdi      # 0x40bb
movb $0x0, %al
callq 0x3740
callq 0x1080
movl $0x0, (%rax)
jmp 0x15cd
leaq 0x2af5(%rip), %rdi      # 0x40bb
movb $0x0, %al
callq 0x3990
jmp 0x15cf
jmp 0x194c
jmp 0x185d
leaq 0x4b98(%rip), %rax      # 0x6178
cmpl $0x0, (%rax)
je 0x15e7
jmp 0x160e
movq -0x30(%rbp), %rax
movl $0x31, %esi
subq %rax, %rsi
leaq 0x2aca(%rip), %rdi      # 0x40c4
xorl %edx, %edx
callq 0x2e60
movq -0x48(%rbp), %rax
movq %rax, -0x60(%rbp)
jmp 0x1956
movl $0x2, -0x24(%rbp)
jmp 0x185d
leaq 0x4b57(%rip), %rax      # 0x6178
cmpl $0x0, (%rax)
je 0x1656
leaq 0x4b43(%rip), %rax      # 0x6170
cmpq $0x0, (%rax)
je 0x1635
jmp 0x1654
leaq 0x2a4f(%rip), %rdi      # 0x408b
leaq 0x2a57(%rip), %rsi      # 0x409a
movl $0x34, %edx
leaq 0x2a52(%rip), %rcx      # 0x40a1
callq 0x1110
jmp 0x1680
movq -0x30(%rbp), %rax
movl $0x34, %esi
subq %rax, %rsi
leaq 0x2a5e(%rip), %rdi      # 0x40c7
movl $0x1, %edx
callq 0x2e60
movq -0x48(%rbp), %rax
movq %rax, -0x60(%rbp)
jmp 0x1956
callq 0x1080
movl $0x0, (%rax)
movl $0x1, -0x18(%rbp)
movl -0x18(%rbp), %eax
movl $0x2, %ecx
cltd
idivl %ecx
movl %eax, -0x18(%rbp)
cmpl $0x0, %eax
jle 0x16ca
leaq 0x4ac4(%rip), %rax      # 0x6170
movq (%rax), %rdi
xorps %xmm0, %xmm0
movsd 0x294e(%rip), %xmm1     # 0x4008
xorl %esi, %esi
callq 0x1960
cvttsd2si %xmm0, %eax
movl %eax, -0x18(%rbp)
jmp 0x1744
movl $0xffffffff, -0x18(%rbp) # imm = 0xFFFFFFFF
movb $0x1, %al
testb $0x1, %al
jne 0x16d9
jmp 0x1717
leaq 0x4a90(%rip), %rax      # 0x6170
movq (%rax), %rdi
movl -0x18(%rbp), %ecx
xorl %eax, %eax
cmpl $0x0, %ecx
cmovlel %eax, %eax
movslq %eax, %rsi
movl -0x18(%rbp), %edx
xorl %eax, %eax
movl $0x2710, %ecx           # imm = 0x2710
cmpl $0x0, %edx
cmovlel %ecx, %eax
movslq %eax, %rdx
xorl %r8d, %r8d
movl %r8d, %ecx
callq 0x1a10
movl %eax, -0x18(%rbp)
movl %eax, -0x68(%rbp)
jmp 0x1741
leaq 0x4a52(%rip), %rax      # 0x6170
movq (%rax), %rdi
movslq -0x18(%rbp), %rcx
xorl %eax, %eax
movl %eax, %esi
movl $0x2710, %edx           # imm = 0x2710
xorl %r9d, %r9d
movl %r9d, %r8d
callq 0x1ad0
movl %eax, -0x18(%rbp)
xorl %eax, %eax
movl %eax, -0x68(%rbp)
movl -0x68(%rbp), %eax
callq 0x1080
cmpl $0x0, (%rax)
je 0x178a
jmp 0x1750
callq 0x1080
cmpl $0x0, (%rax)
je 0x1775
leaq 0x295a(%rip), %rdi      # 0x40bb
movb $0x0, %al
callq 0x3740
callq 0x1080
movl $0x0, (%rax)
jmp 0x1783
leaq 0x293f(%rip), %rdi      # 0x40bb
movb $0x0, %al
callq 0x3990
jmp 0x1785
jmp 0x194c
jmp 0x185d
leaq 0x49e2(%rip), %rax      # 0x6178
cmpl $0x0, (%rax)
je 0x179d
jmp 0x17c4
movq -0x30(%rbp), %rax
movl $0x3a, %esi
subq %rax, %rsi
leaq 0x291a(%rip), %rdi      # 0x40ca
xorl %edx, %edx
callq 0x2e60
movq -0x48(%rbp), %rax
movq %rax, -0x60(%rbp)
jmp 0x1956
movl $0x4, -0x24(%rbp)
jmp 0x185d
leaq 0x49a1(%rip), %rax      # 0x6178
cmpl $0x0, (%rax)
je 0x17de
jmp 0x1805
movq -0x30(%rbp), %rax
movl $0x3d, %esi
subq %rax, %rsi
leaq 0x28dc(%rip), %rdi      # 0x40cd
xorl %edx, %edx
callq 0x2e60
movq -0x48(%rbp), %rax
movq %rax, -0x60(%rbp)
jmp 0x1956
movl $0x3, -0x24(%rbp)
jmp 0x185d
leaq 0x4963(%rip), %rax      # 0x6178
movl $0x1, (%rax)
jmp 0x185d
leaq 0x4954(%rip), %rax      # 0x6178
cmpl $0x0, (%rax)
je 0x182b
jmp 0x1858
movl -0x3c(%rbp), %eax
cmpl $0x0, %eax
jne 0x184b
movq -0x30(%rbp), %rax
movl $0x40, %edi
subq %rax, %rdi
callq 0x31b0
movl $0x1, -0x3c(%rbp)
movq -0x48(%rbp), %rax
movq %rax, -0x60(%rbp)
jmp 0x1956
callq 0x1b90
jmp 0x1385
leaq 0x48df(%rip), %rax      # 0x6148
movl (%rax), %ecx
movl -0x8(%rbp), %eax
subl %ecx, %eax
movl %eax, -0x8(%rbp)
leaq 0x48ce(%rip), %rax      # 0x6148
movl (%rax), %ecx
movq -0x10(%rbp), %rax
movslq %ecx, %rcx
shlq $0x3, %rcx
addq %rcx, %rax
movq %rax, -0x10(%rbp)
cmpl $0x0, -0x8(%rbp)
je 0x1899
callq 0x1b90
movl -0x24(%rbp), %eax
movq %rax, -0x70(%rbp)
subq $0x4, %rax
ja 0x1945
movq -0x70(%rbp), %rax
leaq 0x275b(%rip), %rcx      # 0x4010
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
cmpl $-0x1, -0x14(%rbp)
jne 0x18ca
cmpl $-0x1, -0x18(%rbp)
je 0x18cf
callq 0x1b90
callq 0x1d30
cmpl $0x0, %eax
je 0x18db
jmp 0x194c
jmp 0x1945
cmpl $-0x1, -0x14(%rbp)
jne 0x18e9
cmpl $-0x1, -0x18(%rbp)
je 0x18ee
callq 0x1b90
callq 0x1bd0
cmpl $0x0, %eax
je 0x18fa
jmp 0x194c
jmp 0x1945
cmpl $-0x1, -0x14(%rbp)
jne 0x1908
cmpl $-0x1, -0x18(%rbp)
je 0x190d
callq 0x1b90
callq 0x1c90
cmpl $0x0, %eax
je 0x1919
jmp 0x194c
jmp 0x1945
cmpl $-0x1, -0x14(%rbp)
je 0x1927
cmpl $-0x1, -0x18(%rbp)
jne 0x192c
callq 0x1b90
movl -0x14(%rbp), %edi
movl -0x18(%rbp), %esi
callq 0x1f80
cmpl $0x0, %eax
je 0x193e
jmp 0x194c
jmp 0x1945
callq 0x1b90
xorl %edi, %edi
callq 0x11e0
movl $0x1, %edi
callq 0x11e0
movq -0x60(%rbp), %rax
jmpq *%rax
nopl (%rax)