// File: /workspace/github_c_makefile_star2_O0/georgeweigt[P]sassafras/sassafras.c
// Function: proc_reg_compute_X
void
proc_reg_compute_X(void)
{
	int i, j, k, l, m, n, x, y;
	double v;

	l = 0;

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

		// check for missing data

		y = ytab[0];

		v = dataset->spec[y].v[i];

		if (isnan(v))
			continue;

		Y[l] = v;

		if (noint)
			m = 0;
		else {
			m = 1;
			X(l, 0) = 1;
		}

		for (j = 0; j < num_x; j++) {

			x = xtab[j];

			v = dataset->spec[x].v[i];

			if (isnan(v))
				break;

			if (dataset->spec[x].ltab == NULL)
				X(l, m++) = v;
			else {

				// categorical variable

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

				for (k = 0; k < n; k++)
					if (k == v)
						X(l, m + k) = 1;
					else
						X(l, m + k) = 0;

				m += n;
			}
		}

		if (j == num_x)
			l++; // full row, no nans
	}

	// missing data may reduce nrow

	nrow = l;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
movl $0x0, -0x10(%rbp)
movl $0x0, -0x4(%rbp)
movl -0x4(%rbp), %eax
cmpl 0xcf45(%rip), %eax      # 0x197c0
jge 0xcab8
movl 0xd179(%rip), %eax      # 0x19a00
movl %eax, -0x20(%rbp)
movq 0xb627(%rip), %rax      # 0x17eb8
addq $0x20, %rax
movslq -0x20(%rbp), %rcx
imulq $0x28, %rcx, %rcx
addq %rcx, %rax
movq 0x20(%rax), %rax
movslq -0x4(%rbp), %rcx
movsd (%rax,%rcx,8), %xmm0
movsd %xmm0, -0x28(%rbp)
movsd -0x28(%rbp), %xmm0
ucomisd %xmm0, %xmm0
setp %al
testb $0x1, %al
jne 0xc8c4
jmp 0xc8c9
jmp 0xcaaa
movsd -0x28(%rbp), %xmm0
movq 0xc1fb(%rip), %rax      # 0x18ad0
movslq -0x10(%rbp), %rcx
movsd %xmm0, (%rax,%rcx,8)
cmpl $0x0, 0xd113(%rip)      # 0x199f8
je 0xc8f0
movl $0x0, -0x14(%rbp)
jmp 0xc918
movl $0x1, -0x14(%rbp)
movq 0xc1ca(%rip), %rax      # 0x18ac8
movl -0x10(%rbp), %ecx
imull 0xc1d8(%rip), %ecx      # 0x18ae0
movslq %ecx, %rcx
movsd 0x28cd(%rip), %xmm0     # 0xf1e0
movsd %xmm0, (%rax,%rcx,8)
movl $0x0, -0x8(%rbp)
movl -0x8(%rbp), %eax
cmpl 0xd0c8(%rip), %eax      # 0x199f0
jge 0xca94
movslq -0x8(%rbp), %rcx
leaq 0xbdd7(%rip), %rax      # 0x18710
movl (%rax,%rcx,4), %eax
movl %eax, -0x1c(%rbp)
movq 0xb572(%rip), %rax      # 0x17eb8
addq $0x20, %rax
movslq -0x1c(%rbp), %rcx
imulq $0x28, %rcx, %rcx
addq %rcx, %rax
movq 0x20(%rax), %rax
movslq -0x4(%rbp), %rcx
movsd (%rax,%rcx,8), %xmm0
movsd %xmm0, -0x28(%rbp)
movsd -0x28(%rbp), %xmm0
ucomisd %xmm0, %xmm0
setp %al
testb $0x1, %al
jne 0xc979
jmp 0xc97e
jmp 0xca94
movq 0xb533(%rip), %rax      # 0x17eb8
addq $0x20, %rax
movslq -0x1c(%rbp), %rcx
imulq $0x28, %rcx, %rcx
addq %rcx, %rax
cmpq $0x0, 0x10(%rax)
jne 0xc9d3
movsd -0x28(%rbp), %xmm0
movq 0xc121(%rip), %rax      # 0x18ac8
movl -0x10(%rbp), %ecx
imull 0xc12f(%rip), %ecx      # 0x18ae0
movslq %ecx, %rcx
shlq $0x3, %rcx
addq %rcx, %rax
movl -0x14(%rbp), %ecx
movl %ecx, %edx
addl $0x1, %edx
movl %edx, -0x14(%rbp)
movslq %ecx, %rcx
movsd %xmm0, (%rax,%rcx,8)
jmp 0xca84
movq 0xb4de(%rip), %rax      # 0x17eb8
addq $0x20, %rax
movslq -0x1c(%rbp), %rcx
imulq $0x28, %rcx, %rcx
addq %rcx, %rax
movl 0xc(%rax), %eax
movl %eax, -0x18(%rbp)
movl $0x0, -0xc(%rbp)
movl -0xc(%rbp), %eax
cmpl -0x18(%rbp), %eax
jge 0xca7b
cvtsi2sdl -0xc(%rbp), %xmm0
ucomisd -0x28(%rbp), %xmm0
jne 0xca3f
jp 0xca3f
movq 0xc0b5(%rip), %rax      # 0x18ac8
movl -0x10(%rbp), %ecx
imull 0xc0c3(%rip), %ecx      # 0x18ae0
movslq %ecx, %rcx
shlq $0x3, %rcx
addq %rcx, %rax
movl -0x14(%rbp), %ecx
addl -0xc(%rbp), %ecx
movslq %ecx, %rcx
movsd 0x27a8(%rip), %xmm0     # 0xf1e0
movsd %xmm0, (%rax,%rcx,8)
jmp 0xca6b
movq 0xc082(%rip), %rax      # 0x18ac8
movl -0x10(%rbp), %ecx
imull 0xc090(%rip), %ecx      # 0x18ae0
movslq %ecx, %rcx
shlq $0x3, %rcx
addq %rcx, %rax
movl -0x14(%rbp), %ecx
addl -0xc(%rbp), %ecx
movslq %ecx, %rcx
xorps %xmm0, %xmm0
movsd %xmm0, (%rax,%rcx,8)
jmp 0xca6d
movl -0xc(%rbp), %eax
addl $0x1, %eax
movl %eax, -0xc(%rbp)
jmp 0xc9f6
movl -0x18(%rbp), %eax
addl -0x14(%rbp), %eax
movl %eax, -0x14(%rbp)
jmp 0xca86
movl -0x8(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x8(%rbp)
jmp 0xc91f
movl -0x8(%rbp), %eax
cmpl 0xcf53(%rip), %eax      # 0x199f0
jne 0xcaa8
movl -0x10(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x10(%rbp)
jmp 0xcaaa
movl -0x4(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x4(%rbp)
jmp 0xc872
movl -0x10(%rbp), %eax
movl %eax, 0xccff(%rip)      # 0x197c0
popq %rbp
retq
nopw %cs:(%rax,%rax)