// File: /workspace/github_c_makefile_star2_O2/olcaytaner[P]Isell/lang.c
// Function: read_array_from_userfile
void read_array_from_userfile(char* name, char* varname, int size)
{
 /*!Last Changed 03.01.2006*/
 /*!Last Changed 15.12.2004*/
 VARIABLE_TYPE variabletype;
 int tmp, i;
	double tmpf;
	char message[READLINELENGTH];
	variableptr myvar, myvar2;
 myvar = get_and_check_variable_type(name, 4, "file");
	if (!myvar)
			return;
	myvar2 = get_variable(varname);
	if (myvar2->arraysize != 0)
			variabletype = myvar2->value.array[0].type;
	else
	  return;
	if (myvar->userfile)
			switch (variabletype)
			 {
				 case INTEGER_TYPE:for (i = 0; i < size; i++)
													           {
								                 fscanf(myvar->userfile, "%d", &tmp);
														           myvar2->value.array[i].value.intvalue = tmp;
													           }
								               break;
				 case REAL_TYPE   :for (i = 0; i < size; i++)
													           {
								                 fscanf(myvar->userfile, "%lf", &tmpf);
														           myvar2->value.array[i].value.floatvalue = tmpf;
													           }
								               break;
				 case STRING_TYPE :for (i = 0; i < size; i++)
													           {
								                 fscanf(myvar->userfile, "%s", message);
														           if (myvar2->value.array[i].value.stringvalue)
																           safe_free(myvar2->value.array[i].value.stringvalue);
                         myvar2->value.array[i].value.stringvalue = strcopy(myvar2->value.array[i].value.stringvalue, message);
													           }
								               break;
     default          :printf(m1245);
                       break;
			 }
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x7a128, %rsp          # imm = 0x7A128
movl %edx, %r15d
movq %rsi, %r14
leaq 0x65532(%rip), %rdx     # 0x95cf1
pushq $0x4
popq %rsi
callq 0x30705
testq %rax, %rax
je 0x308fd
movq %rax, %rbx
movq %r14, %rdi
callq 0x3092c
cmpl $0x0, 0x20(%rax)
je 0x308fd
cmpq $0x0, 0x10(%rbx)
je 0x308fd
movq %rax, %r14
movq 0x28(%rax), %rax
movl (%rax), %eax
testl %eax, %eax
je 0x308bd
cmpl $0x1, %eax
je 0x30879
cmpl $0x2, %eax
jne 0x3090f
xorl %eax, %eax
testl %r15d, %r15d
cmovlel %eax, %r15d
imulq $0x30, %r15, %r13
leaq 0x676ad(%rip), %r15     # 0x97ed0
movq %rsp, %r12
xorl %ebp, %ebp
cmpq %rbp, %r13
je 0x308fd
movq 0x10(%rbx), %rdi
movq %r15, %rsi
movq %r12, %rdx
xorl %eax, %eax
callq 0x4070
movq 0x28(%r14), %rax
movq 0x28(%rax,%rbp), %rdi
testq %rdi, %rdi
je 0x30860
callq 0x34ff7
movq 0x28(%r14), %rax
movq 0x28(%rax,%rbp), %rdi
jmp 0x30862
xorl %edi, %edi
movq %r12, %rsi
callq 0x3604c
movq 0x28(%r14), %rcx
movq %rax, 0x28(%rcx,%rbp)
addq $0x30, %rbp
jmp 0x30828
xorl %eax, %eax
testl %r15d, %r15d
cmovlel %eax, %r15d
imulq $0x30, %r15, %r13
leaq 0x6931b(%rip), %r15     # 0x99ba8
movq %rsp, %r12
xorl %ebp, %ebp
cmpq %rbp, %r13
je 0x308fd
movq 0x10(%rbx), %rdi
movq %r15, %rsi
movq %r12, %rdx
xorl %eax, %eax
callq 0x4070
movsd (%rsp), %xmm0
movq 0x28(%r14), %rax
movsd %xmm0, 0x28(%rax,%rbp)
addq $0x30, %rbp
jmp 0x30892
xorl %eax, %eax
testl %r15d, %r15d
cmovlel %eax, %r15d
imulq $0x30, %r15, %r13
leaq 0x70288(%rip), %r15     # 0xa0b59
movq %rsp, %r12
xorl %ebp, %ebp
cmpq %rbp, %r13
je 0x308fd
movq 0x10(%rbx), %rdi
movq %r15, %rsi
movq %r12, %rdx
xorl %eax, %eax
callq 0x4070
movl (%rsp), %eax
movq 0x28(%r14), %rcx
movl %eax, 0x28(%rcx,%rbp)
addq $0x30, %rbp
jmp 0x308d6
addq $0x7a128, %rsp          # imm = 0x7A128
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
leaq 0x68d66(%rip), %rdi     # 0x9967c
addq $0x7a128, %rsp          # imm = 0x7A128
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
jmp 0x4090