// File: amit-mittal[P]FTP/ftpServer.cpp
// Function: ftpServer::sendResponse()
int ftpServer::sendResponse(){	
	string cmd = recvControl(MAXBUFFSIZE);
	FILE *pf;
	string str, responseControl;
	char output[MAXBUFFSIZE];
	if(DEBUG)
		cout << "Got command from client: " << cmd << endl;

	if(cmd.substr(0, 3) == "pwd"){
		
		pf = popen(cmd.append(" 2>&1").c_str(), "r");
		if(!pf){
			sendData(" ");
      			sendControl("Error occurred while opening pipe for output, calling fork or allocating memory.\n");
			cout << "Command could NOT be successfully executed for client\n";
			return(0); 
		}

		fgets(output, MAXBUFFSIZE-1, pf);
		str = output;
		sendData(str);
		if (pclose(pf) != 0){
			sendControl("Incorrect use of pwd \n");
			cout << "Command could NOT be successfully executed for client\n";
			return(0);
		}

		sendControl("pwd successfully executed in server \n");
		cout << "Command successfully executed for client\n";
	} 

	else if(cmd.substr(0, 2) == "ls"){
		pf = popen(cmd.append(" 2>&1").c_str(), "r");	//popen does not return stderr file handle. Only stdout. So we are redirecting stderr to stdout
		if(!pf){
			sendData(" ");
      			sendControl("Error occurred while opening pipe for output, calling fork or allocating memory.\n");
			cout << "Command could NOT be successfully executed for client\n";
			return(0); 
		}
	
		while(fgets(output, MAXBUFFSIZE-1, pf)){
			if(str.size() + strlen(output) >= MAXBUFFSIZE){
				sendData(str);
				str = "";
			}
			str.append(output);
		}
		
		str.append(" ");
		sendData(str);
		if (pclose(pf) != 0){
			sendControl("Incorrect use of ls \n");
			cout << "Command could NOT be successfully executed for client\n";
			return(0);
		}
		
		sendControl("ls successfully executed in server \n");
		cout << "Command successfully executed for client\n";
	} 

	else if(cmd.substr(0, 2) == "cd"){

		if(cmd.size() == 2){
			char *env = getenv("HOME");
			chdir(env);
			sendControl("Directory successfully changed \n");
			cout << "Command successfully executed for client\n";
			return(0);
		}

		if(cmd.substr(2, 2) == " ~"){
			char *env = getenv("HOME");
			cmd.replace(3, 1, env);
		}

		if(chdir(cmd.substr(3).c_str())){
			str = "Error occurred while changing directory using cd in server\ncd: ";
			str.append(cmd.substr(3)).append(": No such file or directory\n");
			sendControl(str);
			cout << "Command could NOT be successfully executed for client\n";
		}
		else {
			sendControl("Directory successfully changed \n");
			cout << "Command successfully executed for client\n";
		}
	}

	else if(cmd.substr(0, 3) == "put"){
		if(fileExists(cmd.substr(4).c_str())){
			sendControl("EXISTS");
			cout << "Command could NOT be successfully executed for client\n";
			return(0);
		}
		sendControl("DNE");	//Does Not Exist
		responseControl = recvControl(MAXBUFFSIZE);
		if(responseControl == "EMPTY"){
			FILE *fp = fopen(cmd.substr(4).c_str(), "w");
			fclose(fp);
			cout << "Command successfully executed for client\n";
			return 0;
		}
		if(receiveFile(cmd.substr(4))){
			sendControl("Error occurred while receiving file in server \n");
			cout << "Command could NOT be successfully executed for client\n";
		}
		else {
			sendControl("File successfully received in server \n");
			cout << "Command successfully executed for client\n";
		}
	}

	else if(cmd.substr(0, 3) == "get"){
		if(!fileExists(cmd.substr(4).c_str())){
			sendControl("DNE");
			cout << "Command could NOT be successfully executed for client\n";
			return(0);
		}
		sendControl("EXISTS");	//File Exists
		if(isEmpty(cmd.substr(4))){
			sendControl("EMPTY");	//Empty File
			cout << "Command could NOT be successfully executed for client\n";
			return(0);
		}
		sendControl("NEF");	//Not Empty File (NEF)
		if(transferFile(cmd.substr(4)) < 0){
			sendControl("Error occurred while sending file from server \n");
			cout << "Command could NOT be successfully executed for client\n";
		}
		else {
			sendControl("File successfully sent from server \n");
			cout << "Command successfully executed for client\n";
		}
	}

	else if(cmd == "quit"){
		d_socket.close();
		c_socket.close();
		cout << "Child Process exiting ... \n";
		cout << "Command successfully executed for client\n";
		exit(0);
	}

	else {
		sendControl("Invalid command sent to server \n");
	}

	return 0;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0xbd0, %rsp            # imm = 0xBD0
movq %rdi, -0x10(%rbp)
movq -0x10(%rbp), %rsi
movq %rsi, -0xa60(%rbp)
leaq -0x30(%rbp), %rdi
movq %rdi, -0xa58(%rbp)
movl $0x400, %edx            # imm = 0x400
callq 0x33b0
leaq -0x58(%rbp), %rdi
callq 0x2300
leaq -0x78(%rbp), %rdi
callq 0x2300
movq -0xa58(%rbp), %rsi
xorl %eax, %eax
movl %eax, %edx
leaq -0x4a0(%rbp), %rdi
movl $0x3, %ecx
callq 0x2220
jmp 0x379f
leaq 0x2970(%rip), %rsi      # 0x6116
leaq -0x4a0(%rbp), %rdi
callq 0x5c90
movb %al, -0xa61(%rbp)
jmp 0x37ba
leaq -0x4a0(%rbp), %rdi
callq 0x2150
movb -0xa61(%rbp), %al
testb $0x1, %al
jne 0x37d5
jmp 0x3bed
leaq 0x293e(%rip), %rsi      # 0x611a
leaq -0x30(%rbp), %rdi
callq 0x2400
movq %rax, -0xa70(%rbp)
jmp 0x37ee
movq -0xa70(%rbp), %rdi
callq 0x20f0
movq %rax, %rdi
leaq 0x291c(%rip), %rsi      # 0x6120
callq 0x20c0
movq %rax, -0xa78(%rbp)
jmp 0x3812
movq -0xa78(%rbp), %rax
movq %rax, -0x38(%rbp)
cmpq $0x0, -0x38(%rbp)
jne 0x39cb
leaq -0x4d1(%rbp), %rdi
movq %rdi, -0xa80(%rbp)
callq 0x23d0
movq -0xa80(%rbp), %rdx
leaq 0x2a71(%rip), %rsi      # 0x62ba
leaq -0x4d0(%rbp), %rdi
callq 0x22f0
jmp 0x3857
movq -0xa60(%rbp), %rdi
leaq -0x4d0(%rbp), %rsi
callq 0x3290
jmp 0x386c
leaq -0x4d0(%rbp), %rdi
callq 0x2150
leaq -0x4d1(%rbp), %rdi
callq 0x2250
leaq -0x4f9(%rbp), %rdi
movq %rdi, -0xa88(%rbp)
callq 0x23d0
movq -0xa88(%rbp), %rdx
leaq 0x287d(%rip), %rsi      # 0x6122
leaq -0x4f8(%rbp), %rdi
callq 0x22f0
jmp 0x38b3
movq -0xa60(%rbp), %rdi
leaq -0x4f8(%rbp), %rsi
callq 0x3340
jmp 0x38c8
leaq -0x4f8(%rbp), %rdi
callq 0x2150
leaq -0x4f9(%rbp), %rdi
callq 0x2250
movq 0x56e9(%rip), %rdi      # 0x8fd0
leaq 0x2886(%rip), %rsi      # 0x6174
callq 0x2200
jmp 0x38f5
movl $0x0, -0x4(%rbp)
movl $0x1, -0x500(%rbp)
jmp 0x5207
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x4a8(%rbp)
movl %eax, -0x4ac(%rbp)
jmp 0x522e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x4a8(%rbp)
movl %eax, -0x4ac(%rbp)
leaq -0x4a0(%rbp), %rdi
callq 0x2150
jmp 0x522e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x4a8(%rbp)
movl %eax, -0x4ac(%rbp)
jmp 0x3977
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x4a8(%rbp)
movl %eax, -0x4ac(%rbp)
leaq -0x4d0(%rbp), %rdi
callq 0x2150
leaq -0x4d1(%rbp), %rdi
callq 0x2250
jmp 0x522e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x4a8(%rbp)
movl %eax, -0x4ac(%rbp)
jmp 0x39ba
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x4a8(%rbp)
movl %eax, -0x4ac(%rbp)
leaq -0x4f8(%rbp), %rdi
callq 0x2150
leaq -0x4f9(%rbp), %rdi
callq 0x2250
jmp 0x522e
movq -0x38(%rbp), %rdx
leaq -0x480(%rbp), %rdi
movl $0x3ff, %esi            # imm = 0x3FF
callq 0x2380
jmp 0x39e2
leaq -0x58(%rbp), %rdi
leaq -0x480(%rbp), %rsi
callq 0x22e0
jmp 0x39f4
leaq -0x520(%rbp), %rdi
leaq -0x58(%rbp), %rsi
callq 0x2100
jmp 0x3a06
movq -0xa60(%rbp), %rdi
leaq -0x520(%rbp), %rsi
callq 0x3290
jmp 0x3a1b
leaq -0x520(%rbp), %rdi
callq 0x2150
movq -0x38(%rbp), %rdi
callq 0x2320
movl %eax, -0xa8c(%rbp)
jmp 0x3a38
movl -0xa8c(%rbp), %eax
cmpl $0x0, %eax
je 0x3b34
leaq -0x541(%rbp), %rdi
movq %rdi, -0xa98(%rbp)
callq 0x23d0
movq -0xa98(%rbp), %rdx
leaq 0x2743(%rip), %rsi      # 0x61ab
leaq -0x540(%rbp), %rdi
callq 0x22f0
jmp 0x3a76
movq -0xa60(%rbp), %rdi
leaq -0x540(%rbp), %rsi
callq 0x3340
jmp 0x3a8b
leaq -0x540(%rbp), %rdi
callq 0x2150
leaq -0x541(%rbp), %rdi
callq 0x2250
movq 0x5526(%rip), %rdi      # 0x8fd0
leaq 0x26c3(%rip), %rsi      # 0x6174
callq 0x2200
jmp 0x3ab8
movl $0x0, -0x4(%rbp)
movl $0x1, -0x500(%rbp)
jmp 0x5207
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x4a8(%rbp)
movl %eax, -0x4ac(%rbp)
leaq -0x520(%rbp), %rdi
callq 0x2150
jmp 0x522e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x4a8(%rbp)
movl %eax, -0x4ac(%rbp)
jmp 0x3b23
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x4a8(%rbp)
movl %eax, -0x4ac(%rbp)
leaq -0x540(%rbp), %rdi
callq 0x2150
leaq -0x541(%rbp), %rdi
callq 0x2250
jmp 0x522e
leaq -0x569(%rbp), %rdi
movq %rdi, -0xaa0(%rbp)
callq 0x23d0
movq -0xaa0(%rbp), %rdx
leaq 0x266d(%rip), %rsi      # 0x61c2
leaq -0x568(%rbp), %rdi
callq 0x22f0
jmp 0x3b63
movq -0xa60(%rbp), %rdi
leaq -0x568(%rbp), %rsi
callq 0x3340
jmp 0x3b78
leaq -0x568(%rbp), %rdi
callq 0x2150
leaq -0x569(%rbp), %rdi
callq 0x2250
movq 0x5439(%rip), %rdi      # 0x8fd0
leaq 0x264a(%rip), %rsi      # 0x61e8
callq 0x2200
jmp 0x3ba5
jmp 0x51f6
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x4a8(%rbp)
movl %eax, -0x4ac(%rbp)
jmp 0x3bdc
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x4a8(%rbp)
movl %eax, -0x4ac(%rbp)
leaq -0x568(%rbp), %rdi
callq 0x2150
leaq -0x569(%rbp), %rdi
callq 0x2250
jmp 0x522e
xorl %eax, %eax
movl %eax, %edx
leaq -0x590(%rbp), %rdi
leaq -0x30(%rbp), %rsi
movl $0x2, %ecx
callq 0x2220
jmp 0x3c08
leaq 0x2603(%rip), %rsi      # 0x6212
leaq -0x590(%rbp), %rdi
callq 0x5c90
movb %al, -0xaa1(%rbp)
jmp 0x3c23
leaq -0x590(%rbp), %rdi
callq 0x2150
movb -0xaa1(%rbp), %al
testb $0x1, %al
jne 0x3c3e
jmp 0x410b
leaq 0x24d5(%rip), %rsi      # 0x611a
leaq -0x30(%rbp), %rdi
callq 0x2400
movq %rax, -0xab0(%rbp)
jmp 0x3c57
movq -0xab0(%rbp), %rdi
callq 0x20f0
movq %rax, %rdi
leaq 0x24b3(%rip), %rsi      # 0x6120
callq 0x20c0
movq %rax, -0xab8(%rbp)
jmp 0x3c7b
movq -0xab8(%rbp), %rax
movq %rax, -0x38(%rbp)
cmpq $0x0, -0x38(%rbp)
jne 0x3e1d
leaq -0x5b1(%rbp), %rdi
movq %rdi, -0xac0(%rbp)
callq 0x23d0
movq -0xac0(%rbp), %rdx
leaq 0x2608(%rip), %rsi      # 0x62ba
leaq -0x5b0(%rbp), %rdi
callq 0x22f0
jmp 0x3cc0
movq -0xa60(%rbp), %rdi
leaq -0x5b0(%rbp), %rsi
callq 0x3290
jmp 0x3cd5
leaq -0x5b0(%rbp), %rdi
callq 0x2150
leaq -0x5b1(%rbp), %rdi
callq 0x2250
leaq -0x5d9(%rbp), %rdi
movq %rdi, -0xac8(%rbp)
callq 0x23d0
movq -0xac8(%rbp), %rdx
leaq 0x2414(%rip), %rsi      # 0x6122
leaq -0x5d8(%rbp), %rdi
callq 0x22f0
jmp 0x3d1c
movq -0xa60(%rbp), %rdi
leaq -0x5d8(%rbp), %rsi
callq 0x3340
jmp 0x3d31
leaq -0x5d8(%rbp), %rdi
callq 0x2150
leaq -0x5d9(%rbp), %rdi
callq 0x2250
movq 0x5280(%rip), %rdi      # 0x8fd0
leaq 0x241d(%rip), %rsi      # 0x6174
callq 0x2200
jmp 0x3d5e
movl $0x0, -0x4(%rbp)
movl $0x1, -0x500(%rbp)
jmp 0x5207
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x4a8(%rbp)
movl %eax, -0x4ac(%rbp)
leaq -0x590(%rbp), %rdi
callq 0x2150
jmp 0x522e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x4a8(%rbp)
movl %eax, -0x4ac(%rbp)
jmp 0x3dc9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x4a8(%rbp)
movl %eax, -0x4ac(%rbp)
leaq -0x5b0(%rbp), %rdi
callq 0x2150
leaq -0x5b1(%rbp), %rdi
callq 0x2250
jmp 0x522e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x4a8(%rbp)
movl %eax, -0x4ac(%rbp)
jmp 0x3e0c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x4a8(%rbp)
movl %eax, -0x4ac(%rbp)
leaq -0x5d8(%rbp), %rdi
callq 0x2150
leaq -0x5d9(%rbp), %rdi
callq 0x2250
jmp 0x522e
jmp 0x3e1f
movq -0x38(%rbp), %rdx
leaq -0x480(%rbp), %rdi
movl $0x3ff, %esi            # imm = 0x3FF
callq 0x2380
movq %rax, -0xad0(%rbp)
jmp 0x3e3d
movq -0xad0(%rbp), %rax
cmpq $0x0, %rax
je 0x3f00
leaq -0x58(%rbp), %rdi
callq 0x2160
movq %rax, -0xad8(%rbp)
leaq -0x480(%rbp), %rdi
callq 0x2110
movq %rax, %rcx
movq -0xad8(%rbp), %rax
addq %rcx, %rax
cmpq $0x400, %rax            # imm = 0x400
jb 0x3ee9
leaq -0x600(%rbp), %rdi
leaq -0x58(%rbp), %rsi
callq 0x2100
jmp 0x3e91
movq -0xa60(%rbp), %rdi
leaq -0x600(%rbp), %rsi
callq 0x3290
jmp 0x3ea6
leaq -0x600(%rbp), %rdi
callq 0x2150
leaq 0x2656(%rip), %rsi      # 0x650f
leaq -0x58(%rbp), %rdi
callq 0x22e0
jmp 0x3ec4
jmp 0x3ee9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x4a8(%rbp)
movl %eax, -0x4ac(%rbp)
leaq -0x600(%rbp), %rdi
callq 0x2150
jmp 0x522e
leaq -0x58(%rbp), %rdi
leaq -0x480(%rbp), %rsi
callq 0x2400
jmp 0x3efb
jmp 0x3e1f
leaq 0x23b3(%rip), %rsi      # 0x62ba
leaq -0x58(%rbp), %rdi
callq 0x2400
jmp 0x3f12
leaq -0x620(%rbp), %rdi
leaq -0x58(%rbp), %rsi
callq 0x2100
jmp 0x3f24
movq -0xa60(%rbp), %rdi
leaq -0x620(%rbp), %rsi
callq 0x3290
jmp 0x3f39
leaq -0x620(%rbp), %rdi
callq 0x2150
movq -0x38(%rbp), %rdi
callq 0x2320
movl %eax, -0xadc(%rbp)
jmp 0x3f56
movl -0xadc(%rbp), %eax
cmpl $0x0, %eax
je 0x4052
leaq -0x641(%rbp), %rdi
movq %rdi, -0xae8(%rbp)
callq 0x23d0
movq -0xae8(%rbp), %rdx
leaq 0x228f(%rip), %rsi      # 0x6215
leaq -0x640(%rbp), %rdi
callq 0x22f0
jmp 0x3f94
movq -0xa60(%rbp), %rdi
leaq -0x640(%rbp), %rsi
callq 0x3340
jmp 0x3fa9
leaq -0x640(%rbp), %rdi
callq 0x2150
leaq -0x641(%rbp), %rdi
callq 0x2250
movq 0x5008(%rip), %rdi      # 0x8fd0
leaq 0x21a5(%rip), %rsi      # 0x6174
callq 0x2200
jmp 0x3fd6
movl $0x0, -0x4(%rbp)
movl $0x1, -0x500(%rbp)
jmp 0x5207
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x4a8(%rbp)
movl %eax, -0x4ac(%rbp)
leaq -0x620(%rbp), %rdi
callq 0x2150
jmp 0x522e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x4a8(%rbp)
movl %eax, -0x4ac(%rbp)
jmp 0x4041
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x4a8(%rbp)
movl %eax, -0x4ac(%rbp)
leaq -0x640(%rbp), %rdi
callq 0x2150
leaq -0x641(%rbp), %rdi
callq 0x2250
jmp 0x522e
leaq -0x669(%rbp), %rdi
movq %rdi, -0xaf0(%rbp)
callq 0x23d0
movq -0xaf0(%rbp), %rdx
leaq 0x21b8(%rip), %rsi      # 0x622b
leaq -0x668(%rbp), %rdi
callq 0x22f0
jmp 0x4081
movq -0xa60(%rbp), %rdi
leaq -0x668(%rbp), %rsi
callq 0x3340
jmp 0x4096
leaq -0x668(%rbp), %rdi
callq 0x2150
leaq -0x669(%rbp), %rdi
callq 0x2250
movq 0x4f1b(%rip), %rdi      # 0x8fd0
leaq 0x212c(%rip), %rsi      # 0x61e8
callq 0x2200
jmp 0x40c3
jmp 0x51f4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x4a8(%rbp)
movl %eax, -0x4ac(%rbp)
jmp 0x40fa
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x4a8(%rbp)
movl %eax, -0x4ac(%rbp)
leaq -0x668(%rbp), %rdi
callq 0x2150
leaq -0x669(%rbp), %rdi
callq 0x2250
jmp 0x522e
xorl %eax, %eax
movl %eax, %edx
leaq -0x690(%rbp), %rdi
leaq -0x30(%rbp), %rsi
movl $0x2, %ecx
callq 0x2220
jmp 0x4126
leaq 0x2123(%rip), %rsi      # 0x6250
leaq -0x690(%rbp), %rdi
callq 0x5c90
movb %al, -0xaf1(%rbp)
jmp 0x4141
leaq -0x690(%rbp), %rdi
callq 0x2150
movb -0xaf1(%rbp), %al
testb $0x1, %al
jne 0x415c
jmp 0x4527
leaq -0x30(%rbp), %rdi
callq 0x2160
cmpq $0x2, %rax
jne 0x427b
leaq 0x20dd(%rip), %rdi      # 0x6253
callq 0x22b0
movq %rax, -0x698(%rbp)
movq -0x698(%rbp), %rdi
callq 0x2340
leaq -0x6b9(%rbp), %rdi
movq %rdi, -0xb00(%rbp)
callq 0x23d0
movq -0xb00(%rbp), %rdx
leaq 0x20a9(%rip), %rsi      # 0x6258
leaq -0x6b8(%rbp), %rdi
callq 0x22f0
jmp 0x41bd
movq -0xa60(%rbp), %rdi
leaq -0x6b8(%rbp), %rsi
callq 0x3340
jmp 0x41d2
leaq -0x6b8(%rbp), %rdi
callq 0x2150
leaq -0x6b9(%rbp), %rdi
callq 0x2250
movq 0x4ddf(%rip), %rdi      # 0x8fd0
leaq 0x1ff0(%rip), %rsi      # 0x61e8
callq 0x2200
jmp 0x41ff
movl $0x0, -0x4(%rbp)
movl $0x1, -0x500(%rbp)
jmp 0x5207
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x4a8(%rbp)
movl %eax, -0x4ac(%rbp)
leaq -0x690(%rbp), %rdi
callq 0x2150
jmp 0x522e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x4a8(%rbp)
movl %eax, -0x4ac(%rbp)
jmp 0x426a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x4a8(%rbp)
movl %eax, -0x4ac(%rbp)
leaq -0x6b8(%rbp), %rdi
callq 0x2150
leaq -0x6b9(%rbp), %rdi
callq 0x2250
jmp 0x522e
leaq -0x6e0(%rbp), %rdi
leaq -0x30(%rbp), %rsi
movl $0x2, %ecx
movq %rcx, %rdx
callq 0x2220
jmp 0x4295
leaq 0x1fdd(%rip), %rsi      # 0x6279
leaq -0x6e0(%rbp), %rdi
callq 0x5c90
movb %al, -0xb01(%rbp)
jmp 0x42b0
leaq -0x6e0(%rbp), %rdi
callq 0x2150
movb -0xb01(%rbp), %al
testb $0x1, %al
jne 0x42c8
jmp 0x431c
leaq 0x1f84(%rip), %rdi      # 0x6253
callq 0x22b0
movq %rax, -0x6e8(%rbp)
movq -0x6e8(%rbp), %rcx
leaq -0x30(%rbp), %rdi
movl $0x3, %esi
movl $0x1, %edx
callq 0x2140
jmp 0x42f7
jmp 0x431c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x4a8(%rbp)
movl %eax, -0x4ac(%rbp)
leaq -0x6e0(%rbp), %rdi
callq 0x2150
jmp 0x522e
leaq -0x708(%rbp), %rdi
leaq -0x30(%rbp), %rsi
movl $0x3, %edx
movq $-0x1, %rcx
callq 0x2220
jmp 0x433a
leaq -0x708(%rbp), %rdi
callq 0x20f0
movq %rax, %rdi
callq 0x2340
movl %eax, -0xb08(%rbp)
leaq -0x708(%rbp), %rdi
callq 0x2150
movl -0xb08(%rbp), %eax
cmpl $0x0, %eax
je 0x446c
leaq 0x1f06(%rip), %rsi      # 0x627c
leaq -0x58(%rbp), %rdi
callq 0x22e0
jmp 0x4381
leaq -0x728(%rbp), %rdi
leaq -0x30(%rbp), %rsi
movl $0x3, %edx
movq $-0x1, %rcx
callq 0x2220
jmp 0x439f
leaq -0x58(%rbp), %rdi
leaq -0x728(%rbp), %rsi
callq 0x2420
movq %rax, -0xb10(%rbp)
jmp 0x43b8
movq -0xb10(%rbp), %rdi
leaq 0x1ef6(%rip), %rsi      # 0x62bc
callq 0x2400
jmp 0x43cd
leaq -0x728(%rbp), %rdi
callq 0x2150
leaq -0x748(%rbp), %rdi
leaq -0x58(%rbp), %rsi
callq 0x2100
jmp 0x43eb
movq -0xa60(%rbp), %rdi
leaq -0x748(%rbp), %rsi
callq 0x3340
jmp 0x4400
leaq -0x748(%rbp), %rdi
callq 0x2150
movq 0x4bbd(%rip), %rdi      # 0x8fd0
leaq 0x1d5a(%rip), %rsi      # 0x6174
callq 0x2200
jmp 0x4421
jmp 0x4522
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x4a8(%rbp)
movl %eax, -0x4ac(%rbp)
leaq -0x728(%rbp), %rdi
callq 0x2150
jmp 0x522e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x4a8(%rbp)
movl %eax, -0x4ac(%rbp)
leaq -0x748(%rbp), %rdi
callq 0x2150
jmp 0x522e
leaq -0x769(%rbp), %rdi
movq %rdi, -0xb18(%rbp)
callq 0x23d0
movq -0xb18(%rbp), %rdx
leaq 0x1dcb(%rip), %rsi      # 0x6258
leaq -0x768(%rbp), %rdi
callq 0x22f0
jmp 0x449b
movq -0xa60(%rbp), %rdi
leaq -0x768(%rbp), %rsi
callq 0x3340
jmp 0x44b0
leaq -0x768(%rbp), %rdi
callq 0x2150
leaq -0x769(%rbp), %rdi
callq 0x2250
movq 0x4b01(%rip), %rdi      # 0x8fd0
leaq 0x1d12(%rip), %rsi      # 0x61e8
callq 0x2200
jmp 0x44dd
jmp 0x4522
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x4a8(%rbp)
movl %eax, -0x4ac(%rbp)
jmp 0x4511
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x4a8(%rbp)
movl %eax, -0x4ac(%rbp)
leaq -0x768(%rbp), %rdi
callq 0x2150
leaq -0x769(%rbp), %rdi
callq 0x2250
jmp 0x522e
jmp 0x51f2
xorl %eax, %eax
movl %eax, %edx
leaq -0x790(%rbp), %rdi
leaq -0x30(%rbp), %rsi
movl $0x3, %ecx
callq 0x2220
jmp 0x4542
leaq 0x1d90(%rip), %rsi      # 0x62d9
leaq -0x790(%rbp), %rdi
callq 0x5c90
movb %al, -0xb19(%rbp)
jmp 0x455d
leaq -0x790(%rbp), %rdi
callq 0x2150
movb -0xb19(%rbp), %al
testb $0x1, %al
jne 0x4578
jmp 0x4a94
leaq -0x7b0(%rbp), %rdi
leaq -0x30(%rbp), %rsi
movl $0x4, %edx
movq $-0x1, %rcx
callq 0x2220
jmp 0x4596
leaq -0x7b0(%rbp), %rdi
callq 0x20f0
movq -0xa60(%rbp), %rdi
movq %rax, %rsi
callq 0x5260
movl %eax, -0xb20(%rbp)
jmp 0x45b9
leaq -0x7b0(%rbp), %rdi
callq 0x2150
movl -0xb20(%rbp), %eax
cmpl $0x0, %eax
je 0x46e4
leaq -0x7d1(%rbp), %rdi
movq %rdi, -0xb28(%rbp)
callq 0x23d0
movq -0xb28(%rbp), %rdx
leaq 0x1ce8(%rip), %rsi      # 0x62dd
leaq -0x7d0(%rbp), %rdi
callq 0x22f0
jmp 0x4603
movq -0xa60(%rbp), %rdi
leaq -0x7d0(%rbp), %rsi
callq 0x3340
jmp 0x4618
leaq -0x7d0(%rbp), %rdi
callq 0x2150
leaq -0x7d1(%rbp), %rdi
callq 0x2250
movq 0x4999(%rip), %rdi      # 0x8fd0
leaq 0x1b36(%rip), %rsi      # 0x6174
callq 0x2200
jmp 0x4645
movl $0x0, -0x4(%rbp)
movl $0x1, -0x500(%rbp)
jmp 0x5207
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x4a8(%rbp)
movl %eax, -0x4ac(%rbp)
leaq -0x790(%rbp), %rdi
callq 0x2150
jmp 0x522e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x4a8(%rbp)
movl %eax, -0x4ac(%rbp)
leaq -0x7b0(%rbp), %rdi
callq 0x2150
jmp 0x522e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x4a8(%rbp)
movl %eax, -0x4ac(%rbp)
jmp 0x46d3
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x4a8(%rbp)
movl %eax, -0x4ac(%rbp)
leaq -0x7d0(%rbp), %rdi
callq 0x2150
leaq -0x7d1(%rbp), %rdi
callq 0x2250
jmp 0x522e
leaq -0x7f9(%rbp), %rdi
movq %rdi, -0xb30(%rbp)
callq 0x23d0
movq -0xb30(%rbp), %rdx
leaq 0x1bdf(%rip), %rsi      # 0x62e4
leaq -0x7f8(%rbp), %rdi
callq 0x22f0
jmp 0x4713
movq -0xa60(%rbp), %rdi
leaq -0x7f8(%rbp), %rsi
callq 0x3340
jmp 0x4728
leaq -0x7f8(%rbp), %rdi
callq 0x2150
leaq -0x7f9(%rbp), %rdi
callq 0x2250
movq -0xa60(%rbp), %rsi
leaq -0x820(%rbp), %rdi
movl $0x400, %edx            # imm = 0x400
callq 0x33b0
jmp 0x475a
leaq -0x78(%rbp), %rdi
movq %rdi, -0xb40(%rbp)
leaq -0x820(%rbp), %rsi
movq %rsi, -0xb48(%rbp)
callq 0x22c0
movq -0xb48(%rbp), %rdi
callq 0x2150
movq -0xb40(%rbp), %rdi
leaq 0x1b56(%rip), %rsi      # 0x62e8
callq 0x5c90
movb %al, -0xb31(%rbp)
jmp 0x479f
movb -0xb31(%rbp), %al
testb $0x1, %al
jne 0x47ae
jmp 0x48a9
leaq -0x848(%rbp), %rdi
leaq -0x30(%rbp), %rsi
movl $0x4, %edx
movq $-0x1, %rcx
callq 0x2220
jmp 0x47cc
leaq -0x848(%rbp), %rdi
callq 0x20f0
movq %rax, %rdi
leaq 0x1b0c(%rip), %rsi      # 0x62ee
callq 0x2290
movq %rax, -0xb50(%rbp)
jmp 0x47f0
leaq -0x848(%rbp), %rdi
callq 0x2150
movq -0xb50(%rbp), %rax
movq %rax, -0x828(%rbp)
movq -0x828(%rbp), %rdi
callq 0x2210
jmp 0x4818
movq 0x47b1(%rip), %rdi      # 0x8fd0
leaq 0x19c2(%rip), %rsi      # 0x61e8
callq 0x2200
jmp 0x482d
movl $0x0, -0x4(%rbp)
movl $0x1, -0x500(%rbp)
jmp 0x5207
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x4a8(%rbp)
movl %eax, -0x4ac(%rbp)
jmp 0x4875
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x4a8(%rbp)
movl %eax, -0x4ac(%rbp)
leaq -0x7f8(%rbp), %rdi
callq 0x2150
leaq -0x7f9(%rbp), %rdi
callq 0x2250
jmp 0x522e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x4a8(%rbp)
movl %eax, -0x4ac(%rbp)
leaq -0x848(%rbp), %rdi
callq 0x2150
jmp 0x522e
leaq -0x868(%rbp), %rdi
leaq -0x30(%rbp), %rsi
movl $0x4, %edx
movq $-0x1, %rcx
callq 0x2220
jmp 0x48c7
movq -0xa60(%rbp), %rdi
leaq -0x868(%rbp), %rsi
callq 0x52b0
movl %eax, -0xb54(%rbp)
jmp 0x48e2
leaq -0x868(%rbp), %rdi
callq 0x2150
movl -0xb54(%rbp), %eax
cmpl $0x0, %eax
je 0x49d9
leaq -0x889(%rbp), %rdi
movq %rdi, -0xb60(%rbp)
callq 0x23d0
movq -0xb60(%rbp), %rdx
leaq 0x19d2(%rip), %rsi      # 0x62f0
leaq -0x888(%rbp), %rdi
callq 0x22f0
jmp 0x492c
movq -0xa60(%rbp), %rdi
leaq -0x888(%rbp), %rsi
callq 0x3340
jmp 0x4941
leaq -0x888(%rbp), %rdi
callq 0x2150
leaq -0x889(%rbp), %rdi
callq 0x2250
movq 0x4670(%rip), %rdi      # 0x8fd0
leaq 0x180d(%rip), %rsi      # 0x6174
callq 0x2200
jmp 0x496e
jmp 0x4a8f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x4a8(%rbp)
movl %eax, -0x4ac(%rbp)
leaq -0x868(%rbp), %rdi
callq 0x2150
jmp 0x522e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x4a8(%rbp)
movl %eax, -0x4ac(%rbp)
jmp 0x49c8
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x4a8(%rbp)
movl %eax, -0x4ac(%rbp)
leaq -0x888(%rbp), %rdi
callq 0x2150
leaq -0x889(%rbp), %rdi
callq 0x2250
jmp 0x522e
leaq -0x8b1(%rbp), %rdi
movq %rdi, -0xb68(%rbp)
callq 0x23d0
movq -0xb68(%rbp), %rdx
leaq 0x1926(%rip), %rsi      # 0x6320
leaq -0x8b0(%rbp), %rdi
callq 0x22f0
jmp 0x4a08
movq -0xa60(%rbp), %rdi
leaq -0x8b0(%rbp), %rsi
callq 0x3340
jmp 0x4a1d
leaq -0x8b0(%rbp), %rdi
callq 0x2150
leaq -0x8b1(%rbp), %rdi
callq 0x2250
movq 0x4594(%rip), %rdi      # 0x8fd0
leaq 0x17a5(%rip), %rsi      # 0x61e8
callq 0x2200
jmp 0x4a4a
jmp 0x4a8f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x4a8(%rbp)
movl %eax, -0x4ac(%rbp)
jmp 0x4a7e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x4a8(%rbp)
movl %eax, -0x4ac(%rbp)
leaq -0x8b0(%rbp), %rdi
callq 0x2150
leaq -0x8b1(%rbp), %rdi
callq 0x2250
jmp 0x522e
jmp 0x51f0
xorl %eax, %eax
movl %eax, %edx
leaq -0x8d8(%rbp), %rdi
leaq -0x30(%rbp), %rsi
movl $0x3, %ecx
callq 0x2220
jmp 0x4aaf
leaq 0x1891(%rip), %rsi      # 0x6347
leaq -0x8d8(%rbp), %rdi
callq 0x5c90
movb %al, -0xb69(%rbp)
jmp 0x4aca
leaq -0x8d8(%rbp), %rdi
callq 0x2150
movb -0xb69(%rbp), %al
testb $0x1, %al
jne 0x4ae5
jmp 0x50cf
leaq -0x8f8(%rbp), %rdi
leaq -0x30(%rbp), %rsi
movl $0x4, %edx
movq $-0x1, %rcx
callq 0x2220
jmp 0x4b03
leaq -0x8f8(%rbp), %rdi
callq 0x20f0
movq -0xa60(%rbp), %rdi
movq %rax, %rsi
callq 0x5260
movl %eax, -0xb70(%rbp)
jmp 0x4b26
movl -0xb70(%rbp), %eax
cmpl $0x0, %eax
setne %al
xorb $-0x1, %al
movb %al, -0xb71(%rbp)
leaq -0x8f8(%rbp), %rdi
callq 0x2150
movb -0xb71(%rbp), %al
testb $0x1, %al
jne 0x4b55
jmp 0x4c65
leaq -0x919(%rbp), %rdi
movq %rdi, -0xb80(%rbp)
callq 0x23d0
movq -0xb80(%rbp), %rdx
leaq 0x176e(%rip), %rsi      # 0x62e4
leaq -0x918(%rbp), %rdi
callq 0x22f0
jmp 0x4b84
movq -0xa60(%rbp), %rdi
leaq -0x918(%rbp), %rsi
callq 0x3340
jmp 0x4b99
leaq -0x918(%rbp), %rdi
callq 0x2150
leaq -0x919(%rbp), %rdi
callq 0x2250
movq 0x4418(%rip), %rdi      # 0x8fd0
leaq 0x15b5(%rip), %rsi      # 0x6174
callq 0x2200
jmp 0x4bc6
movl $0x0, -0x4(%rbp)
movl $0x1, -0x500(%rbp)
jmp 0x5207
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x4a8(%rbp)
movl %eax, -0x4ac(%rbp)
leaq -0x8d8(%rbp), %rdi
callq 0x2150
jmp 0x522e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x4a8(%rbp)
movl %eax, -0x4ac(%rbp)
leaq -0x8f8(%rbp), %rdi
callq 0x2150
jmp 0x522e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x4a8(%rbp)
movl %eax, -0x4ac(%rbp)
jmp 0x4c54
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x4a8(%rbp)
movl %eax, -0x4ac(%rbp)
leaq -0x918(%rbp), %rdi
callq 0x2150
leaq -0x919(%rbp), %rdi
callq 0x2250
jmp 0x522e
leaq -0x941(%rbp), %rdi
movq %rdi, -0xb88(%rbp)
callq 0x23d0
movq -0xb88(%rbp), %rdx
leaq 0x1657(%rip), %rsi      # 0x62dd
leaq -0x940(%rbp), %rdi
callq 0x22f0
jmp 0x4c94
movq -0xa60(%rbp), %rdi
leaq -0x940(%rbp), %rsi
callq 0x3340
jmp 0x4ca9
leaq -0x940(%rbp), %rdi
callq 0x2150
leaq -0x941(%rbp), %rdi
callq 0x2250
leaq -0x968(%rbp), %rdi
leaq -0x30(%rbp), %rsi
movl $0x4, %edx
movq $-0x1, %rcx
callq 0x2220
jmp 0x4cdf
movq -0xa60(%rbp), %rdi
leaq -0x968(%rbp), %rsi
callq 0x54a0
movl %eax, -0xb8c(%rbp)
jmp 0x4cfa
leaq -0x968(%rbp), %rdi
callq 0x2150
movl -0xb8c(%rbp), %eax
cmpl $0x0, %eax
je 0x4e45
leaq -0x989(%rbp), %rdi
movq %rdi, -0xb98(%rbp)
callq 0x23d0
movq -0xb98(%rbp), %rdx
leaq 0x15b2(%rip), %rsi      # 0x62e8
leaq -0x988(%rbp), %rdi
callq 0x22f0
jmp 0x4d44
movq -0xa60(%rbp), %rdi
leaq -0x988(%rbp), %rsi
callq 0x3340
jmp 0x4d59
leaq -0x988(%rbp), %rdi
callq 0x2150
leaq -0x989(%rbp), %rdi
callq 0x2250
movq 0x4258(%rip), %rdi      # 0x8fd0
leaq 0x13f5(%rip), %rsi      # 0x6174
callq 0x2200
jmp 0x4d86
movl $0x0, -0x4(%rbp)
movl $0x1, -0x500(%rbp)
jmp 0x5207
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x4a8(%rbp)
movl %eax, -0x4ac(%rbp)
jmp 0x4dce
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x4a8(%rbp)
movl %eax, -0x4ac(%rbp)
leaq -0x940(%rbp), %rdi
callq 0x2150
leaq -0x941(%rbp), %rdi
callq 0x2250
jmp 0x522e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x4a8(%rbp)
movl %eax, -0x4ac(%rbp)
leaq -0x968(%rbp), %rdi
callq 0x2150
jmp 0x522e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x4a8(%rbp)
movl %eax, -0x4ac(%rbp)
jmp 0x4e34
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x4a8(%rbp)
movl %eax, -0x4ac(%rbp)
leaq -0x988(%rbp), %rdi
callq 0x2150
leaq -0x989(%rbp), %rdi
callq 0x2250
jmp 0x522e
leaq -0x9b1(%rbp), %rdi
movq %rdi, -0xba0(%rbp)
callq 0x23d0
movq -0xba0(%rbp), %rdx
leaq 0x14e5(%rip), %rsi      # 0x634b
leaq -0x9b0(%rbp), %rdi
callq 0x22f0
jmp 0x4e74
movq -0xa60(%rbp), %rdi
leaq -0x9b0(%rbp), %rsi
callq 0x3340
jmp 0x4e89
leaq -0x9b0(%rbp), %rdi
callq 0x2150
leaq -0x9b1(%rbp), %rdi
callq 0x2250
leaq -0x9d8(%rbp), %rdi
leaq -0x30(%rbp), %rsi
movl $0x4, %edx
movq $-0x1, %rcx
callq 0x2220
jmp 0x4ebf
movq -0xa60(%rbp), %rdi
leaq -0x9d8(%rbp), %rsi
callq 0x55d0
movl %eax, -0xba4(%rbp)
jmp 0x4eda
leaq -0x9d8(%rbp), %rdi
callq 0x2150
movl -0xba4(%rbp), %eax
cmpl $0x0, %eax
jge 0x5014
leaq -0x9f9(%rbp), %rdi
movq %rdi, -0xbb0(%rbp)
callq 0x23d0
movq -0xbb0(%rbp), %rdx
leaq 0x1439(%rip), %rsi      # 0x634f
leaq -0x9f8(%rbp), %rdi
callq 0x22f0
jmp 0x4f24
movq -0xa60(%rbp), %rdi
leaq -0x9f8(%rbp), %rsi
callq 0x3340
jmp 0x4f39
leaq -0x9f8(%rbp), %rdi
callq 0x2150
leaq -0x9f9(%rbp), %rdi
callq 0x2250
movq 0x4078(%rip), %rdi      # 0x8fd0
leaq 0x1215(%rip), %rsi      # 0x6174
callq 0x2200
jmp 0x4f66
jmp 0x50ca
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x4a8(%rbp)
movl %eax, -0x4ac(%rbp)
jmp 0x4f9d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x4a8(%rbp)
movl %eax, -0x4ac(%rbp)
leaq -0x9b0(%rbp), %rdi
callq 0x2150
leaq -0x9b1(%rbp), %rdi
callq 0x2250
jmp 0x522e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x4a8(%rbp)
movl %eax, -0x4ac(%rbp)
leaq -0x9d8(%rbp), %rdi
callq 0x2150
jmp 0x522e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x4a8(%rbp)
movl %eax, -0x4ac(%rbp)
jmp 0x5003
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x4a8(%rbp)
movl %eax, -0x4ac(%rbp)
leaq -0x9f8(%rbp), %rdi
callq 0x2150
leaq -0x9f9(%rbp), %rdi
callq 0x2250
jmp 0x522e
leaq -0xa21(%rbp), %rdi
movq %rdi, -0xbb8(%rbp)
callq 0x23d0
movq -0xbb8(%rbp), %rdx
leaq 0x134a(%rip), %rsi      # 0x637f
leaq -0xa20(%rbp), %rdi
callq 0x22f0
jmp 0x5043
movq -0xa60(%rbp), %rdi
leaq -0xa20(%rbp), %rsi
callq 0x3340
jmp 0x5058
leaq -0xa20(%rbp), %rdi
callq 0x2150
leaq -0xa21(%rbp), %rdi
callq 0x2250
movq 0x3f59(%rip), %rdi      # 0x8fd0
leaq 0x116a(%rip), %rsi      # 0x61e8
callq 0x2200
jmp 0x5085
jmp 0x50ca
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x4a8(%rbp)
movl %eax, -0x4ac(%rbp)
jmp 0x50b9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x4a8(%rbp)
movl %eax, -0x4ac(%rbp)
leaq -0xa20(%rbp), %rdi
callq 0x2150
leaq -0xa21(%rbp), %rdi
callq 0x2250
jmp 0x522e
jmp 0x51ee
leaq 0x12ce(%rip), %rsi      # 0x63a4
leaq -0x30(%rbp), %rdi
callq 0x5c90
movb %al, -0xbb9(%rbp)
jmp 0x50e7
movb -0xbb9(%rbp), %al
testb $0x1, %al
jne 0x50f3
jmp 0x514e
movq -0xa60(%rbp), %rdi
addq $0x1e8, %rdi            # imm = 0x1E8
callq 0x2b40
jmp 0x5108
movq -0xa60(%rbp), %rdi
addq $0xf8, %rdi
callq 0x2b40
jmp 0x511d
movq 0x3eac(%rip), %rdi      # 0x8fd0
leaq 0x127e(%rip), %rsi      # 0x63a9
callq 0x2200
jmp 0x5132
movq 0x3e97(%rip), %rdi      # 0x8fd0
leaq 0x10a8(%rip), %rsi      # 0x61e8
callq 0x2200
jmp 0x5147
xorl %edi, %edi
callq 0x22a0
leaq -0xa49(%rbp), %rdi
movq %rdi, -0xbc8(%rbp)
callq 0x23d0
movq -0xbc8(%rbp), %rdx
leaq 0x1256(%rip), %rsi      # 0x63c5
leaq -0xa48(%rbp), %rdi
callq 0x22f0
jmp 0x517d
movq -0xa60(%rbp), %rdi
leaq -0xa48(%rbp), %rsi
callq 0x3340
jmp 0x5192
leaq -0xa48(%rbp), %rdi
callq 0x2150
leaq -0xa49(%rbp), %rdi
callq 0x2250
jmp 0x51ec
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x4a8(%rbp)
movl %eax, -0x4ac(%rbp)
jmp 0x51de
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x4a8(%rbp)
movl %eax, -0x4ac(%rbp)
leaq -0xa48(%rbp), %rdi
callq 0x2150
leaq -0xa49(%rbp), %rdi
callq 0x2250
jmp 0x522e
jmp 0x51ee
jmp 0x51f0
jmp 0x51f2
jmp 0x51f4
jmp 0x51f6
movl $0x0, -0x4(%rbp)
movl $0x1, -0x500(%rbp)
leaq -0x78(%rbp), %rdi
callq 0x2150
leaq -0x58(%rbp), %rdi
callq 0x2150
leaq -0x30(%rbp), %rdi
callq 0x2150
movl -0x4(%rbp), %eax
addq $0xbd0, %rsp            # imm = 0xBD0
popq %rbp
retq
leaq -0x78(%rbp), %rdi
callq 0x2150
leaq -0x58(%rbp), %rdi
callq 0x2150
leaq -0x30(%rbp), %rdi
callq 0x2150
movq -0x4a8(%rbp), %rdi
callq 0x23c0
nopw %cs:(%rax,%rax)