// File: /workspace/github_c_makefile_star2_O3/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 0x2190
testq %rax, %rax
je 0x944e
movq %rax, %rbx
leaq 0x2359(%rip), %rdi      # 0xb4c3
callq 0x2220
movq %rax, (%rbx)
leaq 0x26b8(%rip), %rdi      # 0xb831
callq 0x2220
movq %rax, 0x8(%rbx)
leaq 0x26ab(%rip), %rdi      # 0xb834
callq 0x2220
movq %rax, 0x10(%rbx)
leaq 0x26aa(%rip), %rdi      # 0xb843
callq 0x2220
movq %rax, 0x18(%rbx)
leaq 0x26a6(%rip), %rdi      # 0xb84f
callq 0x2220
movq %rax, 0x20(%rbx)
leaq 0x269e(%rip), %rdi      # 0xb857
callq 0x2220
movq %rax, 0x28(%rbx)
leaq 0x2695(%rip), %rdi      # 0xb85e
callq 0x2220
movq %rax, 0x30(%rbx)
cvttsd2si 0xc9f6(%rip), %ecx # 0x15bd0
leaq 0x2243(%rip), %r14      # 0xb424
xorl %r12d, %r12d
leaq -0x90(%rbp), %r15
movl $0x64, %esi
movq %r15, %rdi
movq %r14, %rdx
xorl %eax, %eax
callq 0x20e0
movq %r15, %rdi
callq 0x2220
movq %rax, 0x38(%rbx)
movsd 0xb86f(%rip), %xmm0     # 0x14a80
leaq 0x214e(%rip), %r13      # 0xb366
movl $0x64, %esi
movq %r15, %rdi
movq %r13, %rdx
movb $0x1, %al
callq 0x20e0
movq %r15, %rdi
callq 0x2220
movq %rax, 0x40(%rbx)
movsd 0xb84a(%rip), %xmm0     # 0x14a88
movl $0x64, %esi
movq %r15, %rdi
movq %r13, %rdx
movb $0x1, %al
callq 0x20e0
movq %r15, %rdi
callq 0x2220
movq %rax, 0x48(%rbx)
movsd 0xb82c(%rip), %xmm0     # 0x14a90
leaq 0x20e9(%rip), %rdx      # 0xb354
movl $0x64, %esi
movq %r15, %rdi
movb $0x1, %al
callq 0x20e0
movq %r15, %rdi
callq 0x2220
movq %rax, 0x50(%rbx)
movsd 0xb80a(%rip), %xmm0     # 0x14a98
leaq 0x20cb(%rip), %rdx      # 0xb360
movl $0x64, %esi
movq %r15, %rdi
movb $0x1, %al
callq 0x20e0
movq %r15, %rdi
callq 0x2220
movq %rax, 0x58(%rbx)
leaq 0x25ad(%rip), %rdi      # 0xb864
callq 0x2220
movq %rax, 0x60(%rbx)
cvttsd2si 0xb798(%rip), %ecx # 0x14a60
movl $0x64, %esi
movq %r15, %rdi
movq %r14, %rdx
xorl %eax, %eax
callq 0x20e0
movq %r15, %rdi
callq 0x2220
movq %rax, 0x68(%rbx)
movsd 0xb77a(%rip), %xmm0     # 0x14a68
movl $0x64, %esi
movq %r15, %rdi
movq %r13, %rdx
movb $0x1, %al
callq 0x20e0
movq %r15, %rdi
callq 0x2220
movq %rax, 0x70(%rbx)
movsd 0xb75c(%rip), %xmm0     # 0x14a70
movl $0x64, %esi
movq %r15, %rdi
movq %r13, %rdx
movb $0x1, %al
callq 0x20e0
movq %r15, %rdi
callq 0x2220
movq %rax, 0x78(%rbx)
leaq 0x218a(%rip), %r14      # 0xb4c3
movq %r14, %rdi
callq 0x2220
movq %rax, 0x80(%rbx)
movq %r14, %rdi
callq 0x2220
movq %rax, 0x88(%rbx)
leaq 0x250c(%rip), %rdi      # 0xb86a
callq 0x2220
movq %rax, 0x90(%rbx)
cvttsd2si 0xc866(%rip), %ecx # 0x15bd8
movl $0x64, %esi
movq %r15, %rdi
leaq 0x20a3(%rip), %rdx      # 0xb424
xorl %eax, %eax
callq 0x20e0
movq %r15, %rdi
callq 0x2220
movq %rax, 0x98(%rbx)
movsd 0xc841(%rip), %xmm0     # 0x15be0
movl $0x64, %esi
movq %r15, %rdi
movq %r13, %rdx
movb $0x1, %al
callq 0x20e0
movq %r15, %rdi
callq 0x2220
movq %rax, 0xa0(%rbx)
movq %r14, %rdi
callq 0x2220
movq %rax, 0xa8(%rbx)
movq %r14, %rdi
callq 0x2220
movq %rax, 0xb0(%rbx)
movq %r14, %rdi
callq 0x2220
movq %rax, 0xb8(%rbx)
movb $0x1, (%r15)
movb $0x0, 0x5(%r15)
movl $0x0, 0x1(%r15)
movq %rbx, %rdi
movl $0x4, %esi
movl $0x6, %edx
movq %r15, %rcx
callq 0x4789
movq %rbx, %r14
xorl %r15d, %r15d
movq (%r14,%r15,8), %rdi
callq 0x2040
incq %r15
cmpq $0x6, %r15
jne 0x9419
incq %r12
addq $0x30, %r14
cmpq $0x4, %r12
jne 0x9416
movq %rbx, %rdi
addq $0x68, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
jmp 0x2040
movl $0x1, %edi
callq 0x2200