// File: /workspace/github_c_makefile_star2_O1/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 0x2180
testq %rax, %rax
je 0x943f
movq %rax, %rbx
leaq 0x2398(%rip), %rdi      # 0xb4f3
callq 0x2210
movq %rax, (%rbx)
leaq 0x26f7(%rip), %rdi      # 0xb861
callq 0x2210
movq %rax, 0x8(%rbx)
leaq 0x26ea(%rip), %rdi      # 0xb864
callq 0x2210
movq %rax, 0x10(%rbx)
leaq 0x26e9(%rip), %rdi      # 0xb873
callq 0x2210
movq %rax, 0x18(%rbx)
leaq 0x26e5(%rip), %rdi      # 0xb87f
callq 0x2210
movq %rax, 0x20(%rbx)
leaq 0x26dd(%rip), %rdi      # 0xb887
callq 0x2210
movq %rax, 0x28(%rbx)
leaq 0x26d4(%rip), %rdi      # 0xb88e
callq 0x2210
movq %rax, 0x30(%rbx)
cvttsd2si 0xc9f5(%rip), %ecx # 0x15bc0
leaq 0x2282(%rip), %r14      # 0xb454
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 0x2210
movq %rax, 0x38(%rbx)
movsd 0xb86e(%rip), %xmm0     # 0x14a70
leaq 0x218d(%rip), %r13      # 0xb396
movl $0x64, %esi
movq %r15, %rdi
movq %r13, %rdx
movb $0x1, %al
callq 0x20e0
movq %r15, %rdi
callq 0x2210
movq %rax, 0x40(%rbx)
movsd 0xb849(%rip), %xmm0     # 0x14a78
movl $0x64, %esi
movq %r15, %rdi
movq %r13, %rdx
movb $0x1, %al
callq 0x20e0
movq %r15, %rdi
callq 0x2210
movq %rax, 0x48(%rbx)
movsd 0xb82b(%rip), %xmm0     # 0x14a80
leaq 0x2128(%rip), %rdx      # 0xb384
movl $0x64, %esi
movq %r15, %rdi
movb $0x1, %al
callq 0x20e0
movq %r15, %rdi
callq 0x2210
movq %rax, 0x50(%rbx)
movsd 0xb809(%rip), %xmm0     # 0x14a88
leaq 0x210a(%rip), %rdx      # 0xb390
movl $0x64, %esi
movq %r15, %rdi
movb $0x1, %al
callq 0x20e0
movq %r15, %rdi
callq 0x2210
movq %rax, 0x58(%rbx)
leaq 0x25ec(%rip), %rdi      # 0xb894
callq 0x2210
movq %rax, 0x60(%rbx)
cvttsd2si 0xb797(%rip), %ecx # 0x14a50
movl $0x64, %esi
movq %r15, %rdi
movq %r14, %rdx
xorl %eax, %eax
callq 0x20e0
movq %r15, %rdi
callq 0x2210
movq %rax, 0x68(%rbx)
movsd 0xb779(%rip), %xmm0     # 0x14a58
movl $0x64, %esi
movq %r15, %rdi
movq %r13, %rdx
movb $0x1, %al
callq 0x20e0
movq %r15, %rdi
callq 0x2210
movq %rax, 0x70(%rbx)
movsd 0xb75b(%rip), %xmm0     # 0x14a60
movl $0x64, %esi
movq %r15, %rdi
movq %r13, %rdx
movb $0x1, %al
callq 0x20e0
movq %r15, %rdi
callq 0x2210
movq %rax, 0x78(%rbx)
leaq 0x21c9(%rip), %r14      # 0xb4f3
movq %r14, %rdi
callq 0x2210
movq %rax, 0x80(%rbx)
movq %r14, %rdi
callq 0x2210
movq %rax, 0x88(%rbx)
leaq 0x254b(%rip), %rdi      # 0xb89a
callq 0x2210
movq %rax, 0x90(%rbx)
cvttsd2si 0xc865(%rip), %ecx # 0x15bc8
movl $0x64, %esi
movq %r15, %rdi
leaq 0x20e2(%rip), %rdx      # 0xb454
xorl %eax, %eax
callq 0x20e0
movq %r15, %rdi
callq 0x2210
movq %rax, 0x98(%rbx)
movsd 0xc840(%rip), %xmm0     # 0x15bd0
movl $0x64, %esi
movq %r15, %rdi
movq %r13, %rdx
movb $0x1, %al
callq 0x20e0
movq %r15, %rdi
callq 0x2210
movq %rax, 0xa0(%rbx)
movq %r14, %rdi
callq 0x2210
movq %rax, 0xa8(%rbx)
movq %r14, %rdi
callq 0x2210
movq %rax, 0xb0(%rbx)
movq %r14, %rdi
callq 0x2210
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 0x47e3
movq %rbx, %r14
xorl %r15d, %r15d
movq (%r14,%r15,8), %rdi
callq 0x2040
incq %r15
cmpq $0x6, %r15
jne 0x940a
incq %r12
addq $0x30, %r14
cmpq $0x4, %r12
jne 0x9407
movq %rbx, %rdi
addq $0x68, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
jmp 0x2040
movl $0x1, %edi
callq 0x21f0