// File: aman-agrawal[P]Terminal-based-file-explorer/aman.cpp
// Function: main
int main(int argc, char* argv[])
{
	clear2();		//to clear terminal
	string hmd=mycwd();

	stack<string>l;
	stack<string>r;
	l.push(string(argv[1]));
	while(r.empty()!=1)
    			{r.pop();}

	filename = list(argv[1],1);	//to print ls 
    x=1;y=1;
    mov(x,y);
    off_keyboard();
    while(1) {
    	int i = cursor_handle(x, y);
    if(i==1)
    {
		//enter key is tapped

    	//f status
    	if(filename[x-1].second != 'd')
    	{
			system(("xdg-open " + filename[x-1].first).c_str());
    	}
		
    
    	//d status
    	else
    	{
            sonu=sonu+"/"+filename[x-1].first;

    	const char *ye = filename[x-1].first.c_str();
    	char* z= (char*)ye; 		//converting const char* into char*
    	string largepath(z);	//converting char* into string

    	int len=largepath.size();
    	if(largepath[len-1]=='.' && largepath[len-2]=='.')
    	{
    		if(largepath!=hmd)
    		{
    			string trimpath=trim1(largepath);
    			char *trimstring = (char*)trimpath.c_str();

    			l.push(trimpath);	///////push into l stack
    			while(r.empty()!=1)
    			{r.pop();}
    			filename= list(trimstring, filename[x-1].second);
    		}
    		else
    		{
    			// when .. is pressed and we r in home directory
    			filename = list(argv[1],1);	//to print ls

    		}
            x=1;y=1;
            mov(x,y);

    	}
    	else
    	{	
    		l.push(largepath);	///////push into l stack
    		while(r.empty()!=1)
    			{r.pop();}
    		filename=list(z, filename[x-1].second);	//refer line 67 for z
                x=1;y=1;
            mov(x,y);
    	}
    	}
    		
    	
    }

    if(i==2)
    {
    	//home key is tapped
    	filename = list(argv[1], filename[x-1].second);	//to print home directory 	
        x=1;y=1;
            mov(x,y);
    }

   
    if(i==3)
    {
    	//left key is pressed
    	if(l.empty()==0)
    	{string pl=l.top();
    	l.pop();
    	r.push(pl);
    	string pll=l.top();
    	const char *o1 = pll.c_str();
    	char* o11= (char*)o1;
    	filename=list(o11, filename[x-1].second);
        x=1;y=1;
            mov(x,y);
    	}

    }
   
    if(i==4)
    {
    	//right key is pressed
    	if(r.empty()==0)
    	{string pr=r.top();
    	const char *o2 = pr.c_str();
    	char* o22= (char*)o2;

    	r.pop();
    	l.push(pr);
    	filename=list(o22, filename[x-1].second);
        x=1;y=1;
        mov(x,y);
    	}
    }

    if(i==5)
    {	//backspace key is pressed
    	const char *y4 = filename[x-1].first.c_str();
    	char* z2= (char*)y4; 		//converting const char* into char*
    	string originalpath(z2);	//converting char* into string
    	string parentpath=originalpath.substr(0, originalpath.find_last_of("\\/"));
    	parentpath=originalpath.substr(0, parentpath.find_last_of("\\/"));

    	const char *o3 = parentpath.c_str();

    	char* parentpointer= (char*)o3;
    	filename = list(parentpointer, filename[x-1].second);
        x=1;y=1;
            mov(x,y);
    }

    if(i==6)
    {
    	//colon is pressed

    	on_keyboard();
        x=28,y=1;
    	mov(x,y);
    	printf("\033[27;1H");
    	cout<<"*******************************************"<<endl<<"enter command : ";
        vector<string> v;
            string s1 ;
            getline(cin,s1);
            auto i = s1.begin() ;
            string::iterator start = s1.begin() ;

            if(s1[0]==27)
                {
                    //escape is pressed
                     x=1,y=1;
                     mov(x,y);
                    printf("\033[27;1H");
                    cout<<"                                                           "<<endl;
                    cout<<"                                                           "<<endl;
                    cout<<"                                                           ";
                }  
        else{

        while(i!= s1.end())
        {
            if(*i == ' ')
            {
                string s2(start, i) ;
                v.push_back(s2) ;
                start = ++i ;
            }
            else 
                i++ ;
        }
        string s2(start,i) ;
        v.push_back(s2) ;
        if(v[0]=="copy")
        {
            int vectorsize1=v.size();
            int vectorsize2=vectorsize1-2;
            int i=1;
            while(vectorsize2--)
            {   copyfile(sonu+"/"+v[i],v[vectorsize1-1]+"/"+v[i]);
                i++;
            }
            cout << "all file(s) Copied done successfully";
        }
        else if(v[0]=="create_file")
        {
            createfile(v[1],v[2]);
        }
        else if(v[0]=="create_dir")
        {
            createdir(v[1],v[2]);
        }
        else if(v[0]=="move")
        {
            int vectorsize1=v.size();
            int vectorsize2=vectorsize1-2;
            int i=1;
            while(vectorsize2--)
            {   movefile(v[i],v[vectorsize1-1]+v[i]);
                i++;
            }
            cout << "all file(s) moved successfully";
        }
        else if(v[0]=="rename")
        {
            renamefile(v[1],v[2]);
        }
        else if(v[0]=="delete_file")
        {
            int result=deletefile(v[1]);
            if (result == 1)
                cout<<"File successfully deleted";
            else
                cout<<"wrong input";
        }
        else if(v[0]=="delete_dir")
        {
            int result=deletedir(v[1]);
            if(result==0)
                cout<<"wrong input";
            else
                cout<<"directory successfully deleted";
        }
        else if(v[0]=="goto")
        {
            go_to(v[1]);
        }
      }
    	
      }  
    }	
    
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x820, %rsp            # imm = 0x820
movl $0x0, -0x4(%rbp)
movl %edi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
leaq 0x4de4(%rip), %rdi      # 0xb004
xorl %eax, %eax
callq 0x3030
leaq -0x30(%rbp), %rdi
callq 0x5390
leaq -0x80(%rbp), %rdi
callq 0x7d00
jmp 0x623b
leaq -0xe0(%rbp), %rdi
callq 0x7d00
jmp 0x6249
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rax
movq %rax, -0x698(%rbp)
leaq -0x101(%rbp), %rdi
movq %rdi, -0x690(%rbp)
callq 0x3520
movq -0x698(%rbp), %rsi
movq -0x690(%rbp), %rdx
leaq -0x100(%rbp), %rdi
callq 0x3f30
jmp 0x6287
leaq -0x80(%rbp), %rdi
leaq -0x100(%rbp), %rsi
callq 0x7d30
jmp 0x6299
leaq -0x100(%rbp), %rdi
callq 0x35b8
leaq -0x101(%rbp), %rdi
callq 0x3340
leaq -0xe0(%rbp), %rdi
callq 0x7d60
movb %al, -0x699(%rbp)
jmp 0x62c5
movb -0x699(%rbp), %al
andb $0x1, %al
movzbl %al, %eax
cmpl $0x1, %eax
je 0x6371
leaq -0xe0(%rbp), %rdi
callq 0x7d80
jmp 0x62e7
jmp 0x62b1
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x88(%rbp)
movl %eax, -0x8c(%rbp)
jmp 0x7c5c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x88(%rbp)
movl %eax, -0x8c(%rbp)
jmp 0x7c53
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x88(%rbp)
movl %eax, -0x8c(%rbp)
jmp 0x6349
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x88(%rbp)
movl %eax, -0x8c(%rbp)
leaq -0x100(%rbp), %rdi
callq 0x35b8
leaq -0x101(%rbp), %rdi
callq 0x3340
jmp 0x7c47
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x88(%rbp)
movl %eax, -0x8c(%rbp)
jmp 0x7c47
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rsi
leaq -0x120(%rbp), %rdi
movl $0x1, %edx
callq 0x38b0
jmp 0x638c
leaq 0xa015(%rip), %rdi      # 0x103a8
leaq -0x120(%rbp), %rsi
movq %rsi, -0x6a8(%rbp)
callq 0x7da0
movq -0x6a8(%rbp), %rdi
callq 0x4140
movl $0x1, 0x9f34(%rip)      # 0x102f0
movl $0x1, 0x9f2e(%rip)      # 0x102f4
movl 0x9f24(%rip), %edi      # 0x102f0
movl 0x9f22(%rip), %esi      # 0x102f4
callq 0x50a0
jmp 0x63d9
callq 0x5200
jmp 0x63e0
jmp 0x63e2
jmp 0x63e4
leaq 0x9f05(%rip), %rdi      # 0x102f0
leaq 0x9f02(%rip), %rsi      # 0x102f4
callq 0x50d0
movl %eax, -0x6ac(%rbp)
jmp 0x63ff
movl -0x6ac(%rbp), %eax
movl %eax, -0x124(%rbp)
cmpl $0x1, -0x124(%rbp)
jne 0x694b
movl 0x9ed2(%rip), %eax      # 0x102f0
subl $0x1, %eax
movslq %eax, %rsi
leaq 0x9f7d(%rip), %rdi      # 0x103a8
callq 0x7dd0
movsbl 0x20(%rax), %eax
cmpl $0x64, %eax
je 0x64b2
movl 0x9eb1(%rip), %eax      # 0x102f0
decl %eax
movslq %eax, %rsi
leaq 0x9f5d(%rip), %rdi      # 0x103a8
callq 0x7dd0
movq %rax, %rdx
leaq 0x4c9c(%rip), %rsi      # 0xb0f6
leaq -0x148(%rbp), %rdi
callq 0x7df0
jmp 0x6468
leaq -0x148(%rbp), %rdi
callq 0x3110
movq %rax, %rdi
callq 0x3260
jmp 0x647e
leaq -0x148(%rbp), %rdi
callq 0x35b8
jmp 0x6949
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x88(%rbp)
movl %eax, -0x8c(%rbp)
leaq -0x148(%rbp), %rdi
callq 0x35b8
jmp 0x7c47
leaq 0x9ecf(%rip), %rsi      # 0x10388
leaq 0x4c41(%rip), %rdx      # 0xb101
leaq -0x188(%rbp), %rdi
callq 0x4030
jmp 0x64ce
movl 0x9e1c(%rip), %eax      # 0x102f0
decl %eax
movslq %eax, %rsi
leaq 0x9ec8(%rip), %rdi      # 0x103a8
callq 0x7dd0
movq %rax, %rdx
leaq -0x168(%rbp), %rdi
leaq -0x188(%rbp), %rsi
callq 0x3fe0
jmp 0x64fd
leaq 0x9e84(%rip), %rdi      # 0x10388
leaq -0x168(%rbp), %rsi
movq %rsi, -0x6c8(%rbp)
callq 0x33b0
movq -0x6c8(%rbp), %rdi
callq 0x35b8
leaq -0x188(%rbp), %rdi
callq 0x35b8
movl 0x9dbb(%rip), %eax      # 0x102f0
decl %eax
movslq %eax, %rsi
leaq 0x9e67(%rip), %rdi      # 0x103a8
callq 0x7dd0
movq %rax, %rdi
callq 0x3110
movq %rax, -0x190(%rbp)
movq -0x190(%rbp), %rax
movq %rax, -0x198(%rbp)
movq -0x198(%rbp), %rax
movq %rax, -0x6c0(%rbp)
leaq -0x1b9(%rbp), %rdi
movq %rdi, -0x6b8(%rbp)
callq 0x3520
movq -0x6c0(%rbp), %rsi
movq -0x6b8(%rbp), %rdx
leaq -0x1b8(%rbp), %rdi
callq 0x3f30
jmp 0x65a0
leaq -0x1b9(%rbp), %rdi
callq 0x3340
leaq -0x1b8(%rbp), %rdi
movq %rdi, -0x6d8(%rbp)
callq 0x3200
movq -0x6d8(%rbp), %rdi
movl %eax, -0x1c0(%rbp)
movl -0x1c0(%rbp), %eax
decl %eax
movslq %eax, %rsi
callq 0x35a0
movq %rax, -0x6d0(%rbp)
jmp 0x65e5
movq -0x6d0(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x2e, %eax
jne 0x6855
movl -0x1c0(%rbp), %eax
addl $-0x2, %eax
movslq %eax, %rsi
leaq -0x1b8(%rbp), %rdi
callq 0x35a0
movq %rax, -0x6e0(%rbp)
jmp 0x6619
movq -0x6e0(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x2e, %eax
jne 0x6855
leaq -0x1b8(%rbp), %rdi
leaq -0x30(%rbp), %rsi
callq 0x7f00
testb $0x1, %al
jne 0x6645
jmp 0x67ef
leaq -0x200(%rbp), %rdi
leaq -0x1b8(%rbp), %rsi
callq 0x3120
jmp 0x665a
leaq -0x1e0(%rbp), %rdi
leaq -0x200(%rbp), %rsi
callq 0x5280
jmp 0x666f
leaq -0x200(%rbp), %rdi
callq 0x35b8
leaq -0x1e0(%rbp), %rdi
movq %rdi, -0x6e8(%rbp)
callq 0x3110
movq -0x6e8(%rbp), %rsi
movq %rax, -0x208(%rbp)
leaq -0x80(%rbp), %rdi
callq 0x7f30
jmp 0x66a7
jmp 0x66a9
leaq -0xe0(%rbp), %rdi
callq 0x7d60
movb %al, -0x6e9(%rbp)
jmp 0x66bd
movb -0x6e9(%rbp), %al
andb $0x1, %al
movzbl %al, %eax
cmpl $0x1, %eax
je 0x6784
leaq -0xe0(%rbp), %rdi
callq 0x7d80
jmp 0x66df
jmp 0x66a9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x88(%rbp)
movl %eax, -0x8c(%rbp)
leaq -0x188(%rbp), %rdi
callq 0x35b8
jmp 0x7c47
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x88(%rbp)
movl %eax, -0x8c(%rbp)
leaq -0x1b9(%rbp), %rdi
callq 0x3340
jmp 0x7c47
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x88(%rbp)
movl %eax, -0x8c(%rbp)
jmp 0x6938
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x88(%rbp)
movl %eax, -0x8c(%rbp)
leaq -0x200(%rbp), %rdi
callq 0x35b8
jmp 0x6938
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x88(%rbp)
movl %eax, -0x8c(%rbp)
leaq -0x1e0(%rbp), %rdi
callq 0x35b8
jmp 0x6938
movq -0x208(%rbp), %rax
movq %rax, -0x6f8(%rbp)
movl 0x9b58(%rip), %eax      # 0x102f0
decl %eax
movslq %eax, %rsi
leaq 0x9c04(%rip), %rdi      # 0x103a8
callq 0x7dd0
movq -0x6f8(%rbp), %rsi
movsbl 0x20(%rax), %edx
leaq -0x220(%rbp), %rdi
callq 0x38b0
jmp 0x67c2
leaq 0x9bdf(%rip), %rdi      # 0x103a8
leaq -0x220(%rbp), %rsi
callq 0x7da0
leaq -0x220(%rbp), %rdi
callq 0x4140
leaq -0x1e0(%rbp), %rdi
callq 0x35b8
jmp 0x6829
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rsi
leaq -0x238(%rbp), %rdi
movl $0x1, %edx
callq 0x38b0
jmp 0x680a
leaq 0x9b97(%rip), %rdi      # 0x103a8
leaq -0x238(%rbp), %rsi
callq 0x7da0
leaq -0x238(%rbp), %rdi
callq 0x4140
movl $0x1, 0x9abd(%rip)      # 0x102f0
movl $0x1, 0x9ab7(%rip)      # 0x102f4
movl 0x9aad(%rip), %edi      # 0x102f0
movl 0x9aab(%rip), %esi      # 0x102f4
callq 0x50a0
jmp 0x6850
jmp 0x692a
leaq -0x80(%rbp), %rdi
leaq -0x1b8(%rbp), %rsi
callq 0x7f30
jmp 0x6867
jmp 0x6869
leaq -0xe0(%rbp), %rdi
callq 0x7d60
movb %al, -0x6f9(%rbp)
jmp 0x687d
movb -0x6f9(%rbp), %al
andb $0x1, %al
movzbl %al, %eax
cmpl $0x1, %eax
je 0x689d
leaq -0xe0(%rbp), %rdi
callq 0x7d80
jmp 0x689b
jmp 0x6869
movq -0x198(%rbp), %rax
movq %rax, -0x708(%rbp)
movl 0x9a3f(%rip), %eax      # 0x102f0
decl %eax
movslq %eax, %rsi
leaq 0x9aeb(%rip), %rdi      # 0x103a8
callq 0x7dd0
movq -0x708(%rbp), %rsi
movsbl 0x20(%rax), %edx
leaq -0x250(%rbp), %rdi
callq 0x38b0
jmp 0x68db
leaq 0x9ac6(%rip), %rdi      # 0x103a8
leaq -0x250(%rbp), %rsi
movq %rsi, -0x710(%rbp)
callq 0x7da0
movq -0x710(%rbp), %rdi
callq 0x4140
movl $0x1, 0x99e5(%rip)      # 0x102f0
movl $0x1, 0x99df(%rip)      # 0x102f4
movl 0x99d5(%rip), %edi      # 0x102f0
movl 0x99d3(%rip), %esi      # 0x102f4
callq 0x50a0
jmp 0x6928
jmp 0x692a
leaq -0x1b8(%rbp), %rdi
callq 0x35b8
jmp 0x6949
leaq -0x1b8(%rbp), %rdi
callq 0x35b8
jmp 0x7c47
jmp 0x694b
cmpl $0x2, -0x124(%rbp)
jne 0x69e6
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rax
movq %rax, -0x718(%rbp)
movl 0x9983(%rip), %eax      # 0x102f0
decl %eax
movslq %eax, %rsi
leaq 0x9a2f(%rip), %rdi      # 0x103a8
callq 0x7dd0
movq -0x718(%rbp), %rsi
movsbl 0x20(%rax), %edx
leaq -0x268(%rbp), %rdi
callq 0x38b0
jmp 0x6997
leaq 0x9a0a(%rip), %rdi      # 0x103a8
leaq -0x268(%rbp), %rsi
movq %rsi, -0x720(%rbp)
callq 0x7da0
movq -0x720(%rbp), %rdi
callq 0x4140
movl $0x1, 0x9929(%rip)      # 0x102f0
movl $0x1, 0x9923(%rip)      # 0x102f4
movl 0x9919(%rip), %edi      # 0x102f0
movl 0x9917(%rip), %esi      # 0x102f4
callq 0x50a0
jmp 0x69e4
jmp 0x69e6
cmpl $0x3, -0x124(%rbp)
jne 0x6b91
leaq -0x80(%rbp), %rdi
callq 0x7d60
movb %al, -0x721(%rbp)
jmp 0x6a04
movb -0x721(%rbp), %al
andb $0x1, %al
movzbl %al, %eax
cmpl $0x0, %eax
jne 0x6b8f
leaq -0x80(%rbp), %rdi
callq 0x7f60
movq %rax, -0x730(%rbp)
jmp 0x6a2a
movq -0x730(%rbp), %rsi
leaq -0x288(%rbp), %rdi
callq 0x3120
jmp 0x6a3f
leaq -0x80(%rbp), %rdi
callq 0x7d80
jmp 0x6a4a
leaq -0xe0(%rbp), %rdi
leaq -0x288(%rbp), %rsi
callq 0x7f30
jmp 0x6a5f
leaq -0x80(%rbp), %rdi
callq 0x7f60
movq %rax, -0x738(%rbp)
jmp 0x6a71
movq -0x738(%rbp), %rsi
leaq -0x2a8(%rbp), %rdi
callq 0x3120
jmp 0x6a86
leaq -0x2a8(%rbp), %rdi
callq 0x3110
movq %rax, -0x2b0(%rbp)
movq -0x2b0(%rbp), %rax
movq %rax, -0x2b8(%rbp)
movq -0x2b8(%rbp), %rax
movq %rax, -0x740(%rbp)
movl 0x9835(%rip), %eax      # 0x102f0
decl %eax
movslq %eax, %rsi
leaq 0x98e1(%rip), %rdi      # 0x103a8
callq 0x7dd0
movq -0x740(%rbp), %rsi
movsbl 0x20(%rax), %edx
leaq -0x2d0(%rbp), %rdi
callq 0x38b0
jmp 0x6ae5
leaq 0x98bc(%rip), %rdi      # 0x103a8
leaq -0x2d0(%rbp), %rsi
movq %rsi, -0x748(%rbp)
callq 0x7da0
movq -0x748(%rbp), %rdi
callq 0x4140
movl $0x1, 0x97db(%rip)      # 0x102f0
movl $0x1, 0x97d5(%rip)      # 0x102f4
movl 0x97cb(%rip), %edi      # 0x102f0
movl 0x97c9(%rip), %esi      # 0x102f4
callq 0x50a0
jmp 0x6b32
leaq -0x2a8(%rbp), %rdi
callq 0x35b8
leaq -0x288(%rbp), %rdi
callq 0x35b8
jmp 0x6b8f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x88(%rbp)
movl %eax, -0x8c(%rbp)
jmp 0x6b7e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x88(%rbp)
movl %eax, -0x8c(%rbp)
leaq -0x2a8(%rbp), %rdi
callq 0x35b8
leaq -0x288(%rbp), %rdi
callq 0x35b8
jmp 0x7c47
jmp 0x6b91
cmpl $0x4, -0x124(%rbp)
jne 0x6cef
leaq -0xe0(%rbp), %rdi
callq 0x7d60
movb %al, -0x749(%rbp)
jmp 0x6bb2
movb -0x749(%rbp), %al
andb $0x1, %al
movzbl %al, %eax
cmpl $0x0, %eax
jne 0x6ced
leaq -0xe0(%rbp), %rdi
callq 0x7f60
movq %rax, -0x758(%rbp)
jmp 0x6bdb
movq -0x758(%rbp), %rsi
leaq -0x2f0(%rbp), %rdi
callq 0x3120
jmp 0x6bf0
leaq -0x2f0(%rbp), %rdi
callq 0x3110
movq %rax, -0x2f8(%rbp)
movq -0x2f8(%rbp), %rax
movq %rax, -0x300(%rbp)
leaq -0xe0(%rbp), %rdi
callq 0x7d80
jmp 0x6c1f
leaq -0x80(%rbp), %rdi
leaq -0x2f0(%rbp), %rsi
callq 0x7f30
jmp 0x6c31
movq -0x300(%rbp), %rax
movq %rax, -0x760(%rbp)
movl 0x96ab(%rip), %eax      # 0x102f0
decl %eax
movslq %eax, %rsi
leaq 0x9757(%rip), %rdi      # 0x103a8
callq 0x7dd0
movq -0x760(%rbp), %rsi
movsbl 0x20(%rax), %edx
leaq -0x318(%rbp), %rdi
callq 0x38b0
jmp 0x6c6f
leaq 0x9732(%rip), %rdi      # 0x103a8
leaq -0x318(%rbp), %rsi
movq %rsi, -0x768(%rbp)
callq 0x7da0
movq -0x768(%rbp), %rdi
callq 0x4140
movl $0x1, 0x9651(%rip)      # 0x102f0
movl $0x1, 0x964b(%rip)      # 0x102f4
movl 0x9641(%rip), %edi      # 0x102f0
movl 0x963f(%rip), %esi      # 0x102f4
callq 0x50a0
jmp 0x6cbc
leaq -0x2f0(%rbp), %rdi
callq 0x35b8
jmp 0x6ced
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x88(%rbp)
movl %eax, -0x8c(%rbp)
leaq -0x2f0(%rbp), %rdi
callq 0x35b8
jmp 0x7c47
jmp 0x6cef
cmpl $0x5, -0x124(%rbp)
jne 0x6f45
movl 0x95ee(%rip), %eax      # 0x102f0
decl %eax
movslq %eax, %rsi
leaq 0x969a(%rip), %rdi      # 0x103a8
callq 0x7dd0
movq %rax, %rdi
callq 0x3110
movq %rax, -0x320(%rbp)
movq -0x320(%rbp), %rax
movq %rax, -0x328(%rbp)
movq -0x328(%rbp), %rax
movq %rax, -0x778(%rbp)
leaq -0x349(%rbp), %rdi
movq %rdi, -0x770(%rbp)
callq 0x3520
movq -0x778(%rbp), %rsi
movq -0x770(%rbp), %rdx
leaq -0x348(%rbp), %rdi
callq 0x3f30
jmp 0x6d6d
leaq -0x349(%rbp), %rdi
callq 0x3340
leaq 0x4380(%rip), %rsi      # 0xb100
leaq -0x348(%rbp), %rdi
movq %rdi, -0x780(%rbp)
movq $-0x1, %rdx
callq 0x32c0
movq -0x780(%rbp), %rsi
movq %rax, %rcx
xorl %eax, %eax
movl %eax, %edx
leaq -0x370(%rbp), %rdi
callq 0x3310
jmp 0x6db6
leaq 0x4343(%rip), %rsi      # 0xb100
leaq -0x370(%rbp), %rdi
movq $-0x1, %rdx
callq 0x32c0
movq %rax, %rcx
xorl %eax, %eax
movl %eax, %edx
leaq -0x390(%rbp), %rdi
leaq -0x348(%rbp), %rsi
callq 0x3310
jmp 0x6dec
leaq -0x370(%rbp), %rdi
movq %rdi, -0x790(%rbp)
leaq -0x390(%rbp), %rsi
movq %rsi, -0x798(%rbp)
callq 0x33b0
movq -0x798(%rbp), %rdi
callq 0x35b8
movq -0x790(%rbp), %rdi
callq 0x3110
movq %rax, -0x398(%rbp)
movq -0x398(%rbp), %rax
movq %rax, -0x3a0(%rbp)
movq -0x3a0(%rbp), %rax
movq %rax, -0x788(%rbp)
movl 0x94a2(%rip), %eax      # 0x102f0
decl %eax
movslq %eax, %rsi
leaq 0x954e(%rip), %rdi      # 0x103a8
callq 0x7dd0
movq -0x788(%rbp), %rsi
movsbl 0x20(%rax), %edx
leaq -0x3b8(%rbp), %rdi
callq 0x38b0
jmp 0x6e78
leaq 0x9529(%rip), %rdi      # 0x103a8
leaq -0x3b8(%rbp), %rsi
movq %rsi, -0x7a0(%rbp)
callq 0x7da0
movq -0x7a0(%rbp), %rdi
callq 0x4140
movl $0x1, 0x9448(%rip)      # 0x102f0
movl $0x1, 0x9442(%rip)      # 0x102f4
movl 0x9438(%rip), %edi      # 0x102f0
movl 0x9436(%rip), %esi      # 0x102f4
callq 0x50a0
jmp 0x6ec5
leaq -0x370(%rbp), %rdi
callq 0x35b8
leaq -0x348(%rbp), %rdi
callq 0x35b8
jmp 0x6f45
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x88(%rbp)
movl %eax, -0x8c(%rbp)
leaq -0x349(%rbp), %rdi
callq 0x3340
jmp 0x7c47
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x88(%rbp)
movl %eax, -0x8c(%rbp)
jmp 0x6f34
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x88(%rbp)
movl %eax, -0x8c(%rbp)
leaq -0x370(%rbp), %rdi
callq 0x35b8
leaq -0x348(%rbp), %rdi
callq 0x35b8
jmp 0x7c47
cmpl $0x6, -0x124(%rbp)
jne 0x7c42
callq 0x5260
jmp 0x6f59
movl $0x1c, 0x938d(%rip)     # 0x102f0
movl $0x1, 0x9387(%rip)      # 0x102f4
movl 0x937d(%rip), %edi      # 0x102f0
movl 0x937b(%rip), %esi      # 0x102f4
callq 0x50a0
jmp 0x6f80
leaq 0x417c(%rip), %rdi      # 0xb103
xorl %eax, %eax
callq 0x3030
jmp 0x6f90
movq 0x9039(%rip), %rdi      # 0xffd0
leaq 0x416d(%rip), %rsi      # 0xb10b
callq 0x32d0
movq %rax, -0x7a8(%rbp)
jmp 0x6fac
movq -0x7a8(%rbp), %rdi
movq 0x8ff6(%rip), %rsi      # 0xffb0
callq 0x3320
movq %rax, -0x7b0(%rbp)
jmp 0x6fc8
movq -0x7b0(%rbp), %rdi
leaq 0x4161(%rip), %rsi      # 0xb137
callq 0x32d0
jmp 0x6fdd
leaq -0x3d0(%rbp), %rdi
callq 0x7f80
leaq -0x3f0(%rbp), %rdi
movq %rdi, -0x7b8(%rbp)
callq 0x33f0
movq -0x7b8(%rbp), %rsi
movq 0x8fd6(%rip), %rdi      # 0xffe0
callq 0x3070
jmp 0x7011
leaq -0x3f0(%rbp), %rdi
movq %rdi, -0x7c8(%rbp)
callq 0x3280
movq -0x7c8(%rbp), %rdi
movq %rax, -0x3f8(%rbp)
callq 0x3280
movq -0x7c8(%rbp), %rdi
movq %rax, -0x400(%rbp)
xorl %eax, %eax
movl %eax, %esi
callq 0x35a0
movq %rax, -0x7c0(%rbp)
jmp 0x7057
movq -0x7c0(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x1b, %eax
jne 0x7134
movl $0x1, 0x927c(%rip)      # 0x102f0
movl $0x1, 0x9276(%rip)      # 0x102f4
movl 0x926c(%rip), %edi      # 0x102f0
movl 0x926a(%rip), %esi      # 0x102f4
callq 0x50a0
jmp 0x7091
leaq 0x406b(%rip), %rdi      # 0xb103
xorl %eax, %eax
callq 0x3030
jmp 0x70a1
movq 0x8f28(%rip), %rdi      # 0xffd0
leaq 0x4099(%rip), %rsi      # 0xb148
callq 0x32d0
movq %rax, -0x7d0(%rbp)
jmp 0x70bd
movq -0x7d0(%rbp), %rdi
movq 0x8ee5(%rip), %rsi      # 0xffb0
callq 0x3320
jmp 0x70d2
movq 0x8ef7(%rip), %rdi      # 0xffd0
leaq 0x4068(%rip), %rsi      # 0xb148
callq 0x32d0
movq %rax, -0x7d8(%rbp)
jmp 0x70ee
movq -0x7d8(%rbp), %rdi
movq 0x8eb4(%rip), %rsi      # 0xffb0
callq 0x3320
jmp 0x7103
movq 0x8ec6(%rip), %rdi      # 0xffd0
leaq 0x4037(%rip), %rsi      # 0xb148
callq 0x32d0
jmp 0x7118
jmp 0x7c0e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x88(%rbp)
movl %eax, -0x8c(%rbp)
jmp 0x7c28
jmp 0x7136
leaq -0x3f0(%rbp), %rdi
callq 0x31c0
movq %rax, -0x408(%rbp)
leaq -0x3f8(%rbp), %rdi
leaq -0x408(%rbp), %rsi
callq 0x7fa0
testb $0x1, %al
jne 0x7165
jmp 0x7274
leaq -0x3f8(%rbp), %rdi
callq 0x7fe0
movsbl (%rax), %eax
cmpl $0x20, %eax
jne 0x725a
movq -0x400(%rbp), %rax
movq %rax, -0x430(%rbp)
movq -0x3f8(%rbp), %rax
movq %rax, -0x438(%rbp)
leaq -0x439(%rbp), %rdi
movq %rdi, -0x7e0(%rbp)
callq 0x3520
movq -0x7e0(%rbp), %rcx
movq -0x430(%rbp), %rsi
movq -0x438(%rbp), %rdx
leaq -0x428(%rbp), %rdi
callq 0x8000
jmp 0x71cf
leaq -0x439(%rbp), %rdi
callq 0x3340
leaq -0x3d0(%rbp), %rdi
leaq -0x428(%rbp), %rsi
callq 0x8080
jmp 0x71f0
leaq -0x3f8(%rbp), %rdi
callq 0x80f0
movq (%rax), %rax
movq %rax, -0x400(%rbp)
leaq -0x428(%rbp), %rdi
callq 0x35b8
jmp 0x726f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x88(%rbp)
movl %eax, -0x8c(%rbp)
leaq -0x439(%rbp), %rdi
callq 0x3340
jmp 0x7c28
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x88(%rbp)
movl %eax, -0x8c(%rbp)
leaq -0x428(%rbp), %rdi
callq 0x35b8
jmp 0x7c28
leaq -0x3f8(%rbp), %rdi
xorl %esi, %esi
callq 0x8110
movq %rax, -0x448(%rbp)
jmp 0x7136
movq -0x400(%rbp), %rax
movq %rax, -0x470(%rbp)
movq -0x3f8(%rbp), %rax
movq %rax, -0x478(%rbp)
leaq -0x479(%rbp), %rdi
movq %rdi, -0x7e8(%rbp)
callq 0x3520
movq -0x7e8(%rbp), %rcx
movq -0x470(%rbp), %rsi
movq -0x478(%rbp), %rdx
leaq -0x468(%rbp), %rdi
callq 0x8000
jmp 0x72c6
leaq -0x479(%rbp), %rdi
callq 0x3340
leaq -0x3d0(%rbp), %rdi
leaq -0x468(%rbp), %rsi
callq 0x8080
jmp 0x72e7
xorl %eax, %eax
movl %eax, %esi
leaq -0x3d0(%rbp), %rdi
callq 0x8150
movq %rax, %rdi
leaq 0x3e83(%rip), %rsi      # 0xb184
callq 0x7c80
movb %al, -0x7e9(%rbp)
jmp 0x730e
movb -0x7e9(%rbp), %al
testb $0x1, %al
jne 0x731d
jmp 0x7533
leaq -0x3d0(%rbp), %rdi
callq 0x8170
movl %eax, -0x480(%rbp)
movl -0x480(%rbp), %eax
subl $0x2, %eax
movl %eax, -0x484(%rbp)
movl $0x1, -0x488(%rbp)
movl -0x484(%rbp), %eax
movl %eax, %ecx
addl $-0x1, %ecx
movl %ecx, -0x484(%rbp)
cmpl $0x0, %eax
je 0x7519
leaq 0x901f(%rip), %rsi      # 0x10388
leaq 0x3d91(%rip), %rdx      # 0xb101
leaq -0x4c8(%rbp), %rdi
callq 0x4030
jmp 0x737e
movslq -0x488(%rbp), %rsi
leaq -0x3d0(%rbp), %rdi
callq 0x8150
movq %rax, %rdx
leaq -0x4a8(%rbp), %rdi
leaq -0x4c8(%rbp), %rsi
callq 0x3fe0
jmp 0x73a9
movl -0x480(%rbp), %eax
decl %eax
movslq %eax, %rsi
leaq -0x3d0(%rbp), %rdi
callq 0x8150
movq %rax, %rsi
leaq 0x3d37(%rip), %rdx      # 0xb101
leaq -0x508(%rbp), %rdi
callq 0x4030
jmp 0x73d8
movslq -0x488(%rbp), %rsi
leaq -0x3d0(%rbp), %rdi
callq 0x8150
movq %rax, %rdx
leaq -0x4e8(%rbp), %rdi
leaq -0x508(%rbp), %rsi
callq 0x3fe0
jmp 0x7403
leaq -0x4a8(%rbp), %rdi
leaq -0x4e8(%rbp), %rsi
callq 0x54d0
jmp 0x7418
leaq -0x4e8(%rbp), %rdi
callq 0x35b8
leaq -0x508(%rbp), %rdi
callq 0x35b8
leaq -0x4a8(%rbp), %rdi
callq 0x35b8
leaq -0x4c8(%rbp), %rdi
callq 0x35b8
movl -0x488(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x488(%rbp)
jmp 0x7348
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x88(%rbp)
movl %eax, -0x8c(%rbp)
leaq -0x479(%rbp), %rdi
callq 0x3340
jmp 0x7c28
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x88(%rbp)
movl %eax, -0x8c(%rbp)
jmp 0x7c00
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x88(%rbp)
movl %eax, -0x8c(%rbp)
jmp 0x7508
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x88(%rbp)
movl %eax, -0x8c(%rbp)
jmp 0x74fc
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x88(%rbp)
movl %eax, -0x8c(%rbp)
jmp 0x74f0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x88(%rbp)
movl %eax, -0x8c(%rbp)
leaq -0x4e8(%rbp), %rdi
callq 0x35b8
leaq -0x508(%rbp), %rdi
callq 0x35b8
leaq -0x4a8(%rbp), %rdi
callq 0x35b8
leaq -0x4c8(%rbp), %rdi
callq 0x35b8
jmp 0x7c00
movq 0x8ab0(%rip), %rdi      # 0xffd0
leaq 0x3c62(%rip), %rsi      # 0xb189
callq 0x32d0
jmp 0x752e
jmp 0x7bf2
xorl %eax, %eax
movl %eax, %esi
leaq -0x3d0(%rbp), %rdi
callq 0x8150
movq %rax, %rdi
leaq 0x3c61(%rip), %rsi      # 0xb1ae
callq 0x7c80
movb %al, -0x7ea(%rbp)
jmp 0x755a
movb -0x7ea(%rbp), %al
testb $0x1, %al
jne 0x7569
jmp 0x7622
leaq -0x3d0(%rbp), %rdi
movl $0x1, %esi
callq 0x8150
movq %rax, %rsi
leaq -0x528(%rbp), %rdi
callq 0x3120
jmp 0x758b
leaq -0x3d0(%rbp), %rdi
movl $0x2, %esi
callq 0x8150
movq %rax, %rsi
leaq -0x548(%rbp), %rdi
callq 0x3120
jmp 0x75ad
leaq -0x528(%rbp), %rdi
leaq -0x548(%rbp), %rsi
callq 0x5700
jmp 0x75c2
leaq -0x548(%rbp), %rdi
callq 0x35b8
leaq -0x528(%rbp), %rdi
callq 0x35b8
jmp 0x7bf0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x88(%rbp)
movl %eax, -0x8c(%rbp)
jmp 0x7611
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x88(%rbp)
movl %eax, -0x8c(%rbp)
leaq -0x548(%rbp), %rdi
callq 0x35b8
leaq -0x528(%rbp), %rdi
callq 0x35b8
jmp 0x7c00
xorl %eax, %eax
movl %eax, %esi
leaq -0x3d0(%rbp), %rdi
callq 0x8150
movq %rax, %rdi
leaq 0x3b7e(%rip), %rsi      # 0xb1ba
callq 0x7c80
movb %al, -0x7eb(%rbp)
jmp 0x7649
movb -0x7eb(%rbp), %al
testb $0x1, %al
jne 0x7658
jmp 0x7711
leaq -0x3d0(%rbp), %rdi
movl $0x1, %esi
callq 0x8150
movq %rax, %rsi
leaq -0x568(%rbp), %rdi
callq 0x3120
jmp 0x767a
leaq -0x3d0(%rbp), %rdi
movl $0x2, %esi
callq 0x8150
movq %rax, %rsi
leaq -0x588(%rbp), %rdi
callq 0x3120
jmp 0x769c
leaq -0x568(%rbp), %rdi
leaq -0x588(%rbp), %rsi
callq 0x5980
jmp 0x76b1
leaq -0x588(%rbp), %rdi
callq 0x35b8
leaq -0x568(%rbp), %rdi
callq 0x35b8
jmp 0x7bee
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x88(%rbp)
movl %eax, -0x8c(%rbp)
jmp 0x7700
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x88(%rbp)
movl %eax, -0x8c(%rbp)
leaq -0x588(%rbp), %rdi
callq 0x35b8
leaq -0x568(%rbp), %rdi
callq 0x35b8
jmp 0x7c00
xorl %eax, %eax
movl %eax, %esi
leaq -0x3d0(%rbp), %rdi
callq 0x8150
movq %rax, %rdi
leaq 0x3a9a(%rip), %rsi      # 0xb1c5
callq 0x7c80
movb %al, -0x7ec(%rbp)
jmp 0x7738
movb -0x7ec(%rbp), %al
testb $0x1, %al
jne 0x7747
jmp 0x789e
leaq -0x3d0(%rbp), %rdi
callq 0x8170
movl %eax, -0x58c(%rbp)
movl -0x58c(%rbp), %eax
subl $0x2, %eax
movl %eax, -0x590(%rbp)
movl $0x1, -0x594(%rbp)
movl -0x590(%rbp), %eax
movl %eax, %ecx
addl $-0x1, %ecx
movl %ecx, -0x590(%rbp)
cmpl $0x0, %eax
je 0x7884
movslq -0x594(%rbp), %rsi
leaq -0x3d0(%rbp), %rdi
callq 0x8150
movq %rax, %rsi
leaq -0x5b8(%rbp), %rdi
callq 0x3120
jmp 0x77b0
movl -0x58c(%rbp), %eax
decl %eax
movslq %eax, %rsi
leaq -0x3d0(%rbp), %rdi
movq %rdi, -0x800(%rbp)
callq 0x8150
movq -0x800(%rbp), %rdi
movq %rax, -0x7f8(%rbp)
movslq -0x594(%rbp), %rsi
callq 0x8150
movq -0x7f8(%rbp), %rsi
movq %rax, %rdx
leaq -0x5d8(%rbp), %rdi
callq 0x8190
jmp 0x7800
leaq -0x5b8(%rbp), %rdi
leaq -0x5d8(%rbp), %rsi
callq 0x5dd0
jmp 0x7815
leaq -0x5d8(%rbp), %rdi
callq 0x35b8
leaq -0x5b8(%rbp), %rdi
callq 0x35b8
movl -0x594(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x594(%rbp)
jmp 0x7772
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x88(%rbp)
movl %eax, -0x8c(%rbp)
jmp 0x7873
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x88(%rbp)
movl %eax, -0x8c(%rbp)
leaq -0x5d8(%rbp), %rdi
callq 0x35b8
leaq -0x5b8(%rbp), %rdi
callq 0x35b8
jmp 0x7c00
movq 0x8745(%rip), %rdi      # 0xffd0
leaq 0x3938(%rip), %rsi      # 0xb1ca
callq 0x32d0
jmp 0x7899
jmp 0x7bec
xorl %eax, %eax
movl %eax, %esi
leaq -0x3d0(%rbp), %rdi
callq 0x8150
movq %rax, %rdi
leaq 0x3931(%rip), %rsi      # 0xb1e9
callq 0x7c80
movb %al, -0x801(%rbp)
jmp 0x78c5
movb -0x801(%rbp), %al
testb $0x1, %al
jne 0x78d4
jmp 0x798d
leaq -0x3d0(%rbp), %rdi
movl $0x1, %esi
callq 0x8150
movq %rax, %rsi
leaq -0x5f8(%rbp), %rdi
callq 0x3120
jmp 0x78f6
leaq -0x3d0(%rbp), %rdi
movl $0x2, %esi
callq 0x8150
movq %rax, %rsi
leaq -0x618(%rbp), %rdi
callq 0x3120
jmp 0x7918
leaq -0x5f8(%rbp), %rdi
leaq -0x618(%rbp), %rsi
callq 0x5bf0
jmp 0x792d
leaq -0x618(%rbp), %rdi
callq 0x35b8
leaq -0x5f8(%rbp), %rdi
callq 0x35b8
jmp 0x7bea
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x88(%rbp)
movl %eax, -0x8c(%rbp)
jmp 0x797c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x88(%rbp)
movl %eax, -0x8c(%rbp)
leaq -0x618(%rbp), %rdi
callq 0x35b8
leaq -0x5f8(%rbp), %rdi
callq 0x35b8
jmp 0x7c00
xorl %eax, %eax
movl %eax, %esi
leaq -0x3d0(%rbp), %rdi
callq 0x8150
movq %rax, %rdi
leaq 0x3849(%rip), %rsi      # 0xb1f0
callq 0x7c80
movb %al, -0x802(%rbp)
jmp 0x79b4
movb -0x802(%rbp), %al
testb $0x1, %al
jne 0x79c3
jmp 0x7a70
leaq -0x3d0(%rbp), %rdi
movl $0x1, %esi
callq 0x8150
movq %rax, %rsi
leaq -0x640(%rbp), %rdi
callq 0x3120
jmp 0x79e5
leaq -0x640(%rbp), %rdi
callq 0x5ec0
movl %eax, -0x808(%rbp)
jmp 0x79f9
leaq -0x640(%rbp), %rdi
callq 0x35b8
movl -0x808(%rbp), %eax
movl %eax, -0x61c(%rbp)
cmpl $0x1, -0x61c(%rbp)
jne 0x7a54
movq 0x85af(%rip), %rdi      # 0xffd0
leaq 0x37d4(%rip), %rsi      # 0xb1fc
callq 0x32d0
jmp 0x7a2f
jmp 0x7a6b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x88(%rbp)
movl %eax, -0x8c(%rbp)
leaq -0x640(%rbp), %rdi
callq 0x35b8
jmp 0x7c00
movq 0x8575(%rip), %rdi      # 0xffd0
leaq 0x367f(%rip), %rsi      # 0xb0e1
callq 0x32d0
jmp 0x7a69
jmp 0x7a6b
jmp 0x7be8
xorl %eax, %eax
movl %eax, %esi
leaq -0x3d0(%rbp), %rdi
callq 0x8150
movq %rax, %rdi
leaq 0x378c(%rip), %rsi      # 0xb216
callq 0x7c80
movb %al, -0x809(%rbp)
jmp 0x7a97
movb -0x809(%rbp), %al
testb $0x1, %al
jne 0x7aa6
jmp 0x7b53
leaq -0x3d0(%rbp), %rdi
movl $0x1, %esi
callq 0x8150
movq %rax, %rsi
leaq -0x668(%rbp), %rdi
callq 0x3120
jmp 0x7ac8
leaq -0x668(%rbp), %rdi
callq 0x5f90
movl %eax, -0x810(%rbp)
jmp 0x7adc
leaq -0x668(%rbp), %rdi
callq 0x35b8
movl -0x810(%rbp), %eax
movl %eax, -0x644(%rbp)
cmpl $0x0, -0x644(%rbp)
jne 0x7b37
movq 0x84cc(%rip), %rdi      # 0xffd0
leaq 0x35d6(%rip), %rsi      # 0xb0e1
callq 0x32d0
jmp 0x7b12
jmp 0x7b4e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x88(%rbp)
movl %eax, -0x8c(%rbp)
leaq -0x668(%rbp), %rdi
callq 0x35b8
jmp 0x7c00
movq 0x8492(%rip), %rdi      # 0xffd0
leaq 0x36dc(%rip), %rsi      # 0xb221
callq 0x32d0
jmp 0x7b4c
jmp 0x7b4e
jmp 0x7be6
xorl %eax, %eax
movl %eax, %esi
leaq -0x3d0(%rbp), %rdi
callq 0x8150
movq %rax, %rdi
leaq 0x36d3(%rip), %rsi      # 0xb240
callq 0x7c80
movb %al, -0x811(%rbp)
jmp 0x7b7a
movb -0x811(%rbp), %al
testb $0x1, %al
jne 0x7b86
jmp 0x7be4
leaq -0x3d0(%rbp), %rdi
movl $0x1, %esi
callq 0x8150
movq %rax, %rsi
leaq -0x688(%rbp), %rdi
callq 0x3120
jmp 0x7ba8
leaq -0x688(%rbp), %rdi
callq 0x61a0
jmp 0x7bb6
leaq -0x688(%rbp), %rdi
callq 0x35b8
jmp 0x7be4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x88(%rbp)
movl %eax, -0x8c(%rbp)
leaq -0x688(%rbp), %rdi
callq 0x35b8
jmp 0x7c00
jmp 0x7be6
jmp 0x7be8
jmp 0x7bea
jmp 0x7bec
jmp 0x7bee
jmp 0x7bf0
jmp 0x7bf2
leaq -0x468(%rbp), %rdi
callq 0x35b8
jmp 0x7c0e
leaq -0x468(%rbp), %rdi
callq 0x35b8
jmp 0x7c28
leaq -0x3f0(%rbp), %rdi
callq 0x35b8
leaq -0x3d0(%rbp), %rdi
callq 0x8210
jmp 0x7c42
leaq -0x3f0(%rbp), %rdi
callq 0x35b8
leaq -0x3d0(%rbp), %rdi
callq 0x8210
jmp 0x7c47
jmp 0x63e2
leaq -0xe0(%rbp), %rdi
callq 0x8270
leaq -0x80(%rbp), %rdi
callq 0x8270
leaq -0x30(%rbp), %rdi
callq 0x35b8
movq -0x88(%rbp), %rdi
callq 0x3510
nopw %cs:(%rax,%rax)
nopl (%rax,%rax)