// File: /workspace/github_cpp_makefile_star2_O2/danish241194[P]Linux-Terminal-Based-File-Explorer/start_page.cpp
// Function: main
int main(int arg,char *args[])
	{

//mkdir("trash_folder_2018201016", S_IRWXU | S_IRWXG | S_IROTH | S_IXOTH);

	if(arg==1){
		path=".";
		home=path;
		pathdup=path;

	}
	else{

		path=args[1];

		pathdup=path;
	}
	
	signal(SIGINT, INThandler);
	
	
	int a;
	
	real_clean();
	//system("reset");	
	printf("\033[2J\033[1;1H");
	fflush(stdout);
	ioctl(STDOUT_FILENO, TIOCGWINSZ, &w);
	
	tcgetattr(0,&initial_settings);
	new_settings = initial_settings;

	new_settings.c_lflag &= ~ECHO;

	new_settings.c_lflag &= ~ICANON;

	if(tcsetattr(0, TCSANOW, &new_settings) != 0) {
	fprintf(stderr,"could not set attributes\n");
	}




	
	print_dirs(0,height);
	gotoxy(start_x,start_y); // y,1
	char ch;
	int flag=0;

	while(1){
	ch = getchar();
	int s = (int)ch;
	


	switch(s){

		case 58:{
				CommandMode();	
				print_dirs(0,height);
				
				new_settings.c_lflag &= ~ECHO;

				new_settings.c_lflag &= ~ICANON;

				if(tcsetattr(0, TCSANOW, &new_settings) != 0) {
				fprintf(stderr,"could not set attributes\n");
				}
				y=1;
				scroll_k=0;
				gotoxy(y+start_x-1,1);
				
				break;		
			}

		case 127:{
					
				if(pathdup.compare(home)==0){break;}
					while(back!=0)
					{
					forward_history.pop();
					fkh.pop();
						back--;
					}
					back=0;
					
					back_history.push(path);
					bkh.push(pathdup);pathdup = getactualpath(pathdup);
					path = path +"/"+namelist[1]->d_name;
					real_clean();
					fflush(stdout);		
					
					print_dirs(0,height);
					
					new_settings.c_lflag &= ~ECHO;

					new_settings.c_lflag &= ~ICANON;

					if(tcsetattr(0, TCSANOW, &new_settings) != 0) {
					fprintf(stderr,"could not set attributes\n");
					}
					y=1;
					scroll_k=0;
					gotoxy(start_x,start_y);//y,1	
			break;}
			
		case 65:
			{
					
				if(y>=2){
					y--;
					gotoxy(y+start_x-1,1);
						
						break;
				}
				
				if(scroll_k!=0)
				{
	
				gotoxy(start_x,start_y);
				scroll_k=scroll_k-1;
				print_dirs(scroll_k,height+scroll_k);
				gotoxy(start_x,start_y);
				
				}
				else
				{
								
				}
				break;			
			}
			
		case 66:{	

				if(nn>height){
				if(height-(height-y)+scroll_k<nn){
				if(y<height){
					y++;
					gotoxy(y+start_x-1,1); 
					break;
				}		
				gotoxy(start_x,start_y);
				scroll_k++;
				print_dirs(scroll_k,height+scroll_k);
				gotoxy(height+start_x-1,1);
				}
				}else{
				if(y<nn)
				{
					y++;
					gotoxy(y+start_x-1,1);
				}	

				}
				break;			
			}
			//quit (q)
		case 113:{
				flag=1;
				break;
			}
			//enter 
		case 10:{	

				if((y+scroll_k-1)==0)
				{
					break;
				}
				if((y+scroll_k-1)==1 && pathdup.compare(home)==0){//back_history.size()==0
					break;
				}
				
				while(back!=0){
				forward_history.pop();
				fkh.pop();
					back--;
				}
				back=0;
				if((int)namelist[y+scroll_k-1]->d_type==4){
				if((y+scroll_k-1)==1){//back_history.size()==0
					bkh.push(pathdup);
					pathdup = getactualpath(pathdup);				
				
				}else{
						bkh.push(pathdup);
					pathdup = pathdup +"/"+namelist[y+scroll_k-1]->d_name;
					}
				
				back_history.push(path);
				path = path +"/"+namelist[y+scroll_k-1]->d_name;
				//printf("\033[2J\033[1;1H");
				real_clean();				
				fflush(stdout);		
				
				print_dirs(0,height);
				//cout<<"----"<<y+scroll_k-1<<"---";
				new_settings.c_lflag &= ~ECHO;

				new_settings.c_lflag &= ~ICANON;

				if(tcsetattr(0, TCSANOW, &new_settings) != 0) {
					fprintf(stderr,"could not set attributes\n");
				}
					y=1;
					scroll_k=0;
					gotoxy(y+start_x-1,1); // y,1//......y+2

				}
				else{
					string pathre = path;
					for(int k=0;k<path.size();k++){
						if(pathre[k]==' '){
	
							pathre.insert(k,1,'\\');
							k+=1;
					}
				}
				string path1 = pathre +"/"+namelist[y+scroll_k-1]->d_name;
				pid_t pid = fork();
				if (pid == 0) {

					int out = open("err.log", O_RDWR|O_CREAT|O_APPEND, 0600);
					if (-1 == out) { perror("opening cout.log"); return 255; }
    					int save_out = dup(fileno(stderr));
   					if (-1 == dup2(out, fileno(stderr))) { perror("cannot redirect stdout"); return 255; }
      					
    			  				
				execl("/usr/bin/xdg-open", "xdg-open", path1.c_str(), (char *)0);
						
    					fflush(stderr); close(out);
  
    					dup2(save_out, fileno(stderr));
   
	
    					close(save_out);
  				
  					exit(1);
				}
				
					}

			break;
			}
			//left-arrow <-
			case 68:{	
				if(back_history.size()==0){
					
					break;
				}
				back++;
				forward_history.push(path);
				
				fkh.push(pathdup);
				path = back_history.top(); pathdup = bkh.top();bkh.pop();
				back_history.pop();
				//printf("\033[2J\033[1;1H");
				real_clean();				
				fflush(stdout);		
				
				print_dirs(0,height);
				
				new_settings.c_lflag &= ~ECHO;

				new_settings.c_lflag &= ~ICANON;

				if(tcsetattr(0, TCSANOW, &new_settings) != 0) {
				fprintf(stderr,"could not set attributes\n");
				}
				y=1;
				scroll_k=0;
				gotoxy(y+start_x-1,1); // y,1//.......y+2
				

			break;
			}
			//right_arrow ->
			case 67:{	
				if(forward_history.size()==0){
					break;
				}
				back--;
				back_history.push(path); bkh.push(pathdup);
				path = forward_history.top();
				pathdup = fkh.top();
				fkh.pop();
				forward_history.pop();
				real_clean();
				
				fflush(stdout);		
				
				print_dirs(0,height);
				
				new_settings.c_lflag &= ~ECHO;

				new_settings.c_lflag &= ~ICANON;

				if(tcsetattr(0, TCSANOW, &new_settings) != 0) {
				fprintf(stderr,"could not set attributes\n");
				}
				y=1;
				scroll_k=0;
				gotoxy(y+start_x-1,1);//y,1/.......y+2
				

			break;
			}
			//home 'h'
			case 104:{
					while(back!=0)
					{
					forward_history.pop();
					fkh.pop();
						back--;
					}
					back=0;
					
					back_history.push(path); bkh.push(pathdup);
					path = home; pathdup = home;
					real_clean();
					cout<<"home acalled";
					//printf("\033[2J\033[1;1H");
					fflush(stdout);		
					
					print_dirs(0,height);
					
					new_settings.c_lflag &= ~ECHO;

					new_settings.c_lflag &= ~ICANON;

					if(tcsetattr(0, TCSANOW, &new_settings) != 0) {
					fprintf(stderr,"could not set attributes\n");
					}
					y=1;
					scroll_k=0;
					gotoxy(y+start_x-1,1);//y,1////.........y+2

					

				
				break;
				}

		}
		if(flag==1){
			break;
		}

	}
	tcsetattr(0,TCSANOW,&initial_settings);
	printf("\033[2J\033[1;1H");
	real_clean();
	return 0;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0xa8, %rsp
cmpl $0x1, %edi
jne 0x95a3
leaq 0x5eb5(%rip), %rbx      # 0xf438
leaq 0x1b13(%rip), %rsi      # 0xb09d
movq %rbx, %rdi
callq 0x3480
leaq 0x5edf(%rip), %rdi      # 0xf478
movq %rbx, %rsi
callq 0x3150
jmp 0x95b3
movq 0x8(%rsi), %rsi
leaq 0x5e8a(%rip), %rdi      # 0xf438
callq 0x3480
leaq 0x5e9e(%rip), %rdi      # 0xf458
leaq 0x5e77(%rip), %rsi      # 0xf438
callq 0x3150
leaq -0x5bd5(%rip), %rsi     # 0x39f8
pushq $0x2
popq %rdi
callq 0x32e0
callq 0x3ab9
leaq 0x1fca(%rip), %rdi      # 0xb5ab
xorl %eax, %eax
callq 0x3050
movq 0x59b1(%rip), %rax      # 0xefa0
movq (%rax), %rdi
callq 0x32c0
leaq 0x6032(%rip), %rdx      # 0xf630
pushq $0x1
popq %rdi
movl $0x5413, %esi           # imm = 0x5413
xorl %eax, %eax
callq 0x3370
leaq 0x5e98(%rip), %rsi      # 0xf4ac
xorl %edi, %edi
callq 0x32a0
movups 0x5e8a(%rip), %xmm0     # 0xf4ac
movups %xmm0, 0x5ebf(%rip)     # 0xf4e8
movups 0x5e8c(%rip), %xmm0     # 0xf4bc
movups %xmm0, 0x5ec1(%rip)     # 0xf4f8
movups 0x5e8e(%rip), %xmm0     # 0xf4cc
movups %xmm0, 0x5ec3(%rip)     # 0xf508
movups 0x5e8c(%rip), %xmm0     # 0xf4d8
movups %xmm0, 0x5ec1(%rip)     # 0xf514
leaq 0x5e8e(%rip), %rdx      # 0xf4e8
andb $-0xb, 0x5e93(%rip)     # 0xf4f4
xorl %edi, %edi
xorl %esi, %esi
callq 0x3330
testl %eax, %eax
jne 0xa0e0
movl 0x5c00(%rip), %esi      # 0xf278
xorl %edi, %edi
callq 0x442e
movl 0x5bf7(%rip), %esi      # 0xf27c
movl 0x5bf5(%rip), %edx      # 0xf280
leaq 0x19f6(%rip), %rdi      # 0xb088
xorl %eax, %eax
callq 0x3050
leaq 0x5db8(%rip), %r15      # 0xf458
leaq 0x28(%rsp), %rbx
leaq 0x8(%rsp), %r14
leaq 0x5e37(%rip), %rbp      # 0xf4e8
leaq 0x5c88(%rip), %r12      # 0xf340
leaq 0x5d21(%rip), %r13      # 0xf3e0
movl $0x0, 0x4(%rsp)
callq 0x3360
movsbl %al, %eax
leal -0x3a(%rax), %ecx
cmpl $0xa, %ecx
ja 0x9735
leaq 0x192e(%rip), %rdx      # 0xb00c
movslq (%rdx,%rcx,4), %rax
addq %rdx, %rax
jmpq *%rax
callq 0x5863
movl 0x5b86(%rip), %esi      # 0xf278
xorl %edi, %edi
callq 0x442e
andb $-0xb, 0x5df4(%rip)     # 0xf4f4
xorl %edi, %edi
xorl %esi, %esi
movq %rbp, %rdx
callq 0x3330
testl %eax, %eax
je 0x997f
movq 0x58b5(%rip), %rax      # 0xefd0
movq (%rax), %rcx
leaq 0x1e3d(%rip), %rdi      # 0xb562
pushq $0x19
popq %rsi
pushq $0x1
popq %rdx
callq 0x3490
jmp 0x997f
cmpl $0xa, %eax
je 0x9ac6
cmpl $0x68, %eax
je 0x99d2
cmpl $0x7f, %eax
je 0x9b25
cmpl $0x71, %eax
jne 0x96c7
jmp 0xa09f
leaq 0x5b8b(%rip), %rdi      # 0xf2f0
callq 0xacf4
testq %rax, %rax
je 0x96c7
incl 0x5cb7(%rip)            # 0xf430
movq %r12, %rdi
leaq 0x5cb5(%rip), %r14      # 0xf438
movq %r14, %rsi
callq 0xac16
movq %r13, %rdi
movq %r15, %rsi
callq 0xac16
movq 0x5b83(%rip), %rsi      # 0xf320
cmpq 0x5b84(%rip), %rsi      # 0xf328
jne 0x97b9
movq 0x5b8b(%rip), %rax      # 0xf338
movq -0x8(%rax), %rsi
movl $0x200, %eax            # imm = 0x200
addq %rax, %rsi
addq $-0x20, %rsi
movq %r14, %rdi
callq 0x3150
movq 0x5bf4(%rip), %rsi      # 0xf3c0
cmpq 0x5bf5(%rip), %rsi      # 0xf3c8
jne 0x97e8
movq 0x5bfc(%rip), %rax      # 0xf3d8
movq -0x8(%rax), %rsi
movl $0x200, %eax            # imm = 0x200
addq %rax, %rsi
addq $-0x20, %rsi
movq %r15, %rdi
callq 0x3150
leaq 0x5b95(%rip), %rdi      # 0xf390
callq 0xabb6
leaq 0x5ae9(%rip), %rdi      # 0xf2f0
jmp 0x9939
movl 0x5d4e(%rip), %ecx      # 0xf560
movl 0x5a60(%rip), %eax      # 0xf278
movl 0x5a66(%rip), %esi      # 0xf284
cmpl %eax, %ecx
jle 0x9c83
movl 0x5c7c(%rip), %edx      # 0xf4a8
addl %esi, %edx
cmpl %ecx, %edx
jge 0x96c7
cmpl %eax, %esi
jl 0x9c8b
movl 0x5a38(%rip), %esi      # 0xf27c
movl 0x5a36(%rip), %edx      # 0xf280
leaq 0x1837(%rip), %r14      # 0xb088
movq %r14, %rdi
xorl %eax, %eax
callq 0x3050
movl 0x5c47(%rip), %edi      # 0xf4a8
incl %edi
movl %edi, 0x5c3f(%rip)      # 0xf4a8
movl 0x5a09(%rip), %esi      # 0xf278
addl %edi, %esi
callq 0x442e
movl 0x59fc(%rip), %eax      # 0xf278
movl 0x59fa(%rip), %ecx      # 0xf27c
leal (%rax,%rcx), %esi
decl %esi
movq %r14, %rdi
leaq 0x8(%rsp), %r14
jmp 0x999d
movq %r12, %rdi
callq 0xacf4
testq %rax, %rax
je 0x96c7
decl 0x5b85(%rip)            # 0xf430
leaq 0x5a3e(%rip), %rdi      # 0xf2f0
leaq 0x5b7f(%rip), %r14      # 0xf438
movq %r14, %rsi
callq 0xac16
leaq 0x5ac8(%rip), %rdi      # 0xf390
movq %r15, %rsi
callq 0xac16
movq 0x5a99(%rip), %rsi      # 0xf370
cmpq 0x5a9a(%rip), %rsi      # 0xf378
jne 0x98f3
movq 0x5aa1(%rip), %rax      # 0xf388
movq -0x8(%rax), %rsi
movl $0x200, %eax            # imm = 0x200
addq %rax, %rsi
addq $-0x20, %rsi
movq %r14, %rdi
callq 0x3150
movq 0x5b0a(%rip), %rsi      # 0xf410
cmpq 0x5b0b(%rip), %rsi      # 0xf418
jne 0x9922
movq 0x5b12(%rip), %rax      # 0xf428
movq -0x8(%rax), %rsi
movl $0x200, %eax            # imm = 0x200
addq %rax, %rsi
addq $-0x20, %rsi
movq %r15, %rdi
callq 0x3150
movq %r13, %rdi
callq 0xabb6
movq %r12, %rdi
callq 0xabb6
callq 0x3ab9
movq 0x5656(%rip), %rax      # 0xefa0
movq (%rax), %rdi
callq 0x32c0
movl 0x5920(%rip), %esi      # 0xf278
xorl %edi, %edi
callq 0x442e
andb $-0xb, 0x5b8e(%rip)     # 0xf4f4
xorl %edi, %edi
xorl %esi, %esi
movq %rbp, %rdx
callq 0x3330
testl %eax, %eax
leaq 0x8(%rsp), %r14
jne 0x9714
movl $0x1, 0x58fb(%rip)      # 0xf284
andl $0x0, 0x5b18(%rip)      # 0xf4a8
movl 0x58e6(%rip), %esi      # 0xf27c
leaq 0x16eb(%rip), %rdi      # 0xb088
pushq $0x1
popq %rdx
xorl %eax, %eax
callq 0x3050
jmp 0x96c7
movl 0x58d2(%rip), %eax      # 0xf284
cmpl $0x2, %eax
jl 0x9ca6
leal -0x1(%rax), %ecx
movl %ecx, 0x58c0(%rip)      # 0xf284
movl 0x58b2(%rip), %ecx      # 0xf27c
leal (%rax,%rcx), %esi
addl $-0x2, %esi
jmp 0x9996
movl 0x5a58(%rip), %eax      # 0xf430
leaq 0x5a59(%rip), %rbx      # 0xf438
testl %eax, %eax
je 0x9a03
movq %r12, %rdi
callq 0xabb6
movq %r13, %rdi
callq 0xabb6
movl 0x5a37(%rip), %eax      # 0xf430
decl %eax
movl %eax, 0x5a2f(%rip)      # 0xf430
jmp 0x99df
andl $0x0, 0x5a26(%rip)      # 0xf430
leaq 0x58df(%rip), %rdi      # 0xf2f0
movq %rbx, %rsi
callq 0xac16
leaq 0x5970(%rip), %rdi      # 0xf390
movq %r15, %rsi
callq 0xac16
movq %rbx, %rdi
leaq 0x5a46(%rip), %rbx      # 0xf478
movq %rbx, %rsi
callq 0x3150
movq %r15, %rdi
movq %rbx, %rsi
callq 0x3150
callq 0x3ab9
movq 0x5577(%rip), %rdi      # 0xefc8
leaq 0x1b5e(%rip), %rsi      # 0xb5b6
callq 0x3230
movq 0x553c(%rip), %rax      # 0xefa0
movq (%rax), %rdi
callq 0x32c0
movl 0x5806(%rip), %esi      # 0xf278
xorl %edi, %edi
callq 0x442e
andb $-0xb, 0x5a74(%rip)     # 0xf4f4
xorl %edi, %edi
xorl %esi, %esi
movq %rbp, %rdx
callq 0x3330
testl %eax, %eax
jne 0xa03c
movl $0x1, 0x57e6(%rip)      # 0xf284
andl $0x0, 0x5a03(%rip)      # 0xf4a8
movl 0x57d1(%rip), %esi      # 0xf27c
leaq 0x15d6(%rip), %rdi      # 0xb088
pushq $0x1
popq %rdx
xorl %eax, %eax
callq 0x3050
leaq 0x28(%rsp), %rbx
jmp 0x96c7
movl 0x59dc(%rip), %eax      # 0xf4a8
addl 0x57b2(%rip), %eax      # 0xf284
cmpl $0x1, %eax
je 0x96c7
cmpl $0x2, %eax
jne 0x9af7
movq %r15, %rdi
leaq 0x598e(%rip), %rsi      # 0xf478
callq 0x3040
testl %eax, %eax
je 0x96c7
movl 0x5933(%rip), %eax      # 0xf430
testl %eax, %eax
je 0x9d18
movq %r12, %rdi
callq 0xabb6
movq %r13, %rdi
callq 0xabb6
movl 0x5915(%rip), %eax      # 0xf430
decl %eax
movl %eax, 0x590d(%rip)      # 0xf430
jmp 0x9afd
movq %r15, %rdi
leaq 0x5949(%rip), %rsi      # 0xf478
callq 0x3040
testl %eax, %eax
je 0x96c7
movl 0x58ee(%rip), %eax      # 0xf430
leaq 0x88(%rsp), %rbp
testl %eax, %eax
je 0x9b6e
movq %r12, %rdi
callq 0xabb6
movq %r13, %rdi
callq 0xabb6
movl 0x58cc(%rip), %eax      # 0xf430
decl %eax
movl %eax, 0x58c4(%rip)      # 0xf430
jmp 0x9b4a
andl $0x0, 0x58bb(%rip)      # 0xf430
leaq 0x5774(%rip), %rdi      # 0xf2f0
leaq 0x58b5(%rip), %r14      # 0xf438
movq %r14, %rsi
callq 0xac16
leaq 0x57fe(%rip), %rdi      # 0xf390
movq %r15, %rsi
callq 0xac16
movq %rbp, %rdi
movq %r15, %rsi
callq 0x3350
movq %rbx, %rdi
movq %rbp, %rsi
callq 0x39b9
movq %r15, %rdi
movq %rbx, %rsi
callq 0x3300
movq %rbx, %rdi
callq 0x34d8
movq %rbp, %rdi
callq 0x34d8
leaq 0x8(%rsp), %rbp
movq %rbp, %rdi
movq %r14, %rsi
leaq 0x14bc(%rip), %rdx      # 0xb099
callq 0xa27a
movq 0x58af(%rip), %rax      # 0xf498
movq 0x8(%rax), %rdx
addq $0x13, %rdx
movq %rbx, %rdi
movq %rbp, %rsi
callq 0xa2b2
movq %r14, %rdi
movq %rbx, %rsi
callq 0x3300
movq %rbx, %rdi
callq 0x34d8
movq %rbp, %rdi
callq 0x34d8
callq 0x3ab9
movq 0x537d(%rip), %rax      # 0xefa0
movq (%rax), %rdi
callq 0x32c0
movl 0x5647(%rip), %esi      # 0xf278
xorl %edi, %edi
callq 0x442e
andb $-0xb, 0x58b5(%rip)     # 0xf4f4
xorl %edi, %edi
xorl %esi, %esi
leaq 0x589e(%rip), %rdx      # 0xf4e8
callq 0x3330
testl %eax, %eax
movq %rbp, %r14
jne 0xa05d
andl $0x0, 0x5847(%rip)      # 0xf4a8
movl $0x1, 0x5619(%rip)      # 0xf284
movl 0x560b(%rip), %esi      # 0xf27c
movl 0x5609(%rip), %edx      # 0xf280
leaq 0x140a(%rip), %rdi      # 0xb088
jmp 0xa029
cmpl %ecx, %esi
jge 0x96c7
leal 0x1(%rsi), %eax
movl %eax, 0x55f0(%rip)      # 0xf284
addl 0x55e2(%rip), %esi      # 0xf27c
leaq 0x13e7(%rip), %rdi      # 0xb088
jmp 0x999d
cmpl $0x0, 0x57fb(%rip)      # 0xf4a8
je 0x96c7
movl 0x55c3(%rip), %esi      # 0xf27c
movl 0x55c1(%rip), %edx      # 0xf280
movq %rbx, %r15
movq %rbp, %rbx
movq %r14, %rbp
leaq 0x13b9(%rip), %r14      # 0xb088
movq %r14, %rdi
xorl %eax, %eax
callq 0x3050
movl 0x57c9(%rip), %edi      # 0xf4a8
decl %edi
movl %edi, 0x57c1(%rip)      # 0xf4a8
movl 0x558b(%rip), %esi      # 0xf278
addl %edi, %esi
callq 0x442e
movl 0x5582(%rip), %esi      # 0xf27c
movl 0x5580(%rip), %edx      # 0xf280
movq %r14, %rdi
movq %rbp, %r14
movq %rbx, %rbp
movq %r15, %rbx
leaq 0x5745(%rip), %r15      # 0xf458
jmp 0x99a0
andl $0x0, 0x5711(%rip)      # 0xf430
movq 0x5772(%rip), %rax      # 0xf498
movl 0x5558(%rip), %ecx      # 0xf284
movl 0x5776(%rip), %edx      # 0xf4a8
leal (%rcx,%rdx), %ebx
decl %ebx
movslq %ebx, %rcx
movq (%rax,%rcx,8), %rax
cmpb $0x4, 0x12(%rax)
jne 0x9dae
leaq 0x5645(%rip), %rdi      # 0xf390
leaq 0x5706(%rip), %rbp      # 0xf458
movq %rbp, %rsi
callq 0xac16
cmpl $0x1, %ebx
jne 0x9ef3
leaq 0x68(%rsp), %r15
movq %r15, %rdi
movq %rbp, %rsi
callq 0x3350
leaq 0x28(%rsp), %r14
movq %r14, %rdi
movq %r15, %rsi
callq 0x39b9
movq %rbp, %rdi
movq %r14, %rsi
callq 0x3300
movq %r14, %rdi
callq 0x34d8
movq %r15, %rdi
callq 0x34d8
movq %rbp, %r15
movq %r14, %rbx
leaq 0x8(%rsp), %rbp
jmp 0x9f5a
leaq 0x28(%rsp), %rdi
leaq 0x567e(%rip), %rsi      # 0xf438
callq 0x3350
xorl %ebx, %ebx
movslq %ebx, %rsi
cmpq %rsi, 0x5675(%rip)      # 0xf440
jbe 0x9dee
movq 0x28(%rsp), %rax
cmpb $0x20, (%rax,%rsi)
jne 0x9dea
leaq 0x28(%rsp), %rdi
pushq $0x1
popq %rdx
pushq $0x5c
popq %rcx
callq 0x34c0
incl %ebx
incl %ebx
jmp 0x9dc1
leaq 0x48(%rsp), %rbx
movq %rbx, %rdi
leaq 0x28(%rsp), %rsi
leaq 0x1297(%rip), %rdx      # 0xb099
callq 0xa27a
movq 0x568a(%rip), %rax      # 0xf498
movslq 0x546f(%rip), %rcx      # 0xf284
movslq 0x568c(%rip), %rdx      # 0xf4a8
addq %rcx, %rdx
movq -0x8(%rax,%rdx,8), %rdx
addq $0x13, %rdx
movq %r14, %rdi
movq %rbx, %rsi
callq 0xa2b2
movq %rbx, %rdi
callq 0x34d8
callq 0x30a0
movl %eax, %ebx
testl %eax, %eax
jne 0x9ebb
leaq 0x128b(%rip), %rdi      # 0xb0d8
movl $0x442, %esi            # imm = 0x442
movl $0x180, %edx            # imm = 0x180
xorl %eax, %eax
callq 0x31a0
movl %eax, %r15d
leaq 0x1278(%rip), %rdi      # 0xb0e0
cmpl $-0x1, %eax
je 0x9eae
movq 0x515c(%rip), %rax      # 0xefd0
movq (%rax), %rdi
callq 0x3280
movl %eax, %edi
callq 0x33a0
movl %eax, %ebp
movq 0x5144(%rip), %rax      # 0xefd0
movq (%rax), %rdi
callq 0x3280
movl %r15d, %edi
movl %eax, %esi
callq 0x3220
leaq 0x124c(%rip), %rdi      # 0xb0f1
cmpl $-0x1, %eax
jne 0xa101
callq 0x31d0
movl $0xff, 0x4(%rsp)
movq %r14, %rdi
callq 0x34d8
leaq 0x28(%rsp), %r14
movq %r14, %rdi
callq 0x34d8
testl %ebx, %ebx
movq %r14, %rbx
leaq 0x557c(%rip), %r15      # 0xf458
leaq 0x8(%rsp), %r14
leaq 0x5600(%rip), %rbp      # 0xf4e8
jne 0x96c7
jmp 0xa0ca
movq %r14, %rdi
movq %rbp, %r15
movq %rbp, %rsi
leaq 0x1196(%rip), %rdx      # 0xb099
callq 0xa27a
movq 0x5589(%rip), %rax      # 0xf498
movslq 0x536e(%rip), %rcx      # 0xf284
movslq 0x558b(%rip), %rdx      # 0xf4a8
addq %rcx, %rdx
movq -0x8(%rax,%rdx,8), %rdx
addq $0x13, %rdx
movq %r14, %rbp
leaq 0x28(%rsp), %r14
movq %r14, %rdi
movq %rbp, %rsi
callq 0xa2b2
movq %r15, %rdi
movq %r14, %rsi
callq 0x3300
movq %r14, %rdi
callq 0x34d8
movq %rbp, %rdi
callq 0x34d8
movq %r14, %rbx
leaq 0x538f(%rip), %rdi      # 0xf2f0
leaq 0x54d0(%rip), %r14      # 0xf438
movq %r14, %rsi
callq 0xac16
movq %rbp, %rdi
movq %r14, %rsi
leaq 0x111c(%rip), %rdx      # 0xb099
callq 0xa27a
movq 0x550f(%rip), %rax      # 0xf498
movslq 0x52f4(%rip), %rcx      # 0xf284
movslq 0x5511(%rip), %rdx      # 0xf4a8
addq %rcx, %rdx
movq -0x8(%rax,%rdx,8), %rdx
addq $0x13, %rdx
movq %rbx, %rdi
movq %rbp, %rsi
callq 0xa2b2
movq %r14, %rdi
movq %rbx, %rsi
callq 0x3300
movq %rbx, %rdi
callq 0x34d8
movq %rbp, %rdi
callq 0x34d8
callq 0x3ab9
movq 0x4fcb(%rip), %rax      # 0xefa0
movq (%rax), %rdi
callq 0x32c0
movl 0x5295(%rip), %esi      # 0xf278
xorl %edi, %edi
callq 0x442e
andb $-0xb, 0x5503(%rip)     # 0xf4f4
xorl %edi, %edi
xorl %esi, %esi
leaq 0x54ec(%rip), %rdx      # 0xf4e8
callq 0x3330
testl %eax, %eax
movq %rbp, %r14
jne 0xa07e
movl $0x1, 0x5272(%rip)      # 0xf284
andl $0x0, 0x548f(%rip)      # 0xf4a8
movl 0x525d(%rip), %esi      # 0xf27c
leaq 0x1062(%rip), %rdi      # 0xb088
pushq $0x1
popq %rdx
xorl %eax, %eax
callq 0x3050
leaq 0x54b1(%rip), %rbp      # 0xf4e8
jmp 0x96c7
movq 0x4f8d(%rip), %rax      # 0xefd0
movq (%rax), %rcx
leaq 0x1515(%rip), %rdi      # 0xb562
pushq $0x19
popq %rsi
pushq $0x1
popq %rdx
callq 0x3490
jmp 0x9a94
movq 0x4f6c(%rip), %rax      # 0xefd0
movq (%rax), %rcx
leaq 0x14f4(%rip), %rdi      # 0xb562
pushq $0x19
popq %rsi
pushq $0x1
popq %rdx
callq 0x3490
jmp 0x9c5a
movq 0x4f4b(%rip), %rax      # 0xefd0
movq (%rax), %rcx
leaq 0x14d3(%rip), %rdi      # 0xb562
pushq $0x19
popq %rsi
pushq $0x1
popq %rdx
callq 0x3490
jmp 0xa008
leaq 0x5406(%rip), %rdx      # 0xf4ac
movl $0x0, 0x4(%rsp)
xorl %edi, %edi
xorl %esi, %esi
callq 0x3330
leaq 0x14ed(%rip), %rdi      # 0xb5ab
xorl %eax, %eax
callq 0x3050
callq 0x3ab9
movl 0x4(%rsp), %eax
addq $0xa8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq 0x4ee9(%rip), %rax      # 0xefd0
movq (%rax), %rcx
leaq 0x1471(%rip), %rdi      # 0xb562
pushq $0x19
popq %rsi
pushq $0x1
popq %rdx
callq 0x3490
jmp 0x9672
movq 0x8(%rsp), %rdx
leaq 0xffb(%rip), %rdi       # 0xb108
leaq 0xffd(%rip), %rsi       # 0xb111
xorl %ecx, %ecx
xorl %eax, %eax
callq 0x3310
movq 0x4eac(%rip), %rax      # 0xefd0
movq (%rax), %rdi
callq 0x32c0
movl %r15d, %edi
callq 0x34b0
movq 0x4e95(%rip), %rax      # 0xefd0
movq (%rax), %rdi
callq 0x3280
movl %ebp, %edi
movl %eax, %esi
callq 0x3220
movl %ebp, %edi
callq 0x34b0
pushq $0x1
popq %rdi
callq 0x32f0
jmp 0xa18e
jmp 0xa184
movq %rax, %rbx
leaq 0x68(%rsp), %rdi
jmp 0xa1a5
jmp 0xa19d
movq %rax, %rbx
leaq 0x48(%rsp), %rdi
jmp 0xa196
jmp 0xa184
movq %rax, %rbx
leaq 0x88(%rsp), %rdi
jmp 0xa1a5
movq %rax, %rbx
leaq 0x8(%rsp), %rdi
jmp 0xa1a5
movq %rax, %rbx
leaq 0x8(%rsp), %rdi
callq 0x34d8
jmp 0xa1a0
movq %rax, %rbx
leaq 0x28(%rsp), %rdi
callq 0x34d8
movq %rbx, %rdi
callq 0x3430