// File: /workspace/github_c_makefile_star2_O0/nimble-code[P]Modex/Src/xtract.c
// Function: array_bound
void
array_bound(treenode *bnm, treenode *indx)
{	int ov = with_decorations;
	char *z;

	if (!visu) return;

	with_decorations = 0;
	strcpy(dername, "");

	dotree(bnm, 0, 0);

	z = which_var(dername);

	strcpy(dername, "");
	with_decorations = ov;

	if (!z || strlen(z) == 0) return;	/* can't find the bound */

	strcpy(Rem4, OutBuf);		/* save */
	strcpy(OutBuf, "");

	modex_recur(indx);

	if (isdigit((int) OutBuf[0])		/* 2 < 100 */
	&&  isdigit((int) z[0]))
	{	int n1, n2;
		n1 = atoi(OutBuf);
		n2 = atoi(z);
		if (Verbose&2)
		printf("%s: precondition (%d < %d == %s)\n",
			progname, n1, n2, (n1 < n2)?"true":"false");
		if (n1 < n2) goto notfound;
	}

	if (strlen(Bounds) > 0)
		strcat(Bounds, " && ");
	strcat(Bounds, "(");
	strcat(Bounds, OutBuf);
	strcat(Bounds, " < ");
	strcat(Bounds, z);
	strcat(Bounds, ")");

	if (Verbose&2) fprintf(stderr, "	Bound %s\n", Bounds);

notfound:
	strcpy(OutBuf, Rem4);		/* restore */
	return;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movl 0x3c862(%rip), %eax     # 0x4a5a8
movl %eax, -0x14(%rbp)
leaq 0x39e50(%rip), %rax     # 0x47ba0
cmpl $0x0, (%rax)
jne 0xdd5a
jmp 0xdf79
movl $0x0, 0x3c844(%rip)     # 0x4a5a8
leaq 0x3c845(%rip), %rdi     # 0x4a5b0
leaq 0x2974c(%rip), %rsi     # 0x374be
callq 0x40a0
movq -0x8(%rbp), %rdi
xorl %edx, %edx
movl %edx, %esi
callq 0xdf80
leaq 0x3c825(%rip), %rdi     # 0x4a5b0
callq 0xd940
movq %rax, -0x20(%rbp)
leaq 0x3c815(%rip), %rdi     # 0x4a5b0
leaq 0x2971c(%rip), %rsi     # 0x374be
callq 0x40a0
movl -0x14(%rbp), %eax
movl %eax, 0x3c7f8(%rip)     # 0x4a5a8
cmpq $0x0, -0x20(%rbp)
je 0xddc6
movq -0x20(%rbp), %rdi
callq 0x40f0
cmpq $0x0, %rax
jne 0xddcb
jmp 0xdf79
leaq 0x3c9de(%rip), %rdi     # 0x4a7b0
leaq 0x3a777(%rip), %rsi     # 0x48550
callq 0x40a0
leaq 0x3a76b(%rip), %rdi     # 0x48550
leaq 0x296d2(%rip), %rsi     # 0x374be
callq 0x40a0
movq -0x10(%rbp), %rdi
callq 0xadb0
callq 0x4290
movq (%rax), %rax
movsbl 0x3a747(%rip), %ecx     # 0x48550
movslq %ecx, %rcx
movzwl (%rax,%rcx,2), %eax
andl $0x800, %eax            # imm = 0x800
cmpl $0x0, %eax
je 0xdeb3
callq 0x4290
movq (%rax), %rax
movq -0x20(%rbp), %rcx
movsbl (%rcx), %ecx
movslq %ecx, %rcx
movzwl (%rax,%rcx,2), %eax
andl $0x800, %eax            # imm = 0x800
cmpl $0x0, %eax
je 0xdeb3
leaq 0x3a70b(%rip), %rdi     # 0x48550
callq 0x4240
movl %eax, -0x24(%rbp)
movq -0x20(%rbp), %rdi
callq 0x4240
movl %eax, -0x28(%rbp)
leaq 0x39dec(%rip), %rax     # 0x47c4c
movl (%rax), %eax
andl $0x2, %eax
cmpl $0x0, %eax
je 0xdea4
leaq 0x372ff(%rip), %rax     # 0x45170
movq (%rax), %rsi
movl -0x24(%rbp), %edx
movl -0x28(%rbp), %ecx
movl -0x24(%rbp), %edi
movl -0x28(%rbp), %r9d
leaq 0x27561(%rip), %r8      # 0x353e9
leaq 0x273b1(%rip), %rax     # 0x35240
cmpl %r9d, %edi
cmovlq %rax, %r8
leaq 0x2752a(%rip), %rdi     # 0x353c7
movb $0x0, %al
callq 0x4120
movl -0x24(%rbp), %eax
cmpl -0x28(%rbp), %eax
jge 0xdeb1
jmp 0xdf66
jmp 0xdeb3
leaq 0x3d8f6(%rip), %rdi     # 0x4b7b0
callq 0x40f0
cmpq $0x0, %rax
jbe 0xded8
leaq 0x3d8e4(%rip), %rdi     # 0x4b7b0
leaq 0x2751c(%rip), %rsi     # 0x353ef
callq 0x4250
leaq 0x3d8d1(%rip), %rdi     # 0x4b7b0
leaq 0x31076(%rip), %rsi     # 0x3ef5c
callq 0x4250
leaq 0x3d8be(%rip), %rdi     # 0x4b7b0
leaq 0x3a657(%rip), %rsi     # 0x48550
callq 0x4250
leaq 0x3d8ab(%rip), %rdi     # 0x4b7b0
leaq 0x274e8(%rip), %rsi     # 0x353f4
callq 0x4250
movq -0x20(%rbp), %rsi
leaq 0x3d894(%rip), %rdi     # 0x4b7b0
callq 0x4250
leaq 0x3d888(%rip), %rdi     # 0x4b7b0
leaq 0x27bba(%rip), %rsi     # 0x35ae9
callq 0x4250
leaq 0x39d11(%rip), %rax     # 0x47c4c
movl (%rax), %eax
andl $0x2, %eax
cmpl $0x0, %eax
je 0xdf64
movq 0x370ac(%rip), %rax     # 0x44ff8
movq (%rax), %rdi
leaq 0x274a2(%rip), %rsi     # 0x353f8
leaq 0x3d853(%rip), %rdx     # 0x4b7b0
movb $0x0, %al
callq 0x4190
jmp 0xdf66
leaq 0x3a5e3(%rip), %rdi     # 0x48550
leaq 0x3c83c(%rip), %rsi     # 0x4a7b0
callq 0x40a0
addq $0x30, %rsp
popq %rbp
retq
nop