// File: /workspace/github_c_makefile_star2_O1/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
pushq %r15
pushq %r14
pushq %rbx
pushq %rax
leaq 0x2cad6(%rip), %rax     # 0x399c8
cmpl $0x0, (%rax)
je 0xd093
movq %rsi, %r14
movb 0x2f4c3(%rip), %bpl     # 0x3c3c8
xorl %r15d, %r15d
movb %r15b, 0x2f4b9(%rip)    # 0x3c3c8
movb %r15b, 0x2f4ba(%rip)    # 0x3c3d0
leaq 0x2f4b3(%rip), %rbx     # 0x3c3d0
xorl %esi, %esi
xorl %edx, %edx
callq 0xd0a5
movq %rbx, %rdi
callq 0xccf6
movb %r15b, 0x2f49b(%rip)    # 0x3c3d0
movb %bpl, 0x2f48c(%rip)     # 0x3c3c8
testq %rax, %rax
je 0xd093
movq %rax, %rbx
cmpb $0x0, (%rax)
je 0xd093
leaq 0x2f678(%rip), %rdi     # 0x3c5d0
leaq 0x2d411(%rip), %rsi     # 0x3a370
callq 0x40b0
movb $0x0, 0x2d405(%rip)     # 0x3a370
movq %r14, %rdi
callq 0xadf7
callq 0x42d0
movq (%rax), %rax
movsbq 0x2d3ed(%rip), %rcx     # 0x3a370
testb $0x8, 0x1(%rax,%rcx,2)
je 0xcff5
movsbq (%rbx), %rcx
testb $0x8, 0x1(%rax,%rcx,2)
je 0xcff5
leaq 0x2d3d4(%rip), %rdi     # 0x3a370
callq 0x4270
movl %eax, %ebp
movq %rbx, %rdi
callq 0x4270
movl %eax, %r14d
leaq 0x2cab7(%rip), %rax     # 0x39a6c
testb $0x2, (%rax)
je 0xcfec
leaq 0x2a1cf(%rip), %rax     # 0x37190
movq (%rax), %rsi
cmpl %r14d, %ebp
leaq 0x1800a(%rip), %rax     # 0x24fd8
leaq 0x18153(%rip), %r8      # 0x25128
cmovlq %rax, %r8
leaq 0x18126(%rip), %rdi     # 0x25106
movl %ebp, %edx
movl %r14d, %ecx
xorl %eax, %eax
callq 0x4140
cmpl %r14d, %ebp
jl 0xd076
cmpb $0x0, 0x305d4(%rip)     # 0x3d5d0
je 0xd01b
leaq 0x305cb(%rip), %r14     # 0x3d5d0
movq %r14, %rdi
callq 0x4110
movl $0x20262620, (%rax,%r14) # imm = 0x20262620
movb $0x0, 0x4(%rax,%r14)
leaq 0x305ae(%rip), %r14     # 0x3d5d0
movq %r14, %rdi
callq 0x4110
movw $0x28, (%rax,%r14)
leaq 0x2d338(%rip), %rsi     # 0x3a370
movq %r14, %rdi
callq 0x4280
movq %r14, %rdi
callq 0x4110
movl $0x203c20, (%rax,%r14)  # imm = 0x203C20
movq %r14, %rdi
movq %rbx, %rsi
callq 0x4280
movq %r14, %rdi
callq 0x4110
movw $0x29, (%rax,%r14)
leaq 0x2c9fb(%rip), %rax     # 0x39a6c
testb $0x2, (%rax)
jne 0xd09e
leaq 0x2d2f3(%rip), %rdi     # 0x3a370
leaq 0x2f54c(%rip), %rsi     # 0x3c5d0
addq $0x8, %rsp
popq %rbx
popq %r14
popq %r15
popq %rbp
jmp 0x40b0
addq $0x8, %rsp
popq %rbx
popq %r14
popq %r15
popq %rbp
retq
callq 0x4689
jmp 0xd076