// File: /workspace/github_c_makefile_star2_O0/georgeweigt[P]sassafras/sassafras.c
// Function: proc_anova_print_means
void
proc_anova_print_means(int x)
{
	int i, j, m, n;
	double q, t;
	char **a, *b, *s;

	q = qt(1 - alpha / 2, dfe);

	emit_line_center("Mean Response");
	emit_line("");

	// count the number of interactions

	m = 0;
	s = dataset->spec[x].name;
	while (*s)
		if (*s++ == '*')
			m++;

	n = dataset->spec[x].num_levels;

	a = (char **) xmalloc((5 + m) * (n + 1) * sizeof (char *));

	// split up interaction string

	s = dataset->spec[x].name;
	for (i = 0; i < m + 1; i++) {
		b = bigbuf;
		while (*s && *s != '*')
			*b++ = *s++;
		if (*s)
			s++;
		*b = 0;
		A(0, i) = strdup(bigbuf);
	}

	A(0, m + 1) = strdup("N");

	s = dataset->spec[yvar].name;
	snprintf(bigbuf, BIGBUFLEN, "Mean %s", s);
	A(0, m + 2) = strdup(bigbuf);

	snprintf(bigbuf, BIGBUFLEN, "%g%% CI MIN", 100 * (1 - alpha));
	A(0, m + 3) = strdup(bigbuf);

	snprintf(bigbuf, BIGBUFLEN, "%g%% CI MAX", 100 * (1 - alpha));
	A(0, m + 4) = strdup(bigbuf);

	for (i = 0; i < n; i++) {

		// Level (decompose interactions)

		s = dataset->spec[x].ltab[i];
		for (j = 0; j < m + 1; j++) {
			b = bigbuf;
			while (*s && *s != '*')
				*b++ = *s++;
			if (*s)
				s++;
			*b = 0;
			A(i + 1, j) = strdup(bigbuf);
		}

		// N

		snprintf(bigbuf, BIGBUFLEN, "%d", count[i]);
		A(i + 1, m + 1) = strdup(bigbuf);

		if (count[i] < 1) {
			A(i + 1, m + 2) = strdup(".");
			A(i + 1, m + 3) = strdup(".");
			A(i + 1, m + 4) = strdup(".");
			continue;
		}

		// Mean

		snprintf(bigbuf, BIGBUFLEN, "%0.6f", mean[i]);
		A(i + 1, m + 2) = strdup(bigbuf);

		// Confidence Interval

		t = q * sqrt(mse / count[i]);

		snprintf(bigbuf, BIGBUFLEN, "%0.6f", mean[i] - t);
		A(i + 1, m + 3) = strdup(bigbuf);

		snprintf(bigbuf, BIGBUFLEN, "%0.6f", mean[i] + t);
		A(i + 1, m + 4) = strdup(bigbuf);
	}

	for (i = 0; i < m + 1; i++)
		bigbuf[i] = 1;
	bigbuf[m + 1] = 0;
	bigbuf[m + 2] = 0;
	bigbuf[m + 3] = 0;
	bigbuf[m + 4] = 0;

	print_table_and_free(a, n + 1, 5 + m, bigbuf);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x50, %rsp
movl %edi, -0x4(%rbp)
movsd 0x11e65(%rip), %xmm1    # 0x17ec8
movsd 0x917d(%rip), %xmm0     # 0xf1e8
divsd %xmm0, %xmm1
movsd 0x9169(%rip), %xmm0     # 0xf1e0
subsd %xmm1, %xmm0
movsd 0x129bd(%rip), %xmm1    # 0x18a40
callq 0x9da0
movsd %xmm0, -0x20(%rbp)
leaq 0x9756(%rip), %rdi      # 0xf7ea
callq 0x4c20
leaq 0x933f(%rip), %rdi      # 0xf3df
callq 0x4bf0
movl $0x0, -0x10(%rbp)
movq 0x11e05(%rip), %rax     # 0x17eb8
addq $0x20, %rax
movslq -0x4(%rbp), %rcx
imulq $0x28, %rcx, %rcx
addq %rcx, %rax
movq (%rax), %rax
movq %rax, -0x40(%rbp)
movq -0x40(%rbp), %rax
cmpb $0x0, (%rax)
je 0x60f4
movq -0x40(%rbp), %rax
movq %rax, %rcx
addq $0x1, %rcx
movq %rcx, -0x40(%rbp)
movsbl (%rax), %eax
cmpl $0x2a, %eax
jne 0x60f2
movl -0x10(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x10(%rbp)
jmp 0x60c9
movq 0x11dbd(%rip), %rax     # 0x17eb8
addq $0x20, %rax
movslq -0x4(%rbp), %rcx
imulq $0x28, %rcx, %rcx
addq %rcx, %rax
movl 0xc(%rax), %eax
movl %eax, -0x14(%rbp)
movl -0x10(%rbp), %eax
addl $0x5, %eax
movl -0x14(%rbp), %ecx
addl $0x1, %ecx
imull %ecx, %eax
cltq
shlq $0x3, %rax
movl %eax, %edi
callq 0x2da0
movq %rax, -0x30(%rbp)
movq 0x11d81(%rip), %rax     # 0x17eb8
addq $0x20, %rax
movslq -0x4(%rbp), %rcx
imulq $0x28, %rcx, %rcx
addq %rcx, %rax
movq (%rax), %rax
movq %rax, -0x40(%rbp)
movl $0x0, -0x8(%rbp)
movl -0x8(%rbp), %eax
movl -0x10(%rbp), %ecx
addl $0x1, %ecx
cmpl %ecx, %eax
jge 0x6216
leaq 0x10d44(%rip), %rax     # 0x16eb0
movq %rax, -0x38(%rbp)
movq -0x40(%rbp), %rax
movsbl (%rax), %ecx
xorl %eax, %eax
cmpl $0x0, %ecx
movb %al, -0x41(%rbp)
je 0x6191
movq -0x40(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x2a, %eax
setne %al
movb %al, -0x41(%rbp)
movb -0x41(%rbp), %al
testb $0x1, %al
jne 0x619a
jmp 0x61be
movq -0x40(%rbp), %rax
movq %rax, %rcx
addq $0x1, %rcx
movq %rcx, -0x40(%rbp)
movb (%rax), %cl
movq -0x38(%rbp), %rax
movq %rax, %rdx
addq $0x1, %rdx
movq %rdx, -0x38(%rbp)
movb %cl, (%rax)
jmp 0x6170
movq -0x40(%rbp), %rax
cmpb $0x0, (%rax)
je 0x61d3
movq -0x40(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x40(%rbp)
movq -0x38(%rbp), %rax
movb $0x0, (%rax)
leaq 0x10ccf(%rip), %rdi     # 0x16eb0
callq 0x21f0
movq %rax, %rdx
movq -0x30(%rbp), %rax
movl -0x10(%rbp), %ecx
addl $0x5, %ecx
imull $0x0, %ecx, %ecx
movslq %ecx, %rcx
shlq $0x3, %rcx
addq %rcx, %rax
movslq -0x8(%rbp), %rcx
movq %rdx, (%rax,%rcx,8)
movl -0x8(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x8(%rbp)
jmp 0x6154
leaq 0x98f7(%rip), %rdi      # 0xfb14
callq 0x21f0
movq %rax, %rdx
movq -0x30(%rbp), %rax
movl -0x10(%rbp), %ecx
addl $0x5, %ecx
imull $0x0, %ecx, %ecx
movslq %ecx, %rcx
shlq $0x3, %rcx
addq %rcx, %rax
movl -0x10(%rbp), %ecx
addl $0x1, %ecx
movslq %ecx, %rcx
movq %rdx, (%rax,%rcx,8)
movq 0x11c68(%rip), %rax     # 0x17eb8
addq $0x20, %rax
movslq 0x12315(%rip), %rcx     # 0x18570
imulq $0x28, %rcx, %rcx
addq %rcx, %rax
movq (%rax), %rax
movq %rax, -0x40(%rbp)
movq -0x40(%rbp), %rcx
leaq 0x10c3c(%rip), %rdi     # 0x16eb0
movl $0xfa0, %esi            # imm = 0xFA0
leaq 0x9578(%rip), %rdx      # 0xf7f8
movb $0x0, %al
callq 0x20c0
leaq 0x10c22(%rip), %rdi     # 0x16eb0
callq 0x21f0
movq %rax, %rdx
movq -0x30(%rbp), %rax
movl -0x10(%rbp), %ecx
addl $0x5, %ecx
imull $0x0, %ecx, %ecx
movslq %ecx, %rcx
shlq $0x3, %rcx
addq %rcx, %rax
movl -0x10(%rbp), %ecx
addl $0x2, %ecx
movslq %ecx, %rcx
movq %rdx, (%rax,%rcx,8)
movsd 0x8f1e(%rip), %xmm1     # 0xf1e0
subsd 0x11bfe(%rip), %xmm1    # 0x17ec8
movsd 0x8f3e(%rip), %xmm0     # 0xf210
mulsd %xmm1, %xmm0
leaq 0x10bd3(%rip), %rdi     # 0x16eb0
movl $0xfa0, %esi            # imm = 0xFA0
leaq 0x9517(%rip), %rdx      # 0xf800
movb $0x1, %al
callq 0x20c0
leaq 0x10bb9(%rip), %rdi     # 0x16eb0
callq 0x21f0
movq %rax, %rdx
movq -0x30(%rbp), %rax
movl -0x10(%rbp), %ecx
addl $0x5, %ecx
imull $0x0, %ecx, %ecx
movslq %ecx, %rcx
shlq $0x3, %rcx
addq %rcx, %rax
movl -0x10(%rbp), %ecx
addl $0x3, %ecx
movslq %ecx, %rcx
movq %rdx, (%rax,%rcx,8)
movsd 0x8eb5(%rip), %xmm1     # 0xf1e0
subsd 0x11b95(%rip), %xmm1    # 0x17ec8
movsd 0x8ed5(%rip), %xmm0     # 0xf210
mulsd %xmm1, %xmm0
leaq 0x10b6a(%rip), %rdi     # 0x16eb0
movl $0xfa0, %esi            # imm = 0xFA0
leaq 0x94ba(%rip), %rdx      # 0xf80c
movb $0x1, %al
callq 0x20c0
leaq 0x10b50(%rip), %rdi     # 0x16eb0
callq 0x21f0
movq %rax, %rdx
movq -0x30(%rbp), %rax
movl -0x10(%rbp), %ecx
addl $0x5, %ecx
imull $0x0, %ecx, %ecx
movslq %ecx, %rcx
shlq $0x3, %rcx
addq %rcx, %rax
movl -0x10(%rbp), %ecx
addl $0x4, %ecx
movslq %ecx, %rcx
movq %rdx, (%rax,%rcx,8)
movl $0x0, -0x8(%rbp)
movl -0x8(%rbp), %eax
cmpl -0x14(%rbp), %eax
jge 0x6737
movq 0x11b12(%rip), %rax     # 0x17eb8
addq $0x20, %rax
movslq -0x4(%rbp), %rcx
imulq $0x28, %rcx, %rcx
addq %rcx, %rax
movq 0x10(%rax), %rax
movslq -0x8(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movq %rax, -0x40(%rbp)
movl $0x0, -0xc(%rbp)
movl -0xc(%rbp), %eax
movl -0x10(%rbp), %ecx
addl $0x1, %ecx
cmpl %ecx, %eax
jge 0x6494
leaq 0x10acc(%rip), %rax     # 0x16eb0
movq %rax, -0x38(%rbp)
movq -0x40(%rbp), %rax
movsbl (%rax), %ecx
xorl %eax, %eax
cmpl $0x0, %ecx
movb %al, -0x42(%rbp)
je 0x6409
movq -0x40(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x2a, %eax
setne %al
movb %al, -0x42(%rbp)
movb -0x42(%rbp), %al
testb $0x1, %al
jne 0x6412
jmp 0x6436
movq -0x40(%rbp), %rax
movq %rax, %rcx
addq $0x1, %rcx
movq %rcx, -0x40(%rbp)
movb (%rax), %cl
movq -0x38(%rbp), %rax
movq %rax, %rdx
addq $0x1, %rdx
movq %rdx, -0x38(%rbp)
movb %cl, (%rax)
jmp 0x63e8
movq -0x40(%rbp), %rax
cmpb $0x0, (%rax)
je 0x644b
movq -0x40(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x40(%rbp)
movq -0x38(%rbp), %rax
movb $0x0, (%rax)
leaq 0x10a57(%rip), %rdi     # 0x16eb0
callq 0x21f0
movq %rax, %rdx
movq -0x30(%rbp), %rax
movl -0x10(%rbp), %ecx
addl $0x5, %ecx
movl -0x8(%rbp), %esi
addl $0x1, %esi
imull %esi, %ecx
movslq %ecx, %rcx
shlq $0x3, %rcx
addq %rcx, %rax
movslq -0xc(%rbp), %rcx
movq %rdx, (%rax,%rcx,8)
movl -0xc(%rbp), %eax
addl $0x1, %eax
movl %eax, -0xc(%rbp)
jmp 0x63cc
movslq -0x8(%rbp), %rcx
leaq 0x13151(%rip), %rax     # 0x195f0
movl (%rax,%rcx,4), %ecx
leaq 0x10a07(%rip), %rdi     # 0x16eb0
movl $0xfa0, %esi            # imm = 0xFA0
leaq 0x8e8b(%rip), %rdx      # 0xf340
movb $0x0, %al
callq 0x20c0
leaq 0x109ed(%rip), %rdi     # 0x16eb0
callq 0x21f0
movq %rax, %rdx
movq -0x30(%rbp), %rax
movl -0x10(%rbp), %ecx
addl $0x5, %ecx
movl -0x8(%rbp), %esi
addl $0x1, %esi
imull %esi, %ecx
movslq %ecx, %rcx
shlq $0x3, %rcx
addq %rcx, %rax
movl -0x10(%rbp), %ecx
addl $0x1, %ecx
movslq %ecx, %rcx
movq %rdx, (%rax,%rcx,8)
movslq -0x8(%rbp), %rcx
leaq 0x130f0(%rip), %rax     # 0x195f0
cmpl $0x1, (%rax,%rcx,4)
jge 0x65ba
leaq 0x92c7(%rip), %rdi      # 0xf7d8
callq 0x21f0
movq %rax, %rdx
movq -0x30(%rbp), %rax
movl -0x10(%rbp), %ecx
addl $0x5, %ecx
movl -0x8(%rbp), %esi
addl $0x1, %esi
imull %esi, %ecx
movslq %ecx, %rcx
shlq $0x3, %rcx
addq %rcx, %rax
movl -0x10(%rbp), %ecx
addl $0x2, %ecx
movslq %ecx, %rcx
movq %rdx, (%rax,%rcx,8)
leaq 0x928e(%rip), %rdi      # 0xf7d8
callq 0x21f0
movq %rax, %rdx
movq -0x30(%rbp), %rax
movl -0x10(%rbp), %ecx
addl $0x5, %ecx
movl -0x8(%rbp), %esi
addl $0x1, %esi
imull %esi, %ecx
movslq %ecx, %rcx
shlq $0x3, %rcx
addq %rcx, %rax
movl -0x10(%rbp), %ecx
addl $0x3, %ecx
movslq %ecx, %rcx
movq %rdx, (%rax,%rcx,8)
leaq 0x9255(%rip), %rdi      # 0xf7d8
callq 0x21f0
movq %rax, %rdx
movq -0x30(%rbp), %rax
movl -0x10(%rbp), %ecx
addl $0x5, %ecx
movl -0x8(%rbp), %esi
addl $0x1, %esi
imull %esi, %ecx
movslq %ecx, %rcx
shlq $0x3, %rcx
addq %rcx, %rax
movl -0x10(%rbp), %ecx
addl $0x4, %ecx
movslq %ecx, %rcx
movq %rdx, (%rax,%rcx,8)
jmp 0x6729
movslq -0x8(%rbp), %rcx
leaq 0x129eb(%rip), %rax     # 0x18fb0
movsd (%rax,%rcx,8), %xmm0
leaq 0x108df(%rip), %rdi     # 0x16eb0
movl $0xfa0, %esi            # imm = 0xFA0
leaq 0x8ca7(%rip), %rdx      # 0xf284
movb $0x1, %al
callq 0x20c0
leaq 0x108c5(%rip), %rdi     # 0x16eb0
callq 0x21f0
movq %rax, %rdx
movq -0x30(%rbp), %rax
movl -0x10(%rbp), %ecx
addl $0x5, %ecx
movl -0x8(%rbp), %esi
addl $0x1, %esi
imull %esi, %ecx
movslq %ecx, %rcx
shlq $0x3, %rcx
addq %rcx, %rax
movl -0x10(%rbp), %ecx
addl $0x2, %ecx
movslq %ecx, %rcx
movq %rdx, (%rax,%rcx,8)
movsd -0x20(%rbp), %xmm0
movsd %xmm0, -0x50(%rbp)
movsd 0x12421(%rip), %xmm0    # 0x18a50
movslq -0x8(%rbp), %rcx
leaq 0x12fb6(%rip), %rax     # 0x195f0
cvtsi2sdl (%rax,%rcx,4), %xmm1
divsd %xmm1, %xmm0
callq 0x21e0
movaps %xmm0, %xmm1
movsd -0x50(%rbp), %xmm0
mulsd %xmm1, %xmm0
movsd %xmm0, -0x28(%rbp)
movslq -0x8(%rbp), %rcx
leaq 0x1294c(%rip), %rax     # 0x18fb0
movsd (%rax,%rcx,8), %xmm0
subsd -0x28(%rbp), %xmm0
leaq 0x1083b(%rip), %rdi     # 0x16eb0
movl $0xfa0, %esi            # imm = 0xFA0
leaq 0x8c03(%rip), %rdx      # 0xf284
movb $0x1, %al
callq 0x20c0
leaq 0x10821(%rip), %rdi     # 0x16eb0
callq 0x21f0
movq %rax, %rdx
movq -0x30(%rbp), %rax
movl -0x10(%rbp), %ecx
addl $0x5, %ecx
movl -0x8(%rbp), %esi
addl $0x1, %esi
imull %esi, %ecx
movslq %ecx, %rcx
shlq $0x3, %rcx
addq %rcx, %rax
movl -0x10(%rbp), %ecx
addl $0x3, %ecx
movslq %ecx, %rcx
movq %rdx, (%rax,%rcx,8)
movslq -0x8(%rbp), %rcx
leaq 0x128e4(%rip), %rax     # 0x18fb0
movsd (%rax,%rcx,8), %xmm0
addsd -0x28(%rbp), %xmm0
leaq 0x107d3(%rip), %rdi     # 0x16eb0
movl $0xfa0, %esi            # imm = 0xFA0
leaq 0x8b9b(%rip), %rdx      # 0xf284
movb $0x1, %al
callq 0x20c0
leaq 0x107b9(%rip), %rdi     # 0x16eb0
callq 0x21f0
movq %rax, %rdx
movq -0x30(%rbp), %rax
movl -0x10(%rbp), %ecx
addl $0x5, %ecx
movl -0x8(%rbp), %esi
addl $0x1, %esi
imull %esi, %ecx
movslq %ecx, %rcx
shlq $0x3, %rcx
addq %rcx, %rax
movl -0x10(%rbp), %ecx
addl $0x4, %ecx
movslq %ecx, %rcx
movq %rdx, (%rax,%rcx,8)
movl -0x8(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x8(%rbp)
jmp 0x6393
movl $0x0, -0x8(%rbp)
movl -0x8(%rbp), %eax
movl -0x10(%rbp), %ecx
addl $0x1, %ecx
cmpl %ecx, %eax
jge 0x6765
movslq -0x8(%rbp), %rcx
leaq 0x1075a(%rip), %rax     # 0x16eb0
movb $0x1, (%rax,%rcx)
movl -0x8(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x8(%rbp)
jmp 0x673e
movl -0x10(%rbp), %eax
addl $0x1, %eax
movslq %eax, %rcx
leaq 0x1073b(%rip), %rax     # 0x16eb0
movb $0x0, (%rax,%rcx)
movl -0x10(%rbp), %eax
addl $0x2, %eax
movslq %eax, %rcx
leaq 0x10727(%rip), %rax     # 0x16eb0
movb $0x0, (%rax,%rcx)
movl -0x10(%rbp), %eax
addl $0x3, %eax
movslq %eax, %rcx
leaq 0x10713(%rip), %rax     # 0x16eb0
movb $0x0, (%rax,%rcx)
movl -0x10(%rbp), %eax
addl $0x4, %eax
movslq %eax, %rcx
leaq 0x106ff(%rip), %rax     # 0x16eb0
movb $0x0, (%rax,%rcx)
movq -0x30(%rbp), %rdi
movl -0x14(%rbp), %esi
addl $0x1, %esi
movl -0x10(%rbp), %edx
addl $0x5, %edx
leaq 0x106e4(%rip), %rcx     # 0x16eb0
callq 0x53f0
addq $0x50, %rsp
popq %rbp
retq
nopw (%rax,%rax)