LLM4Binary/decompile-bench-makefile huggingface dataset:
// File: /workspace/github_c_makefile_star2_O0/georgeweigt[P]sassafras/sassafras.c
// Function: check_data_vectors
void
check_data_vectors(void)
{
	int i;
	if (dd->nobs < dd->max)
		return;
	dd->max += 1000;
	for (i = 0; i < dd->nvar; i++)
		dd->spec[i].v = xrealloc(dd->spec[i].v, dd->max * sizeof (double));
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
movq 0x110b1(%rip), %rax     # 0x14070
movl 0x14(%rax), %eax
movq 0x110a7(%rip), %rcx     # 0x14070
cmpl 0x18(%rcx), %eax
jge 0x2fd3
jmp 0x3054
movq 0x11096(%rip), %rax     # 0x14070
movl 0x18(%rax), %ecx
addl $0x3e8, %ecx            # imm = 0x3E8
movl %ecx, 0x18(%rax)
movl $0x0, -0x4(%rbp)
movl -0x4(%rbp), %eax
movq 0x11079(%rip), %rcx     # 0x14070
cmpl 0x10(%rcx), %eax
jge 0x3054
movq 0x1106d(%rip), %rax     # 0x14070
addq $0x20, %rax
movslq -0x4(%rbp), %rcx
imulq $0x28, %rcx, %rcx
addq %rcx, %rax
movq 0x20(%rax), %rdi
movq 0x11053(%rip), %rax     # 0x14070
movslq 0x18(%rax), %rax
shlq $0x3, %rax
movl %eax, %esi
callq 0x3c20
movq %rax, %rcx
movq 0x1103a(%rip), %rax     # 0x14070
addq $0x20, %rax
movslq -0x4(%rbp), %rdx
imulq $0x28, %rdx, %rdx
addq %rdx, %rax
movq %rcx, 0x20(%rax)
movl -0x4(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x4(%rbp)
jmp 0x2fed
addq $0x10, %rsp
popq %rbp
retq
nopw (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/georgeweigt[P]sassafras/sassafras.c
// Function: get_digits
int
get_digits(void)
{
	int n = 0;
	char *s = inb;

	// scan to decimal point

	while (strchr(delim, *s) == NULL && *s != '.')
		s++;

	if (*s != '.')
		return 0;

	while (isdigit(*++s) && n < 8)
		n++;

	return n;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movl $0x0, -0x8(%rbp)
movq 0x10e42(%rip), %rax     # 0x14468
movq %rax, -0x10(%rbp)
movq -0x10(%rbp), %rax
movsbl (%rax), %esi
leaq 0x101e8(%rip), %rdi     # 0x13820
callq 0x20a0
movq %rax, %rcx
xorl %eax, %eax
cmpq $0x0, %rcx
movb %al, -0x11(%rbp)
jne 0x365b
movq -0x10(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x2e, %eax
setne %al
movb %al, -0x11(%rbp)
movb -0x11(%rbp), %al
testb $0x1, %al
jne 0x3664
jmp 0x3672
movq -0x10(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x10(%rbp)
jmp 0x362a
movq -0x10(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x2e, %eax
je 0x3687
movl $0x0, -0x4(%rbp)
jmp 0x36df
jmp 0x3689
callq 0x2210
movq (%rax), %rax
movq -0x10(%rbp), %rcx
movq %rcx, %rdx
addq $0x1, %rdx
movq %rdx, -0x10(%rbp)
movsbl 0x1(%rcx), %ecx
movslq %ecx, %rcx
movzwl (%rax,%rcx,2), %ecx
andl $0x800, %ecx            # imm = 0x800
xorl %eax, %eax
cmpl $0x0, %ecx
movb %al, -0x12(%rbp)
je 0x36c5
cmpl $0x8, -0x8(%rbp)
setl %al
movb %al, -0x12(%rbp)
movb -0x12(%rbp), %al
testb $0x1, %al
jne 0x36ce
jmp 0x36d9
movl -0x8(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x8(%rbp)
jmp 0x3689
movl -0x8(%rbp), %eax
movl %eax, -0x4(%rbp)
movl -0x4(%rbp), %eax
addq $0x20, %rsp
popq %rbp
retq
nopl (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/georgeweigt[P]sassafras/sassafras.c
// Function: get_number
double
get_number(void)
{
	double d = NAN;

	// check end of input

	if (inb == NULL)
		return d;

	// scan leading spaces

	while (isspace(*inb))
		inb++;

	if (*inb == 0)
		return d;

	if (strchr(delim, *inb)) {
		inb++;
		return d;
	}

	// scan number

	sscanf(inb, "%lg", &d);

	// scan delimiter

	while (strchr(delim, *inb) == NULL)
		inb++;

	if (*inb)
		inb++;

	return d;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
movsd 0xbad8(%rip), %xmm0     # 0xf1d8
movsd %xmm0, -0x10(%rbp)
cmpq $0x0, 0x10d5b(%rip)     # 0x14468
jne 0x371e
movsd -0x10(%rbp), %xmm0
movsd %xmm0, -0x8(%rbp)
jmp 0x3820
jmp 0x3720
callq 0x2210
movq (%rax), %rax
movq 0x10d39(%rip), %rcx     # 0x14468
movsbl (%rcx), %ecx
movslq %ecx, %rcx
movzwl (%rax,%rcx,2), %eax
andl $0x2000, %eax           # imm = 0x2000
cmpl $0x0, %eax
je 0x3757
movq 0x10d1e(%rip), %rax     # 0x14468
addq $0x1, %rax
movq %rax, 0x10d13(%rip)     # 0x14468
jmp 0x3720
movq 0x10d0a(%rip), %rax     # 0x14468
movsbl (%rax), %eax
cmpl $0x0, %eax
jne 0x3775
movsd -0x10(%rbp), %xmm0
movsd %xmm0, -0x8(%rbp)
jmp 0x3820
movq 0x10cec(%rip), %rax     # 0x14468
movsbl (%rax), %esi
leaq 0x1009a(%rip), %rdi     # 0x13820
callq 0x20a0
cmpq $0x0, %rax
je 0x37af
movq 0x10cd0(%rip), %rax     # 0x14468
addq $0x1, %rax
movq %rax, 0x10cc5(%rip)     # 0x14468
movsd -0x10(%rbp), %xmm0
movsd %xmm0, -0x8(%rbp)
jmp 0x3820
movq 0x10cb2(%rip), %rdi     # 0x14468
leaq 0xbbd9(%rip), %rsi      # 0xf396
leaq -0x10(%rbp), %rdx
movb $0x0, %al
callq 0x2170
movq 0x10c99(%rip), %rax     # 0x14468
movsbl (%rax), %esi
leaq 0x10047(%rip), %rdi     # 0x13820
callq 0x20a0
cmpq $0x0, %rax
jne 0x37f8
movq 0x10c7d(%rip), %rax     # 0x14468
addq $0x1, %rax
movq %rax, 0x10c72(%rip)     # 0x14468
jmp 0x37c8
movq 0x10c69(%rip), %rax     # 0x14468
cmpb $0x0, (%rax)
je 0x3816
movq 0x10c5d(%rip), %rax     # 0x14468
addq $0x1, %rax
movq %rax, 0x10c52(%rip)     # 0x14468
movsd -0x10(%rbp), %xmm0
movsd %xmm0, -0x8(%rbp)
movsd -0x8(%rbp), %xmm0
addq $0x10, %rsp
popq %rbp
retq
nopl (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/georgeweigt[P]sassafras/sassafras.c
// Function: chkbuf
void
chkbuf(void)
{
	// check for end of input

	if (inb == NULL)
		return;

	// skip spaces

	while (isspace(*inb))
		inb++;

	if (*inb == 0)
		getbuf();
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
cmpq $0x0, 0x1089c(%rip)     # 0x14468
jne 0x3bd0
jmp 0x3c1d
jmp 0x3bd2
callq 0x2210
movq (%rax), %rax
movq 0x10887(%rip), %rcx     # 0x14468
movsbl (%rcx), %ecx
movslq %ecx, %rcx
movzwl (%rax,%rcx,2), %eax
andl $0x2000, %eax           # imm = 0x2000
cmpl $0x0, %eax
je 0x3c09
movq 0x1086c(%rip), %rax     # 0x14468
addq $0x1, %rax
movq %rax, 0x10861(%rip)     # 0x14468
jmp 0x3bd2
movq 0x10858(%rip), %rax     # 0x14468
movsbl (%rax), %eax
cmpl $0x0, %eax
jne 0x3c1d
callq 0x2ee0
popq %rbp
retq
nop
// File: /workspace/github_c_makefile_star2_O0/georgeweigt[P]sassafras/sassafras.c
// Function: xrealloc
void *
xrealloc(void *p, int size)
{
	p = realloc(p, size);
	if (p == NULL)
		exit(1);
	return p;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
movq %rdi, -0x8(%rbp)
movl %esi, -0xc(%rbp)
movq -0x8(%rbp), %rdi
movslq -0xc(%rbp), %rsi
callq 0x2180
movq %rax, -0x8(%rbp)
cmpq $0x0, -0x8(%rbp)
jne 0x3c51
movl $0x1, %edi
callq 0x21d0
movq -0x8(%rbp), %rax
addq $0x10, %rsp
popq %rbp
retq
nopl (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/georgeweigt[P]sassafras/sassafras.c
// Function: dump_data
void
dump_data(void)
{
	int i, j;
	double d;

	printf("dump_data: %s nvar=%d\n", dd->name, dd->nvar);

	for (i = 0; i < dd->nvar; i++)
		printf(" %s", dd->spec[i].name);

	printf("\n");

	for (i = 0; i < dd->nobs; i++) {
		for (j = 0; j < dd->nvar; j++) {
			d = dd->spec[j].v[i];
			if (dd->spec[j].ltab)
				printf(" %s", dd->spec[j].ltab[(int) d]);
			else
				printf(" %g", d);
		}
		printf("\n");
	}
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
movq 0x101a1(%rip), %rax     # 0x14070
movq 0x8(%rax), %rsi
movq 0x10196(%rip), %rax     # 0x14070
movl 0x10(%rax), %edx
leaq 0xb4e5(%rip), %rdi      # 0xf3c9
movb $0x0, %al
callq 0x20b0
movl $0x0, -0x4(%rbp)
movl -0x4(%rbp), %eax
movq 0x10174(%rip), %rcx     # 0x14070
cmpl 0x10(%rcx), %eax
jge 0x3f33
movq 0x10168(%rip), %rax     # 0x14070
addq $0x20, %rax
movslq -0x4(%rbp), %rcx
imulq $0x28, %rcx, %rcx
addq %rcx, %rax
movq (%rax), %rsi
leaq 0xb91e(%rip), %rdi      # 0xf83f
movb $0x0, %al
callq 0x20b0
movl -0x4(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x4(%rbp)
jmp 0x3ef2
leaq 0xb4a4(%rip), %rdi      # 0xf3de
movb $0x0, %al
callq 0x20b0
movl $0x0, -0x4(%rbp)
movl -0x4(%rbp), %eax
movq 0x1011e(%rip), %rcx     # 0x14070
cmpl 0x14(%rcx), %eax
jge 0x402f
movl $0x0, -0x8(%rbp)
movl -0x8(%rbp), %eax
movq 0x10104(%rip), %rcx     # 0x14070
cmpl 0x10(%rcx), %eax
jge 0x4013
movq 0x100f4(%rip), %rax     # 0x14070
addq $0x20, %rax
movslq -0x8(%rbp), %rcx
imulq $0x28, %rcx, %rcx
addq %rcx, %rax
movq 0x20(%rax), %rax
movslq -0x4(%rbp), %rcx
movsd (%rax,%rcx,8), %xmm0
movsd %xmm0, -0x10(%rbp)
movq 0x100cc(%rip), %rax     # 0x14070
addq $0x20, %rax
movslq -0x8(%rbp), %rcx
imulq $0x28, %rcx, %rcx
addq %rcx, %rax
cmpq $0x0, 0x10(%rax)
je 0x3ff0
movq 0x100af(%rip), %rax     # 0x14070
addq $0x20, %rax
movslq -0x8(%rbp), %rcx
imulq $0x28, %rcx, %rcx
addq %rcx, %rax
movq 0x10(%rax), %rax
cvttsd2si -0x10(%rbp), %ecx
movslq %ecx, %rcx
movq (%rax,%rcx,8), %rsi
leaq 0xb858(%rip), %rdi      # 0xf83f
movb $0x0, %al
callq 0x20b0
jmp 0x4003
movsd -0x10(%rbp), %xmm0
leaq 0xb3e4(%rip), %rdi      # 0xf3e0
movb $0x1, %al
callq 0x20b0
jmp 0x4005
movl -0x8(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x8(%rbp)
jmp 0x3f62
leaq 0xb3c4(%rip), %rdi      # 0xf3de
movb $0x0, %al
callq 0x20b0
movl -0x4(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x4(%rbp)
jmp 0x3f48
addq $0x10, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/georgeweigt[P]sassafras/sassafras.c
// Function: free_datasets
void
free_datasets(void)
{
	int i;
	struct dataset *t;

	while (dd) {
		t = dd;
		dd = dd->next;
		if (t->name)
			free(t->name);
		for (i = 0; i < MAXVAR; i++) {
			if (t->spec[i].name)
				free(t->spec[i].name);
			if (t->spec[i].v)
				free(t->spec[i].v);
			if (t->spec[i].ltab)
				free(t->spec[i].ltab);
		}
		free(t);
	}
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
cmpq $0x0, 0x10020(%rip)     # 0x14070
je 0x4159
movq 0x10013(%rip), %rax     # 0x14070
movq %rax, -0x10(%rbp)
movq 0x10008(%rip), %rax     # 0x14070
movq (%rax), %rax
movq %rax, 0xfffe(%rip)      # 0x14070
movq -0x10(%rbp), %rax
cmpq $0x0, 0x8(%rax)
je 0x408a
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rdi
callq 0x2030
movl $0x0, -0x4(%rbp)
cmpl $0x64, -0x4(%rbp)
jge 0x414b
movq -0x10(%rbp), %rax
addq $0x20, %rax
movslq -0x4(%rbp), %rcx
imulq $0x28, %rcx, %rcx
addq %rcx, %rax
cmpq $0x0, (%rax)
je 0x40cf
movq -0x10(%rbp), %rax
addq $0x20, %rax
movslq -0x4(%rbp), %rcx
imulq $0x28, %rcx, %rcx
addq %rcx, %rax
movq (%rax), %rdi
callq 0x2030
movq -0x10(%rbp), %rax
addq $0x20, %rax
movslq -0x4(%rbp), %rcx
imulq $0x28, %rcx, %rcx
addq %rcx, %rax
cmpq $0x0, 0x20(%rax)
je 0x4105
movq -0x10(%rbp), %rax
addq $0x20, %rax
movslq -0x4(%rbp), %rcx
imulq $0x28, %rcx, %rcx
addq %rcx, %rax
movq 0x20(%rax), %rdi
callq 0x2030
movq -0x10(%rbp), %rax
addq $0x20, %rax
movslq -0x4(%rbp), %rcx
imulq $0x28, %rcx, %rcx
addq %rcx, %rax
cmpq $0x0, 0x10(%rax)
je 0x413b
movq -0x10(%rbp), %rax
addq $0x20, %rax
movslq -0x4(%rbp), %rcx
imulq $0x28, %rcx, %rcx
addq %rcx, %rax
movq 0x10(%rax), %rdi
callq 0x2030
jmp 0x413d
movl -0x4(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x4(%rbp)
jmp 0x4091
movq -0x10(%rbp), %rdi
callq 0x2030
jmp 0x4048
addq $0x10, %rsp
popq %rbp
retq
nop
// File: /workspace/github_c_makefile_star2_O0/georgeweigt[P]sassafras/sassafras.c
// Function: select_dataset
void
select_dataset(char *s)
{
	dataset = dd;
	if (s == NULL)
		return;
	while (dataset) {
		if (dataset->name && strcmp(dataset->name, s) == 0)
			return;
		dataset = dataset->next;
	}
	snprintf(errbuf, ERRBUFLEN, "Dataset %s?", s);
	stop(errbuf);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
movq %rdi, -0x8(%rbp)
movq 0xfefd(%rip), %rax      # 0x14070
movq %rax, 0x13d3e(%rip)     # 0x17eb8
cmpq $0x0, -0x8(%rbp)
jne 0x4183
jmp 0x41f5
jmp 0x4185
cmpq $0x0, 0x13d2b(%rip)     # 0x17eb8
je 0x41cb
movq 0x13d22(%rip), %rax     # 0x17eb8
cmpq $0x0, 0x8(%rax)
je 0x41b8
movq 0x13d14(%rip), %rax     # 0x17eb8
movq 0x8(%rax), %rdi
movq -0x8(%rbp), %rsi
callq 0x2140
cmpl $0x0, %eax
jne 0x41b8
jmp 0x41f5
movq 0x13cf9(%rip), %rax     # 0x17eb8
movq (%rax), %rax
movq %rax, 0x13cef(%rip)     # 0x17eb8
jmp 0x4185
movq -0x8(%rbp), %rcx
leaq 0xf6ca(%rip), %rdi      # 0x138a0
movl $0x7d0, %esi            # imm = 0x7D0
leaq 0xb202(%rip), %rdx      # 0xf3e4
movb $0x0, %al
callq 0x20c0
leaq 0xf6b0(%rip), %rdi      # 0x138a0
callq 0x2790
addq $0x10, %rsp
popq %rbp
retq
nopl (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/georgeweigt[P]sassafras/sassafras.c
// Function: parse_expr
void
parse_expr(void)
{
	switch (token) {
	case '+':
		scan();
		parse_term();
		break;
	case '-':
		scan();
		parse_term();
		emit(NEG);
		break;
	default:
		parse_term();
		break;
	}

	for (;;) {
		switch (token) {
		case '+':
			scan();
			parse_term();
			emit(ADD);
			break;
		case '-':
			scan();
			parse_term();
			emit(SUB);
			break;
		default:
			return;
		}
	}
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
movl 0xf676(%rip), %eax      # 0x13884
movl %eax, -0x4(%rbp)
subl $0x2b, %eax
je 0x4222
jmp 0x4218
movl -0x4(%rbp), %eax
subl $0x2d, %eax
je 0x422e
jmp 0x4244
callq 0x2d30
callq 0x42a0
jmp 0x4249
callq 0x2d30
callq 0x42a0
movl $0x2, %edi
callq 0x2de0
jmp 0x4249
callq 0x42a0
jmp 0x424b
movl 0xf633(%rip), %eax      # 0x13884
movl %eax, -0x8(%rbp)
subl $0x2b, %eax
je 0x4265
jmp 0x425b
movl -0x8(%rbp), %eax
subl $0x2d, %eax
je 0x427b
jmp 0x4291
callq 0x2d30
callq 0x42a0
movl $0x3, %edi
callq 0x2de0
jmp 0x4297
callq 0x2d30
callq 0x42a0
movl $0x4, %edi
callq 0x2de0
jmp 0x4297
addq $0x10, %rsp
popq %rbp
retq
jmp 0x424b
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/georgeweigt[P]sassafras/sassafras.c
// Function: parse_term
void
parse_term(void)
{
	parse_factor();

	for (;;) {
		switch (token) {
		case '*':
			scan();
			parse_factor();
			emit(MUL);
			break;
		case '/':
			scan();
			parse_factor();
			emit(DIV);
			break;
		default:
			return;
		}
	}
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
callq 0x4300
movl 0xf5d1(%rip), %eax      # 0x13884
movl %eax, -0x4(%rbp)
subl $0x2a, %eax
je 0x42c7
jmp 0x42bd
movl -0x4(%rbp), %eax
subl $0x2f, %eax
je 0x42dd
jmp 0x42f3
callq 0x2d30
callq 0x4300
movl $0x5, %edi
callq 0x2de0
jmp 0x42f9
callq 0x2d30
callq 0x4300
movl $0x6, %edi
callq 0x2de0
jmp 0x42f9
addq $0x10, %rsp
popq %rbp
retq
jmp 0x42ad
nopl (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/georgeweigt[P]sassafras/sassafras.c
// Function: parse_factor
void
parse_factor(void)
{
	switch (token) {
	case NAME:
		if (strcmp(strbuf, "LOG") == 0)
			parse_log();
		else {
			emit_variable();
			scan();
		}
		break;
	case NUMBER:
		emit_number();
		scan();
		break;
	case '(':
		scan();
		parse_expr();
		if (token != ')')
			stop("Syntax error");
		scan();
		break;
	default:
		stop("Syntax error");
	}

	if (token == STARSTAR) {
		scan();
		switch (token) {
		case '+':
			scan();
			parse_factor();
			break;
		case '-':
			scan();
			parse_factor();
			emit(NEG);
			break;
		default:
			parse_factor();
			break;
		}
		emit(POW);
	}
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
movl 0xf576(%rip), %eax      # 0x13884
movl %eax, -0x4(%rbp)
subl $0x28, %eax
je 0x4367
jmp 0x4318
movl -0x4(%rbp), %eax
subl $0x3e9, %eax            # imm = 0x3E9
je 0x4330
jmp 0x4324
movl -0x4(%rbp), %eax
subl $0x3ea, %eax            # imm = 0x3EA
je 0x435b
jmp 0x438d
leaq 0xfd49(%rip), %rdi      # 0x14080
leaq 0xb0bf(%rip), %rsi      # 0xf3fd
callq 0x2140
cmpl $0x0, %eax
jne 0x434f
callq 0x4400
jmp 0x4359
callq 0x44d0
callq 0x2d30
jmp 0x4399
callq 0x4590
callq 0x2d30
jmp 0x4399
callq 0x2d30
callq 0x4200
cmpl $0x29, 0xf50c(%rip)     # 0x13884
je 0x4386
leaq 0xb080(%rip), %rdi      # 0xf401
callq 0x2790
callq 0x2d30
jmp 0x4399
leaq 0xb06d(%rip), %rdi      # 0xf401
callq 0x2790
cmpl $0x3ed, 0xf4e1(%rip)    # imm = 0x3ED
jne 0x43f5
callq 0x2d30
movl 0xf4d4(%rip), %eax      # 0x13884
movl %eax, -0x8(%rbp)
subl $0x2b, %eax
je 0x43c4
jmp 0x43ba
movl -0x8(%rbp), %eax
subl $0x2d, %eax
je 0x43d0
jmp 0x43e6
callq 0x2d30
callq 0x4300
jmp 0x43eb
callq 0x2d30
callq 0x4300
movl $0x2, %edi
callq 0x2de0
jmp 0x43eb
callq 0x4300
movl $0x7, %edi
callq 0x2de0
addq $0x10, %rsp
popq %rbp
retq
nopl (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/georgeweigt[P]sassafras/sassafras.c
// Function: parse_log
void
parse_log(void)
{
	// look ahead

	while (isspace(*inp) && *inp != '\n' && *inp != '\r')
		inp++;

	if (*inp != '(') {
		emit_variable();
		scan();
		return;
	}

	scan();
	scan();

	parse_expr();

	if (token != ')')
		expected(")");

	scan();

	emit(LOG);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
jmp 0x440a
callq 0x2210
movq (%rax), %rax
movq 0xf46f(%rip), %rcx      # 0x13888
movsbl (%rcx), %ecx
movslq %ecx, %rcx
movzwl (%rax,%rcx,2), %ecx
andl $0x2000, %ecx           # imm = 0x2000
xorl %eax, %eax
cmpl $0x0, %ecx
movb %al, -0x1(%rbp)
je 0x445a
movq 0xf44e(%rip), %rax      # 0x13888
movsbl (%rax), %ecx
xorl %eax, %eax
cmpl $0xa, %ecx
movb %al, -0x1(%rbp)
je 0x445a
movq 0xf43a(%rip), %rax      # 0x13888
movsbl (%rax), %eax
cmpl $0xd, %eax
setne %al
movb %al, -0x1(%rbp)
movb -0x1(%rbp), %al
testb $0x1, %al
jne 0x4463
jmp 0x4477
movq 0xf41e(%rip), %rax      # 0x13888
addq $0x1, %rax
movq %rax, 0xf413(%rip)      # 0x13888
jmp 0x440a
movq 0xf40a(%rip), %rax      # 0x13888
movsbl (%rax), %eax
cmpl $0x28, %eax
je 0x4492
callq 0x44d0
callq 0x2d30
jmp 0x44c5
callq 0x2d30
callq 0x2d30
callq 0x4200
cmpl $0x29, 0xf3dc(%rip)     # 0x13884
je 0x44b6
leaq 0xaf5d(%rip), %rdi      # 0xf40e
callq 0x2670
callq 0x2d30
movl $0x8, %edi
callq 0x2de0
addq $0x10, %rsp
popq %rbp
retq
nopl (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/georgeweigt[P]sassafras/sassafras.c
// Function: emit_variable
void
emit_variable(void)
{
	int i;
	for (i = 0; i < dd->nvar; i++)
		if (strcmp(dd->spec[i].name, strbuf) == 0)
			break;
	if (i == dd->nvar)
		stop("Variable not found");
	if (dd->spec[i].ltab)
		stop("An arithemetic expression cannot use a category variable");
	emit(LOAD);
	emit(i);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
movl $0x0, -0x4(%rbp)
movl -0x4(%rbp), %eax
movq 0xfb87(%rip), %rcx      # 0x14070
cmpl 0x10(%rcx), %eax
jge 0x4527
movq 0xfb7b(%rip), %rax      # 0x14070
addq $0x20, %rax
movslq -0x4(%rbp), %rcx
imulq $0x28, %rcx, %rcx
addq %rcx, %rax
movq (%rax), %rdi
leaq 0xfb72(%rip), %rsi      # 0x14080
callq 0x2140
cmpl $0x0, %eax
jne 0x451a
jmp 0x4527
jmp 0x451c
movl -0x4(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x4(%rbp)
jmp 0x44df
movl -0x4(%rbp), %eax
movq 0xfb3f(%rip), %rcx      # 0x14070
cmpl 0x10(%rcx), %eax
jne 0x4542
leaq 0xaeeb(%rip), %rdi      # 0xf428
callq 0x2790
movq 0xfb27(%rip), %rax      # 0x14070
addq $0x20, %rax
movslq -0x4(%rbp), %rcx
imulq $0x28, %rcx, %rcx
addq %rcx, %rax
cmpq $0x0, 0x10(%rax)
je 0x456b
leaq 0xaed5(%rip), %rdi      # 0xf43b
callq 0x2790
movl $0xa, %edi
callq 0x2de0
movl -0x4(%rbp), %edi
callq 0x2de0
addq $0x10, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/georgeweigt[P]sassafras/sassafras.c
// Function: emit_number
void
emit_number(void)
{
	int i;
	char *p = (char *) &token_num;
	emit(LIT);
	for (i = 0; i < sizeof (double); i++)
		emit(p[i]);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
leaq 0x13921(%rip), %rax     # 0x17ec0
movq %rax, -0x10(%rbp)
movl $0x9, %edi
callq 0x2de0
movl $0x0, -0x4(%rbp)
movslq -0x4(%rbp), %rax
cmpq $0x8, %rax
jae 0x45da
movq -0x10(%rbp), %rax
movslq -0x4(%rbp), %rcx
movsbl (%rax,%rcx), %edi
callq 0x2de0
movl -0x4(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x4(%rbp)
jmp 0x45b4
addq $0x10, %rsp
popq %rbp
retq
// File: /workspace/github_c_makefile_star2_O0/georgeweigt[P]sassafras/sassafras.c
// Function: main
int
main(int argc, char *argv[])
{
	char *s;

	if (argc < 2) {
		printf("usage: sassafras filename\n");
		exit(1);
	}

	s = read_file(argv[1]);

	if (s == NULL) {
		printf("error reading file %s\n", argv[1]);
		exit(1);
	}

	run(s);

	free(s);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movl %edi, -0x4(%rbp)
movq %rsi, -0x10(%rbp)
cmpl $0x2, -0x4(%rbp)
jge 0x49ed
leaq 0xaa98(%rip), %rdi      # 0xf474
movb $0x0, %al
callq 0x20b0
movl $0x1, %edi
callq 0x21d0
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rdi
callq 0x4a40
movq %rax, -0x18(%rbp)
cmpq $0x0, -0x18(%rbp)
jne 0x4a25
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rsi
leaq 0xaa7b(%rip), %rdi      # 0xf48f
movb $0x0, %al
callq 0x20b0
movl $0x1, %edi
callq 0x21d0
movq -0x18(%rbp), %rdi
callq 0x4b60
movq -0x18(%rbp), %rdi
callq 0x2030
xorl %eax, %eax
addq $0x20, %rsp
popq %rbp
retq
nop
// File: /workspace/github_c_makefile_star2_O0/georgeweigt[P]sassafras/sassafras.c
// Function: run
void
run(char *s)
{
	if (s == NULL)
		return;

	emit_line_init();

	run_nib(s);

	// clean up (always gets here, even on stop)

	if (infile) {
		fclose(infile);
		infile = NULL;
	}

	free_datasets();

	xfree(title);
	xfree(title1);
	xfree(title2);
	xfree(title3);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
movq %rdi, -0x8(%rbp)
cmpq $0x0, -0x8(%rbp)
jne 0x4b75
jmp 0x4bd9
callq 0x4be0
movq -0x8(%rbp), %rdi
callq 0xda40
cmpq $0x0, 0xed05(%rip)      # 0x13890
je 0x4ba4
movq 0xecfc(%rip), %rdi      # 0x13890
callq 0x2080
movq $0x0, 0xecec(%rip) # 0x13890
callq 0x4040
movq 0x13808(%rip), %rdi     # 0x183b8
callq 0x91b0
movq 0x13804(%rip), %rdi     # 0x183c0
callq 0x91b0
movq 0x13800(%rip), %rdi     # 0x183c8
callq 0x91b0
movq 0x137fc(%rip), %rdi     # 0x183d0
callq 0x91b0
addq $0x10, %rsp
popq %rbp
retq
nop
// File: /workspace/github_c_makefile_star2_O0/georgeweigt[P]sassafras/sassafras.c
// Function: emit_line_center
void
emit_line_center(char *s)
{
	int i, n;

	n = strlen(s);

	n = (80 - n) / 2;

	for (i = 0; i < n; i++)
		printf(" ");

	printf("%s\n", s);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rdi
callq 0x2090
movl %eax, -0x10(%rbp)
movl $0x50, %eax
subl -0x10(%rbp), %eax
movl $0x2, %ecx
cltd
idivl %ecx
movl %eax, -0x10(%rbp)
movl $0x0, -0xc(%rbp)
movl -0xc(%rbp), %eax
cmpl -0x10(%rbp), %eax
jge 0x4c73
leaq 0xabf7(%rip), %rdi      # 0xf858
movb $0x0, %al
callq 0x20b0
movl -0xc(%rbp), %eax
addl $0x1, %eax
movl %eax, -0xc(%rbp)
jmp 0x4c52
movq -0x8(%rbp), %rsi
leaq 0xa824(%rip), %rdi      # 0xf4a2
movb $0x0, %al
callq 0x20b0
addq $0x10, %rsp
popq %rbp
retq
nopl (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/georgeweigt[P]sassafras/sassafras.c
// Function: title_stmt
void
title_stmt(void)
{
	scan();
	if (token != STRING)
		expected("string");
	if (title)
		free(title);
	if (strbuf[0] == 0)
		title = NULL;
	else
		title = strdup(strbuf);
	scan();
	if (token != ';')
		stop("';' expected");
	scan();
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
callq 0x2d30
cmpl $0x3eb, 0xeb81(%rip)    # imm = 0x3EB
je 0x4d11
leaq 0xad4f(%rip), %rdi      # 0xfa5b
callq 0x2670
cmpq $0x0, 0x1369f(%rip)     # 0x183b8
je 0x4d27
movq 0x13696(%rip), %rdi     # 0x183b8
callq 0x2030
movsbl 0xf352(%rip), %eax      # 0x14080
cmpl $0x0, %eax
jne 0x4d40
movq $0x0, 0x1367a(%rip) # 0x183b8
jmp 0x4d53
leaq 0xf339(%rip), %rdi      # 0x14080
callq 0x21f0
movq %rax, 0x13665(%rip)     # 0x183b8
callq 0x2d30
cmpl $0x3b, 0xeb25(%rip)     # 0x13884
je 0x4d6d
leaq 0xa688(%rip), %rdi      # 0xf3f0
callq 0x2790
callq 0x2d30
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/georgeweigt[P]sassafras/sassafras.c
// Function: title1_stmt
void
title1_stmt(void)
{
	scan();
	if (token != STRING)
		expected("string");
	if (title1)
		free(title1);
	if (strbuf[0] == 0)
		title1 = NULL;
	else
		title1 = strdup(strbuf);
	scan();
	if (token != ';')
		stop("';' expected");
	scan();
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
callq 0x2d30
cmpl $0x3eb, 0xeaf1(%rip)    # imm = 0x3EB
je 0x4da1
leaq 0xacbf(%rip), %rdi      # 0xfa5b
callq 0x2670
cmpq $0x0, 0x13617(%rip)     # 0x183c0
je 0x4db7
movq 0x1360e(%rip), %rdi     # 0x183c0
callq 0x2030
movsbl 0xf2c2(%rip), %eax      # 0x14080
cmpl $0x0, %eax
jne 0x4dd0
movq $0x0, 0x135f2(%rip) # 0x183c0
jmp 0x4de3
leaq 0xf2a9(%rip), %rdi      # 0x14080
callq 0x21f0
movq %rax, 0x135dd(%rip)     # 0x183c0
callq 0x2d30
cmpl $0x3b, 0xea95(%rip)     # 0x13884
je 0x4dfd
leaq 0xa5f8(%rip), %rdi      # 0xf3f0
callq 0x2790
callq 0x2d30
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/georgeweigt[P]sassafras/sassafras.c
// Function: title2_stmt
void
title2_stmt(void)
{
	scan();
	if (token != STRING)
		expected("string");
	if (title2)
		free(title2);
	if (strbuf[0] == 0)
		title2 = NULL;
	else
		title2 = strdup(strbuf);
	scan();
	if (token != ';')
		stop("';' expected");
	scan();
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
callq 0x2d30
cmpl $0x3eb, 0xea61(%rip)    # imm = 0x3EB
je 0x4e31
leaq 0xac2f(%rip), %rdi      # 0xfa5b
callq 0x2670
cmpq $0x0, 0x1358f(%rip)     # 0x183c8
je 0x4e47
movq 0x13586(%rip), %rdi     # 0x183c8
callq 0x2030
movsbl 0xf232(%rip), %eax      # 0x14080
cmpl $0x0, %eax
jne 0x4e60
movq $0x0, 0x1356a(%rip) # 0x183c8
jmp 0x4e73
leaq 0xf219(%rip), %rdi      # 0x14080
callq 0x21f0
movq %rax, 0x13555(%rip)     # 0x183c8
callq 0x2d30
cmpl $0x3b, 0xea05(%rip)     # 0x13884
je 0x4e8d
leaq 0xa568(%rip), %rdi      # 0xf3f0
callq 0x2790
callq 0x2d30
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/georgeweigt[P]sassafras/sassafras.c
// Function: title3_stmt
void
title3_stmt(void)
{
	scan();
	if (token != STRING)
		expected("string");
	if (title3)
		free(title3);
	if (strbuf[0] == 0)
		title3 = NULL;
	else
		title3 = strdup(strbuf);
	scan();
	if (token != ';')
		stop("';' expected");
	scan();
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
callq 0x2d30
cmpl $0x3eb, 0xe9d1(%rip)    # imm = 0x3EB
je 0x4ec1
leaq 0xab9f(%rip), %rdi      # 0xfa5b
callq 0x2670
cmpq $0x0, 0x13507(%rip)     # 0x183d0
je 0x4ed7
movq 0x134fe(%rip), %rdi     # 0x183d0
callq 0x2030
movsbl 0xf1a2(%rip), %eax      # 0x14080
cmpl $0x0, %eax
jne 0x4ef0
movq $0x0, 0x134e2(%rip) # 0x183d0
jmp 0x4f03
leaq 0xf189(%rip), %rdi      # 0x14080
callq 0x21f0
movq %rax, 0x134cd(%rip)     # 0x183d0
callq 0x2d30
cmpl $0x3b, 0xe975(%rip)     # 0x13884
je 0x4f1d
leaq 0xa4d8(%rip), %rdi      # 0xf3f0
callq 0x2790
callq 0x2d30
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/georgeweigt[P]sassafras/sassafras.c
// Function: parse_alpha_option
void
parse_alpha_option(void)
{
	scan(); // skip alpha token

	if (token != '=')
		expected("equals sign");

	scan(); // skip equals sign

	if (token != NUMBER)
		expected("number");

	alpha = atof(strbuf);

	if (alpha < 0 || alpha > 1)
		expected("number between 0 and 1");
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
callq 0x2d30
cmpl $0x3d, 0xe944(%rip)     # 0x13884
je 0x4f4e
leaq 0xa3d4(%rip), %rdi      # 0xf31d
callq 0x2670
callq 0x2d30
cmpl $0x3ea, 0xe927(%rip)    # imm = 0x3EA
je 0x4f6b
leaq 0xa3d3(%rip), %rdi      # 0xf339
callq 0x2670
leaq 0xf10e(%rip), %rdi      # 0x14080
callq 0x2060
movsd %xmm0, 0x12f49(%rip)    # 0x17ec8
xorps %xmm0, %xmm0
ucomisd 0x12f3e(%rip), %xmm0    # 0x17ec8
ja 0x4fa2
movsd 0x12f34(%rip), %xmm0    # 0x17ec8
movsd 0xa244(%rip), %xmm1     # 0xf1e0
ucomisd %xmm1, %xmm0
jbe 0x4fae
leaq 0xa522(%rip), %rdi      # 0xf4cb
callq 0x2670
popq %rbp
retq
// File: /workspace/github_c_makefile_star2_O0/georgeweigt[P]sassafras/sassafras.c
// Function: parse_data_option
void
parse_data_option(void)
{
	scan();
	if (token != '=')
		stop("'=' expected");
	scan();
	if (token != NAME)
		stop("DATA=NAME expected");
	select_dataset(strbuf);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
callq 0x2d30
cmpl $0x3d, 0xe8c4(%rip)     # 0x13884
je 0x4fce
leaq 0xa519(%rip), %rdi      # 0xf4e2
callq 0x2790
callq 0x2d30
cmpl $0x3e9, 0xe8a7(%rip)    # imm = 0x3E9
je 0x4feb
leaq 0xa509(%rip), %rdi      # 0xf4ef
callq 0x2790
leaq 0xf08e(%rip), %rdi      # 0x14080
callq 0x4160
popq %rbp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/georgeweigt[P]sassafras/sassafras.c
// Function: parse_maxdec_option
void
parse_maxdec_option(void)
{
	scan();
	if (token != '=')
		stop("'=' expected");

	scan();
	if (token != NUMBER)
		stop("Number expected");

	maxdec = (int) token_num;

	if (maxdec < 0)
		maxdec = 0;

	if (maxdec > 8)
		maxdec = 8;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
callq 0x2d30
cmpl $0x3d, 0xe874(%rip)     # 0x13884
je 0x501e
leaq 0xa4c9(%rip), %rdi      # 0xf4e2
callq 0x2790
callq 0x2d30
cmpl $0x3ea, 0xe857(%rip)    # imm = 0x3EA
je 0x503b
leaq 0xa4cc(%rip), %rdi      # 0xf502
callq 0x2790
cvttsd2si 0x12e7d(%rip), %eax # 0x17ec0
movl %eax, 0x12e87(%rip)     # 0x17ed0
cmpl $0x0, 0x12e80(%rip)     # 0x17ed0
jge 0x505c
movl $0x0, 0x12e74(%rip)     # 0x17ed0
cmpl $0x8, 0x12e6d(%rip)     # 0x17ed0
jle 0x506f
movl $0x8, 0x12e61(%rip)     # 0x17ed0
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/georgeweigt[P]sassafras/sassafras.c
// Function: parse_by_stmt
void
parse_by_stmt(void)
{
	int i;

	for (;;) {

		scan();

		if (token == ';')
			break;

		if (token != NAME)
			stop("Variable name expected");

		// look for match in dataset

		for (i = 0; i < dataset->nvar; i++)
			if (strcmp(dataset->spec[i].name, strbuf) == 0)
				break;

		if (i == dataset->nvar) {
			snprintf(errbuf, ERRBUFLEN, "The variable %s not in the dataset", strbuf);
			stop(errbuf);
		}

		if (dataset->spec[i].ltab == NULL) {
			snprintf(errbuf, ERRBUFLEN, "The variable %s is not a categorical variable", strbuf);
			stop(errbuf);
		}

		by[nby++] = i;
	}

	scan(); // eat the semicolon
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
callq 0x2d30
cmpl $0x3b, 0xe7f0(%rip)     # 0x13884
jne 0x509b
jmp 0x51ae
cmpl $0x3e9, 0xe7df(%rip)    # imm = 0x3E9
je 0x50b3
leaq 0xa464(%rip), %rdi      # 0xf512
callq 0x2790
movl $0x0, -0x4(%rbp)
movl -0x4(%rbp), %eax
movq 0x12df4(%rip), %rcx     # 0x17eb8
cmpl 0x10(%rcx), %eax
jge 0x5102
movq 0x12de8(%rip), %rax     # 0x17eb8
addq $0x20, %rax
movslq -0x4(%rbp), %rcx
imulq $0x28, %rcx, %rcx
addq %rcx, %rax
movq (%rax), %rdi
leaq 0xef97(%rip), %rsi      # 0x14080
callq 0x2140
cmpl $0x0, %eax
jne 0x50f5
jmp 0x5102
jmp 0x50f7
movl -0x4(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x4(%rbp)
jmp 0x50ba
movl -0x4(%rbp), %eax
movq 0x12dac(%rip), %rcx     # 0x17eb8
cmpl 0x10(%rcx), %eax
jne 0x513e
leaq 0xe788(%rip), %rdi      # 0x138a0
movl $0x7d0, %esi            # imm = 0x7D0
leaq 0xa405(%rip), %rdx      # 0xf529
leaq 0xef55(%rip), %rcx      # 0x14080
movb $0x0, %al
callq 0x20c0
leaq 0xe767(%rip), %rdi      # 0x138a0
callq 0x2790
movq 0x12d73(%rip), %rax     # 0x17eb8
addq $0x20, %rax
movslq -0x4(%rbp), %rcx
imulq $0x28, %rcx, %rcx
addq %rcx, %rax
cmpq $0x0, 0x10(%rax)
jne 0x5188
leaq 0xe73e(%rip), %rdi      # 0x138a0
movl $0x7d0, %esi            # imm = 0x7D0
leaq 0xa3de(%rip), %rdx      # 0xf54c
leaq 0xef0b(%rip), %rcx      # 0x14080
movb $0x0, %al
callq 0x20c0
leaq 0xe71d(%rip), %rdi      # 0x138a0
callq 0x2790
movl -0x4(%rbp), %edx
movl 0x12edf(%rip), %eax     # 0x18070
movl %eax, %ecx
addl $0x1, %ecx
movl %ecx, 0x12ed4(%rip)     # 0x18070
movslq %eax, %rcx
leaq 0x12d3a(%rip), %rax     # 0x17ee0
movl %edx, (%rax,%rcx,4)
jmp 0x5088
callq 0x2d30
addq $0x10, %rsp
popq %rbp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/georgeweigt[P]sassafras/sassafras.c
// Function: parse_class_stmt
void
parse_class_stmt(void)
{
	int i;

	for (;;) {

		scan();

		if (token == ';')
			break;

		if (token != NAME)
			stop("Variable name expected");

		// look for match in dataset

		for (i = 0; i < dataset->nvar; i++)
			if (strcmp(dataset->spec[i].name, strbuf) == 0)
				break;

		if (i == dataset->nvar) {
			snprintf(errbuf, ERRBUFLEN, "The variable %s not in the dataset", strbuf);
			stop(errbuf);
		}

		if (dataset->spec[i].ltab == NULL) {
			snprintf(errbuf, ERRBUFLEN, "The variable %s is not a categorical variable", strbuf);
			stop(errbuf);
		}

		class[nclass++] = i;
	}

	scan(); // eat the semicolon
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
callq 0x2d30
cmpl $0x3b, 0xe6b0(%rip)     # 0x13884
jne 0x51db
jmp 0x52ee
cmpl $0x3e9, 0xe69f(%rip)    # imm = 0x3E9
je 0x51f3
leaq 0xa324(%rip), %rdi      # 0xf512
callq 0x2790
movl $0x0, -0x4(%rbp)
movl -0x4(%rbp), %eax
movq 0x12cb4(%rip), %rcx     # 0x17eb8
cmpl 0x10(%rcx), %eax
jge 0x5242
movq 0x12ca8(%rip), %rax     # 0x17eb8
addq $0x20, %rax
movslq -0x4(%rbp), %rcx
imulq $0x28, %rcx, %rcx
addq %rcx, %rax
movq (%rax), %rdi
leaq 0xee57(%rip), %rsi      # 0x14080
callq 0x2140
cmpl $0x0, %eax
jne 0x5235
jmp 0x5242
jmp 0x5237
movl -0x4(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x4(%rbp)
jmp 0x51fa
movl -0x4(%rbp), %eax
movq 0x12c6c(%rip), %rcx     # 0x17eb8
cmpl 0x10(%rcx), %eax
jne 0x527e
leaq 0xe648(%rip), %rdi      # 0x138a0
movl $0x7d0, %esi            # imm = 0x7D0
leaq 0xa2c5(%rip), %rdx      # 0xf529
leaq 0xee15(%rip), %rcx      # 0x14080
movb $0x0, %al
callq 0x20c0
leaq 0xe627(%rip), %rdi      # 0x138a0
callq 0x2790
movq 0x12c33(%rip), %rax     # 0x17eb8
addq $0x20, %rax
movslq -0x4(%rbp), %rcx
imulq $0x28, %rcx, %rcx
addq %rcx, %rax
cmpq $0x0, 0x10(%rax)
jne 0x52c8
leaq 0xe5fe(%rip), %rdi      # 0x138a0
movl $0x7d0, %esi            # imm = 0x7D0
leaq 0xa29e(%rip), %rdx      # 0xf54c
leaq 0xedcb(%rip), %rcx      # 0x14080
movb $0x0, %al
callq 0x20c0
leaq 0xe5dd(%rip), %rdi      # 0x138a0
callq 0x2790
movl -0x4(%rbp), %edx
movl 0x12f3f(%rip), %eax     # 0x18210
movl %eax, %ecx
addl $0x1, %ecx
movl %ecx, 0x12f34(%rip)     # 0x18210
movslq %eax, %rcx
leaq 0x12d9a(%rip), %rax     # 0x18080
movl %edx, (%rax,%rcx,4)
jmp 0x51c8
callq 0x2d30
addq $0x10, %rsp
popq %rbp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/georgeweigt[P]sassafras/sassafras.c
// Function: parse_var_stmt
void
parse_var_stmt(void)
{
	int i;

	for (;;) {

		scan();

		if (token == ';')
			break;

		if (token != NAME)
			stop("Variable name expected");

		// look for match in dataset

		for (i = 0; i < dataset->nvar; i++)
			if (strcmp(dataset->spec[i].name, strbuf) == 0)
				break;

		if (i == dataset->nvar) {
			snprintf(errbuf, ERRBUFLEN, "Variable %s?", strbuf);
			stop(errbuf);
		}

		var[nvar++] = i;
	}

	scan(); // eat the semicolon
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
callq 0x2d30
cmpl $0x3b, 0xe570(%rip)     # 0x13884
jne 0x531b
jmp 0x53e4
cmpl $0x3e9, 0xe55f(%rip)    # imm = 0x3E9
je 0x5333
leaq 0xa1e4(%rip), %rdi      # 0xf512
callq 0x2790
movl $0x0, -0x4(%rbp)
movl -0x4(%rbp), %eax
movq 0x12b74(%rip), %rcx     # 0x17eb8
cmpl 0x10(%rcx), %eax
jge 0x5382
movq 0x12b68(%rip), %rax     # 0x17eb8
addq $0x20, %rax
movslq -0x4(%rbp), %rcx
imulq $0x28, %rcx, %rcx
addq %rcx, %rax
movq (%rax), %rdi
leaq 0xed17(%rip), %rsi      # 0x14080
callq 0x2140
cmpl $0x0, %eax
jne 0x5375
jmp 0x5382
jmp 0x5377
movl -0x4(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x4(%rbp)
jmp 0x533a
movl -0x4(%rbp), %eax
movq 0x12b2c(%rip), %rcx     # 0x17eb8
cmpl 0x10(%rcx), %eax
jne 0x53be
leaq 0xe508(%rip), %rdi      # 0x138a0
movl $0x7d0, %esi            # imm = 0x7D0
leaq 0xa1d6(%rip), %rdx      # 0xf57a
leaq 0xecd5(%rip), %rcx      # 0x14080
movb $0x0, %al
callq 0x20c0
leaq 0xe4e7(%rip), %rdi      # 0x138a0
callq 0x2790
movl -0x4(%rbp), %edx
movl 0x12fe9(%rip), %eax     # 0x183b0
movl %eax, %ecx
addl $0x1, %ecx
movl %ecx, 0x12fde(%rip)     # 0x183b0
movslq %eax, %rcx
leaq 0x12e44(%rip), %rax     # 0x18220
movl %edx, (%rax,%rcx,4)
jmp 0x5308
callq 0x2d30
addq $0x10, %rsp
popq %rbp
retq
nop
// File: /workspace/github_c_makefile_star2_O0/georgeweigt[P]sassafras/sassafras.c
// Function: print_table_and_free
void
print_table_and_free(char **a, int nrow, int ncol, char *fmt)
{
	int i, j;
	print_table(a, nrow, ncol, fmt);
	for (i = 0; i < nrow; i++)
		for (j = 0; j < ncol; j++)
			free(A(i, j));
	free(a);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x8(%rbp)
movl %esi, -0xc(%rbp)
movl %edx, -0x10(%rbp)
movq %rcx, -0x18(%rbp)
movq -0x8(%rbp), %rdi
movl -0xc(%rbp), %esi
movl -0x10(%rbp), %edx
movq -0x18(%rbp), %rcx
callq 0x5480
movl $0x0, -0x1c(%rbp)
movl -0x1c(%rbp), %eax
cmpl -0xc(%rbp), %eax
jge 0x5471
movl $0x0, -0x20(%rbp)
movl -0x20(%rbp), %eax
cmpl -0x10(%rbp), %eax
jge 0x5464
movq -0x8(%rbp), %rax
movl -0x1c(%rbp), %ecx
imull -0x10(%rbp), %ecx
movslq %ecx, %rcx
shlq $0x3, %rcx
addq %rcx, %rax
movslq -0x20(%rbp), %rcx
movq (%rax,%rcx,8), %rdi
callq 0x2030
movl -0x20(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x20(%rbp)
jmp 0x542f
jmp 0x5466
movl -0x1c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x1c(%rbp)
jmp 0x5420
movq -0x8(%rbp), %rdi
callq 0x2030
addq $0x20, %rsp
popq %rbp
retq
// File: /workspace/github_c_makefile_star2_O0/georgeweigt[P]sassafras/sassafras.c
// Function: print_title
void
print_title(void)
{
	if (title)
		emit_line_center(title);

	if (title1)
		emit_line_center(title1);

	if (title2)
		emit_line_center(title2);

	if (title3)
		emit_line_center(title3);

	if (title || title1 || title2 || title3)
		emit_line("");
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
cmpq $0x0, 0x12bdc(%rip)     # 0x183b8
je 0x57ea
movq 0x12bd3(%rip), %rdi     # 0x183b8
callq 0x4c20
cmpq $0x0, 0x12bce(%rip)     # 0x183c0
je 0x5800
movq 0x12bc5(%rip), %rdi     # 0x183c0
callq 0x4c20
cmpq $0x0, 0x12bc0(%rip)     # 0x183c8
je 0x5816
movq 0x12bb7(%rip), %rdi     # 0x183c8
callq 0x4c20
cmpq $0x0, 0x12bb2(%rip)     # 0x183d0
je 0x582c
movq 0x12ba9(%rip), %rdi     # 0x183d0
callq 0x4c20
cmpq $0x0, 0x12b84(%rip)     # 0x183b8
jne 0x5854
cmpq $0x0, 0x12b82(%rip)     # 0x183c0
jne 0x5854
cmpq $0x0, 0x12b80(%rip)     # 0x183c8
jne 0x5854
cmpq $0x0, 0x12b7e(%rip)     # 0x183d0
je 0x5860
leaq 0x9b84(%rip), %rdi      # 0xf3df
callq 0x4bf0
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/georgeweigt[P]sassafras/sassafras.c
// Function: proc_anova
void
proc_anova(void)
{
	nx = 0;

	proc_anova_parse_stmt();

	if (dataset == NULL)
		stop("No data set");

	proc_anova_parse_body();
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
movl $0x0, 0x12b5a(%rip)     # 0x183d8
callq 0x58a0
cmpq $0x0, 0x1262d(%rip)     # 0x17eb8
jne 0x5899
leaq 0x9cf3(%rip), %rdi      # 0xf587
callq 0x2790
callq 0x58f0
popq %rbp
retq
// File: /workspace/github_c_makefile_star2_O0/georgeweigt[P]sassafras/sassafras.c
// Function: proc_anova_parse_stmt
void
proc_anova_parse_stmt(void)
{
	for (;;) {
		scan();
		keyword();
		switch (token) {
		case ';':
			scan(); // eat the semicolon
			return;
		case KDATA:
			parse_data_option();
			break;
		default:
			expected("end of statement or data=name");
		}
	}
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
jmp 0x58aa
callq 0x2d30
callq 0x25e0
movl 0xdfca(%rip), %eax      # 0x13884
movl %eax, -0x4(%rbp)
subl $0x3b, %eax
je 0x58d0
jmp 0x58c4
movl -0x4(%rbp), %eax
subl $0x135, %eax            # imm = 0x135
je 0x58db
jmp 0x58e2
callq 0x2d30
addq $0x10, %rsp
popq %rbp
retq
callq 0x4fb0
jmp 0x58ee
leaq 0x9caa(%rip), %rdi      # 0xf593
callq 0x2670
jmp 0x58aa
// File: /workspace/github_c_makefile_star2_O0/georgeweigt[P]sassafras/sassafras.c
// Function: proc_anova_parse_body
void
proc_anova_parse_body(void)
{
	for (;;) {
		keyword();
		switch (token) {
		case 0:
		case KDATA:
		case KPROC:
		case KRUN:
			return;
		case KCLASS:
			parse_class_stmt();
			break;
		case KMEANS:
			proc_anova_parse_means_stmt();
			break;
		case KMODEL:
			proc_anova_parse_model_stmt();
			proc_anova_model();
			break;
		default:
			parse_default();
			break;
		}
	}
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
jmp 0x58fa
callq 0x25e0
movl 0xdf7f(%rip), %eax      # 0x13884
movl %eax, -0x4(%rbp)
testl %eax, %eax
je 0x5956
jmp 0x590e
movl -0x4(%rbp), %eax
subl $0x131, %eax            # imm = 0x131
je 0x595c
jmp 0x591a
movl -0x4(%rbp), %eax
subl $0x135, %eax            # imm = 0x135
je 0x5956
jmp 0x5926
movl -0x4(%rbp), %eax
subl $0x141, %eax            # imm = 0x141
je 0x5963
jmp 0x5932
movl -0x4(%rbp), %eax
subl $0x143, %eax            # imm = 0x143
je 0x596a
jmp 0x593e
movl -0x4(%rbp), %eax
subl $0x147, %eax            # imm = 0x147
je 0x5956
jmp 0x594a
movl -0x4(%rbp), %eax
subl $0x14a, %eax            # imm = 0x14A
jne 0x5976
jmp 0x5956
addq $0x10, %rsp
popq %rbp
retq
callq 0x51c0
jmp 0x597b
callq 0x5980
jmp 0x597b
callq 0x5b80
callq 0x5cc0
jmp 0x597b
callq 0x2c60
jmp 0x58fa
// File: /workspace/github_c_makefile_star2_O0/georgeweigt[P]sassafras/sassafras.c
// Function: proc_anova_parse_model_stmt
void
proc_anova_parse_model_stmt(void)
{
	int i;

	nx = 0;

	// parse dependent variable

	scan();

	if (token != NAME)
		expected("variable name");

	for (i = 0; i < dataset->nvar; i++)
		if (strcmp(dataset->spec[i].name, strbuf) == 0)
			break;

	if (i == dataset->nvar)
		expected("variable in data set");

	if (dataset->spec[i].ltab)
		expected("numeric variable");

	yvar = i;

	scan();

	if (token != '=')
		expected("equals sign");

	scan();

	// parse explanatory variables

	for (;;) {

		if (token == ';' || token == '/')
			break;

		if (token != NAME)
			expected("variable name");

		proc_anova_parse_explanatory_variable();
	}

	if (token == '/')
		proc_anova_parse_model_options();

	scan(); // eat the semicolon
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
movl $0x0, 0x12846(%rip)     # 0x183d8
callq 0x2d30
cmpl $0x3e9, 0xdce3(%rip)    # imm = 0x3E9
je 0x5baf
leaq 0x9a47(%rip), %rdi      # 0xf5f1
callq 0x2670
movl $0x0, -0x4(%rbp)
movl -0x4(%rbp), %eax
movq 0x122f8(%rip), %rcx     # 0x17eb8
cmpl 0x10(%rcx), %eax
jge 0x5bfe
movq 0x122ec(%rip), %rax     # 0x17eb8
addq $0x20, %rax
movslq -0x4(%rbp), %rcx
imulq $0x28, %rcx, %rcx
addq %rcx, %rax
movq (%rax), %rdi
leaq 0xe49b(%rip), %rsi      # 0x14080
callq 0x2140
cmpl $0x0, %eax
jne 0x5bf1
jmp 0x5bfe
jmp 0x5bf3
movl -0x4(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x4(%rbp)
jmp 0x5bb6
movl -0x4(%rbp), %eax
movq 0x122b0(%rip), %rcx     # 0x17eb8
cmpl 0x10(%rcx), %eax
jne 0x5c19
leaq 0x99eb(%rip), %rdi      # 0xf5ff
callq 0x2670
movq 0x12298(%rip), %rax     # 0x17eb8
addq $0x20, %rax
movslq -0x4(%rbp), %rcx
imulq $0x28, %rcx, %rcx
addq %rcx, %rax
cmpq $0x0, 0x10(%rax)
je 0x5c42
leaq 0x99d7(%rip), %rdi      # 0xf614
callq 0x2670
movl -0x4(%rbp), %eax
movl %eax, 0x12925(%rip)     # 0x18570
callq 0x2d30
cmpl $0x3d, 0xdc2d(%rip)     # 0x13884
je 0x5c65
leaq 0x96bd(%rip), %rdi      # 0xf31d
callq 0x2670
callq 0x2d30
cmpl $0x3b, 0xdc13(%rip)     # 0x13884
je 0x5c7c
cmpl $0x2f, 0xdc0a(%rip)     # 0x13884
jne 0x5c7e
jmp 0x5c9d
cmpl $0x3e9, 0xdbfc(%rip)    # imm = 0x3E9
je 0x5c96
leaq 0x9960(%rip), %rdi      # 0xf5f1
callq 0x2670
callq 0x7650
jmp 0x5c6a
cmpl $0x2f, 0xdbe0(%rip)     # 0x13884
jne 0x5cab
callq 0x7820
callq 0x2d30
addq $0x10, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/georgeweigt[P]sassafras/sassafras.c
// Function: proc_anova_model
void
proc_anova_model(void)
{
	proc_anova_regression();

	print_title();

	if (nmiss) {
		snprintf(bigbuf, BIGBUFLEN, "%d observations deleted due to missing data", nmiss);
		emit_line(bigbuf);
	}

	emit_line_center("Analysis of Variance");
	emit_line("");

	print_anova_table_part1();

	print_anova_table_part2();

	print_anova_table_part3();
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
callq 0x7f80
callq 0x57d0
cmpl $0x0, 0x12d5b(%rip)     # 0x18a30
je 0x5d03
movl 0x12d53(%rip), %ecx     # 0x18a30
leaq 0x111cc(%rip), %rdi     # 0x16eb0
movl $0xfa0, %esi            # imm = 0xFA0
leaq 0x9a34(%rip), %rdx      # 0xf724
movb $0x0, %al
callq 0x20c0
leaq 0x111b2(%rip), %rdi     # 0x16eb0
callq 0x4bf0
leaq 0x9a46(%rip), %rdi      # 0xf750
callq 0x4c20
leaq 0x96c9(%rip), %rdi      # 0xf3df
callq 0x4bf0
callq 0x80e0
callq 0x84e0
callq 0x86b0
popq %rbp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/georgeweigt[P]sassafras/sassafras.c
// Function: proc_anova_parse_means_item
void
proc_anova_parse_means_item(void)
{
	if (token != NAME)
		expected("variable name");

	if (strlen(strbuf) + 1 > BIGBUFLEN)
		stop("Buffer overrun");

	strcpy(bigbuf, strbuf);

	scan();

	while (token == '*') {
		scan();
		if (token != NAME)
			expected("variable name");
		if (strlen(bigbuf) + strlen(strbuf) + 2 > BIGBUFLEN)
			stop("Buffer overrun");
		strcat(bigbuf, "*");
		strcat(bigbuf, strbuf);
		scan();
	}
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
cmpl $0x3e9, 0xdb42(%rip)    # imm = 0x3E9
je 0x5d50
leaq 0x98a6(%rip), %rdi      # 0xf5f1
callq 0x2670
leaq 0xe329(%rip), %rdi      # 0x14080
callq 0x2090
addq $0x1, %rax
cmpq $0xfa0, %rax            # imm = 0xFA0
jbe 0x5d74
leaq 0x9862(%rip), %rdi      # 0xf5d1
callq 0x2790
leaq 0x11135(%rip), %rdi     # 0x16eb0
leaq 0xe2fe(%rip), %rsi      # 0x14080
callq 0x2040
callq 0x2d30
cmpl $0x2a, 0xdaf1(%rip)     # 0x13884
jne 0x5e24
callq 0x2d30
cmpl $0x3e9, 0xdadc(%rip)    # imm = 0x3E9
je 0x5db6
leaq 0x9840(%rip), %rdi      # 0xf5f1
callq 0x2670
leaq 0x110f3(%rip), %rdi     # 0x16eb0
callq 0x2090
movq %rax, -0x8(%rbp)
leaq 0xe2b3(%rip), %rdi      # 0x14080
callq 0x2090
movq %rax, %rcx
movq -0x8(%rbp), %rax
addq %rcx, %rax
addq $0x2, %rax
cmpq $0xfa0, %rax            # imm = 0xFA0
jbe 0x5df4
leaq 0x97e2(%rip), %rdi      # 0xf5d1
callq 0x2790
leaq 0x110b5(%rip), %rdi     # 0x16eb0
leaq 0x9a66(%rip), %rsi      # 0xf868
callq 0x21c0
leaq 0x110a2(%rip), %rdi     # 0x16eb0
leaq 0xe26b(%rip), %rsi      # 0x14080
callq 0x21c0
callq 0x2d30
jmp 0x5d8c
addq $0x10, %rsp
popq %rbp
retq
nopw (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/georgeweigt[P]sassafras/sassafras.c
// Function: proc_anova_get_var_index
int
proc_anova_get_var_index(void)
{
	int i, n;
	n = dataset->nvar;
	for (i = 0; i < n; i++)
		if (strcmp(dataset->spec[i].name, strbuf) == 0)
			break;
	if (i == n) {
		snprintf(errbuf, ERRBUFLEN, "The variable name \"%s\" is not in the data set", strbuf);
		stop(errbuf);
	}
	if (dataset->spec[i].ltab == NULL) {
		snprintf(errbuf, ERRBUFLEN, "The variable \"%s\" is numeric, please change to categorical in the data step", strbuf);
		stop(errbuf);
	}
	return i;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
movq 0x10659(%rip), %rax     # 0x17eb8
movl 0x10(%rax), %eax
movl %eax, -0x8(%rbp)
movl $0x0, -0x4(%rbp)
movl -0x4(%rbp), %eax
cmpl -0x8(%rbp), %eax
jge 0x78ad
movq 0x1063d(%rip), %rax     # 0x17eb8
addq $0x20, %rax
movslq -0x4(%rbp), %rcx
imulq $0x28, %rcx, %rcx
addq %rcx, %rax
movq (%rax), %rdi
leaq 0xc7ec(%rip), %rsi      # 0x14080
callq 0x2140
cmpl $0x0, %eax
jne 0x78a0
jmp 0x78ad
jmp 0x78a2
movl -0x4(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x4(%rbp)
jmp 0x786c
movl -0x4(%rbp), %eax
cmpl -0x8(%rbp), %eax
jne 0x78e2
leaq 0xbfe4(%rip), %rdi      # 0x138a0
movl $0x7d0, %esi            # imm = 0x7D0
leaq 0x7dca(%rip), %rdx      # 0xf692
leaq 0xc7b1(%rip), %rcx      # 0x14080
movb $0x0, %al
callq 0x20c0
leaq 0xbfc3(%rip), %rdi      # 0x138a0
callq 0x2790
movq 0x105cf(%rip), %rax     # 0x17eb8
addq $0x20, %rax
movslq -0x4(%rbp), %rcx
imulq $0x28, %rcx, %rcx
addq %rcx, %rax
cmpq $0x0, 0x10(%rax)
jne 0x792c
leaq 0xbf9a(%rip), %rdi      # 0x138a0
movl $0x7d0, %esi            # imm = 0x7D0
leaq 0x7dae(%rip), %rdx      # 0xf6c0
leaq 0xc767(%rip), %rcx      # 0x14080
movb $0x0, %al
callq 0x20c0
leaq 0xbf79(%rip), %rdi      # 0x138a0
callq 0x2790
movl -0x4(%rbp), %eax
addq $0x10, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/georgeweigt[P]sassafras/sassafras.c
// Function: proc_anova_regression
void
proc_anova_regression(void)
{
	proc_anova_prelim();

	proc_anova_fit();

	dfe = nobs - npar;

	mse = sse / dfe;

	rootmse = sqrt(mse);

	msr = ssr / (npar - 1);

	fval = msr / mse;

	pval = 1 - fdist(fval, npar - 1, nobs - npar);

	rsquare = 1 - sse / css;

	adjrsq = 1 - (double) (nobs - 1) / (nobs - npar) * sse / css;

	cv = 100 * rootmse / ybar;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
callq 0x8aa0
callq 0x8ec0
movl 0x10aa0(%rip), %eax     # 0x18a34
subl 0x10a9e(%rip), %eax     # 0x18a38
cvtsi2sd %eax, %xmm0
movsd %xmm0, 0x10a9a(%rip)    # 0x18a40
movsd 0x10a9a(%rip), %xmm0    # 0x18a48
divsd 0x10a8a(%rip), %xmm0    # 0x18a40
movsd %xmm0, 0x10a92(%rip)    # 0x18a50
movsd 0x10a8a(%rip), %xmm0    # 0x18a50
callq 0x21e0
movsd %xmm0, 0x10a85(%rip)    # 0x18a58
movsd 0x10a85(%rip), %xmm0    # 0x18a60
movl 0x10a57(%rip), %eax     # 0x18a38
subl $0x1, %eax
cvtsi2sd %eax, %xmm1
divsd %xmm1, %xmm0
movsd %xmm0, 0x10a74(%rip)    # 0x18a68
movsd 0x10a6c(%rip), %xmm0    # 0x18a68
divsd 0x10a4c(%rip), %xmm0    # 0x18a50
movsd %xmm0, 0x10a64(%rip)    # 0x18a70
movsd 0x10a5c(%rip), %xmm0    # 0x18a70
movl 0x10a1e(%rip), %eax     # 0x18a38
subl $0x1, %eax
cvtsi2sd %eax, %xmm1
movl 0x10a0d(%rip), %eax     # 0x18a34
subl 0x10a0b(%rip), %eax     # 0x18a38
cvtsi2sd %eax, %xmm2
callq 0x9070
movaps %xmm0, %xmm1
movsd 0x719f(%rip), %xmm0     # 0xf1e0
subsd %xmm1, %xmm0
movsd %xmm0, 0x10a2b(%rip)    # 0x18a78
movsd 0x109f3(%rip), %xmm1    # 0x18a48
divsd 0x10a23(%rip), %xmm1    # 0x18a80
movsd 0x717b(%rip), %xmm0     # 0xf1e0
subsd %xmm1, %xmm0
movsd %xmm0, 0x10a17(%rip)    # 0x18a88
movl 0x109bd(%rip), %eax     # 0x18a34
subl $0x1, %eax
cvtsi2sd %eax, %xmm1
movl 0x109b0(%rip), %eax     # 0x18a34
subl 0x109ae(%rip), %eax     # 0x18a38
cvtsi2sd %eax, %xmm0
divsd %xmm0, %xmm1
mulsd 0x109ae(%rip), %xmm1    # 0x18a48
divsd 0x109de(%rip), %xmm1    # 0x18a80
movsd 0x7136(%rip), %xmm0     # 0xf1e0
subsd %xmm1, %xmm0
movsd %xmm0, 0x109da(%rip)    # 0x18a90
movsd 0x7152(%rip), %xmm0     # 0xf210
mulsd 0x10992(%rip), %xmm0    # 0x18a58
divsd 0x109ca(%rip), %xmm0    # 0x18a98
movsd %xmm0, 0x109ca(%rip)    # 0x18aa0
popq %rbp
retq
nopl (%rax,%rax)