// File: /workspace/github_c_makefile_star2_O3/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 0xd299(%rip), %rax      # 0x10090
movslq 0x14(%rax), %r15
movl $0x0, 0xd68b(%rip)      # 0x10490
cmpl $0x0, 0xc63c(%rip)      # 0xf448
jle 0x30ea
xorl %r14d, %r14d
leaq 0xd684(%rip), %r13      # 0x104a0
leaq 0x820d(%rip), %r12      # 0xb030
movslq %r14d, %rbx
movzbl (%rbx,%r13), %eax
cmpq $0xd, %rax
ja 0x3129
movslq (%r12,%rax,4), %rax
addq %r12, %rax
jmpq *%rax
movq %r13, %rax
movq %r15, %r13
movzbl 0x1(%rbx,%rax), %r15d
callq 0x3137
movl %eax, %r14d
callq 0x31a3
movq 0xd232(%rip), %rax      # 0x10090
leaq (%r15,%r15,4), %rcx
cmpl 0x38(%rax,%rcx,8), %r14d
jle 0x2e74
leaq (%rax,%rcx,8), %rdx
addq $0x38, %rdx
movl %r14d, (%rdx)
incq %rbx
addq $0x20, %rax
movq 0x20(%rax,%rcx,8), %rax
movq %r13, %r15
movsd %xmm0, (%rax,%r13,8)
movl %ebx, %r14d
leaq 0xd60d(%rip), %r13      # 0x104a0
jmp 0x30da
movslq 0xd5f1(%rip), %rax      # 0x10490
testq %rax, %rax
je 0x30f9
movzbl 0x1(%rbx,%r13), %ecx
incq %rbx
leaq -0x1(%rax), %rdx
movl %edx, 0xd5d5(%rip)      # 0x10490
leaq 0xfcee(%rip), %rdx      # 0x12bb0
movsd -0x8(%rdx,%rax,8), %xmm0
movq 0xd1c1(%rip), %rax      # 0x10090
leaq (%rcx,%rcx,4), %rcx
movl $0x4, 0x38(%rax,%rcx,8)
movq 0x40(%rax,%rcx,8), %rax
movsd %xmm0, (%rax,%r15,8)
jmp 0x30ab
movl 0xd59f(%rip), %eax      # 0x10490
cmpl $0x1, %eax
jle 0x30f9
leal -0x1(%rax), %ecx
movl %ecx, 0xd58d(%rip)      # 0x10490
addl $-0x2, %eax
leaq 0xfca3(%rip), %rdx      # 0x12bb0
movsd (%rdx,%rax,8), %xmm0
subsd (%rdx,%rcx,8), %xmm0
jmp 0x305f
callq 0x2cb1
jmp 0x30da
movslq 0xd563(%rip), %rax      # 0x10490
cmpq $0x64, %rax
je 0x311b
movsd 0x1(%rbx,%r13), %xmm0
addl $0x8, %ebx
jmp 0x3096
movslq 0xd543(%rip), %rax      # 0x10490
testq %rax, %rax
je 0x30f9
leaq 0xfc53(%rip), %rcx      # 0x12bb0
movsd -0x8(%rcx,%rax,8), %xmm0
xorpd 0x8325(%rip), %xmm0     # 0xb290
movlpd %xmm0, -0x8(%rcx,%rax,8)
jmp 0x30da
movl 0xd514(%rip), %eax      # 0x10490
cmpl $0x1, %eax
jle 0x30f9
leal -0x1(%rax), %ecx
movl %ecx, 0xd502(%rip)      # 0x10490
leaq 0xfc1b(%rip), %rdx      # 0x12bb0
movsd (%rdx,%rcx,8), %xmm0
addl $-0x2, %eax
addsd (%rdx,%rax,8), %xmm0
jmp 0x305f
movl 0xd4e3(%rip), %eax      # 0x10490
cmpl $0x1, %eax
jle 0x30f9
leal -0x1(%rax), %ecx
movl %ecx, 0xd4d1(%rip)      # 0x10490
leaq 0xfbea(%rip), %rbx      # 0x12bb0
movsd (%rbx,%rcx,8), %xmm1
addl $-0x2, %eax
movsd (%rbx,%rax,8), %xmm0
callq 0x2090
jmp 0x30cd
movzbl 0x1(%rbx,%r13), %r14d
incq %rbx
callq 0x32ba
movl %r14d, %edi
movl %r15d, %esi
callq 0x3435
jmp 0x30ab
movl 0xd48f(%rip), %eax      # 0x10490
cmpl $0x1, %eax
jle 0x30f9
leal -0x1(%rax), %ecx
movl %ecx, 0xd47d(%rip)      # 0x10490
leaq 0xfb96(%rip), %rdx      # 0x12bb0
movsd (%rdx,%rcx,8), %xmm0
addl $-0x2, %eax
mulsd (%rdx,%rax,8), %xmm0
jmp 0x305f
callq 0x3578
jmp 0x30da
movl 0xd457(%rip), %eax      # 0x10490
cmpl $0x1, %eax
jle 0x30f9
leal -0x1(%rax), %ecx
movl %ecx, 0xd445(%rip)      # 0x10490
addl $-0x2, %eax
leaq 0xfb5b(%rip), %rdx      # 0x12bb0
movsd (%rdx,%rax,8), %xmm0
divsd (%rdx,%rcx,8), %xmm0
movsd %xmm0, (%rdx,%rax,8)
jmp 0x30da
movslq 0xd423(%rip), %rax      # 0x10490
cmpq $0x64, %rax
je 0x311b
movzbl 0x1(%rbx,%r13), %ecx
incq %rbx
movq 0xd009(%rip), %rdx      # 0x10090
leaq (%rcx,%rcx,4), %rcx
movq 0x40(%rdx,%rcx,8), %rcx
movsd (%rcx,%r15,8), %xmm0
leal 0x1(%rax), %ecx
movl %ecx, 0xd3f1(%rip)      # 0x10490
leaq 0xfb0a(%rip), %rcx      # 0x12bb0
movsd %xmm0, (%rcx,%rax,8)
movl %ebx, %r14d
jmp 0x30da
movl 0xd3da(%rip), %eax      # 0x10490
testl %eax, %eax
jle 0x30f9
decl %eax
leaq 0xfaed(%rip), %rbx      # 0x12bb0
movsd (%rbx,%rax,8), %xmm0
callq 0x2120
movslq 0xd3bc(%rip), %rax      # 0x10490
movsd %xmm0, -0x8(%rbx,%rax,8)
incl %r14d
cmpl 0xc364(%rip), %r14d     # 0xf448
jl 0x2e23
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
callq 0xa7e0
leaq 0x8357(%rip), %rdi      # 0xb45c
callq 0x4039
leaq 0x12adf(%rip), %rdi     # 0x15bf0
movl $0x1, %esi
callq 0x21c0
callq 0xa7e0
leaq 0x8326(%rip), %rdi      # 0xb44d
jmp 0x3105
callq 0xa7e0
leaq 0x8336(%rip), %rdi      # 0xb46b
jmp 0x3105