// File: /workspace/github_c_makefile_star2_O2/georgeweigt[P]sassafras/sassafras.c
// Function: proc_reg_print_anova_table
void
proc_reg_print_anova_table(void)
{
	int i, j;
	char **a, buf[100];

	a = (char **) xmalloc(4 * 6 * sizeof (char *));

	// 1st row

	A(0, 0) = strdup("");
	A(0, 1) = strdup("DF");
	A(0, 2) = strdup("Sum of Squares");
	A(0, 3) = strdup("Mean Square");
	A(0, 4) = strdup("F Value");
	A(0, 5) = strdup("Pr > F");

	// 2nd row

	A(1, 0) = strdup("Model");

	snprintf(buf, sizeof buf, "%d", (int) dfm);
	A(1, 1) = strdup(buf);

	snprintf(buf, sizeof buf, "%0.5f", ssr);
	A(1, 2) = strdup(buf);

	snprintf(buf, sizeof buf, "%0.5f", msr);
	A(1, 3) = strdup(buf);

	snprintf(buf, sizeof buf, "%0.2f", fval);
	A(1, 4) = strdup(buf);

	snprintf(buf, sizeof buf, "%0.4f", pval);
	A(1, 5) = strdup(buf);

	// 3rd row

	A(2, 0) = strdup("Error");

	snprintf(buf, sizeof buf, "%d", (int) dfe);
	A(2, 1) = strdup(buf);

	snprintf(buf, sizeof buf, "%0.5f", sse);
	A(2, 2) = strdup(buf);

	snprintf(buf, sizeof buf, "%0.5f", mse);
	A(2, 3) = strdup(buf);

	A(2, 4) = strdup("");
	A(2, 5) = strdup("");

	// 4th row

	A(3, 0) = strdup("Total");

	snprintf(buf, sizeof buf, "%d", (int) dft);
	A(3, 1) = strdup(buf);

	snprintf(buf, sizeof buf, "%0.5f", sst);
	A(3, 2) = strdup(buf);

	A(3, 3) = strdup("");
	A(3, 4) = strdup("");
	A(3, 5) = strdup("");

	buf[0] = 1; // left justify
	buf[1] = 0;
	buf[2] = 0;
	buf[3] = 0;
	buf[4] = 0;
	buf[5] = 0;

	print_table(a, 4, 6, buf);

	for (i = 0; i < 4; i++)
		for (j = 0; j < 6; j++)
			free(A(i, j));

	free(a);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x68, %rsp
movl $0xc0, %edi
callq 0x2a9b
movq %rax, %rbx
leaq 0x2b42(%rip), %rdi      # 0xb4c3
callq 0x2210
movq %rax, (%rbx)
leaq 0x2ea1(%rip), %rdi      # 0xb831
callq 0x2210
movq %rax, 0x8(%rbx)
leaq 0x2e94(%rip), %rdi      # 0xb834
callq 0x2210
movq %rax, 0x10(%rbx)
leaq 0x2e93(%rip), %rdi      # 0xb843
callq 0x2210
movq %rax, 0x18(%rbx)
leaq 0x2e8f(%rip), %rdi      # 0xb84f
callq 0x2210
movq %rax, 0x20(%rbx)
leaq 0x2e87(%rip), %rdi      # 0xb857
callq 0x2210
movq %rax, 0x28(%rbx)
leaq 0x2e7e(%rip), %rdi      # 0xb85e
callq 0x2210
movq %rax, 0x30(%rbx)
cvttsd2si 0xd1cf(%rip), %ecx # 0x15bc0
leaq 0x2a2c(%rip), %rdx      # 0xb424
xorl %r14d, %r14d
leaq -0x90(%rbp), %r15
pushq $0x64
popq %r12
movq %r15, %rdi
movq %r12, %rsi
xorl %eax, %eax
callq 0x20e0
movq %r15, %rdi
callq 0x2210
movq %rax, 0x38(%rbx)
movsd 0xc049(%rip), %xmm0     # 0x14a70
leaq 0x2938(%rip), %r13      # 0xb366
movq %r15, %rdi
movq %r12, %rsi
movq %r13, %rdx
movb $0x1, %al
callq 0x20e0
movq %r15, %rdi
callq 0x2210
movq %rax, 0x40(%rbx)
movsd 0xc026(%rip), %xmm0     # 0x14a78
movq %r15, %rdi
movq %r12, %rsi
movq %r13, %rdx
movb $0x1, %al
callq 0x20e0
movq %r15, %rdi
callq 0x2210
movq %rax, 0x48(%rbx)
movsd 0xc00a(%rip), %xmm0     # 0x14a80
leaq 0x28d7(%rip), %rdx      # 0xb354
movq %r15, %rdi
movq %r12, %rsi
movb $0x1, %al
callq 0x20e0
movq %r15, %rdi
callq 0x2210
movq %rax, 0x50(%rbx)
movsd 0xbfea(%rip), %xmm0     # 0x14a88
leaq 0x28bb(%rip), %rdx      # 0xb360
movq %r15, %rdi
movq %r12, %rsi
movb $0x1, %al
callq 0x20e0
movq %r15, %rdi
callq 0x2210
movq %rax, 0x58(%rbx)
leaq 0x2d9f(%rip), %rdi      # 0xb864
callq 0x2210
movq %rax, 0x60(%rbx)
cvttsd2si 0xbf7a(%rip), %ecx # 0x14a50
movq %r15, %rdi
movq %r12, %rsi
leaq 0x2941(%rip), %rdx      # 0xb424
xorl %eax, %eax
callq 0x20e0
movq %r15, %rdi
callq 0x2210
movq %rax, 0x68(%rbx)
movsd 0xbf5a(%rip), %xmm0     # 0x14a58
movq %r15, %rdi
movq %r12, %rsi
movq %r13, %rdx
movb $0x1, %al
callq 0x20e0
movq %r15, %rdi
callq 0x2210
movq %rax, 0x70(%rbx)
movsd 0xbf3e(%rip), %xmm0     # 0x14a60
movq %r15, %rdi
movq %r12, %rsi
movq %r13, %rdx
movb $0x1, %al
callq 0x20e0
movq %r15, %rdi
callq 0x2210
movq %rax, 0x78(%rbx)
leaq 0x297e(%rip), %r13      # 0xb4c3
movq %r13, %rdi
callq 0x2210
movq %rax, 0x80(%rbx)
movq %r13, %rdi
callq 0x2210
movq %rax, 0x88(%rbx)
leaq 0x2d00(%rip), %rdi      # 0xb86a
callq 0x2210
movq %rax, 0x90(%rbx)
cvttsd2si 0xd04a(%rip), %ecx # 0x15bc8
movq %r15, %rdi
movq %r12, %rsi
leaq 0x2899(%rip), %rdx      # 0xb424
xorl %eax, %eax
callq 0x20e0
movq %r15, %rdi
callq 0x2210
movq %rax, 0x98(%rbx)
movsd 0xd027(%rip), %xmm0     # 0x15bd0
movq %r15, %rdi
movq %r12, %rsi
leaq 0x27b0(%rip), %rdx      # 0xb366
movb $0x1, %al
callq 0x20e0
movq %r15, %rdi
callq 0x2210
movq %rax, 0xa0(%rbx)
movq %r13, %rdi
callq 0x2210
movq %rax, 0xa8(%rbx)
movq %r13, %rdi
callq 0x2210
movq %rax, 0xb0(%rbx)
movq %r13, %rdi
callq 0x2210
movq %rax, 0xb8(%rbx)
movb $0x1, (%r15)
movb $0x0, 0x5(%r15)
andl $0x0, 0x1(%r15)
pushq $0x4
popq %rsi
pushq $0x6
popq %rdx
movq %rbx, %rdi
movq %r15, %rcx
callq 0x4491
movq %rbx, %r15
cmpq $0x4, %r14
je 0x8c41
xorl %r12d, %r12d
cmpq $0x6, %r12
je 0x8c38
movq (%r15,%r12,8), %rdi
callq 0x2040
incq %r12
jmp 0x8c24
incq %r14
addq $0x30, %r15
jmp 0x8c1b
movq %rbx, %rdi
addq $0x68, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
jmp 0x2040