// File: CDISC2020[P]Projet_satellite_agile/src/communication/comGroundManager.cpp
// Function: Communic_Sol(void*)
void* Communic_Sol(void* args)
{
	QueuingPort channelOutPM(0, 18001, s); 	// Client PM
	usleep(500000);
	channelOutPM.Display();

    	vector<string> files, tms;
	vector<string>::iterator it;
	ifstream ifile;

	PlanFilePath pfp_plan, pfp_tm;
	pfp_plan.code = 3;
	pfp_tm.code = 17;

	// Modifiable
	// Dossiers reception
	string dir_plan = string("src/communication/planRecuSol/");
	string dir_tm = string("src/communication/tmRecuSol/");
	string dir_log = string("./");

	// Fichier a chercher
	string name_dem = "demande_imgs.txt";
	string name_plan = "plan.txt";
	string name_tm = "tm.txt";
	string name_log = "LogError.txt";

	// Dossier une fois traité
	string c_plan = "src/planManager/plans/";
	string c_tm = "src/planManager/tm/";
	string c_log = "src/communication/toSend/";

	bool verification_plan;
	bool verification_tm;
	
	while(1)
	{
		if(mode == true)
		{
			files.clear();
    			getdir(dir_plan,files);	

			/*****************************[ CGM ---IMGS---> SOL ]**********************************/
			it=find(files.begin(),files.end(),name_dem);
			if(it!=files.end()) // Si fichier présent dans la liste
			{
				cout << "File found" << endl;
				
				sprintf(cmde, "mv %s%s %s", dir_log.c_str(), name_log.c_str(), c_log.c_str());
				system(cmde);

				// envoyer tous fichiers de toSend existentes
				sprintf(cmde, "sh src/communication/uploadStoG.sh"); 
				system(cmde);
				sleep(1);
				cout << "Images and log sent \n" << endl;

				//enlever du satellite les fichiers envoyés au sol
				sprintf(cmde, "rm %s*.jpg", c_log.c_str());
				system(cmde);
				sprintf(cmde, "rm %s*.txt", c_log.c_str());
				system(cmde);
				cout << "Image and log removed\n" << endl;

				ptImageSent=ptImageReceived;


				string rep_demande_img= dir_plan + name_dem;
				remove(rep_demande_img.c_str());
				cout << "Request removed\n";
				sleep(1);
			}
			
			/*****************************[ CGM ---PLAN---> PM ]**********************************/
			it=find(files.begin(),files.end(),name_plan);
			if(it!=files.end()) // Si fichier présent dans la liste
			{
 				verification_plan = tryFile(dir_plan, name_plan); //verifier si on reussi a ouvrir le plan

				if(verification_plan)
				{
					// deplace dans src/planMagager/plans avec system()
					sprintf(cmde, "mv %s%s %s", dir_plan.c_str(), name_plan.c_str(), c_plan.c_str());
					system(cmde);
					sleep(1);
					cout << "Plan sent to PM\n";

					sprintf(pfp_plan.filepath, "%s%s", c_plan.c_str(), name_plan.c_str());
					channelOutPM.SendQueuingMsg((char*)&pfp_plan, sizeof(PlanFilePath));
				}
			}

			/*****************************[ CGM ---TM---> PM ]**********************************/
			tms.clear();
    			getdir(dir_tm,tms);			
			it=find(tms.begin(),tms.end(),name_tm);
			if(it!=tms.end()) // Si fichier présent dans la liste
			{
				verification_tm = tryFile(dir_tm,name_tm);

				if(verification_tm)
				{
						// deplace dans src/planMagager/tm avec system()
					sprintf(cmde, "mv %s%s %s", dir_tm.c_str(), name_tm.c_str(), c_tm.c_str());
					system(cmde);
					sleep(1);
					cout << "TM sent to PM\n";

					sprintf(pfp_tm.filepath, "%s%s", c_tm.c_str(), name_tm.c_str());

					channelOutPM.SendQueuingMsg((char*)&pfp_tm, sizeof(PlanFilePath));
				}
			}
		}

//		else{
//			cout << "In follower mode\n" << endl;}

		wtc = 1;

		usleep(100);
	}

	return NULL;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0xbf0, %rsp            # imm = 0xBF0
movq %rdi, -0x8(%rbp)
leaq 0x6a8a(%rip), %rcx      # 0xa300
leaq -0x4d0(%rbp), %rdi
movq %rdi, -0xac8(%rbp)
xorl %esi, %esi
movl $0x4651, %edx           # imm = 0x4651
callq 0x2860
movl $0x7a120, %edi          # imm = 0x7A120
callq 0x2390
movq -0xac8(%rbp), %rdi
callq 0x2cc0
leaq -0x4e8(%rbp), %rdi
callq 0x4dc0
leaq -0x500(%rbp), %rdi
callq 0x4dc0
leaq -0x508(%rbp), %rdi
callq 0x4de0
leaq -0x710(%rbp), %rdi
callq 0x22d0
jmp 0x38d8
movl $0x3, -0x784(%rbp)
movl $0x11, -0x7ec(%rbp)
leaq -0x811(%rbp), %rdi
movq %rdi, -0xad0(%rbp)
callq 0x2490
movq -0xad0(%rbp), %rdx
leaq 0x2987(%rip), %rsi      # 0x6294
leaq -0x810(%rbp), %rdi
callq 0x2370
jmp 0x391b
leaq -0x811(%rbp), %rdi
callq 0x22c0
leaq -0x839(%rbp), %rdi
movq %rdi, -0xad8(%rbp)
callq 0x2490
movq -0xad8(%rbp), %rdx
leaq 0x296b(%rip), %rsi      # 0x62b3
leaq -0x838(%rbp), %rdi
callq 0x2370
jmp 0x3956
leaq -0x839(%rbp), %rdi
callq 0x22c0
leaq -0x861(%rbp), %rdi
movq %rdi, -0xae0(%rbp)
callq 0x2490
movq -0xae0(%rbp), %rdx
leaq 0x294d(%rip), %rsi      # 0x62d0
leaq -0x860(%rbp), %rdi
callq 0x2370
jmp 0x3991
leaq -0x861(%rbp), %rdi
callq 0x22c0
leaq -0x889(%rbp), %rdi
movq %rdi, -0xae8(%rbp)
callq 0x2490
movq -0xae8(%rbp), %rdx
leaq 0x2915(%rip), %rsi      # 0x62d3
leaq -0x888(%rbp), %rdi
callq 0x2370
jmp 0x39cc
leaq -0x889(%rbp), %rdi
callq 0x22c0
leaq -0x8b1(%rbp), %rdi
movq %rdi, -0xaf0(%rbp)
callq 0x2490
movq -0xaf0(%rbp), %rdx
leaq 0x28eb(%rip), %rsi      # 0x62e4
leaq -0x8b0(%rbp), %rdi
callq 0x2370
jmp 0x3a07
leaq -0x8b1(%rbp), %rdi
callq 0x22c0
leaq -0x8d9(%rbp), %rdi
movq %rdi, -0xaf8(%rbp)
callq 0x2490
movq -0xaf8(%rbp), %rdx
leaq 0x28b9(%rip), %rsi      # 0x62ed
leaq -0x8d8(%rbp), %rdi
callq 0x2370
jmp 0x3a42
leaq -0x8d9(%rbp), %rdi
callq 0x22c0
leaq -0x901(%rbp), %rdi
movq %rdi, -0xb00(%rbp)
callq 0x2490
movq -0xb00(%rbp), %rdx
leaq 0x277c(%rip), %rsi      # 0x61eb
leaq -0x900(%rbp), %rdi
callq 0x2370
jmp 0x3a7d
leaq -0x901(%rbp), %rdi
callq 0x22c0
leaq -0x929(%rbp), %rdi
movq %rdi, -0xb08(%rbp)
callq 0x2490
movq -0xb08(%rbp), %rdx
leaq 0x284a(%rip), %rsi      # 0x62f4
leaq -0x928(%rbp), %rdi
callq 0x2370
jmp 0x3ab8
leaq -0x929(%rbp), %rdi
callq 0x22c0
leaq -0x951(%rbp), %rdi
movq %rdi, -0xb10(%rbp)
callq 0x2490
movq -0xb10(%rbp), %rdx
leaq 0x2826(%rip), %rsi      # 0x630b
leaq -0x950(%rbp), %rdi
callq 0x2370
jmp 0x3af3
leaq -0x951(%rbp), %rdi
callq 0x22c0
leaq -0x979(%rbp), %rdi
movq %rdi, -0xb18(%rbp)
callq 0x2490
movq -0xb18(%rbp), %rdx
leaq 0x27ff(%rip), %rsi      # 0x631f
leaq -0x978(%rbp), %rdi
callq 0x2370
jmp 0x3b2e
leaq -0x979(%rbp), %rdi
callq 0x22c0
jmp 0x3b3c
movb 0x67b6(%rip), %al       # 0xa2f8
andb $0x1, %al
movzbl %al, %eax
cmpl $0x1, %eax
jne 0x4512
leaq -0x4e8(%rbp), %rdi
callq 0x4e00
leaq -0x9a0(%rbp), %rdi
leaq -0x810(%rbp), %rsi
callq 0x2130
jmp 0x3b71
leaq -0x9a0(%rbp), %rdi
leaq -0x4e8(%rbp), %rsi
callq 0x3480
jmp 0x3b86
leaq -0x9a0(%rbp), %rdi
callq 0x2190
leaq -0x4e8(%rbp), %rdi
movq %rdi, -0xb28(%rbp)
callq 0x4e70
movq -0xb28(%rbp), %rdi
movq %rax, -0x9b0(%rbp)
callq 0x4ea0
movq %rax, -0x9b8(%rbp)
movq -0x9b0(%rbp), %rdi
movq -0x9b8(%rbp), %rsi
leaq -0x888(%rbp), %rdx
callq 0x4e20
movq %rax, -0xb20(%rbp)
jmp 0x3be2
movq -0xb20(%rbp), %rax
movq %rax, -0x9a8(%rbp)
movq -0x9a8(%rbp), %rax
movq %rax, -0x508(%rbp)
leaq -0x4e8(%rbp), %rdi
callq 0x4ea0
movq %rax, -0x9c0(%rbp)
leaq -0x508(%rbp), %rdi
leaq -0x9c0(%rbp), %rsi
callq 0x4ed0
testb $0x1, %al
jne 0x3c2d
jmp 0x4015
movq 0x53a4(%rip), %rdi      # 0x8fd8
leaq 0x26fe(%rip), %rsi      # 0x6339
callq 0x2290
movq %rax, -0xb30(%rbp)
jmp 0x3c49
movq -0xb30(%rbp), %rdi
movq 0x5371(%rip), %rsi      # 0x8fc8
callq 0x22b0
jmp 0x3c5e
leaq -0x860(%rbp), %rdi
callq 0x2110
movq %rax, -0xb48(%rbp)
leaq -0x900(%rbp), %rdi
callq 0x2110
movq %rax, -0xb40(%rbp)
leaq -0x978(%rbp), %rdi
callq 0x2110
movq -0xb48(%rbp), %rdx
movq -0xb40(%rbp), %rcx
movq %rax, %r8
leaq 0x6ac8(%rip), %rdi      # 0xa770
movq %rdi, -0xb38(%rbp)
leaq 0x268e(%rip), %rsi      # 0x6344
xorl %eax, %eax
callq 0x20a0
movq -0xb38(%rbp), %rdi
callq 0x2210
jmp 0x3ccb
leaq 0x6a9e(%rip), %rdi      # 0xa770
movq %rdi, -0xb50(%rbp)
leaq 0x266f(%rip), %rsi      # 0x634f
xorl %eax, %eax
callq 0x20a0
movq -0xb50(%rbp), %rdi
callq 0x2210
jmp 0x3cf5
movl $0x1, %edi
callq 0x21c0
jmp 0x3d01
movq 0x52d0(%rip), %rdi      # 0x8fd8
leaq 0x2663(%rip), %rsi      # 0x6372
callq 0x2290
movq %rax, -0xb58(%rbp)
jmp 0x3d1d
movq -0xb58(%rbp), %rdi
movq 0x529d(%rip), %rsi      # 0x8fc8
callq 0x22b0
jmp 0x3d32
leaq -0x978(%rbp), %rdi
callq 0x2110
movq %rax, %rdx
leaq 0x6a28(%rip), %rdi      # 0xa770
movq %rdi, -0xb60(%rbp)
leaq 0x2632(%rip), %rsi      # 0x6388
xorl %eax, %eax
callq 0x20a0
movq -0xb60(%rbp), %rdi
callq 0x2210
jmp 0x3d6b
leaq -0x978(%rbp), %rdi
callq 0x2110
movq %rax, %rdx
leaq 0x69ef(%rip), %rdi      # 0xa770
movq %rdi, -0xb68(%rbp)
leaq 0x2604(%rip), %rsi      # 0x6393
xorl %eax, %eax
callq 0x20a0
movq -0xb68(%rbp), %rdi
callq 0x2210
jmp 0x3da4
movq 0x522d(%rip), %rdi      # 0x8fd8
leaq 0x25ec(%rip), %rsi      # 0x639e
callq 0x2290
movq %rax, -0xb70(%rbp)
jmp 0x3dc0
movq -0xb70(%rbp), %rdi
movq 0x51fa(%rip), %rsi      # 0x8fc8
callq 0x22b0
jmp 0x3dd5
movl 0x6515(%rip), %eax      # 0xa2f0
movl %eax, 0x6513(%rip)      # 0xa2f4
leaq -0x9e0(%rbp), %rdi
leaq -0x810(%rbp), %rsi
leaq -0x888(%rbp), %rdx
callq 0x4d20
jmp 0x3dfd
leaq -0x9e0(%rbp), %rdi
callq 0x2110
movq %rax, %rdi
callq 0x24a0
movq 0x51c0(%rip), %rdi      # 0x8fd8
leaq 0x2596(%rip), %rsi      # 0x63b5
callq 0x2290
jmp 0x3e26
movl $0x1, %edi
callq 0x21c0
jmp 0x3e32
leaq -0x9e0(%rbp), %rdi
callq 0x2190
jmp 0x4015
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x718(%rbp)
movl %eax, -0x71c(%rbp)
jmp 0x45b1
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x718(%rbp)
movl %eax, -0x71c(%rbp)
leaq -0x811(%rbp), %rdi
callq 0x22c0
jmp 0x45a5
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x718(%rbp)
movl %eax, -0x71c(%rbp)
leaq -0x839(%rbp), %rdi
callq 0x22c0
jmp 0x4599
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x718(%rbp)
movl %eax, -0x71c(%rbp)
leaq -0x861(%rbp), %rdi
callq 0x22c0
jmp 0x458d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x718(%rbp)
movl %eax, -0x71c(%rbp)
leaq -0x889(%rbp), %rdi
callq 0x22c0
jmp 0x4581
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x718(%rbp)
movl %eax, -0x71c(%rbp)
leaq -0x8b1(%rbp), %rdi
callq 0x22c0
jmp 0x4575
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x718(%rbp)
movl %eax, -0x71c(%rbp)
leaq -0x8d9(%rbp), %rdi
callq 0x22c0
jmp 0x4569
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x718(%rbp)
movl %eax, -0x71c(%rbp)
leaq -0x901(%rbp), %rdi
callq 0x22c0
jmp 0x455d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x718(%rbp)
movl %eax, -0x71c(%rbp)
leaq -0x929(%rbp), %rdi
callq 0x22c0
jmp 0x4551
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x718(%rbp)
movl %eax, -0x71c(%rbp)
leaq -0x951(%rbp), %rdi
callq 0x22c0
jmp 0x4545
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x718(%rbp)
movl %eax, -0x71c(%rbp)
leaq -0x979(%rbp), %rdi
callq 0x22c0
jmp 0x4539
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x718(%rbp)
movl %eax, -0x71c(%rbp)
jmp 0x452d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x718(%rbp)
movl %eax, -0x71c(%rbp)
leaq -0x9a0(%rbp), %rdi
callq 0x2190
jmp 0x452d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x718(%rbp)
movl %eax, -0x71c(%rbp)
leaq -0x9e0(%rbp), %rdi
callq 0x2190
jmp 0x452d
leaq -0x4e8(%rbp), %rdi
movq %rdi, -0xb80(%rbp)
callq 0x4e70
movq -0xb80(%rbp), %rdi
movq %rax, -0x9f0(%rbp)
callq 0x4ea0
movq %rax, -0x9f8(%rbp)
movq -0x9f0(%rbp), %rdi
movq -0x9f8(%rbp), %rsi
leaq -0x8b0(%rbp), %rdx
callq 0x4e20
movq %rax, -0xb78(%rbp)
jmp 0x4065
movq -0xb78(%rbp), %rax
movq %rax, -0x9e8(%rbp)
movq -0x9e8(%rbp), %rax
movq %rax, -0x508(%rbp)
leaq -0x4e8(%rbp), %rdi
callq 0x4ea0
movq %rax, -0xa00(%rbp)
leaq -0x508(%rbp), %rdi
leaq -0xa00(%rbp), %rsi
callq 0x4ed0
testb $0x1, %al
jne 0x40b0
jmp 0x4263
leaq -0xa20(%rbp), %rdi
leaq -0x810(%rbp), %rsi
callq 0x2130
jmp 0x40c5
leaq -0xa40(%rbp), %rdi
leaq -0x8b0(%rbp), %rsi
callq 0x2130
jmp 0x40da
leaq -0xa20(%rbp), %rdi
leaq -0xa40(%rbp), %rsi
callq 0x35e0
movb %al, -0xb81(%rbp)
jmp 0x40f5
movb -0xb81(%rbp), %al
andb $0x1, %al
movb %al, -0x97a(%rbp)
leaq -0xa40(%rbp), %rdi
callq 0x2190
leaq -0xa20(%rbp), %rdi
callq 0x2190
testb $0x1, -0x97a(%rbp)
je 0x4261
leaq -0x810(%rbp), %rdi
callq 0x2110
movq %rax, -0xba0(%rbp)
leaq -0x8b0(%rbp), %rdi
callq 0x2110
movq %rax, -0xb98(%rbp)
leaq -0x928(%rbp), %rdi
callq 0x2110
movq -0xba0(%rbp), %rdx
movq -0xb98(%rbp), %rcx
movq %rax, %r8
leaq 0x65fe(%rip), %rdi      # 0xa770
movq %rdi, -0xb90(%rbp)
leaq 0x21c4(%rip), %rsi      # 0x6344
xorl %eax, %eax
callq 0x20a0
movq -0xb90(%rbp), %rdi
callq 0x2210
jmp 0x4195
movl $0x1, %edi
callq 0x21c0
jmp 0x41a1
movq 0x4e30(%rip), %rdi      # 0x8fd8
leaq 0x2217(%rip), %rsi      # 0x63c6
callq 0x2290
jmp 0x41b6
leaq -0x780(%rbp), %rax
movq %rax, -0xbb0(%rbp)
leaq -0x928(%rbp), %rdi
callq 0x2110
movq %rax, -0xba8(%rbp)
leaq -0x8b0(%rbp), %rdi
callq 0x2110
movq -0xbb0(%rbp), %rdi
movq -0xba8(%rbp), %rdx
movq %rax, %rcx
leaq 0x21dc(%rip), %rsi      # 0x63d7
xorl %eax, %eax
callq 0x20a0
leaq -0x4d0(%rbp), %rdi
leaq -0x784(%rbp), %rsi
movl $0x68, %edx
callq 0x2ac0
jmp 0x421c
jmp 0x4261
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x718(%rbp)
movl %eax, -0x71c(%rbp)
jmp 0x4250
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x718(%rbp)
movl %eax, -0x71c(%rbp)
leaq -0xa40(%rbp), %rdi
callq 0x2190
leaq -0xa20(%rbp), %rdi
callq 0x2190
jmp 0x452d
jmp 0x4263
leaq -0x500(%rbp), %rdi
callq 0x4e00
leaq -0xa60(%rbp), %rdi
leaq -0x838(%rbp), %rsi
callq 0x2130
jmp 0x4284
leaq -0xa60(%rbp), %rdi
leaq -0x500(%rbp), %rsi
callq 0x3480
jmp 0x4299
leaq -0xa60(%rbp), %rdi
callq 0x2190
leaq -0x500(%rbp), %rdi
movq %rdi, -0xbc0(%rbp)
callq 0x4e70
movq -0xbc0(%rbp), %rdi
movq %rax, -0xa70(%rbp)
callq 0x4ea0
movq %rax, -0xa78(%rbp)
movq -0xa70(%rbp), %rdi
movq -0xa78(%rbp), %rsi
leaq -0x8d8(%rbp), %rdx
callq 0x4e20
movq %rax, -0xbb8(%rbp)
jmp 0x42f5
movq -0xbb8(%rbp), %rax
movq %rax, -0xa68(%rbp)
movq -0xa68(%rbp), %rax
movq %rax, -0x508(%rbp)
leaq -0x500(%rbp), %rdi
callq 0x4ea0
movq %rax, -0xa80(%rbp)
leaq -0x508(%rbp), %rdi
leaq -0xa80(%rbp), %rsi
callq 0x4ed0
testb $0x1, %al
jne 0x4340
jmp 0x4510
leaq -0xaa0(%rbp), %rdi
leaq -0x838(%rbp), %rsi
callq 0x2130
jmp 0x4355
leaq -0xac0(%rbp), %rdi
leaq -0x8d8(%rbp), %rsi
callq 0x2130
jmp 0x436a
leaq -0xaa0(%rbp), %rdi
leaq -0xac0(%rbp), %rsi
callq 0x35e0
movb %al, -0xbc1(%rbp)
jmp 0x4385
movb -0xbc1(%rbp), %al
andb $0x1, %al
movb %al, -0x97b(%rbp)
leaq -0xac0(%rbp), %rdi
callq 0x2190
leaq -0xaa0(%rbp), %rdi
callq 0x2190
testb $0x1, -0x97b(%rbp)
je 0x450e
leaq -0x838(%rbp), %rdi
callq 0x2110
movq %rax, -0xbe0(%rbp)
leaq -0x8d8(%rbp), %rdi
callq 0x2110
movq %rax, -0xbd8(%rbp)
leaq -0x950(%rbp), %rdi
callq 0x2110
movq -0xbe0(%rbp), %rdx
movq -0xbd8(%rbp), %rcx
movq %rax, %r8
leaq 0x636e(%rip), %rdi      # 0xa770
movq %rdi, -0xbd0(%rbp)
leaq 0x1f34(%rip), %rsi      # 0x6344
xorl %eax, %eax
callq 0x20a0
movq -0xbd0(%rbp), %rdi
callq 0x2210
jmp 0x4425
movl $0x1, %edi
callq 0x21c0
jmp 0x4431
movq 0x4ba0(%rip), %rdi      # 0x8fd8
leaq 0x1f9d(%rip), %rsi      # 0x63dc
callq 0x2290
jmp 0x4446
leaq -0x7e8(%rbp), %rax
movq %rax, -0xbf0(%rbp)
leaq -0x950(%rbp), %rdi
callq 0x2110
movq %rax, -0xbe8(%rbp)
leaq -0x8d8(%rbp), %rdi
callq 0x2110
movq -0xbf0(%rbp), %rdi
movq -0xbe8(%rbp), %rdx
movq %rax, %rcx
leaq 0x1f4c(%rip), %rsi      # 0x63d7
xorl %eax, %eax
callq 0x20a0
leaq -0x4d0(%rbp), %rdi
leaq -0x7ec(%rbp), %rsi
movl $0x68, %edx
callq 0x2ac0
jmp 0x44ac
jmp 0x450e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x718(%rbp)
movl %eax, -0x71c(%rbp)
leaq -0xa60(%rbp), %rdi
callq 0x2190
jmp 0x452d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x718(%rbp)
movl %eax, -0x71c(%rbp)
jmp 0x4500
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x718(%rbp)
movl %eax, -0x71c(%rbp)
leaq -0xac0(%rbp), %rdi
callq 0x2190
leaq -0xaa0(%rbp), %rdi
callq 0x2190
jmp 0x452d
jmp 0x4510
jmp 0x4512
movl $0x1, 0x62b8(%rip)      # 0xa7d4
movl $0x64, %edi
callq 0x2390
jmp 0x4528
jmp 0x3b3a
leaq -0x978(%rbp), %rdi
callq 0x2190
leaq -0x950(%rbp), %rdi
callq 0x2190
leaq -0x928(%rbp), %rdi
callq 0x2190
leaq -0x900(%rbp), %rdi
callq 0x2190
leaq -0x8d8(%rbp), %rdi
callq 0x2190
leaq -0x8b0(%rbp), %rdi
callq 0x2190
leaq -0x888(%rbp), %rdi
callq 0x2190
leaq -0x860(%rbp), %rdi
callq 0x2190
leaq -0x838(%rbp), %rdi
callq 0x2190
leaq -0x810(%rbp), %rdi
callq 0x2190
leaq -0x710(%rbp), %rdi
callq 0x20d0
leaq -0x500(%rbp), %rdi
callq 0x4f10
leaq -0x4e8(%rbp), %rdi
callq 0x4f10
movq -0x718(%rbp), %rdi
callq 0x2480
nopw %cs:(%rax,%rax)