// File: /workspace/github_c_makefile_star2_O2/georgeweigt[P]sassafras/sassafras.c
// Function: get_data1
void
get_data1(void)
{
	int i, j, n, w, x;

	double t;

	// observation number

	n = dd->nobs;

	// process bytecodes

	tos = 0;

	for (i = 0; i < nbytecode; i++) {
		switch (bytecode[i]) {

		case SCAN_NUM:
			x = bytecode[++i];
			w = get_digits();
			t = get_number();
			if (w > dd->spec[x].w)
				dd->spec[x].w = w;
			dd->spec[x].v[n] = t;
			break;

		case SCAN_STR:
			x = bytecode[++i];
			get_string();
			catvar(x, n);
			break;

		case LOAD:
			if (tos == TOS)
				stop("Stack overflow");
			x = bytecode[++i];
			stack[tos++] = dd->spec[x].v[n];
			break;

		case STORE:
			if (tos == 0)
				stop("Stack underrun");
			x = bytecode[++i];
			t = stack[--tos];
			dd->spec[x].w = 4; // default precision
			dd->spec[x].v[n] = t;
			break;

		case LIT:
			if (tos == TOS)
				stop("Stack overflow");
			for (j = 0; j < sizeof (double); j++)
				((char *) &t)[j] = bytecode[++i];
			stack[tos++] = t;
			break;

		case NEG:
			if (tos == 0)
				stop("Stack underrun");
			stack[tos - 1] = -stack[tos - 1];
			break;

		case ADD:
			if (tos < 2)
				stop("Stack underrun");
			t = stack[--tos];
			stack[tos - 1] += t;
			break;

		case SUB:
			if (tos < 2)
				stop("Stack underrun");
			t = stack[--tos];
			stack[tos - 1] -= t;
			break;

		case MUL:
			if (tos < 2)
				stop("Stack underrun");
			t = stack[--tos];
			stack[tos - 1] *= t;
			break;

		case DIV:
			if (tos < 2)
				stop("Stack underrun");
			t = stack[--tos];
			stack[tos - 1] /= t;
			break;

		case POW:
			if (tos < 2)
				stop("Stack underrun");
			t = stack[--tos];
			stack[tos - 1] = pow(stack[tos - 1], t);
			break;

		case LOG:
			if (tos < 1)
				stop("Stack underrun");
			stack[tos - 1] = log(stack[tos - 1]);
			break;

		case GETBUF:
			getbuf();
			break;

		case CHKBUF:
			chkbuf();
			break;

		default:
			stop("Bytecode error");
		}
	}
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
pushq %rax
movq 0xd41d(%rip), %rax      # 0x10080
movslq 0x14(%rax), %r15
andl $0x0, 0xd812(%rip)      # 0x10480
xorl %ebx, %ebx
leaq 0xd819(%rip), %r13      # 0x10490
leaq 0x83b2(%rip), %r12      # 0xb030
cmpl 0xc7b4(%rip), %ebx      # 0xf438
jge 0x2fae
movslq %ebx, %r14
movzbl (%r14,%r13), %eax
cmpq $0xd, %rax
ja 0x2fd5
movslq (%r12,%rax,4), %rax
addq %r12, %rax
jmpq *%rax
movq %r13, %rax
movq %r15, %r13
movzbl 0x1(%r14,%rax), %r15d
callq 0x2fe1
movl %eax, %ebx
callq 0x304d
movsd %xmm0, -0x30(%rbp)
movq 0xd3b7(%rip), %rax      # 0x10080
imulq $0x28, %r15, %rcx
cmpl 0x38(%rax,%rcx), %ebx
jle 0x2cdd
leaq (%rax,%rcx), %rdx
addq $0x38, %rdx
movl %ebx, (%rdx)
incq %r14
addq $0x20, %rax
movq 0x20(%rax,%rcx), %rax
movq %r13, %r15
movsd %xmm0, (%rax,%r13,8)
movl %r14d, %ebx
leaq 0xd794(%rip), %r13      # 0x10490
jmp 0x2fa7
movslq 0xd778(%rip), %rax      # 0x10480
testq %rax, %rax
je 0x2fbd
movzbl 0x1(%r14,%r13), %ecx
incq %r14
leaq -0x1(%rax), %rdx
movl %edx, 0xd75c(%rip)      # 0x10480
leaq 0xfe75(%rip), %rdx      # 0x12ba0
movsd -0x8(%rdx,%rax,8), %xmm0
movsd %xmm0, -0x30(%rbp)
movq 0xd343(%rip), %rax      # 0x10080
imulq $0x28, %rcx, %rcx
movl $0x4, 0x38(%rax,%rcx)
movq 0x40(%rax,%rcx), %rax
movsd %xmm0, (%rax,%r15,8)
jmp 0x2f58
movl 0xd721(%rip), %eax      # 0x10480
cmpl $0x1, %eax
jle 0x2fbd
leal -0x1(%rax), %ecx
movl %ecx, 0xd70f(%rip)      # 0x10480
leaq 0xfe28(%rip), %rdx      # 0x12ba0
movsd (%rdx,%rcx,8), %xmm0
movsd %xmm0, -0x30(%rbp)
addl $-0x2, %eax
movsd (%rdx,%rax,8), %xmm1
subsd %xmm0, %xmm1
jmp 0x2f09
callq 0x2b56
jmp 0x2fa7
movslq 0xd6dc(%rip), %rax      # 0x10480
cmpq $0x64, %rax
je 0x2fc9
leaq (%r14,%r13), %rdx
incq %rdx
xorl %ecx, %ecx
cmpq $0x8, %rcx
je 0x2f8b
movb (%rdx,%rcx), %sil
movb %sil, -0x30(%rbp,%rcx)
incq %rcx
jmp 0x2db7
movslq 0xd6aa(%rip), %rax      # 0x10480
testq %rax, %rax
je 0x2fbd
leaq 0xfdba(%rip), %rcx      # 0x12ba0
movsd -0x8(%rcx,%rax,8), %xmm0
xorpd 0x849c(%rip), %xmm0     # 0xb290
movlpd %xmm0, -0x8(%rcx,%rax,8)
jmp 0x2fa7
movl 0xd67b(%rip), %eax      # 0x10480
cmpl $0x1, %eax
jle 0x2fbd
leal -0x1(%rax), %ecx
movl %ecx, 0xd669(%rip)      # 0x10480
leaq 0xfd82(%rip), %rdx      # 0x12ba0
movsd (%rdx,%rcx,8), %xmm0
movsd %xmm0, -0x30(%rbp)
addl $-0x2, %eax
addsd (%rdx,%rax,8), %xmm0
jmp 0x2ec0
movl 0xd645(%rip), %eax      # 0x10480
cmpl $0x1, %eax
jle 0x2fbd
leal -0x1(%rax), %ecx
movl %ecx, 0xd633(%rip)      # 0x10480
leaq 0xfd4c(%rip), %r14      # 0x12ba0
movsd (%r14,%rcx,8), %xmm1
movsd %xmm1, -0x30(%rbp)
addl $-0x2, %eax
movsd (%r14,%rax,8), %xmm0
callq 0x2090
jmp 0x2f7b
movzbl 0x1(%r14,%r13), %ebx
incq %r14
callq 0x3129
movl %ebx, %edi
movl %r15d, %esi
callq 0x329a
jmp 0x2f58
movl 0xd5eb(%rip), %eax      # 0x10480
cmpl $0x1, %eax
jle 0x2fbd
leal -0x1(%rax), %ecx
movl %ecx, 0xd5d9(%rip)      # 0x10480
leaq 0xfcf2(%rip), %rdx      # 0x12ba0
movsd (%rdx,%rcx,8), %xmm0
movsd %xmm0, -0x30(%rbp)
addl $-0x2, %eax
mulsd (%rdx,%rax,8), %xmm0
movsd %xmm0, (%rdx,%rax,8)
jmp 0x2fa7
callq 0x33e2
jmp 0x2fa7
movl 0xd5a6(%rip), %eax      # 0x10480
cmpl $0x1, %eax
jle 0x2fbd
leal -0x1(%rax), %ecx
movl %ecx, 0xd594(%rip)      # 0x10480
leaq 0xfcad(%rip), %rdx      # 0x12ba0
movsd (%rdx,%rcx,8), %xmm0
movsd %xmm0, -0x30(%rbp)
addl $-0x2, %eax
movsd (%rdx,%rax,8), %xmm1
divsd %xmm0, %xmm1
movsd %xmm1, (%rdx,%rax,8)
jmp 0x2fa7
movslq 0xd566(%rip), %rax      # 0x10480
cmpq $0x64, %rax
je 0x2fc9
movzbl 0x1(%r14,%r13), %ecx
incq %r14
movq 0xd14c(%rip), %rdx      # 0x10080
imulq $0x28, %rcx, %rcx
movq 0x40(%rdx,%rcx), %rcx
movsd (%rcx,%r15,8), %xmm0
leal 0x1(%rax), %ecx
movl %ecx, 0xd534(%rip)      # 0x10480
leaq 0xfc4d(%rip), %rcx      # 0x12ba0
movsd %xmm0, (%rcx,%rax,8)
movl %r14d, %ebx
jmp 0x2fa7
movl 0xd51d(%rip), %eax      # 0x10480
testl %eax, %eax
jle 0x2fbd
decl %eax
leaq 0xfc30(%rip), %r14      # 0x12ba0
movsd (%r14,%rax,8), %xmm0
callq 0x2120
movslq 0xd4fe(%rip), %rax      # 0x10480
movsd %xmm0, -0x8(%r14,%rax,8)
jmp 0x2fa7
addl %ecx, %ebx
movsd -0x30(%rbp), %xmm0
leal 0x1(%rax), %ecx
movl %ecx, 0xd4e5(%rip)      # 0x10480
leaq 0xfbfe(%rip), %rcx      # 0x12ba0
movsd %xmm0, (%rcx,%rax,8)
incl %ebx
jmp 0x2c7e
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
leaq 0x8498(%rip), %rdi      # 0xb45c
callq 0x267a
leaq 0x847d(%rip), %rdi      # 0xb44d
callq 0x267a
leaq 0x848f(%rip), %rdi      # 0xb46b
callq 0x267a