// File: /workspace/github_c_makefile_star2_O0/Tarsnap[P]libcperciva/tests/parsenum/main.c
// Function: test_assert_failure
static void
test_assert_failure(const char * argv_1)
{
	size_t assert_num;
	int i;
	double f;
	struct rlimit rlp;

	/* Which test should we attempt? */
	if (PARSENUM(&assert_num, argv_1, 1, 4)) {
		warnp("Parameter should be an error case between 1 and 4: %s",
		    argv_1);
		goto err0;
	}

	/* We know that we'll abort(), so disable core files. */
	rlp.rlim_max = 0;
	rlp.rlim_cur = 0;
	if (setrlimit(RLIMIT_CORE, &rlp)) {
		warnp("setrlimit");
		goto err0;
	}

	/*
	 * Each of these commands should end with an abort().  This will
	 * produce a memory leak due to warnp_setprogname, but that's ok
	 * because if we reach an abort() in a normal program then we have
	 * bigger problems.
	 */
	switch (assert_num) {
	case 1:
		/* Signed integer without specified bounds. */
		if (PARSENUM(&i, "1"))
			goto err0;
		break;
	case 2:
		/* Signed integer without specified bounds (with base). */
		if (PARSENUM_EX(&i, "1", 16, 0))
			goto err0;
		break;
	case 3:
		/* Non-zero base applied to float. */
		if (PARSENUM_EX(&f, "1.23", 16, 0))
			goto err0;
		break;
	case 4:
		/* Non-zero base applied to float (with bounds). */
		if (PARSENUM_EX(&f, "1.23", 0, 2, 16, 0))
			goto err0;
		break;
	default:
		fprintf(stderr, "No such error case.\n");
	}

	/*
	 * We should not reach here, but the test suite is expecting a
	 * non-zero value, so exiting with 0 should produce a problem.
	 */
	exit(0);

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

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x40, %rsp
movq %rdi, -0x8(%rbp)
callq 0x1080
movl $0x0, (%rax)
movq $0x1, -0x10(%rbp)
movq -0x10(%rbp), %rax
shrq %rax
movq %rax, -0x10(%rbp)
cmpq $0x0, %rax
jbe 0x9867
movq -0x8(%rbp), %rdi
movsd 0x17e4(%rip), %xmm0     # 0xb010
movsd 0x1924(%rip), %xmm1     # 0xb158
xorl %esi, %esi
callq 0x9e00
movaps %xmm0, %xmm1
cvttsd2si %xmm1, %rax
movq %rax, %rdx
sarq $0x3f, %rdx
movsd 0x17ce(%rip), %xmm1     # 0xb020
subsd %xmm1, %xmm0
cvttsd2si %xmm0, %rcx
andq %rdx, %rcx
orq %rcx, %rax
movq %rax, -0x10(%rbp)
jmp 0x98e5
movq $-0x1, -0x10(%rbp)
xorl %eax, %eax
testb $0x1, %al
jne 0x9877
jmp 0x98ba
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rdx
xorl %eax, %eax
movl $0x1, %ecx
cmpq $0x0, %rdx
cmovbel %ecx, %eax
movslq %eax, %rsi
movq -0x10(%rbp), %rdx
xorl %eax, %eax
movl $0x4, %ecx
cmpq $0x0, %rdx
cmovbel %ecx, %eax
movslq %eax, %rdx
xorl %r8d, %r8d
movl %r8d, %ecx
callq 0x9eb0
movq %rax, -0x10(%rbp)
movq %rax, -0x38(%rbp)
jmp 0x98e1
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rcx
movl $0x1, %esi
movl $0x4, %edx
xorl %r9d, %r9d
movl %r9d, %r8d
callq 0x9f70
movq %rax, -0x10(%rbp)
xorl %eax, %eax
movq %rax, -0x38(%rbp)
movq -0x38(%rbp), %rax
callq 0x1080
cmpl $0x0, (%rax)
je 0x9933
jmp 0x98f1
callq 0x1080
cmpl $0x0, (%rax)
je 0x991a
movq -0x8(%rbp), %rsi
leaq 0x2560(%rip), %rdi      # 0xbe66
movb $0x0, %al
callq 0xa4c0
callq 0x1080
movl $0x0, (%rax)
jmp 0x992c
movq -0x8(%rbp), %rsi
leaq 0x2541(%rip), %rdi      # 0xbe66
movb $0x0, %al
callq 0xa710
jmp 0x992e
jmp 0x9df5
movq $0x0, -0x28(%rbp)
movq $0x0, -0x30(%rbp)
movl $0x4, %edi
leaq -0x30(%rbp), %rsi
callq 0x1100
cmpl $0x0, %eax
je 0x9992
jmp 0x9958
callq 0x1080
cmpl $0x0, (%rax)
je 0x997d
leaq 0x2533(%rip), %rdi      # 0xbe9c
movb $0x0, %al
callq 0xa4c0
callq 0x1080
movl $0x0, (%rax)
jmp 0x998b
leaq 0x2518(%rip), %rdi      # 0xbe9c
movb $0x0, %al
callq 0xa710
jmp 0x998d
jmp 0x9df5
movq -0x10(%rbp), %rax
decq %rax
movq %rax, -0x40(%rbp)
subq $0x3, %rax
ja 0x9dd6
movq -0x40(%rbp), %rax
leaq 0x1806(%rip), %rcx      # 0xb1b8
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
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 0x9a07
leaq 0x1f28(%rip), %rdi      # 0xb90f
movsd 0x1659(%rip), %xmm0     # 0xb048
movsd 0x1649(%rip), %xmm1     # 0xb040
xorl %esi, %esi
callq 0x9e00
cvttsd2si %xmm0, %eax
movl %eax, -0x14(%rbp)
jmp 0x9a6c
movl $0xffffffff, -0x14(%rbp) # imm = 0xFFFFFFFF
xorl %eax, %eax
testb $0x1, %al
jne 0x9a16
jmp 0x9a39
movslq -0x14(%rbp), %rdx
movslq -0x14(%rbp), %rcx
leaq 0x1eea(%rip), %rdi      # 0xb90f
xorl %eax, %eax
movl %eax, %esi
xorl %r9d, %r9d
movl %r9d, %r8d
callq 0x9f70
movl %eax, -0x14(%rbp)
jmp 0x9a6a
movq 0x45b8(%rip), %rax      # 0xdff8
movq (%rax), %rdi
leaq 0x1d98(%rip), %rsi      # 0xb7e2
leaq 0x2455(%rip), %rdx      # 0xbea6
leaq 0x1dfd(%rip), %rcx      # 0xb855
movl $0xb6, %r8d
movb $0x0, %al
callq 0x10e0
callq 0x1070
jmp 0x9a6c
callq 0x1080
cmpl $0x0, (%rax)
je 0x9a7b
jmp 0x9df5
jmp 0x9dee
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 0x9ad6
movq 0x454c(%rip), %rax      # 0xdff8
movq (%rax), %rdi
leaq 0x1f68(%rip), %rsi      # 0xba1e
leaq 0x23e9(%rip), %rdx      # 0xbea6
leaq 0x1d91(%rip), %rcx      # 0xb855
movl $0xbb, %r8d
movb $0x0, %al
callq 0x10e0
callq 0x1070
movl $0xffffffff, -0x14(%rbp) # imm = 0xFFFFFFFF
xorl %eax, %eax
testb $0x1, %al
jne 0x9ae5
jmp 0x9b0b
movslq -0x14(%rbp), %rdx
movslq -0x14(%rbp), %rcx
leaq 0x1e1b(%rip), %rdi      # 0xb90f
xorl %eax, %eax
movl %eax, %esi
movl $0x10, %r8d
xorl %r9d, %r9d
callq 0x9f70
movl %eax, -0x14(%rbp)
jmp 0x9b3c
movq 0x44e6(%rip), %rax      # 0xdff8
movq (%rax), %rdi
leaq 0x1f60(%rip), %rsi      # 0xba7c
leaq 0x2383(%rip), %rdx      # 0xbea6
leaq 0x1d2b(%rip), %rcx      # 0xb855
movl $0xbb, %r8d
movb $0x0, %al
callq 0x10e0
callq 0x1070
jmp 0x9b3e
callq 0x1080
cmpl $0x0, (%rax)
je 0x9b4d
jmp 0x9df5
jmp 0x9dee
callq 0x1080
movl $0x0, (%rax)
movsd 0x14ab(%rip), %xmm0     # 0xb010
movsd %xmm0, -0x20(%rbp)
movsd -0x20(%rbp), %xmm0
movsd 0x1491(%rip), %xmm1     # 0xb008
divsd %xmm1, %xmm0
movsd %xmm0, -0x20(%rbp)
xorps %xmm1, %xmm1
ucomisd %xmm1, %xmm0
jbe 0x9bba
movq 0x4468(%rip), %rax      # 0xdff8
movq (%rax), %rdi
leaq 0x1e84(%rip), %rsi      # 0xba1e
leaq 0x2305(%rip), %rdx      # 0xbea6
leaq 0x1cad(%rip), %rcx      # 0xb855
movl $0xc0, %r8d
movb $0x0, %al
callq 0x10e0
callq 0x1070
movsd 0x1456(%rip), %xmm0     # 0xb018
movsd %xmm0, -0x20(%rbp)
xorl %eax, %eax
testb $0x1, %al
jne 0x9bcf
jmp 0x9c43
movsd -0x20(%rbp), %xmm0
movsd 0x1444(%rip), %xmm2     # 0xb020
movaps %xmm0, %xmm1
subsd %xmm2, %xmm1
cvttsd2si %xmm1, %rax
cvttsd2si %xmm0, %rcx
movq %rcx, %rdx
sarq $0x3f, %rdx
andq %rdx, %rax
orq %rax, %rcx
leaq 0x22b9(%rip), %rdi      # 0xbeba
xorl %r9d, %r9d
movl %r9d, %esi
movl $0x10, %r8d
movq %rcx, %rdx
callq 0x9f70
movq %rax, %xmm0
movaps 0x154f(%rip), %xmm1     # 0xb170
punpckldq %xmm1, %xmm0    # xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]
movapd 0x1553(%rip), %xmm1     # 0xb180
subpd %xmm1, %xmm0
movaps %xmm0, %xmm1
unpckhpd %xmm0, %xmm0            # xmm0 = xmm0[1,1]
addsd %xmm1, %xmm0
movsd %xmm0, -0x20(%rbp)
jmp 0x9c74
movq 0x43ae(%rip), %rax      # 0xdff8
movq (%rax), %rdi
leaq 0x1e28(%rip), %rsi      # 0xba7c
leaq 0x224b(%rip), %rdx      # 0xbea6
leaq 0x1bf3(%rip), %rcx      # 0xb855
movl $0xc0, %r8d
movb $0x0, %al
callq 0x10e0
callq 0x1070
jmp 0x9c76
callq 0x1080
cmpl $0x0, (%rax)
je 0x9c85
jmp 0x9df5
jmp 0x9dee
callq 0x1080
movl $0x0, (%rax)
movsd 0x1373(%rip), %xmm0     # 0xb010
movsd %xmm0, -0x20(%rbp)
movsd -0x20(%rbp), %xmm0
movsd 0x1359(%rip), %xmm1     # 0xb008
divsd %xmm1, %xmm0
movsd %xmm0, -0x20(%rbp)
xorps %xmm1, %xmm1
ucomisd %xmm1, %xmm0
jbe 0x9cf2
movq 0x4330(%rip), %rax      # 0xdff8
movq (%rax), %rdi
leaq 0x1d4c(%rip), %rsi      # 0xba1e
leaq 0x21cd(%rip), %rdx      # 0xbea6
leaq 0x1b75(%rip), %rcx      # 0xb855
movl $0xc5, %r8d
movb $0x0, %al
callq 0x10e0
callq 0x1070
movsd 0x131e(%rip), %xmm0     # 0xb018
movsd %xmm0, -0x20(%rbp)
movb $0x1, %al
testb $0x1, %al
jne 0x9d07
jmp 0x9d54
movsd -0x20(%rbp), %xmm1
xorps %xmm0, %xmm0
xorl %eax, %eax
ucomisd %xmm1, %xmm0
cmovael %eax, %eax
movslq %eax, %rsi
movsd -0x20(%rbp), %xmm1
xorps %xmm0, %xmm0
xorl %eax, %eax
movl $0x2, %ecx
ucomisd %xmm1, %xmm0
cmovael %ecx, %eax
movslq %eax, %rdx
leaq 0x217f(%rip), %rdi      # 0xbeba
movl $0x10, %ecx
xorl %r8d, %r8d
callq 0x9eb0
cvtsi2sd %rax, %xmm0
movsd %xmm0, -0x20(%rbp)
jmp 0x9dc8
movsd -0x20(%rbp), %xmm0
movsd 0x12bf(%rip), %xmm2     # 0xb020
movaps %xmm0, %xmm1
subsd %xmm2, %xmm1
cvttsd2si %xmm1, %rax
cvttsd2si %xmm0, %rcx
movq %rcx, %rdx
sarq $0x3f, %rdx
andq %rdx, %rax
orq %rax, %rcx
leaq 0x2134(%rip), %rdi      # 0xbeba
xorl %r9d, %r9d
movl %r9d, %esi
movl $0x2, %edx
movl $0x10, %r8d
callq 0x9f70
movq %rax, %xmm0
movaps 0x13c8(%rip), %xmm1     # 0xb170
punpckldq %xmm1, %xmm0    # xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]
movapd 0x13cc(%rip), %xmm1     # 0xb180
subpd %xmm1, %xmm0
movaps %xmm0, %xmm1
unpckhpd %xmm0, %xmm0            # xmm0 = xmm0[1,1]
addsd %xmm1, %xmm0
movsd %xmm0, -0x20(%rbp)
callq 0x1080
cmpl $0x0, (%rax)
je 0x9dd4
jmp 0x9df5
jmp 0x9dee
movq 0x421b(%rip), %rax      # 0xdff8
movq (%rax), %rdi
leaq 0x20d8(%rip), %rsi      # 0xbebf
movb $0x0, %al
callq 0x10e0
xorl %edi, %edi
callq 0x1140
movl $0x1, %edi
callq 0x1140
nop