// File: /workspace/github_c_makefile_star2_O0/olcaytaner[P]Isell/lang.c
// Function: compile_file
int compile_file(char *filename)
{
 /*!Last Changed 26.01.2009 added matrix type*/
	/*!Last Changed 12.10.2004*/
 FILE *myfile;
 char myline[READLINELENGTH], *params[MAXPARAMS]={NULL}, *grammarparams[MAXPARAMS]={NULL}, *tempparams[MAXPARAMS], *temporder, *order = NULL;
 int i, paramcount = 0, linecount = 0, res, charcount, grammarcount = 0, result = SUCCESS;
	CONSTRUCT_TYPE counts[10] = {0};
 int variablecount = 0;
 variableptr variables = NULL;
 if ((myfile = fopen(filename, "r")) == NULL)
  {
   printf(m1274, filename);
   return FAILURE;
  }
	add_default_variables(&variables, &variablecount);
 while (fgets(myline, READLINELENGTH, myfile))
  {
		 linecount++;
		 if (order)
			 {
				 safe_free(order);
					order = NULL;
			 }
   for (i = 0; i < paramcount; i++)
    {
     safe_free(params[i]);
     params[i] = NULL;
    }
   for (i = 0; i < grammarcount; i++)
    {
     safe_free(grammarparams[i]);
     grammarparams[i] = NULL;
    }
   temporder = strtok(myline," \t\n");
   if (temporder)
    {
     paramcount = -1;
     do{
       paramcount++;
       tempparams[paramcount] = strtok(NULL, " \t\n");
     }while((tempparams[paramcount]) && (paramcount < MAXPARAMS - 1));
    }
   else
     continue;
   order = strcopy(order, temporder);
			if (!check_of_variables(order, variables, variablecount))
			 {
				 printf(e1014, linecount, order);
					result = FAILURE;
			 }
   for (i = 0; i < paramcount; i++)
     params[i] = strcopy(params[i], tempparams[i]);
   if (order[0] != '\'' && char_count(order, '%') == 0)
    {
     res = get_order_index(order);
     if (res == -1)
					 {
						 printf(e1001, linecount, order);
							result = FAILURE;
						 continue;
					 }
					charcount = char_count(grammar_of_order(res), '<');
					if (charcount > paramcount)
					 {
						 printf(e1002, linecount, order);
							result = FAILURE;
							continue;
					 }
					else
						 if (res != 70 && res != 71 && res != 72 && res != 152 && res != 309)
  						 if (charcount < paramcount)
	  					   printf(w1001, linecount, order);
					switch (res)
					 {
					  case 97 :counts[IF]++;
								        break;
							case 98 :counts[ELSE]++;
								        if (counts[ELSE] > counts[IF])
																 {
																	 printf(e1003, linecount);
																		result = FAILURE;
																	 continue;
																 }
								        break;
							case 99 :counts[ENDIF]++;
								        if (counts[ENDIF] > counts[IF])
																 {
																	 printf(e1004, linecount);
																		result = FAILURE;
																	 continue;
																 }
								        break;
							case 76 :counts[SWITCH]++;
								        if (counts[SWITCH] - counts[ENDSWITCH] > 1)
																 {
																	 printf(e1005, linecount);
																		result = FAILURE;
																		continue;
																 }
								        break;
							case 77 :counts[ENDSWITCH]++;
								        if (counts[ENDSWITCH] > counts[SWITCH])
																 {
																	 printf(e1006, linecount);
																		result = FAILURE;
																		continue;
																 }
								        break;
							case 78 :counts[CASE]++;
								        if (counts[SWITCH] == counts[ENDSWITCH])
																 {
																	 printf(e1007, linecount);
																		result = FAILURE;
																		continue;
																 }
								        break;
							case 74 :counts[FOR]++;
								        break;
							case 75 :counts[ENDFOR]++;
								        if (counts[ENDFOR] > counts[FOR])
																 {
																	 printf(e1008, linecount);
																		result = FAILURE;
																		continue;
																 }
								        break;
							case 100:counts[WHILE]++;
								        break;
							case 101:counts[ENDWHILE]++;
								        if (counts[ENDWHILE] > counts[WHILE])
																 {
																	 printf(e1009, linecount);
																		result = FAILURE;
																		continue;
																 }
								        break;
						 case  70:for (i = 0; i < paramcount; i++)
																	 if (!add_variable(INTEGER_TYPE, &(params[i]), 1, &variables, &variablecount))
																			 printf(w1002, linecount, params[i]);
								        break;
							case  71:for (i = 0; i < paramcount; i++)
																	 if (!add_variable(REAL_TYPE, &(params[i]), 1, &variables, &variablecount))
																			 printf(w1002, linecount, params[i]);
																break;
							case  72:for (i = 0; i < paramcount; i++)
																	 if (!add_variable(STRING_TYPE, &(params[i]), 1, &variables, &variablecount))
																			 printf(w1002, linecount, params[i]);
								        break;
							case 152:for (i = 0; i < paramcount; i++)
																	 if (!add_variable(FILE_TYPE, &(params[i]), 1, &variables, &variablecount))
																			 printf(w1002, linecount, params[i]);
                break;
       case 309:for (i = 0; i < paramcount; i++)
                  if (!add_variable(MATRIX_TYPE, &(params[i]), 1, &variables, &variablecount))
                    printf(w1002, linecount, params[i]);
								        break;
					 }
					strcpy(myline, grammar_of_order(res));
     temporder = strtok(myline," <>\t\n");
     if (temporder)
					 {
       grammarcount = -1;
       do{
         grammarcount++;
         tempparams[grammarcount] = strtok(NULL, " <>\t\n");
							}while((tempparams[grammarcount]) && (grammarcount < MAXPARAMS - 1));
					 }
     for (i = 0; i < grammarcount; i++)
       grammarparams[i] = strcopy(grammarparams[i], tempparams[i]);
     res = check_parameters(params, paramcount, grammarparams, grammarcount, variables, variablecount);
					if (res != -1)
					 {
						 printf(e1016, linecount, params[res]);
							result = FAILURE;
					 }
    }
  }
 if (counts[IF] > counts[ENDIF])
	 {
		 printf(e1010, linecount);
			result = FAILURE;
	 }
 if (counts[SWITCH] > counts[ENDSWITCH])
	 {
		 printf(e1011, linecount);
			result = FAILURE;
	 }
 if (counts[FOR] > counts[ENDFOR])
	 {
		 printf(e1012, linecount);
			result = FAILURE;
	 }
 if (counts[WHILE] > counts[ENDWHILE])
	 {
		 printf(e1013, linecount);
			result = FAILURE;
	 }
	if (order)
		 safe_free(order);
 for (i = 0; i < paramcount; i++)
  {
   safe_free(params[i]);
   params[i] = NULL;
  }
 for (i = 0; i < grammarcount; i++)
  {
   safe_free(grammarparams[i]);
   grammarparams[i] = NULL;
  }
	free_variables(variables, variablecount);
	safe_free(variables);
	return result;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x7ab30, %rsp          # imm = 0x7AB30
movq %rdi, -0x10(%rbp)
leaq -0x7a460(%rbp), %rdi
xorl %esi, %esi
movl $0x320, %edx            # imm = 0x320
callq 0x4050
leaq -0x7a780(%rbp), %rdi
xorl %esi, %esi
movl $0x320, %edx            # imm = 0x320
callq 0x4050
movq $0x0, -0x7aab0(%rbp)
movl $0x0, -0x7aab8(%rbp)
movl $0x0, -0x7aabc(%rbp)
movl $0x0, -0x7aac8(%rbp)
movl $0x1, -0x7aacc(%rbp)
leaq -0x7ab00(%rbp), %rdi
xorl %esi, %esi
movl $0x28, %edx
callq 0x4050
movl $0x0, -0x7ab04(%rbp)
movq $0x0, -0x7ab10(%rbp)
movq -0x10(%rbp), %rdi
leaq 0x9e24b(%rip), %rsi     # 0xe81a6
callq 0x40c0
movq %rax, -0x18(%rbp)
cmpq $0x0, %rax
jne 0x49f88
movq -0x10(%rbp), %rsi
leaq 0x98f15(%rip), %rdi     # 0xe2e8a
movb $0x0, %al
callq 0x4030
movl $0x0, -0x4(%rbp)
jmp 0x4abee
leaq -0x7ab10(%rbp), %rdi
leaq -0x7ab04(%rbp), %rsi
callq 0x49c10
leaq -0x7a140(%rbp), %rdi
movq -0x18(%rbp), %rdx
movl $0x7a120, %esi          # imm = 0x7A120
callq 0x40f0
cmpq $0x0, %rax
je 0x4aa61
movl -0x7aabc(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x7aabc(%rbp)
cmpq $0x0, -0x7aab0(%rbp)
je 0x49fea
movq -0x7aab0(%rbp), %rdi
callq 0x52e80
movq $0x0, -0x7aab0(%rbp)
movl $0x0, -0x7aab4(%rbp)
movl -0x7aab4(%rbp), %eax
cmpl -0x7aab8(%rbp), %eax
jge 0x4a03a
movslq -0x7aab4(%rbp), %rax
movq -0x7a460(%rbp,%rax,8), %rdi
callq 0x52e80
movslq -0x7aab4(%rbp), %rax
movq $0x0, -0x7a460(%rbp,%rax,8)
movl -0x7aab4(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x7aab4(%rbp)
jmp 0x49ff4
movl $0x0, -0x7aab4(%rbp)
movl -0x7aab4(%rbp), %eax
cmpl -0x7aac8(%rbp), %eax
jge 0x4a08a
movslq -0x7aab4(%rbp), %rax
movq -0x7a780(%rbp,%rax,8), %rdi
callq 0x52e80
movslq -0x7aab4(%rbp), %rax
movq $0x0, -0x7a780(%rbp,%rax,8)
movl -0x7aab4(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x7aab4(%rbp)
jmp 0x4a044
leaq -0x7a140(%rbp), %rdi
leaq 0x9bca1(%rip), %rsi     # 0xe5d39
callq 0x4230
movq %rax, -0x7aaa8(%rbp)
cmpq $0x0, -0x7aaa8(%rbp)
je 0x4a11f
movl $0xffffffff, -0x7aab8(%rbp) # imm = 0xFFFFFFFF
movl -0x7aab8(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x7aab8(%rbp)
xorl %eax, %eax
movl %eax, %edi
leaq 0x9bc67(%rip), %rsi     # 0xe5d39
callq 0x4230
movq %rax, %rcx
movslq -0x7aab8(%rbp), %rax
movq %rcx, -0x7aaa0(%rbp,%rax,8)
movslq -0x7aab8(%rbp), %rcx
xorl %eax, %eax
cmpq $0x0, -0x7aaa0(%rbp,%rcx,8)
movb %al, -0x7ab11(%rbp)
je 0x4a113
cmpl $0x63, -0x7aab8(%rbp)
setl %al
movb %al, -0x7ab11(%rbp)
movb -0x7ab11(%rbp), %al
testb $0x1, %al
jne 0x4a0b8
jmp 0x4a124
jmp 0x49f9b
movq -0x7aab0(%rbp), %rdi
movq -0x7aaa8(%rbp), %rsi
callq 0x54ba0
movq %rax, -0x7aab0(%rbp)
movq -0x7aab0(%rbp), %rdi
movq -0x7ab10(%rbp), %rsi
movl -0x7ab04(%rbp), %edx
callq 0x4ac00
cmpl $0x0, %eax
jne 0x4a181
movl -0x7aabc(%rbp), %esi
movq -0x7aab0(%rbp), %rdx
leaq 0x9bbf9(%rip), %rdi     # 0xe5d69
movb $0x0, %al
callq 0x4030
movl $0x0, -0x7aacc(%rbp)
movl $0x0, -0x7aab4(%rbp)
movl -0x7aab4(%rbp), %eax
cmpl -0x7aab8(%rbp), %eax
jge 0x4a1df
movslq -0x7aab4(%rbp), %rax
movq -0x7a460(%rbp,%rax,8), %rdi
movslq -0x7aab4(%rbp), %rax
movq -0x7aaa0(%rbp,%rax,8), %rsi
callq 0x54ba0
movq %rax, %rcx
movslq -0x7aab4(%rbp), %rax
movq %rcx, -0x7a460(%rbp,%rax,8)
movl -0x7aab4(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x7aab4(%rbp)
jmp 0x4a18b
movq -0x7aab0(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x27, %eax
je 0x4aa5c
movq -0x7aab0(%rbp), %rdi
movl $0x25, %esi
callq 0x547d0
cmpl $0x0, %eax
jne 0x4aa5c
movq -0x7aab0(%rbp), %rdi
callq 0x131e0
movl %eax, -0x7aac0(%rbp)
cmpl $-0x1, -0x7aac0(%rbp)
jne 0x4a251
movl -0x7aabc(%rbp), %esi
movq -0x7aab0(%rbp), %rdx
leaq 0x9bb77(%rip), %rdi     # 0xe5db2
movb $0x0, %al
callq 0x4030
movl $0x0, -0x7aacc(%rbp)
jmp 0x49f9b
movl -0x7aac0(%rbp), %edi
callq 0x131c0
movq %rax, %rdi
movl $0x3c, %esi
callq 0x547d0
movl %eax, -0x7aac4(%rbp)
movl -0x7aac4(%rbp), %eax
cmpl -0x7aab8(%rbp), %eax
jle 0x4a2a7
movl -0x7aabc(%rbp), %esi
movq -0x7aab0(%rbp), %rdx
leaq 0x9bb55(%rip), %rdi     # 0xe5de6
movb $0x0, %al
callq 0x4030
movl $0x0, -0x7aacc(%rbp)
jmp 0x49f9b
cmpl $0x46, -0x7aac0(%rbp)
je 0x4a305
cmpl $0x47, -0x7aac0(%rbp)
je 0x4a305
cmpl $0x48, -0x7aac0(%rbp)
je 0x4a305
cmpl $0x98, -0x7aac0(%rbp)
je 0x4a305
cmpl $0x135, -0x7aac0(%rbp)  # imm = 0x135
je 0x4a305
movl -0x7aac4(%rbp), %eax
cmpl -0x7aab8(%rbp), %eax
jge 0x4a303
movl -0x7aabc(%rbp), %esi
movq -0x7aab0(%rbp), %rdx
leaq 0x9bb46(%rip), %rdi     # 0xe5e42
movb $0x0, %al
callq 0x4030
jmp 0x4a305
jmp 0x4a307
movl -0x7aac0(%rbp), %eax
movl %eax, -0x7ab18(%rbp)
subl $0x46, %eax
je 0x4a62d
jmp 0x4a31e
movl -0x7ab18(%rbp), %eax
subl $0x47, %eax
je 0x4a6b4
jmp 0x4a32f
movl -0x7ab18(%rbp), %eax
subl $0x48, %eax
je 0x4a73b
jmp 0x4a340
movl -0x7ab18(%rbp), %eax
subl $0x4a, %eax
je 0x4a57b
jmp 0x4a351
movl -0x7ab18(%rbp), %eax
subl $0x4b, %eax
je 0x4a58f
jmp 0x4a362
movl -0x7ab18(%rbp), %eax
subl $0x4c, %eax
je 0x4a4a9
jmp 0x4a373
movl -0x7ab18(%rbp), %eax
subl $0x4d, %eax
je 0x4a4f1
jmp 0x4a384
movl -0x7ab18(%rbp), %eax
subl $0x4e, %eax
je 0x4a536
jmp 0x4a395
movl -0x7ab18(%rbp), %eax
subl $0x61, %eax
je 0x4a40b
jmp 0x4a3a2
movl -0x7ab18(%rbp), %eax
subl $0x62, %eax
je 0x4a41f
jmp 0x4a3af
movl -0x7ab18(%rbp), %eax
subl $0x63, %eax
je 0x4a464
jmp 0x4a3c0
movl -0x7ab18(%rbp), %eax
subl $0x64, %eax
je 0x4a5d4
jmp 0x4a3d1
movl -0x7ab18(%rbp), %eax
subl $0x65, %eax
je 0x4a5e8
jmp 0x4a3e2
movl -0x7ab18(%rbp), %eax
subl $0x98, %eax
je 0x4a7c5
jmp 0x4a3f5
movl -0x7ab18(%rbp), %eax
subl $0x135, %eax            # imm = 0x135
je 0x4a84f
jmp 0x4a8d6
movl -0x7ab00(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x7ab00(%rbp)
jmp 0x4a8d6
movl -0x7aafc(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x7aafc(%rbp)
movl -0x7aafc(%rbp), %eax
cmpl -0x7ab00(%rbp), %eax
jbe 0x4a45f
movl -0x7aabc(%rbp), %esi
leaq 0x9ba58(%rip), %rdi     # 0xe5ea1
movb $0x0, %al
callq 0x4030
movl $0x0, -0x7aacc(%rbp)
jmp 0x49f9b
jmp 0x4a8d6
movl -0x7aaf8(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x7aaf8(%rbp)
movl -0x7aaf8(%rbp), %eax
cmpl -0x7ab00(%rbp), %eax
jbe 0x4a4a4
movl -0x7aabc(%rbp), %esi
leaq 0x9ba3a(%rip), %rdi     # 0xe5ec8
movb $0x0, %al
callq 0x4030
movl $0x0, -0x7aacc(%rbp)
jmp 0x49f9b
jmp 0x4a8d6
movl -0x7aaf4(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x7aaf4(%rbp)
movl -0x7aaf4(%rbp), %eax
subl -0x7aaf0(%rbp), %eax
cmpl $0x1, %eax
jbe 0x4a4ec
movl -0x7aabc(%rbp), %esi
leaq 0x9ba26(%rip), %rdi     # 0xe5efc
movb $0x0, %al
callq 0x4030
movl $0x0, -0x7aacc(%rbp)
jmp 0x49f9b
jmp 0x4a8d6
movl -0x7aaf0(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x7aaf0(%rbp)
movl -0x7aaf0(%rbp), %eax
cmpl -0x7aaf4(%rbp), %eax
jbe 0x4a531
movl -0x7aabc(%rbp), %esi
leaq 0x9ba19(%rip), %rdi     # 0xe5f34
movb $0x0, %al
callq 0x4030
movl $0x0, -0x7aacc(%rbp)
jmp 0x49f9b
jmp 0x4a8d6
movl -0x7aaec(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x7aaec(%rbp)
movl -0x7aaf4(%rbp), %eax
cmpl -0x7aaf0(%rbp), %eax
jne 0x4a576
movl -0x7aabc(%rbp), %esi
leaq 0x9ba10(%rip), %rdi     # 0xe5f70
movb $0x0, %al
callq 0x4030
movl $0x0, -0x7aacc(%rbp)
jmp 0x49f9b
jmp 0x4a8d6
movl -0x7aae8(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x7aae8(%rbp)
jmp 0x4a8d6
movl -0x7aae4(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x7aae4(%rbp)
movl -0x7aae4(%rbp), %eax
cmpl -0x7aae8(%rbp), %eax
jbe 0x4a5cf
movl -0x7aabc(%rbp), %esi
leaq 0x9b9f8(%rip), %rdi     # 0xe5fb1
movb $0x0, %al
callq 0x4030
movl $0x0, -0x7aacc(%rbp)
jmp 0x49f9b
jmp 0x4a8d6
movl -0x7aae0(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x7aae0(%rbp)
jmp 0x4a8d6
movl -0x7aadc(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x7aadc(%rbp)
movl -0x7aadc(%rbp), %eax
cmpl -0x7aae0(%rbp), %eax
jbe 0x4a628
movl -0x7aabc(%rbp), %esi
leaq 0x9b9d5(%rip), %rdi     # 0xe5fe7
movb $0x0, %al
callq 0x4030
movl $0x0, -0x7aacc(%rbp)
jmp 0x49f9b
jmp 0x4a8d6
movl $0x0, -0x7aab4(%rbp)
movl -0x7aab4(%rbp), %eax
cmpl -0x7aab8(%rbp), %eax
jge 0x4a6af
movslq -0x7aab4(%rbp), %rax
leaq -0x7a460(%rbp), %rsi
shlq $0x3, %rax
addq %rax, %rsi
xorl %edi, %edi
movl $0x1, %edx
leaq -0x7ab10(%rbp), %rcx
leaq -0x7ab04(%rbp), %r8
callq 0x49ca0
cmpl $0x0, %eax
jne 0x4a69c
movl -0x7aabc(%rbp), %esi
movslq -0x7aab4(%rbp), %rax
movq -0x7a460(%rbp,%rax,8), %rdx
leaq 0x9b98c(%rip), %rdi     # 0xe6021
movb $0x0, %al
callq 0x4030
jmp 0x4a69e
movl -0x7aab4(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x7aab4(%rbp)
jmp 0x4a637
jmp 0x4a8d6
movl $0x0, -0x7aab4(%rbp)
movl -0x7aab4(%rbp), %eax
cmpl -0x7aab8(%rbp), %eax
jge 0x4a736
movslq -0x7aab4(%rbp), %rax
leaq -0x7a460(%rbp), %rsi
shlq $0x3, %rax
addq %rax, %rsi
movl $0x1, %edx
leaq -0x7ab10(%rbp), %rcx
leaq -0x7ab04(%rbp), %r8
movl %edx, %edi
callq 0x49ca0
cmpl $0x0, %eax
jne 0x4a723
movl -0x7aabc(%rbp), %esi
movslq -0x7aab4(%rbp), %rax
movq -0x7a460(%rbp,%rax,8), %rdx
leaq 0x9b905(%rip), %rdi     # 0xe6021
movb $0x0, %al
callq 0x4030
jmp 0x4a725
movl -0x7aab4(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x7aab4(%rbp)
jmp 0x4a6be
jmp 0x4a8d6
movl $0x0, -0x7aab4(%rbp)
movl -0x7aab4(%rbp), %eax
cmpl -0x7aab8(%rbp), %eax
jge 0x4a7c0
movslq -0x7aab4(%rbp), %rax
leaq -0x7a460(%rbp), %rsi
shlq $0x3, %rax
addq %rax, %rsi
movl $0x2, %edi
movl $0x1, %edx
leaq -0x7ab10(%rbp), %rcx
leaq -0x7ab04(%rbp), %r8
callq 0x49ca0
cmpl $0x0, %eax
jne 0x4a7ad
movl -0x7aabc(%rbp), %esi
movslq -0x7aab4(%rbp), %rax
movq -0x7a460(%rbp,%rax,8), %rdx
leaq 0x9b87b(%rip), %rdi     # 0xe6021
movb $0x0, %al
callq 0x4030
jmp 0x4a7af
movl -0x7aab4(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x7aab4(%rbp)
jmp 0x4a745
jmp 0x4a8d6
movl $0x0, -0x7aab4(%rbp)
movl -0x7aab4(%rbp), %eax
cmpl -0x7aab8(%rbp), %eax
jge 0x4a84a
movslq -0x7aab4(%rbp), %rax
leaq -0x7a460(%rbp), %rsi
shlq $0x3, %rax
addq %rax, %rsi
movl $0x4, %edi
movl $0x1, %edx
leaq -0x7ab10(%rbp), %rcx
leaq -0x7ab04(%rbp), %r8
callq 0x49ca0
cmpl $0x0, %eax
jne 0x4a837
movl -0x7aabc(%rbp), %esi
movslq -0x7aab4(%rbp), %rax
movq -0x7a460(%rbp,%rax,8), %rdx
leaq 0x9b7f1(%rip), %rdi     # 0xe6021
movb $0x0, %al
callq 0x4030
jmp 0x4a839
movl -0x7aab4(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x7aab4(%rbp)
jmp 0x4a7cf
jmp 0x4a8d6
movl $0x0, -0x7aab4(%rbp)
movl -0x7aab4(%rbp), %eax
cmpl -0x7aab8(%rbp), %eax
jge 0x4a8d4
movslq -0x7aab4(%rbp), %rax
leaq -0x7a460(%rbp), %rsi
shlq $0x3, %rax
addq %rax, %rsi
movl $0x5, %edi
movl $0x1, %edx
leaq -0x7ab10(%rbp), %rcx
leaq -0x7ab04(%rbp), %r8
callq 0x49ca0
cmpl $0x0, %eax
jne 0x4a8c1
movl -0x7aabc(%rbp), %esi
movslq -0x7aab4(%rbp), %rax
movq -0x7a460(%rbp,%rax,8), %rdx
leaq 0x9b767(%rip), %rdi     # 0xe6021
movb $0x0, %al
callq 0x4030
jmp 0x4a8c3
movl -0x7aab4(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x7aab4(%rbp)
jmp 0x4a859
jmp 0x4a8d6
leaq -0x7a140(%rbp), %rax
movq %rax, -0x7ab20(%rbp)
movl -0x7aac0(%rbp), %edi
callq 0x131c0
movq -0x7ab20(%rbp), %rdi
movq %rax, %rsi
callq 0x4220
leaq -0x7a140(%rbp), %rdi
leaq 0x9b758(%rip), %rsi     # 0xe6064
callq 0x4230
movq %rax, -0x7aaa8(%rbp)
cmpq $0x0, -0x7aaa8(%rbp)
je 0x4a993
movl $0xffffffff, -0x7aac8(%rbp) # imm = 0xFFFFFFFF
movl -0x7aac8(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x7aac8(%rbp)
xorl %eax, %eax
movl %eax, %edi
leaq 0x9b71e(%rip), %rsi     # 0xe6064
callq 0x4230
movq %rax, %rcx
movslq -0x7aac8(%rbp), %rax
movq %rcx, -0x7aaa0(%rbp,%rax,8)
movslq -0x7aac8(%rbp), %rcx
xorl %eax, %eax
cmpq $0x0, -0x7aaa0(%rbp,%rcx,8)
movb %al, -0x7ab21(%rbp)
je 0x4a987
cmpl $0x63, -0x7aac8(%rbp)
setl %al
movb %al, -0x7ab21(%rbp)
movb -0x7ab21(%rbp), %al
testb $0x1, %al
jne 0x4a92c
jmp 0x4a993
movl $0x0, -0x7aab4(%rbp)
movl -0x7aab4(%rbp), %eax
cmpl -0x7aac8(%rbp), %eax
jge 0x4a9f1
movslq -0x7aab4(%rbp), %rax
movq -0x7a780(%rbp,%rax,8), %rdi
movslq -0x7aab4(%rbp), %rax
movq -0x7aaa0(%rbp,%rax,8), %rsi
callq 0x54ba0
movq %rax, %rcx
movslq -0x7aab4(%rbp), %rax
movq %rcx, -0x7a780(%rbp,%rax,8)
movl -0x7aab4(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x7aab4(%rbp)
jmp 0x4a99d
leaq -0x7a460(%rbp), %rdi
movl -0x7aab8(%rbp), %esi
leaq -0x7a780(%rbp), %rdx
movl -0x7aac8(%rbp), %ecx
movq -0x7ab10(%rbp), %r8
movl -0x7ab04(%rbp), %r9d
callq 0x49680
movl %eax, -0x7aac0(%rbp)
cmpl $-0x1, -0x7aac0(%rbp)
je 0x4aa5a
movl -0x7aabc(%rbp), %esi
movslq -0x7aac0(%rbp), %rax
movq -0x7a460(%rbp,%rax,8), %rdx
leaq 0x9b621(%rip), %rdi     # 0xe606a
movb $0x0, %al
callq 0x4030
movl $0x0, -0x7aacc(%rbp)
jmp 0x4aa5c
jmp 0x49f9b
movl -0x7ab00(%rbp), %eax
cmpl -0x7aaf8(%rbp), %eax
jbe 0x4aa8d
movl -0x7aabc(%rbp), %esi
leaq 0x9b62c(%rip), %rdi     # 0xe60a8
movb $0x0, %al
callq 0x4030
movl $0x0, -0x7aacc(%rbp)
movl -0x7aaf4(%rbp), %eax
cmpl -0x7aaf0(%rbp), %eax
jbe 0x4aab9
movl -0x7aabc(%rbp), %esi
leaq 0x9b627(%rip), %rdi     # 0xe60cf
movb $0x0, %al
callq 0x4030
movl $0x0, -0x7aacc(%rbp)
movl -0x7aae8(%rbp), %eax
cmpl -0x7aae4(%rbp), %eax
jbe 0x4aae5
movl -0x7aabc(%rbp), %esi
leaq 0x9b626(%rip), %rdi     # 0xe60fa
movb $0x0, %al
callq 0x4030
movl $0x0, -0x7aacc(%rbp)
movl -0x7aae0(%rbp), %eax
cmpl -0x7aadc(%rbp), %eax
jbe 0x4ab11
movl -0x7aabc(%rbp), %esi
leaq 0x9b622(%rip), %rdi     # 0xe6122
movb $0x0, %al
callq 0x4030
movl $0x0, -0x7aacc(%rbp)
cmpq $0x0, -0x7aab0(%rbp)
je 0x4ab27
movq -0x7aab0(%rbp), %rdi
callq 0x52e80
movl $0x0, -0x7aab4(%rbp)
movl -0x7aab4(%rbp), %eax
cmpl -0x7aab8(%rbp), %eax
jge 0x4ab77
movslq -0x7aab4(%rbp), %rax
movq -0x7a460(%rbp,%rax,8), %rdi
callq 0x52e80
movslq -0x7aab4(%rbp), %rax
movq $0x0, -0x7a460(%rbp,%rax,8)
movl -0x7aab4(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x7aab4(%rbp)
jmp 0x4ab31
movl $0x0, -0x7aab4(%rbp)
movl -0x7aab4(%rbp), %eax
cmpl -0x7aac8(%rbp), %eax
jge 0x4abc7
movslq -0x7aab4(%rbp), %rax
movq -0x7a780(%rbp,%rax,8), %rdi
callq 0x52e80
movslq -0x7aab4(%rbp), %rax
movq $0x0, -0x7a780(%rbp,%rax,8)
movl -0x7aab4(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x7aab4(%rbp)
jmp 0x4ab81
movq -0x7ab10(%rbp), %rdi
movl -0x7ab04(%rbp), %esi
callq 0x4ad10
movq -0x7ab10(%rbp), %rdi
callq 0x52e80
movl -0x7aacc(%rbp), %eax
movl %eax, -0x4(%rbp)
movl -0x4(%rbp), %eax
addq $0x7ab30, %rsp          # imm = 0x7AB30
popq %rbp
retq
nopw (%rax,%rax)