// File: /workspace/github_c_makefile_star2_O0/olcaytaner[P]Isell/lang.c
// Function: check_parameters
int check_parameters(char *params[MAXPARAMS], int paramcount, char* grammar[MAXPARAMS], int grammarcount, variableptr variables, int variablecount)
{
 /*!Last Changed 21.12.2006 added check_parameter_type and matrix type*/
	/*!Last Changed 07.05.2005*/
	/*!Last Changed 12.10.2004*/
	int i = 0, res, j, k, res2;
	while (i < paramcount && i < grammarcount)
	 {
		 if (char_count(params[i], '%') == 0)
			 {
	  	 res = listindex(grammar[i], possibleparametertypes, 17);
		  	switch (res)
					{
					 case -1:res2 = listindex(grammar[i], doublevalues, 3);
							       switch (res2)
														 {
														  case 0:if (strcmp(params[i], "on") != 0 && strcmp(params[i], "off") != 0)
														 									 return i;
														 								break;
														 	case 1:if (strcmp(params[i], "+") != 0 && strcmp(params[i], "-") != 0)
														 									 return i;
														 		      break;
														 	case 2:if (strcmp(params[i], "x") != 0 && strcmp(params[i], "y") != 0)
														 									 return i;
														 		      break;
														 }
							       break;
				  case  1:if (!isfloat(params[i]))
															 return i;
							       break;
			   case  2:if (!isinteger(params[i]))
															 return i;
														break;
		 	  case  4:for (j = i; j < paramcount; j++)
															 if (!isinteger(params[j]) && char_count(params[j], '%') == 0)
																	 return j;
														return -1;
							       break;
		 			case  5:for (j = i; j < paramcount; j++)
															 if (!isfloat(params[j]) && char_count(params[j], '%') == 0)
																	 return j;
														return -1;
														break;
		 			case  7:for (j = i; j < paramcount; j++)
															 if (!isinteger(params[j]) && char_count(params[j], '%') == 0)
																	 return j;
														return -1;
														break;
		 	  case  8:for (j = i; j < paramcount; j++)
															 if (!isfloat(params[j]) && char_count(params[j], '%') == 0)
																	 return j;
														return -1;
														break;
		 			case  9:if (!check_parameter_type(params[i], STRING_TYPE, variables, variablecount)) 
                return i;
														break;
		 	  case 10:if (!check_parameter_type(params[i], REAL_TYPE, variables, variablecount)) 
                return i;
              break;
		 			case 11:if (!check_parameter_type(params[i], INTEGER_TYPE, variables, variablecount)) 
                return i;
              break;
		 	  case 12:if (!check_parameter_type(params[i], FILE_TYPE, variables, variablecount)) 
                return i;
              break;
		 			case 13:if (listindex(params[i], operandtype, 8) == -1)
															 return i;
														break;
						case 14:if (!check_parameter_type(params[i], INTEGER_TYPE, variables, variablecount) && !check_parameter_type(params[i], REAL_TYPE, variables, variablecount) && !check_parameter_type(params[i], MATRIX_TYPE, variables, variablecount)) 
                return i;
              break;
						case 15:k = return_variable_index(params[i], variables, variablecount);
							       if (k == -1)
															 return i;
														break;
      case 16:if (!check_parameter_type(params[i], MATRIX_TYPE, variables, variablecount)) 
                return i;
              break;
		 	 }
			 }
			i++;
	 }
	return -1;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x60, %rsp
movq %rdi, -0x10(%rbp)
movl %esi, -0x14(%rbp)
movq %rdx, -0x20(%rbp)
movl %ecx, -0x24(%rbp)
movq %r8, -0x30(%rbp)
movl %r9d, -0x34(%rbp)
movl $0x0, -0x38(%rbp)
movl -0x38(%rbp), %ecx
xorl %eax, %eax
cmpl -0x14(%rbp), %ecx
movb %al, -0x49(%rbp)
jge 0x496be
movl -0x38(%rbp), %eax
cmpl -0x24(%rbp), %eax
setl %al
movb %al, -0x49(%rbp)
movb -0x49(%rbp), %al
testb $0x1, %al
jne 0x496ca
jmp 0x49bf8
movq -0x10(%rbp), %rax
movslq -0x38(%rbp), %rcx
movq (%rax,%rcx,8), %rdi
movl $0x25, %esi
callq 0x547d0
cmpl $0x0, %eax
jne 0x49bea
movq -0x20(%rbp), %rax
movslq -0x38(%rbp), %rcx
movq (%rax,%rcx,8), %rdi
leaq 0xbb5f4(%rip), %rsi     # 0x104cf0
movl $0x11, %edx
callq 0x54910
movl %eax, -0x3c(%rbp)
movl -0x3c(%rbp), %eax
incl %eax
movl %eax, %ecx
movq %rcx, -0x58(%rbp)
subl $0x11, %eax
ja 0x49be8
movq -0x58(%rbp), %rax
leaq 0x9c13c(%rip), %rcx     # 0xe5864
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movq -0x20(%rbp), %rax
movslq -0x38(%rbp), %rcx
movq (%rax,%rcx,8), %rdi
leaq 0xbb63c(%rip), %rsi     # 0x104d80
movl $0x3, %edx
callq 0x54910
movl %eax, -0x48(%rbp)
movl -0x48(%rbp), %eax
movl %eax, -0x5c(%rbp)
testl %eax, %eax
je 0x49778
jmp 0x4975d
movl -0x5c(%rbp), %eax
subl $0x1, %eax
je 0x497c2
jmp 0x49767
movl -0x5c(%rbp), %eax
subl $0x2, %eax
je 0x49809
jmp 0x49850
movq -0x10(%rbp), %rax
movslq -0x38(%rbp), %rcx
movq (%rax,%rcx,8), %rdi
leaq 0x9ee89(%rip), %rsi     # 0xe8614
callq 0x4210
cmpl $0x0, %eax
je 0x497bd
movq -0x10(%rbp), %rax
movslq -0x38(%rbp), %rcx
movq (%rax,%rcx,8), %rdi
leaq 0x9c3d5(%rip), %rsi     # 0xe5b7d
callq 0x4210
cmpl $0x0, %eax
je 0x497bd
movl -0x38(%rbp), %eax
movl %eax, -0x4(%rbp)
jmp 0x49bff
jmp 0x49850
movq -0x10(%rbp), %rax
movslq -0x38(%rbp), %rcx
movq (%rax,%rcx,8), %rdi
leaq 0x9c592(%rip), %rsi     # 0xe5d67
callq 0x4210
cmpl $0x0, %eax
je 0x49807
movq -0x10(%rbp), %rax
movslq -0x38(%rbp), %rcx
movq (%rax,%rcx,8), %rdi
leaq 0x9c390(%rip), %rsi     # 0xe5b82
callq 0x4210
cmpl $0x0, %eax
je 0x49807
movl -0x38(%rbp), %eax
movl %eax, -0x4(%rbp)
jmp 0x49bff
jmp 0x49850
movq -0x10(%rbp), %rax
movslq -0x38(%rbp), %rcx
movq (%rax,%rcx,8), %rdi
leaq 0x99310(%rip), %rsi     # 0xe2b2c
callq 0x4210
cmpl $0x0, %eax
je 0x4984e
movq -0x10(%rbp), %rax
movslq -0x38(%rbp), %rcx
movq (%rax,%rcx,8), %rdi
leaq 0x98f05(%rip), %rsi     # 0xe273e
callq 0x4210
cmpl $0x0, %eax
je 0x4984e
movl -0x38(%rbp), %eax
movl %eax, -0x4(%rbp)
jmp 0x49bff
jmp 0x49850
jmp 0x49be8
movq -0x10(%rbp), %rax
movslq -0x38(%rbp), %rcx
movq (%rax,%rcx,8), %rdi
callq 0x53b00
cmpl $0x0, %eax
jne 0x49876
movl -0x38(%rbp), %eax
movl %eax, -0x4(%rbp)
jmp 0x49bff
jmp 0x49be8
movq -0x10(%rbp), %rax
movslq -0x38(%rbp), %rcx
movq (%rax,%rcx,8), %rdi
callq 0x53bd0
cmpl $0x0, %eax
jne 0x4989c
movl -0x38(%rbp), %eax
movl %eax, -0x4(%rbp)
jmp 0x49bff
jmp 0x49be8
movl -0x38(%rbp), %eax
movl %eax, -0x40(%rbp)
movl -0x40(%rbp), %eax
cmpl -0x14(%rbp), %eax
jge 0x498f8
movq -0x10(%rbp), %rax
movslq -0x40(%rbp), %rcx
movq (%rax,%rcx,8), %rdi
callq 0x53bd0
cmpl $0x0, %eax
jne 0x498eb
movq -0x10(%rbp), %rax
movslq -0x40(%rbp), %rcx
movq (%rax,%rcx,8), %rdi
movl $0x25, %esi
callq 0x547d0
cmpl $0x0, %eax
jne 0x498eb
movl -0x40(%rbp), %eax
movl %eax, -0x4(%rbp)
jmp 0x49bff
jmp 0x498ed
movl -0x40(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x40(%rbp)
jmp 0x498a7
movl $0xffffffff, -0x4(%rbp) # imm = 0xFFFFFFFF
jmp 0x49bff
movl -0x38(%rbp), %eax
movl %eax, -0x40(%rbp)
movl -0x40(%rbp), %eax
cmpl -0x14(%rbp), %eax
jge 0x4995b
movq -0x10(%rbp), %rax
movslq -0x40(%rbp), %rcx
movq (%rax,%rcx,8), %rdi
callq 0x53b00
cmpl $0x0, %eax
jne 0x4994e
movq -0x10(%rbp), %rax
movslq -0x40(%rbp), %rcx
movq (%rax,%rcx,8), %rdi
movl $0x25, %esi
callq 0x547d0
cmpl $0x0, %eax
jne 0x4994e
movl -0x40(%rbp), %eax
movl %eax, -0x4(%rbp)
jmp 0x49bff
jmp 0x49950
movl -0x40(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x40(%rbp)
jmp 0x4990a
movl $0xffffffff, -0x4(%rbp) # imm = 0xFFFFFFFF
jmp 0x49bff
movl -0x38(%rbp), %eax
movl %eax, -0x40(%rbp)
movl -0x40(%rbp), %eax
cmpl -0x14(%rbp), %eax
jge 0x499be
movq -0x10(%rbp), %rax
movslq -0x40(%rbp), %rcx
movq (%rax,%rcx,8), %rdi
callq 0x53bd0
cmpl $0x0, %eax
jne 0x499b1
movq -0x10(%rbp), %rax
movslq -0x40(%rbp), %rcx
movq (%rax,%rcx,8), %rdi
movl $0x25, %esi
callq 0x547d0
cmpl $0x0, %eax
jne 0x499b1
movl -0x40(%rbp), %eax
movl %eax, -0x4(%rbp)
jmp 0x49bff
jmp 0x499b3
movl -0x40(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x40(%rbp)
jmp 0x4996d
movl $0xffffffff, -0x4(%rbp) # imm = 0xFFFFFFFF
jmp 0x49bff
movl -0x38(%rbp), %eax
movl %eax, -0x40(%rbp)
movl -0x40(%rbp), %eax
cmpl -0x14(%rbp), %eax
jge 0x49a21
movq -0x10(%rbp), %rax
movslq -0x40(%rbp), %rcx
movq (%rax,%rcx,8), %rdi
callq 0x53b00
cmpl $0x0, %eax
jne 0x49a14
movq -0x10(%rbp), %rax
movslq -0x40(%rbp), %rcx
movq (%rax,%rcx,8), %rdi
movl $0x25, %esi
callq 0x547d0
cmpl $0x0, %eax
jne 0x49a14
movl -0x40(%rbp), %eax
movl %eax, -0x4(%rbp)
jmp 0x49bff
jmp 0x49a16
movl -0x40(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x40(%rbp)
jmp 0x499d0
movl $0xffffffff, -0x4(%rbp) # imm = 0xFFFFFFFF
jmp 0x49bff
movq -0x10(%rbp), %rax
movslq -0x38(%rbp), %rcx
movq (%rax,%rcx,8), %rdi
movq -0x30(%rbp), %rdx
movl -0x34(%rbp), %ecx
movl $0x2, %esi
callq 0x49500
cmpl $0x0, %eax
jne 0x49a5a
movl -0x38(%rbp), %eax
movl %eax, -0x4(%rbp)
jmp 0x49bff
jmp 0x49be8
movq -0x10(%rbp), %rax
movslq -0x38(%rbp), %rcx
movq (%rax,%rcx,8), %rdi
movq -0x30(%rbp), %rdx
movl -0x34(%rbp), %ecx
movl $0x1, %esi
callq 0x49500
cmpl $0x0, %eax
jne 0x49a8c
movl -0x38(%rbp), %eax
movl %eax, -0x4(%rbp)
jmp 0x49bff
jmp 0x49be8
movq -0x10(%rbp), %rax
movslq -0x38(%rbp), %rcx
movq (%rax,%rcx,8), %rdi
movq -0x30(%rbp), %rdx
movl -0x34(%rbp), %ecx
xorl %esi, %esi
callq 0x49500
cmpl $0x0, %eax
jne 0x49abb
movl -0x38(%rbp), %eax
movl %eax, -0x4(%rbp)
jmp 0x49bff
jmp 0x49be8
movq -0x10(%rbp), %rax
movslq -0x38(%rbp), %rcx
movq (%rax,%rcx,8), %rdi
movq -0x30(%rbp), %rdx
movl -0x34(%rbp), %ecx
movl $0x4, %esi
callq 0x49500
cmpl $0x0, %eax
jne 0x49aed
movl -0x38(%rbp), %eax
movl %eax, -0x4(%rbp)
jmp 0x49bff
jmp 0x49be8
movq -0x10(%rbp), %rax
movslq -0x38(%rbp), %rcx
movq (%rax,%rcx,8), %rdi
leaq 0xbb1ab(%rip), %rsi     # 0x104cb0
movl $0x8, %edx
callq 0x54910
cmpl $-0x1, %eax
jne 0x49b1f
movl -0x38(%rbp), %eax
movl %eax, -0x4(%rbp)
jmp 0x49bff
jmp 0x49be8
movq -0x10(%rbp), %rax
movslq -0x38(%rbp), %rcx
movq (%rax,%rcx,8), %rdi
movq -0x30(%rbp), %rdx
movl -0x34(%rbp), %ecx
xorl %esi, %esi
callq 0x49500
cmpl $0x0, %eax
jne 0x49b8f
movq -0x10(%rbp), %rax
movslq -0x38(%rbp), %rcx
movq (%rax,%rcx,8), %rdi
movq -0x30(%rbp), %rdx
movl -0x34(%rbp), %ecx
movl $0x1, %esi
callq 0x49500
cmpl $0x0, %eax
jne 0x49b8f
movq -0x10(%rbp), %rax
movslq -0x38(%rbp), %rcx
movq (%rax,%rcx,8), %rdi
movq -0x30(%rbp), %rdx
movl -0x34(%rbp), %ecx
movl $0x5, %esi
callq 0x49500
cmpl $0x0, %eax
jne 0x49b8f
movl -0x38(%rbp), %eax
movl %eax, -0x4(%rbp)
jmp 0x49bff
jmp 0x49be8
movq -0x10(%rbp), %rax
movslq -0x38(%rbp), %rcx
movq (%rax,%rcx,8), %rdi
movq -0x30(%rbp), %rsi
movl -0x34(%rbp), %edx
callq 0x495a0
movl %eax, -0x44(%rbp)
cmpl $-0x1, -0x44(%rbp)
jne 0x49bba
movl -0x38(%rbp), %eax
movl %eax, -0x4(%rbp)
jmp 0x49bff
jmp 0x49be8
movq -0x10(%rbp), %rax
movslq -0x38(%rbp), %rcx
movq (%rax,%rcx,8), %rdi
movq -0x30(%rbp), %rdx
movl -0x34(%rbp), %ecx
movl $0x5, %esi
callq 0x49500
cmpl $0x0, %eax
jne 0x49be6
movl -0x38(%rbp), %eax
movl %eax, -0x4(%rbp)
jmp 0x49bff
jmp 0x49be8
jmp 0x49bea
movl -0x38(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x38(%rbp)
jmp 0x496a5
movl $0xffffffff, -0x4(%rbp) # imm = 0xFFFFFFFF
movl -0x4(%rbp), %eax
addq $0x60, %rsp
popq %rbp
retq
nopl (%rax,%rax)