// File: /workspace/github_c_makefile_star2_O1/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 0xd26f(%rip), %rax      # 0x10080
movslq 0x14(%rax), %r15
movl $0x0, 0xd661(%rip)      # 0x10480
cmpl $0x0, 0xc612(%rip)      # 0xf438
jle 0x30ec
xorl %r14d, %r14d
leaq 0xd65a(%rip), %rsi      # 0x10490
leaq 0x81f3(%rip), %r12      # 0xb030
leaq 0xfd5c(%rip), %r13      # 0x12ba0
movq %r15, -0x30(%rbp)
movslq %r14d, %rbx
movzbl (%rbx,%rsi), %eax
cmpq $0xd, %rax
ja 0x312b
movslq (%r12,%rax,4), %rax
addq %r12, %rax
jmpq *%rax
movzbl 0x1(%rbx,%rsi), %r15d
callq 0x3139
movl %eax, %r14d
callq 0x31a5
movq 0xd204(%rip), %rax      # 0x10080
leaq (%r15,%r15,4), %rcx
cmpl 0x38(%rax,%rcx,8), %r14d
jle 0x2e92
leaq (%rax,%rcx,8), %rdx
addq $0x38, %rdx
movl %r14d, (%rdx)
incq %rbx
addq $0x20, %rax
movq 0x20(%rax,%rcx,8), %rax
movq -0x30(%rbp), %r15
movsd %xmm0, (%rax,%r15,8)
movl %ebx, %r14d
jmp 0x30d5
movslq 0xd5c9(%rip), %rax      # 0x10480
testq %rax, %rax
je 0x30fb
movzbl 0x1(%rbx,%rsi), %ecx
incq %rbx
leaq -0x1(%rax), %rdx
movl %edx, 0xd5ae(%rip)      # 0x10480
movsd -0x8(%r13,%rax,8), %xmm0
movq 0xd1a0(%rip), %rax      # 0x10080
leaq (%rcx,%rcx,4), %rcx
movl $0x4, 0x38(%rax,%rcx,8)
movq 0x40(%rax,%rcx,8), %rax
movsd %xmm0, (%rax,%r15,8)
jmp 0x30aa
movslq 0xd57d(%rip), %rax      # 0x10480
cmpq $0x1, %rax
jle 0x30fb
leaq -0x1(%rax), %rcx
movl %ecx, 0xd569(%rip)      # 0x10480
movsd -0x10(%r13,%rax,8), %xmm0
subsd -0x8(%r13,%rax,8), %xmm0
jmp 0x3062
callq 0x2cb3
jmp 0x30d5
movslq 0xd545(%rip), %rax      # 0x10480
cmpq $0x64, %rax
je 0x311d
movsd 0x1(%rbx,%rsi), %xmm0
addl $0x8, %ebx
jmp 0x309a
movslq 0xd526(%rip), %rax      # 0x10480
testq %rax, %rax
je 0x30fb
movsd -0x8(%r13,%rax,8), %xmm0
xorpd 0x834e(%rip), %xmm0     # 0xb2c0
movlpd %xmm0, -0x8(%r13,%rax,8)
jmp 0x30dc
movslq 0xd4fb(%rip), %rax      # 0x10480
cmpq $0x1, %rax
jle 0x30fb
leaq -0x1(%rax), %rcx
movl %ecx, 0xd4e7(%rip)      # 0x10480
movsd -0x8(%r13,%rax,8), %xmm0
addsd -0x10(%r13,%rax,8), %xmm0
jmp 0x3062
movslq 0xd4cd(%rip), %rax      # 0x10480
cmpq $0x1, %rax
jle 0x30fb
leaq -0x1(%rax), %rcx
movl %ecx, 0xd4b9(%rip)      # 0x10480
movsd -0x10(%r13,%rax,8), %xmm0
movsd -0x8(%r13,%rax,8), %xmm1
callq 0x2090
jmp 0x30c7
movzbl 0x1(%rbx,%rsi), %r14d
incq %rbx
callq 0x32c1
movl %r14d, %edi
movl %r15d, %esi
callq 0x346c
leaq 0xd491(%rip), %rsi      # 0x10490
jmp 0x30aa
movslq 0xd475(%rip), %rax      # 0x10480
cmpq $0x1, %rax
jle 0x30fb
leaq -0x1(%rax), %rcx
movl %ecx, 0xd461(%rip)      # 0x10480
movsd -0x8(%r13,%rax,8), %xmm0
mulsd -0x10(%r13,%rax,8), %xmm0
jmp 0x3062
callq 0x3596
jmp 0x30d5
movslq 0xd440(%rip), %rax      # 0x10480
cmpq $0x1, %rax
jle 0x30fb
leaq -0x1(%rax), %rcx
movl %ecx, 0xd42c(%rip)      # 0x10480
movsd -0x10(%r13,%rax,8), %xmm0
divsd -0x8(%r13,%rax,8), %xmm0
movsd %xmm0, -0x10(%r13,%rax,8)
jmp 0x30dc
movslq 0xd40e(%rip), %rax      # 0x10480
cmpq $0x64, %rax
je 0x311d
movzbl 0x1(%rbx,%rsi), %ecx
incq %rbx
movq 0xcff5(%rip), %rdx      # 0x10080
leaq (%rcx,%rcx,4), %rcx
movq 0x40(%rdx,%rcx,8), %rcx
movsd (%rcx,%r15,8), %xmm0
leal 0x1(%rax), %ecx
movl %ecx, 0xd3dd(%rip)      # 0x10480
movsd %xmm0, (%r13,%rax,8)
movl %ebx, %r14d
jmp 0x30dc
movslq 0xd3ca(%rip), %rax      # 0x10480
testq %rax, %rax
jle 0x30fb
movsd -0x8(%r13,%rax,8), %xmm0
callq 0x2120
movslq 0xd3b2(%rip), %rax      # 0x10480
movsd %xmm0, -0x8(%r13,%rax,8)
leaq 0xd3b4(%rip), %rsi      # 0x10490
incl %r14d
cmpl 0xc352(%rip), %r14d     # 0xf438
jl 0x2e48
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
callq 0xa74a
leaq 0x8385(%rip), %rdi      # 0xb48c
callq 0x4081
leaq 0x12acd(%rip), %rdi     # 0x15be0
movl $0x1, %esi
callq 0x21b0
callq 0xa74a
leaq 0x8354(%rip), %rdi      # 0xb47d
jmp 0x3107
callq 0xa74a
leaq 0x8364(%rip), %rdi      # 0xb49b
jmp 0x3107