// File: /workspace/github_cpp_makefile_star2_O3/girdhari9[P]mTORRENT/ClientServer.cpp
// Function: main
int main(int arg, char * args[]){
	getcwd(root_path,1000);
	string cmd, ClientLog = "clientlog.txt";

	MYIP = args[1];
	MYPORT = args[2];
	TRACKER1IP = args[3];
	TRACKER1PORT = args[4];
	DOWNLOADLOG = args[5];
	PORT = stoi(MYPORT);

	ReadLogFile(ClientLog);
	UpdateToTracker();

	while(1){

		cout<<"Enter Command: ";
		cin>>cmd;

		if(cmd == "share"){
			string filename, mtorrentfilename;
			cin>>filename;
			cin>>mtorrentfilename;
			TotalSharedFile.push_back(mtorrentfilename);
			string SHA = mtorrentFile(filename,mtorrentfilename,TRACKER1IP,TRACKER1PORT);
			UpdateDownloadLog(1,filename);

			CreateLog.push_back(mtorrentfilename);
			CreateLog.push_back(SHA);
			CreateLog.push_back(root_path);
			UpdateLogFile(ClientLog);
			ClientLog.erase(ClientLog.begin(),ClientLog.end());
			
			thread client (FunctionCalling, cref(mtorrentfilename),1,SHA,root_path);
			thread server (ServerConnection);
			client.join();
			server.detach();
		}
		else if(cmd == "remove"){
			string mtorrentfilename;
			cin>>mtorrentfilename;
			if(mtorrentfilename.size() > 9 && mtorrentfilename.substr(mtorrentfilename.size()-9) != ".mtorrent"){
        		cout<<"\n> Please give correct name of mtorrent file!\n";
		        return 0;
		    }

		    thread client (FunctionCalling, cref(mtorrentfilename),2,"No",root_path);
		    client.join();
		}
		else if(cmd == "get" || cmd == "Get"){
			string mtorrentfilename;
			cin>>mtorrentfilename;

			if(mtorrentfilename.size() > 9 && mtorrentfilename.substr(mtorrentfilename.size()-9) != ".mtorrent"){
        		cout<<"\n> Please give correct name of mtorrent file!\n";
		        return 0;
		    }

			thread client (FunctionCalling, cref(mtorrentfilename),0,"No",root_path);
			UpdateDownloadLog(0,mtorrentfilename);

			thread server (ServerConnection);
		    client.join();
		    server.detach();
		}
		else if(cmd == "show" || cmd == "Show"){
			string dw; cin>>dw;
			ShowDownloadDetail();
		}
		else{
			cout<<"Error: Command not found!\n";
		}

	    Jump:
		    cout<<"Do you want to continue? [Y/N]: ";
		    char c;
		    cin>>c;
		    if((c == 'N') || (c == 'n')){
		    	UpdateLogFile(ClientLog);
		    	for(unsigned int i = 0; i < TotalSharedFile.size(); i++){
		    		thread client (FunctionCalling, cref(TotalSharedFile[i]),2,"No",root_path);
		    		client.join();
		    	}
		        cout<<"Connection Closed!\n";
		        break;
		    }
		    else if((c == 'Y') || (c == 'y'))
		    	continue;
		    else{
		    	cout<<"Plese enter correct...\n";
			    goto Jump;
		    }
	}
    return 0; 
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x1f8, %rsp            # imm = 0x1F8
movq %rsi, %rbx
leaq 0xd8d9(%rip), %rdi      # 0x12480
movl $0x3e8, %esi            # imm = 0x3E8
callq 0x41d0
leaq 0xc8(%rsp), %rax
movq %rax, -0x10(%rax)
movq $0x0, -0x8(%rax)
movb $0x0, (%rax)
leaq 0x80(%rsp), %rax
movq %rax, -0x10(%rax)
leaq 0x8445(%rip), %rsi      # 0xd020
leaq 0x844b(%rip), %rdx      # 0xd02d
leaq 0x70(%rsp), %rdi
callq 0x7562
movq 0x8(%rbx), %r14
movq 0xd7a9(%rip), %r15      # 0x123a0
leaq 0xd79a(%rip), %r12      # 0x12398
movq %r14, %rdi
callq 0x41a0
movq %r12, %rdi
xorl %esi, %esi
movq %r15, %rdx
movq %r14, %rcx
movq %rax, %r8
callq 0x4500
movq 0x10(%rbx), %r14
movq 0xd79c(%rip), %r15      # 0x123c0
leaq 0xd78d(%rip), %r12      # 0x123b8
movq %r14, %rdi
callq 0x41a0
movq %r12, %rdi
xorl %esi, %esi
movq %r15, %rdx
movq %r14, %rcx
movq %rax, %r8
callq 0x4500
movq 0x18(%rbx), %r14
movq 0xd78f(%rip), %r15      # 0x123e0
leaq 0xd780(%rip), %r12      # 0x123d8
movq %r14, %rdi
callq 0x41a0
movq %r12, %rdi
xorl %esi, %esi
movq %r15, %rdx
movq %r14, %rcx
movq %rax, %r8
callq 0x4500
movq 0x20(%rbx), %r14
movq 0xd782(%rip), %r15      # 0x12400
leaq 0xd773(%rip), %r12      # 0x123f8
movq %r14, %rdi
callq 0x41a0
movq %r12, %rdi
xorl %esi, %esi
movq %r15, %rdx
movq %r14, %rcx
movq %rax, %r8
callq 0x4500
movq 0x28(%rbx), %rbx
movq 0xd775(%rip), %r14      # 0x12420
leaq 0xd766(%rip), %r15      # 0x12418
movq %rbx, %rdi
callq 0x41a0
movq %r15, %rdi
xorl %esi, %esi
movq %r14, %rdx
movq %rbx, %rcx
movq %rax, %r8
callq 0x4500
movq 0xd6e4(%rip), %rbx      # 0x123b8
callq 0x4050
movq %rax, %r14
movl (%rax), %ebp
movl $0x0, (%rax)
leaq 0x8(%rsp), %r15
movq %rbx, %rdi
movq %r15, %rsi
movl $0xa, %edx
callq 0x4480
cmpq %rbx, (%r15)
je 0x56c0
movslq %eax, %rcx
cmpq %rax, %rcx
jne 0x56cc
movl (%r14), %ecx
cmpl $0x22, %ecx
je 0x56cc
testl %ecx, %ecx
jne 0x4d21
movl %ebp, (%r14)
movl %eax, 0xd669(%rip)      # 0x12390
leaq 0x1e8(%rsp), %r14
movq %r14, -0x10(%r14)
movq 0x70(%rsp), %rsi
movq 0x78(%rsp), %rdx
addq %rsi, %rdx
leaq 0x1d8(%rsp), %rdi
callq 0x74cc
leaq 0x1d8(%rsp), %rdi
callq 0x5a05
movq 0x1d8(%rsp), %rdi
cmpq %r14, %rdi
je 0x4d77
movq 0x1e8(%rsp), %rsi
incq %rsi
callq 0x4350
callq 0x5cac
movq 0xd24d(%rip), %r15      # 0x11fd0
leaq 0x82a4(%rip), %rsi      # 0xd02e
movq 0xd24f(%rip), %r13      # 0x11fe0
leaq 0xb8(%rsp), %rbp
leaq 0x98(%rsp), %rbx
leaq 0x67d4(%rip), %r12      # 0xb57c
movl $0xf, %edx
movq %r15, %rdi
callq 0x43c0
movq %r13, %rdi
movq %rbp, %rsi
callq 0x4440
movq %rbp, %rdi
leaq 0x8274(%rip), %rsi      # 0xd03e
callq 0x4130
testl %eax, %eax
je 0x4e63
movq %rbp, %rdi
leaq 0x8263(%rip), %rsi      # 0xd044
callq 0x4130
testl %eax, %eax
je 0x52dd
movq %rbp, %rdi
leaq 0x828f(%rip), %rsi      # 0xd087
callq 0x4130
testl %eax, %eax
je 0x523b
movq %rbp, %rdi
leaq 0x827c(%rip), %rsi      # 0xd08b
callq 0x4130
testl %eax, %eax
je 0x523b
movq %rbp, %rdi
leaq 0x8269(%rip), %rsi      # 0xd08f
callq 0x4130
testl %eax, %eax
je 0x54c8
movq %rbp, %rdi
leaq 0x8257(%rip), %rsi      # 0xd094
callq 0x4130
testl %eax, %eax
je 0x54c8
movl $0x1a, %edx
movq %r15, %rdi
leaq 0x8240(%rip), %rsi      # 0xd099
callq 0x43c0
jmp 0x550e
leaq 0x18(%rsp), %rax
movq %rax, 0x8(%rsp)
xorl %ecx, %ecx
movq %rcx, 0x10(%rsp)
movb %cl, 0x18(%rsp)
leaq 0x38(%rsp), %rax
movq %rax, 0x28(%rsp)
movq %rcx, 0x30(%rsp)
movb %cl, 0x38(%rsp)
movq %r13, %rdi
leaq 0x8(%rsp), %rsi
callq 0x4440
movq %r13, %rdi
leaq 0x28(%rsp), %rsi
callq 0x4440
leaq 0xd5bc(%rip), %rdi      # 0x12468
leaq 0x28(%rsp), %rsi
callq 0x710a
leaq 0x168(%rsp), %rax
movq %rax, 0x158(%rsp)
movq 0x8(%rsp), %rsi
movq 0x10(%rsp), %rdx
addq %rsi, %rdx
leaq 0x158(%rsp), %rdi
callq 0x74cc
leaq 0x148(%rsp), %rax
movq %rax, 0x138(%rsp)
movq 0x28(%rsp), %rsi
movq 0x30(%rsp), %rdx
addq %rsi, %rdx
leaq 0x138(%rsp), %rdi
callq 0x74cc
leaq 0x128(%rsp), %rax
movq %rax, 0x118(%rsp)
movq 0xd4b7(%rip), %rsi      # 0x123d8
movq 0xd4b8(%rip), %rdx      # 0x123e0
addq %rsi, %rdx
leaq 0x118(%rsp), %rdi
callq 0x74cc
leaq 0x1a8(%rsp), %rax
movq %rax, 0x198(%rsp)
movq 0xd4a9(%rip), %rsi      # 0x123f8
movq 0xd4aa(%rip), %rdx      # 0x12400
addq %rsi, %rdx
leaq 0x198(%rsp), %rbp
movq %rbp, %rdi
callq 0x74cc
leaq 0x50(%rsp), %rdi
leaq 0x158(%rsp), %rsi
leaq 0x138(%rsp), %rdx
leaq 0x118(%rsp), %rcx
movq %rbp, %r8
callq 0xbd2c
movq 0x198(%rsp), %rdi
leaq 0x1a8(%rsp), %rax
cmpq %rax, %rdi
je 0x4fb3
movq 0x1a8(%rsp), %rsi
incq %rsi
callq 0x4350
movq 0x118(%rsp), %rdi
leaq 0x128(%rsp), %rax
cmpq %rax, %rdi
je 0x4fd8
movq 0x128(%rsp), %rsi
incq %rsi
callq 0x4350
movq 0x138(%rsp), %rdi
leaq 0x148(%rsp), %rax
cmpq %rax, %rdi
je 0x4ffd
movq 0x148(%rsp), %rsi
incq %rsi
callq 0x4350
movq 0x158(%rsp), %rdi
leaq 0x168(%rsp), %rax
cmpq %rax, %rdi
je 0x5022
movq 0x168(%rsp), %rsi
incq %rsi
callq 0x4350
leaq 0x108(%rsp), %rax
movq %rax, 0xf8(%rsp)
movq 0x8(%rsp), %rsi
movq 0x10(%rsp), %rdx
addq %rsi, %rdx
leaq 0xf8(%rsp), %rdi
callq 0x74cc
movl $0x1, %edi
leaq 0xf8(%rsp), %rsi
callq 0x5f00
movq 0xf8(%rsp), %rdi
leaq 0x108(%rsp), %rax
cmpq %rax, %rdi
je 0x5083
movq 0x108(%rsp), %rsi
incq %rsi
callq 0x4350
leaq 0xd80e(%rip), %rdi      # 0x12898
leaq 0x28(%rsp), %rsi
callq 0x710a
leaq 0xd7fd(%rip), %rdi      # 0x12898
leaq 0x50(%rsp), %rsi
callq 0x710a
leaq 0xa8(%rsp), %rax
movq %rax, 0x98(%rsp)
leaq 0xd3c4(%rip), %rbp      # 0x12480
movq %rbp, %rdi
callq 0x41a0
leaq (%rax,%rbp), %rdx
movq %rbx, %rdi
movq %rbp, %rsi
callq 0x7562
leaq 0xd7be(%rip), %rdi      # 0x12898
movq %rbx, %rsi
callq 0x7804
movq 0x98(%rsp), %rdi
leaq 0xa8(%rsp), %rax
cmpq %rax, %rdi
leaq 0xb8(%rsp), %rbp
je 0x510f
movq 0xa8(%rsp), %rsi
incq %rsi
callq 0x4350
leaq 0xe8(%rsp), %rax
movq %rax, 0xd8(%rsp)
movq 0x70(%rsp), %rsi
movq 0x78(%rsp), %rdx
addq %rsi, %rdx
leaq 0xd8(%rsp), %rdi
callq 0x74cc
leaq 0xd8(%rsp), %rdi
callq 0x6a3b
movq %r12, %r14
movq 0xd8(%rsp), %rdi
leaq 0xe8(%rsp), %rax
cmpq %rax, %rdi
je 0x516e
movq 0xe8(%rsp), %rsi
incq %rsi
callq 0x4350
movq 0x70(%rsp), %rax
movq $0x0, 0x78(%rsp)
movb $0x0, (%rax)
leaq 0x28(%rsp), %rax
movq %rax, 0x48(%rsp)
movl $0x1, 0x94(%rsp)
movq %rbx, %rdi
leaq 0x2f36(%rip), %rsi      # 0x80d4
leaq 0x48(%rsp), %r12
movq %r12, %rdx
leaq 0x94(%rsp), %rcx
leaq 0x50(%rsp), %r8
leaq 0xd2c6(%rip), %r9       # 0x12480
callq 0x7148
movq %r12, %rdi
movq %r14, %r12
movq %r14, %rsi
callq 0x71f6
movq %rbx, %rdi
callq 0x45a0
leaq 0x48(%rsp), %rdi
callq 0x45c0
cmpq $0x0, 0x48(%rsp)
jne 0x59ac
cmpq $0x0, 0x98(%rsp)
jne 0x59ac
movq 0x50(%rsp), %rdi
leaq 0x60(%rsp), %rax
cmpq %rax, %rdi
je 0x5216
movq 0x60(%rsp), %rsi
incq %rsi
callq 0x4350
movq 0x28(%rsp), %rdi
leaq 0x38(%rsp), %rax
cmpq %rax, %rdi
je 0x54f2
movq 0x38(%rsp), %rsi
incq %rsi
callq 0x4350
jmp 0x54f2
leaq 0x18(%rsp), %rax
movq %rax, 0x8(%rsp)
movq $0x0, 0x10(%rsp)
movb $0x0, 0x18(%rsp)
movq %r13, %rdi
leaq 0x8(%rsp), %rsi
callq 0x4440
movq 0x10(%rsp), %rdx
cmpq $0xa, %rdx
jb 0x537f
addq $-0x9, %rdx
leaq 0x28(%rsp), %rbp
movq %rbp, %rdi
leaq 0x8(%rsp), %rsi
movq $-0x1, %rcx
callq 0x4360
movq %rbp, %rdi
leaq 0x7db5(%rip), %rsi      # 0xd04b
callq 0x4130
movl %eax, %ebp
movq 0x28(%rsp), %rdi
leaq 0x38(%rsp), %rax
cmpq %rax, %rdi
je 0x52b9
movq 0x38(%rsp), %rsi
incq %rsi
callq 0x4350
testl %ebp, %ebp
je 0x537f
movb $0x1, %bpl
movl $0x2e, %edx
movq %r15, %rdi
leaq 0x7d82(%rip), %rsi      # 0xd055
callq 0x43c0
jmp 0x549a
leaq 0x18(%rsp), %rax
movq %rax, 0x8(%rsp)
movq $0x0, 0x10(%rsp)
movb $0x0, 0x18(%rsp)
movq %r13, %rdi
leaq 0x8(%rsp), %rsi
callq 0x4440
movq 0x10(%rsp), %rdx
cmpq $0xa, %rdx
jb 0x5445
addq $-0x9, %rdx
leaq 0x28(%rsp), %rbp
movq %rbp, %rdi
leaq 0x8(%rsp), %rsi
movq $-0x1, %rcx
callq 0x4360
movq %rbp, %rdi
leaq 0x7d13(%rip), %rsi      # 0xd04b
callq 0x4130
movl %eax, %ebp
movq 0x28(%rsp), %rdi
leaq 0x38(%rsp), %rax
cmpq %rax, %rdi
je 0x535b
movq 0x38(%rsp), %rsi
incq %rsi
callq 0x4350
testl %ebp, %ebp
je 0x5445
movb $0x1, %bpl
movl $0x2e, %edx
movq %r15, %rdi
leaq 0x7ce0(%rip), %rsi      # 0xd055
callq 0x43c0
jmp 0x549a
leaq 0x8(%rsp), %rax
movq %rax, 0x50(%rsp)
movl $0x0, 0x98(%rsp)
leaq 0x28(%rsp), %rdi
leaq 0x2d34(%rip), %rsi      # 0x80d4
leaq 0x50(%rsp), %rdx
movq %rbx, %rcx
leaq 0x7cd5(%rip), %r8       # 0xd084
leaq 0xd0ca(%rip), %r9       # 0x12480
callq 0x7260
leaq 0x188(%rsp), %rax
movq %rax, 0x178(%rsp)
movq 0x8(%rsp), %rsi
movq 0x10(%rsp), %rdx
addq %rsi, %rdx
leaq 0x178(%rsp), %r14
movq %r14, %rdi
callq 0x74cc
xorl %edi, %edi
movq %r14, %rsi
callq 0x5f00
movq 0x178(%rsp), %rdi
leaq 0x188(%rsp), %rax
cmpq %rax, %rdi
je 0x5417
movq 0x188(%rsp), %rsi
incq %rsi
callq 0x4350
leaq 0x50(%rsp), %rdi
movq %r12, %rsi
callq 0x71f6
leaq 0x28(%rsp), %rdi
callq 0x45a0
leaq 0x50(%rsp), %rdi
callq 0x45c0
cmpq $0x0, 0x50(%rsp)
je 0x548c
jmp 0x59ac
leaq 0x8(%rsp), %rax
movq %rax, 0x50(%rsp)
movl $0x2, 0x98(%rsp)
leaq 0x28(%rsp), %rbp
movq %rbp, %rdi
leaq 0x2c6b(%rip), %rsi      # 0x80d4
leaq 0x50(%rsp), %rdx
movq %rbx, %rcx
leaq 0x7c0c(%rip), %r8       # 0xd084
leaq 0xd001(%rip), %r9       # 0x12480
callq 0x7260
movq %rbp, %rdi
callq 0x45a0
cmpq $0x0, 0x28(%rsp)
jne 0x59ac
xorl %ebp, %ebp
movq 0x8(%rsp), %rdi
leaq 0x18(%rsp), %rax
cmpq %rax, %rdi
je 0x54b6
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x4350
testb %bpl, %bpl
leaq 0xb8(%rsp), %rbp
je 0x550e
jmp 0x5665
leaq 0x18(%rsp), %rax
movq %rax, 0x8(%rsp)
movq $0x0, 0x10(%rsp)
movb $0x0, 0x18(%rsp)
movq %r13, %rdi
leaq 0x8(%rsp), %rsi
callq 0x4440
callq 0x6f40
movq 0x8(%rsp), %rdi
leaq 0x18(%rsp), %rax
cmpq %rax, %rdi
je 0x550e
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x4350
movl $0x20, %edx
movq %r15, %rdi
leaq 0x7b97(%rip), %rsi      # 0xd0b4
callq 0x43c0
movq %r13, %rdi
movq %rbx, %rsi
callq 0x4470
movzbl 0x98(%rsp), %eax
andl $-0x21, %eax
cmpl $0x59, %eax
je 0x5558
cmpl $0x4e, %eax
je 0x5564
movl $0x17, %edx
movq %r15, %rdi
leaq 0x7b84(%rip), %rsi      # 0xd0d5
callq 0x43c0
jmp 0x550e
leaq 0x7acf(%rip), %rsi      # 0xd02e
jmp 0x4da8
leaq 0x1c8(%rsp), %r14
movq %r14, -0x10(%r14)
movq 0x70(%rsp), %rsi
movq 0x78(%rsp), %rdx
addq %rsi, %rdx
leaq 0x1b8(%rsp), %rdi
callq 0x74cc
leaq 0x1b8(%rsp), %rdi
callq 0x6a3b
movq 0x1b8(%rsp), %rdi
cmpq %r14, %rdi
je 0x55b4
movq 0x1c8(%rsp), %rsi
incq %rsi
callq 0x4350
movq 0xcead(%rip), %rax      # 0x12468
cmpq %rax, 0xceae(%rip)      # 0x12470
je 0x564d
movl $0x1, %ebx
xorl %ecx, %ecx
leaq 0x7aae(%rip), %r14      # 0xd084
leaq 0xcea3(%rip), %r15      # 0x12480
leaq 0x8(%rsp), %r12
leaq 0x28(%rsp), %r13
leaq 0x50(%rsp), %rbp
shlq $0x5, %rcx
addq %rax, %rcx
movq %rcx, 0x28(%rsp)
movl $0x2, 0x50(%rsp)
movq %r12, %rdi
leaq 0x2aca(%rip), %rsi      # 0x80d4
movq %r13, %rdx
movq %rbp, %rcx
movq %r14, %r8
movq %r15, %r9
callq 0x7260
movq %r12, %rdi
callq 0x45a0
cmpq $0x0, 0x8(%rsp)
jne 0x59ac
movl %ebx, %ecx
movq 0xce38(%rip), %rdx      # 0x12470
movq 0xce29(%rip), %rax      # 0x12468
subq %rax, %rdx
sarq $0x5, %rdx
incl %ebx
cmpq %rcx, %rdx
ja 0x55ec
movq 0xc97c(%rip), %rdi      # 0x11fd0
leaq 0x7d79(%rip), %rsi      # 0xd3d4
movl $0x13, %edx
callq 0x43c0
movq 0x70(%rsp), %rdi
leaq 0x80(%rsp), %rax
cmpq %rax, %rdi
je 0x5687
movq 0x80(%rsp), %rsi
incq %rsi
callq 0x4350
movq 0xb8(%rsp), %rdi
leaq 0xc8(%rsp), %rax
cmpq %rax, %rdi
je 0x56ac
movq 0xc8(%rsp), %rsi
incq %rsi
callq 0x4350
xorl %eax, %eax
addq $0x1f8, %rsp            # imm = 0x1F8
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
leaq 0x7a34(%rip), %rdi      # 0xd0fb
callq 0x4220
leaq 0x7a28(%rip), %rdi      # 0xd0fb
callq 0x44b0
jmp 0x571f
jmp 0x571f
cmpq $0x0, 0x28(%rsp)
je 0x571f
jmp 0x59ac
jmp 0x571f
jmp 0x5746
movq %rax, %rbx
movq 0x178(%rsp), %rdi
leaq 0x188(%rsp), %rax
cmpq %rax, %rdi
je 0x5749
movq 0x188(%rsp), %rsi
incq %rsi
callq 0x4350
jmp 0x5749
jmp 0x5746
jmp 0x571f
jmp 0x571f
jmp 0x571f
movq %rax, %rbx
movq 0x8(%rsp), %rdi
leaq 0x18(%rsp), %rax
cmpq %rax, %rdi
jne 0x598f
jmp 0x59b6
cmpq $0x0, 0x50(%rsp)
jne 0x59ac
movq %rax, %rbx
cmpq $0x0, 0x28(%rsp)
je 0x5722
jmp 0x59ac
leaq 0x18(%rsp), %rbp
jmp 0x5911
jmp 0x5945
leaq 0x18(%rsp), %rbp
movq %rax, %rbx
movq 0xd8(%rsp), %rdi
leaq 0xe8(%rsp), %rax
cmpq %rax, %rdi
je 0x594d
movq 0xe8(%rsp), %rsi
jmp 0x57e9
leaq 0x18(%rsp), %rbp
movq %rax, %rbx
movq 0x98(%rsp), %rdi
leaq 0xa8(%rsp), %rax
cmpq %rax, %rdi
je 0x594d
movq 0xa8(%rsp), %rsi
jmp 0x57e9
jmp 0x5945
leaq 0x18(%rsp), %rbp
movq %rax, %rbx
movq 0xf8(%rsp), %rdi
leaq 0x108(%rsp), %rax
cmpq %rax, %rdi
je 0x594d
movq 0x108(%rsp), %rsi
incq %rsi
callq 0x4350
jmp 0x594d
leaq 0x18(%rsp), %rbp
movq %rax, %rbx
movq 0x198(%rsp), %rdi
leaq 0x1a8(%rsp), %rax
cmpq %rax, %rdi
je 0x582d
movq 0x1a8(%rsp), %rsi
incq %rsi
callq 0x4350
jmp 0x582d
leaq 0x18(%rsp), %rbp
movq %rax, %rbx
movq 0x118(%rsp), %rdi
leaq 0x128(%rsp), %rax
cmpq %rax, %rdi
je 0x585c
movq 0x128(%rsp), %rsi
incq %rsi
callq 0x4350
jmp 0x585c
leaq 0x18(%rsp), %rbp
movq %rax, %rbx
movq 0x138(%rsp), %rdi
leaq 0x148(%rsp), %rax
cmpq %rax, %rdi
je 0x588b
movq 0x148(%rsp), %rsi
incq %rsi
callq 0x4350
jmp 0x588b
leaq 0x18(%rsp), %rbp
movq %rax, %rbx
movq 0x158(%rsp), %rdi
leaq 0x168(%rsp), %rax
cmpq %rax, %rdi
je 0x5969
movq 0x168(%rsp), %rsi
jmp 0x5961
jmp 0x593b
movq %rax, %rbx
movq 0x1b8(%rsp), %rdi
cmpq %r14, %rdi
je 0x59b6
movq 0x1c8(%rsp), %rsi
jmp 0x5994
movq %rax, %rbx
movq 0x1d8(%rsp), %rdi
cmpq %r14, %rdi
je 0x59b6
movq 0x1e8(%rsp), %rsi
jmp 0x5994
movq %rax, %rbx
jmp 0x59d8
leaq 0x18(%rsp), %rbp
cmpq $0x0, 0x48(%rsp)
jne 0x59ac
movq %rax, %rbx
cmpq $0x0, 0x98(%rsp)
je 0x594d
jmp 0x59ac
jmp 0x59b3
movq %rax, %rbx
cmpl $0x0, (%r14)
jne 0x59b6
movl %ebp, (%r14)
jmp 0x59b6
leaq 0x18(%rsp), %rbp
movq %rax, %rbx
jmp 0x5969
leaq 0x18(%rsp), %rbp
movq %rax, %rbx
movq 0x50(%rsp), %rdi
leaq 0x60(%rsp), %rax
cmpq %rax, %rdi
je 0x5969
movq 0x60(%rsp), %rsi
incq %rsi
callq 0x4350
movq 0x28(%rsp), %rdi
leaq 0x38(%rsp), %rax
cmpq %rax, %rdi
je 0x5985
movq 0x38(%rsp), %rsi
incq %rsi
callq 0x4350
movq 0x8(%rsp), %rdi
cmpq %rbp, %rdi
je 0x59b6
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x4350
jmp 0x59b6
jmp 0x59b3
jmp 0x59b3
jmp 0x59b3
cmpq $0x0, 0x8(%rsp)
je 0x59b3
callq 0x4120
jmp 0x59b3
movq %rax, %rbx
movq 0x70(%rsp), %rdi
leaq 0x80(%rsp), %rax
cmpq %rax, %rdi
je 0x59d8
movq 0x80(%rsp), %rsi
incq %rsi
callq 0x4350
movq 0xb8(%rsp), %rdi
leaq 0xc8(%rsp), %rax
cmpq %rax, %rdi
je 0x59fd
movq 0xc8(%rsp), %rsi
incq %rsi
callq 0x4350
movq %rbx, %rdi
callq 0x45d0