// File: /workspace/github_c_makefile_star2_O0/georgeweigt[P]sassafras/sassafras.c
// Function: proc_anova_create_interaction_level_names
void
proc_anova_create_interaction_level_names(int n)
{
	int i, j, k, len, m, x;
	char *name, *s;

	m = dataset->nvar - 1; // index of new interaction column

	for (i = 0; i < n; i++)
		kk[i] = 0;

	for (i = 0; i < dataset->spec[m].num_levels; i++) {

		len = n;

		for (j = 0; j < n; j++) {
			x = xx[j];
			k = kk[j];
			s = dataset->spec[x].ltab[k];
			len += strlen(s);
		}

		name = (char *) xmalloc(len);

		name[0] = 0;

		for (j = 0; j < n; j++) {
			if (j > 0)
				strcat(name, "*");
			x = xx[j];
			k = kk[j];
			s = dataset->spec[x].ltab[k];
			strcat(name, s);
		}

		dataset->spec[m].ltab[i] = name;

		// increment indices

		for (j = n - 1; j >= 0; j--) {
			x = xx[j];
			if (++kk[j] < dataset->spec[x].num_levels)
				break;
			kk[j] = 0;
		}
	}
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movl %edi, -0x4(%rbp)
movq 0x10166(%rip), %rax     # 0x17eb8
movl 0x10(%rax), %eax
subl $0x1, %eax
movl %eax, -0x18(%rbp)
movl $0x0, -0x8(%rbp)
movl -0x8(%rbp), %eax
cmpl -0x4(%rbp), %eax
jge 0x7d87
movslq -0x8(%rbp), %rcx
leaq 0x10b2b(%rip), %rax     # 0x188a0
movl $0x0, (%rax,%rcx,4)
movl -0x8(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x8(%rbp)
jmp 0x7d62
movl $0x0, -0x8(%rbp)
movl -0x8(%rbp), %eax
movq 0x10120(%rip), %rcx     # 0x17eb8
addq $0x20, %rcx
movslq -0x18(%rbp), %rdx
imulq $0x28, %rdx, %rdx
addq %rdx, %rcx
cmpl 0xc(%rcx), %eax
jge 0x7f71
movl -0x4(%rbp), %eax
movl %eax, -0x14(%rbp)
movl $0x0, -0xc(%rbp)
movl -0xc(%rbp), %eax
cmpl -0x4(%rbp), %eax
jge 0x7e2e
movslq -0xc(%rbp), %rcx
leaq 0x107b0(%rip), %rax     # 0x18580
movl (%rax,%rcx,4), %eax
movl %eax, -0x1c(%rbp)
movslq -0xc(%rbp), %rcx
leaq 0x10abf(%rip), %rax     # 0x188a0
movl (%rax,%rcx,4), %eax
movl %eax, -0x10(%rbp)
movq 0x100ca(%rip), %rax     # 0x17eb8
addq $0x20, %rax
movslq -0x1c(%rbp), %rcx
imulq $0x28, %rcx, %rcx
addq %rcx, %rax
movq 0x10(%rax), %rax
movslq -0x10(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movq %rax, -0x30(%rbp)
movq -0x30(%rbp), %rdi
callq 0x2090
movq %rax, %rcx
movslq -0x14(%rbp), %rax
addq %rcx, %rax
movl %eax, -0x14(%rbp)
movl -0xc(%rbp), %eax
addl $0x1, %eax
movl %eax, -0xc(%rbp)
jmp 0x7dbd
movl -0x14(%rbp), %edi
callq 0x2da0
movq %rax, -0x28(%rbp)
movq -0x28(%rbp), %rax
movb $0x0, (%rax)
movl $0x0, -0xc(%rbp)
movl -0xc(%rbp), %eax
cmpl -0x4(%rbp), %eax
jge 0x7ec6
cmpl $0x0, -0xc(%rbp)
jle 0x7e66
movq -0x28(%rbp), %rdi
leaq 0x7a07(%rip), %rsi      # 0xf868
callq 0x21c0
movslq -0xc(%rbp), %rcx
leaq 0x1070f(%rip), %rax     # 0x18580
movl (%rax,%rcx,4), %eax
movl %eax, -0x1c(%rbp)
movslq -0xc(%rbp), %rcx
leaq 0x10a1e(%rip), %rax     # 0x188a0
movl (%rax,%rcx,4), %eax
movl %eax, -0x10(%rbp)
movq 0x10029(%rip), %rax     # 0x17eb8
addq $0x20, %rax
movslq -0x1c(%rbp), %rcx
imulq $0x28, %rcx, %rcx
addq %rcx, %rax
movq 0x10(%rax), %rax
movslq -0x10(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movq %rax, -0x30(%rbp)
movq -0x28(%rbp), %rdi
movq -0x30(%rbp), %rsi
callq 0x21c0
movl -0xc(%rbp), %eax
addl $0x1, %eax
movl %eax, -0xc(%rbp)
jmp 0x7e48
movq -0x28(%rbp), %rdx
movq 0xffe7(%rip), %rax      # 0x17eb8
addq $0x20, %rax
movslq -0x18(%rbp), %rcx
imulq $0x28, %rcx, %rcx
addq %rcx, %rax
movq 0x10(%rax), %rax
movslq -0x8(%rbp), %rcx
movq %rdx, (%rax,%rcx,8)
movl -0x4(%rbp), %eax
subl $0x1, %eax
movl %eax, -0xc(%rbp)
cmpl $0x0, -0xc(%rbp)
jl 0x7f61
movslq -0xc(%rbp), %rcx
leaq 0x1067a(%rip), %rax     # 0x18580
movl (%rax,%rcx,4), %eax
movl %eax, -0x1c(%rbp)
movslq -0xc(%rbp), %rdx
leaq 0x10989(%rip), %rax     # 0x188a0
movl (%rax,%rdx,4), %eax
addl $0x1, %eax
leaq 0x1097c(%rip), %rcx     # 0x188a0
movl %eax, (%rcx,%rdx,4)
movq 0xff8a(%rip), %rcx      # 0x17eb8
addq $0x20, %rcx
movslq -0x1c(%rbp), %rdx
imulq $0x28, %rdx, %rdx
addq %rdx, %rcx
cmpl 0xc(%rcx), %eax
jge 0x7f44
jmp 0x7f61
movslq -0xc(%rbp), %rcx
leaq 0x10951(%rip), %rax     # 0x188a0
movl $0x0, (%rax,%rcx,4)
movl -0xc(%rbp), %eax
addl $-0x1, %eax
movl %eax, -0xc(%rbp)
jmp 0x7ef5
jmp 0x7f63
movl -0x8(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x8(%rbp)
jmp 0x7d8e
addq $0x30, %rsp
popq %rbp
retq
nopw (%rax,%rax)