// File: /workspace/github_cpp_makefile_star2_O2/dcarrey[P]hgt-detection/./fonctions.cpp
// Function: readParameters(Parameters*, char**, int)
int readParameters(struct Parameters * param, char **argv, int nargc){

	char champs[100];
	char contenu[100];
	char input[100];
	char output[100];
	char hgtResultFile[100];
	int i;
	sprintf((*param).sort,"yes");
  	sprintf((*param).printWeb,"yes");
	sprintf((*param).criterion,"bd");
	sprintf((*param).verbose,"no");
	sprintf((*param).mode,"multicheck");
	sprintf((*param).viewtree,"no");
	sprintf((*param).generoot,"midpoint");
	sprintf((*param).speciesroot,"midpoint");
	sprintf((*param).load,"no");
	sprintf((*param).version,"consol");
	sprintf((*param).multiple,"no");
	sprintf((*param).multigene,"no");
	sprintf((*param).path,"");
	sprintf(input,"");
	sprintf(output,"output.txt");
	sprintf(hgtResultFile,"hgtresultfile.txt");
	sprintf((*param).scenario,"unique");
	sprintf((*param).subtree,"yes");
	sprintf((*param).bootstrap,"no");
	(*param).nbhgt = 100;
	(*param).bootmin = 0;
	sprintf((*param).special,"no");
	(*param).rand_bootstrap = 0;
	sprintf((*param).stepbystep,"no");
	
	//printf("\nhgt : reading parameters (%d)",nargc);
	
	for(i=1;i<nargc;i++){

		if(ExtraireDonnees(argv[i],champs,contenu)){

			//printf("\nhgt : [%s] -> champs = %s , contenu = %s",argv[i],champs,contenu);

			if(strcmp("help",champs) == 0)
				return -1;
			//======== input file ==============
			if(strcmp("printWeb",champs) == 0){
				strcpy((*param).printWeb,contenu);
			}
			//======== input file ==============
			else if(strcmp("inputfile",champs) == 0){
				strcpy(input,contenu);
			}
			//============ output file ===============
			else if(strcmp("outputfile",champs) == 0){
				strcpy(output,contenu);
			}
			//============ output file ===============
			else if(strcmp("hgtresultfile",champs) == 0){
				strcpy(hgtResultFile,contenu);
			}
			//============ criterion ================
			else if(strcmp("criterion",champs) == 0){
				strcpy((*param).criterion,contenu);
				if(strcmp(contenu,"rf")!=0 && strcmp(contenu,"bd")!=0 && strcmp(contenu,"ls")!=0){
					printf("\nhgt : invalid criterion, accepted values : rf, bd and ls");
					exit(-1);
				}
			}//============ stepbystep ================
			else if(strcmp("stepbystep",champs) == 0){
				strcpy((*param).stepbystep,contenu);
				if(strcmp(contenu,"yes")!=0 && strcmp(contenu,"no")!=0){
					printf("\nhgt : invalid stepbystep value, accepted values : yes or no");
					exit(-1);
				}
			}
			//============= version ===============
			else if(strcmp("version",champs) == 0){
				strcpy((*param).version,contenu);
			}
			//============ species root ===============
			else if(strcmp("speciesroot",champs) == 0){
				strcpy((*param).speciesroot,contenu);
				if(strcmp(contenu,"file")!=0 && strcmp(contenu,"midpoint")!=0){
					printf("\nhgt : invalid speciesroot, accepted values : file and midpoint");
				exit(-1);
				}
			}
			//============ gene root ===============
			else if(strcmp("generoot",champs) == 0){
				strcpy((*param).generoot,contenu);
				if(strcmp(contenu,"file")!=0 && strcmp(contenu,"midpoint")!=0 && strcmp(contenu,"bestrfbranch")!=0){
					printf("\nhgt : invalid generoot, accepted values : file, bestbipartition and midpoint");
					exit(-1);
				}
			}
			//======== load structure ==========
			else if(strcmp("load",champs) == 0){
				strcpy((*param).load,contenu);
			}
			//============ view tree ===============
			else if(strcmp("viewtree",champs) == 0){
				strcpy((*param).viewtree,contenu);
			}
			//============ path data ===========
			else if(strcmp("path",champs) == 0){
				strcpy((*param).path,contenu);
			}
			//============ special ===========
			else if(strcmp("special",champs) == 0){
				strcpy((*param).special,contenu);
			}
			//============ subtree ===========
			else if(strcmp("subtree",champs) == 0){
				strcpy((*param).subtree,contenu);
			}
			//============ scenario ===========
			else if(strcmp("scenario",champs) == 0){
				strcpy((*param).scenario,contenu);
			}
			//============ nbHGT ===========
			else if(strcmp("nbhgt",champs) == 0){
				(*param).nbhgt = atoi(contenu);
			}
			//============ nbHGT ===========
			else if(strcmp("randbootstrap",champs) == 0){
				(*param).rand_bootstrap = atoi(contenu);
			}
			//============ sort ===========
			else if(strcmp("sort",champs) == 0){
				sprintf((*param).sort,"%s",contenu);
				if(strcmp(contenu,"yes") != 0 && strcmp(contenu,"no") !=0){
					printf("\nhgt : incorrect value for [sort], accepted values : yes or no");
					exit(-1);
				}
			}
			//============ bootstrap ===========
			else if(strcmp("bootstrap",champs) == 0){
				sprintf((*param).bootstrap,"%s",contenu);
				if(strcmp(contenu,"yes") != 0 && strcmp(contenu,"no") !=0){
					printf("\nhgt : incorrect value for [bootstrap], accepted values : yes or no");
					exit(-1);
				}
			}
			//============ multigene ===========
			else if(strcmp("multigene",champs) == 0){
				sprintf((*param).multigene,"%s",contenu);
			}
			//============ bootmin ===========
			else if(strcmp("bootmin",champs) == 0){
				(*param).bootmin = atoi(contenu);
			}
			//============ mode ===========
			else if(strcmp("mode",champs) == 0){
				sprintf((*param).mode,"%s",contenu);
				if(strcmp(contenu,"multicheck") != 0 && strcmp(contenu,"monocheck") !=0){
					printf("\nincorrect value for %s, accepted values : multicheck or monocheck",(*param).mode);
					exit(-1);
				}
			}
			//============ verbose ===========
			else if(strcmp("verbose",champs) == 0){
				sprintf((*param).verbose,"%s",contenu);
				if(strcmp(contenu,"yes") != 0 && strcmp(contenu,"no") !=0){
					printf("\nincorrect value for %s, accepted values : yes or no",(*param).verbose);
					exit(-1);
				}
			}
			else{
				printf("\nhgt : incorrect prameter : %s",champs);
				exit(-1);
			}
		}
		else{
			printf("\nhgt : invalid syntax for parameter : %s (needed -parameter=value)" , argv[i]);
			exit(-1);
		}
	}
	
	if(strcmp(input,"")==0){
		printf("\nerror hgt : there is no input file");
		exit(-1);
	}

	sprintf((*param).inputfile,"%s%s",(*param).path,input);
	sprintf((*param).input,"%sinput_.txt",(*param).path);
	sprintf((*param).outputfile,"%s%s",(*param).path,output);
	sprintf((*param).results,"%sresults.txt",(*param).path);
	sprintf((*param).results_bouba,"%sresults2.txt",(*param).path);
	sprintf((*param).hgtResultFile,"%s%s",(*param).path,hgtResultFile);
	sprintf((*param).speciesTree,"%sspeciesTree.txt",(*param).path);
	sprintf((*param).geneTree,"%sgeneTree.txt",(*param).path);
	sprintf((*param).speciesRootfile,"%sspeciesRoot.txt",(*param).path);
	sprintf((*param).speciesRootfileLeaves,"%sspeciesRootLeaves.txt",(*param).path);
	sprintf((*param).geneRootfile,"%sgeneRoot.txt",(*param).path);
	sprintf((*param).errorFile,"%serrorFile.txt",(*param).path);
	sprintf((*param).geneRootfileLeaves,"%sgeneRootLeaves.txt",(*param).path);
	sprintf((*param).speciesTreeWeb,"%sspeciesTreeWeb.txt",(*param).path);
	sprintf((*param).geneTreeWeb,"%sgeneTreeWeb.txt",(*param).path);
	sprintf((*param).outputWeb,"%soutputWeb.txt",(*param).path);
	sprintf((*param).noMoreHgtfile,"%snomorehgt.txt",(*param).path);
	sprintf((*param).prehgtfile,"%sprehgt.txt",(*param).path);
	
	return 0;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x2b8, %rsp            # imm = 0x2B8
movq %rsi, -0x118(%rbp)
movq %rdi, %rbx
leaq 0xf78(%rdi), %rax
movq %rax, -0xc0(%rbp)
movl $0x736579, %eax         # imm = 0x736579
movl %eax, 0xf78(%rdi)
leaq 0xa(%rdi), %rcx
movq %rcx, -0x110(%rbp)
movl %eax, 0xa(%rdi)
leaq 0x3fc(%rdi), %rax
movq %rax, -0x108(%rbp)
xorl %eax, %eax
movb %al, 0x3fe(%rdi)
movw $0x6462, 0x3fc(%rdi)    # imm = 0x6462
movw $0x6f6e, %cx            # imm = 0x6F6E
movw %cx, 0xf46(%rdi)
movb %al, 0xf48(%rdi)
movabsq $0x65686369746c756d, %rsi # imm = 0x65686369746C756D
movq %rsi, 0xf14(%rdi)
movl $0x6b6365, 0xf1b(%rdi)  # imm = 0x6B6365
movw %cx, 0x43c(%rdi)
movb %al, 0x43e(%rdi)
movabsq $0x746e696f7064696d, %rsi # imm = 0x746E696F7064696D
movq %rsi, 0x41a(%rdi)
movb %al, 0x422(%rdi)
movq %rsi, 0x42e(%rdi)
movb %al, 0x436(%rdi)
movb %al, 0x43a(%rdi)
movw %cx, 0x438(%rdi)
movl $0x6c6f73, 0x409(%rdi)  # imm = 0x6C6F73
movl $0x736e6f63, 0x406(%rdi) # imm = 0x736E6F63
movb %al, 0x442(%rdi)
movw %cx, 0x440(%rdi)
movb %al, 0xf12(%rdi)
movw %cx, 0xf10(%rdi)
movb %al, 0x444(%rdi)
leaq -0x190(%rbp), %rsi
movb %al, (%rsi)
movabsq $0x742e74757074756f, %rsi # imm = 0x742E74757074756F
leaq -0x270(%rbp), %rdi
movq %rsi, (%rdi)
movl $0x747874, 0x7(%rdi)    # imm = 0x747874
movups 0x678e(%rip), %xmm0     # 0x15439
leaq -0x200(%rbp), %rsi
movaps %xmm0, (%rsi)
movw $0x74, 0x10(%rsi)
movl $0x657571, 0xea5(%rbx)  # imm = 0x657571
movabsq $0x71696e7500736579, %rsi # imm = 0x71696E7500736579
movq %rsi, 0xe9e(%rbx)
movw %cx, 0xf0c(%rbx)
movb %al, 0xf0e(%rbx)
movl $0x64, 0xf08(%rbx)
andq $0x0, 0xf84(%rbx)
leaq 0xf46(%rbx), %rsi
movq %rsi, -0xa0(%rbp)
leaq 0xf14(%rbx), %rsi
movq %rsi, -0x98(%rbp)
movw %cx, (%rbx)
movb %al, 0x2(%rbx)
movw %cx, 0xf8c(%rbx)
leaq 0x43c(%rbx), %rcx
movq %rcx, -0xd8(%rbp)
movb %al, 0xf8e(%rbx)
leaq 0x41a(%rbx), %rax
movq %rax, -0xe8(%rbp)
movslq %edx, %rax
movq %rax, -0x120(%rbp)
leaq 0x42e(%rbx), %rax
movq %rax, -0xf0(%rbp)
leaq 0x438(%rbx), %rax
movq %rax, -0xe0(%rbp)
leaq 0x406(%rbx), %rax
movq %rax, -0xf8(%rbp)
leaq 0xf10(%rbx), %rax
movq %rax, -0xb0(%rbp)
leaq 0x444(%rbx), %rax
movq %rax, -0xa8(%rbp)
leaq 0xea2(%rbx), %rax
movq %rax, -0xc8(%rbp)
leaq 0xe9e(%rbx), %rax
movq %rax, -0xd0(%rbp)
leaq 0xf0c(%rbx), %rax
movq %rax, -0xb8(%rbp)
leaq 0xf8c(%rbx), %rax
movq %rax, -0x100(%rbp)
pushq $0x1
popq %r12
leaq -0x2e0(%rbp), %r15
pushq $0xa
popq %r14
cmpq -0x120(%rbp), %r12
jge 0xf3f7
movq %r14, %r13
movq -0x118(%rbp), %rax
movq (%rax,%r12,8), %r14
movq %r14, %rdi
movq %r15, %rsi
leaq -0x90(%rbp), %rdx
callq 0xeb08
testl %eax, %eax
je 0xf5e9
leaq 0x6638(%rip), %rdi      # 0x1544b
movq %r15, %rsi
pushq $0x5
popq %rdx
callq 0x1090
testl %eax, %eax
je 0xf5d0
movq %r13, %r14
leaq 0x6620(%rip), %rdi      # 0x15450
movq %r15, %rsi
pushq $0x9
popq %rdx
callq 0x1090
testl %eax, %eax
je 0xeef7
leaq 0x660f(%rip), %rdi      # 0x15459
movq %r15, %rsi
movq %r14, %rdx
callq 0x1090
testl %eax, %eax
je 0xef00
leaq 0x65ff(%rip), %rdi      # 0x15463
movq %r15, %rsi
pushq $0xb
popq %rdx
callq 0x1090
testl %eax, %eax
je 0xef09
leaq 0x65f0(%rip), %rdi      # 0x1546e
movq %r15, %rsi
pushq $0xe
popq %rdx
callq 0x1090
testl %eax, %eax
je 0xef12
leaq 0x65e4(%rip), %rdi      # 0x1547c
movq %r15, %rsi
movq %r14, %rdx
callq 0x1090
testl %eax, %eax
je 0xef2d
leaq 0x660e(%rip), %rdi      # 0x154c0
movq %r15, %rsi
pushq $0xb
popq %rdx
callq 0x1090
testl %eax, %eax
je 0xef92
movq -0x2e0(%rbp), %r14
movabsq $0x6e6f6973726576, %rax # imm = 0x6E6F6973726576
cmpq %rax, %r14
jne 0xefd8
movq -0xf8(%rbp), %rdi
leaq -0x90(%rbp), %rsi
callq 0x1070
movq %r13, %r14
jmp 0xef25
movq -0x110(%rbp), %rdi
jmp 0xef19
leaq -0x190(%rbp), %rdi
jmp 0xef19
leaq -0x270(%rbp), %rdi
jmp 0xef19
leaq -0x200(%rbp), %rdi
leaq -0x90(%rbp), %rsi
callq 0x1070
incq %r12
jmp 0xedd7
movq -0x108(%rbp), %rdi
leaq -0x90(%rbp), %r13
movq %r13, %rsi
callq 0x1070
movq %r13, %rdi
leaq 0x5918(%rip), %rsi      # 0x14865
pushq $0x3
popq %rdx
callq 0x1090
testl %eax, %eax
je 0xef25
leaq -0x90(%rbp), %rdi
leaq 0x592c(%rip), %rsi      # 0x14893
pushq $0x3
popq %rdx
callq 0x1090
testl %eax, %eax
je 0xef25
leaq -0x90(%rbp), %rdi
leaq 0x653c(%rip), %rsi      # 0x154bd
pushq $0x3
popq %rdx
callq 0x1090
testl %eax, %eax
je 0xef25
jmp 0xf60b
movq -0x100(%rbp), %rdi
leaq -0x90(%rbp), %rsi
callq 0x1070
cmpl $0x736579, -0x90(%rbp)  # imm = 0x736579
je 0xef25
leaq -0x90(%rbp), %rdi
leaq 0x669d(%rip), %rsi      # 0x15660
pushq $0x3
popq %rdx
callq 0x1090
testl %eax, %eax
je 0xef25
jmp 0xf614
leaq 0x6529(%rip), %rdi      # 0x15508
movq %r15, %rsi
pushq $0xc
popq %rdx
callq 0x1090
testl %eax, %eax
je 0xf088
leaq 0x655b(%rip), %rdi      # 0x15554
movq %r15, %rsi
pushq $0x9
popq %rdx
callq 0x1090
testl %eax, %eax
je 0xf0de
leaq 0x6598(%rip), %rdi      # 0x155ab
movq %r15, %rsi
pushq $0x5
popq %rdx
callq 0x1090
testl %eax, %eax
je 0xf152
leaq 0x6583(%rip), %rdi      # 0x155b0
movq %r15, %rsi
pushq $0x9
popq %rdx
callq 0x1090
testl %eax, %eax
je 0xf15e
leaq 0x6572(%rip), %rdi      # 0x155b9
movq %r15, %rsi
pushq $0x5
popq %rdx
callq 0x1090
testl %eax, %eax
je 0xf16a
movabsq $0x65657274627573, %rax # imm = 0x65657274627573
cmpq %rax, %r14
je 0xf176
movabsq $0x6c616963657073, %rax # imm = 0x6C616963657073
cmpq %rax, %r14
jne 0xf182
movq %rbx, %rdi
jmp 0xeee6
movq -0xf0(%rbp), %rdi
leaq -0x90(%rbp), %r14
movq %r14, %rsi
callq 0x1070
movq %r14, %rdi
leaq 0x67dc(%rip), %rsi      # 0x15884
pushq $0x5
popq %rdx
callq 0x1090
testl %eax, %eax
movq %r13, %r14
je 0xef25
leaq -0x90(%rbp), %rdi
leaq 0x6482(%rip), %rsi      # 0x1554b
pushq $0x9
popq %rdx
callq 0x1090
testl %eax, %eax
je 0xef25
jmp 0xf61d
movq -0xe8(%rbp), %rdi
leaq -0x90(%rbp), %r14
movq %r14, %rsi
callq 0x1070
movq %r14, %rdi
leaq 0x6786(%rip), %rsi      # 0x15884
pushq $0x5
popq %rdx
callq 0x1090
testl %eax, %eax
movq %r13, %r14
je 0xef25
leaq -0x90(%rbp), %rdi
leaq 0x642c(%rip), %rsi      # 0x1554b
pushq $0x9
popq %rdx
callq 0x1090
testl %eax, %eax
je 0xef25
leaq -0x90(%rbp), %rdi
leaq 0x6287(%rip), %rsi      # 0x153c4
pushq $0xd
popq %rdx
callq 0x1090
testl %eax, %eax
je 0xef25
jmp 0xf626
movq -0xe0(%rbp), %rdi
jmp 0xeee6
movq -0xd8(%rbp), %rdi
jmp 0xeee6
movq -0xa8(%rbp), %rdi
jmp 0xeee6
movq -0xd0(%rbp), %rdi
jmp 0xeee6
leaq 0x6435(%rip), %rdi      # 0x155be
movq %r15, %rsi
pushq $0x9
popq %rdx
callq 0x1090
testl %eax, %eax
je 0xf248
leaq 0x6424(%rip), %rdi      # 0x155c7
movq %r15, %rsi
pushq $0x6
popq %rdx
callq 0x1090
testl %eax, %eax
je 0xf254
leaq 0x6410(%rip), %rdi      # 0x155cd
movq %r15, %rsi
pushq $0xe
popq %rdx
callq 0x1090
testl %eax, %eax
je 0xf26b
leaq 0x6404(%rip), %rdi      # 0x155db
movq %r15, %rsi
pushq $0x5
popq %rdx
callq 0x1090
testl %eax, %eax
je 0xf282
leaq 0x63e0(%rip), %rdi      # 0x155d1
movq %r15, %rsi
movq %r13, %rdx
callq 0x1090
testl %eax, %eax
je 0xf2cb
leaq 0x6458(%rip), %rdi      # 0x15663
movq %r15, %rsi
pushq $0xa
popq %rdx
callq 0x1090
testl %eax, %eax
je 0xf315
movabsq $0x6e696d746f6f62, %rax # imm = 0x6E696D746F6F62
cmpq %rax, %r14
jne 0xf321
leaq -0x90(%rbp), %rdi
callq 0x1190
movl %eax, 0xf84(%rbx)
jmp 0xeef2
movq -0xc8(%rbp), %rdi
jmp 0xeee6
leaq -0x90(%rbp), %rdi
callq 0x1190
movl %eax, 0xf08(%rbx)
jmp 0xeef2
leaq -0x90(%rbp), %rdi
callq 0x1190
movl %eax, 0xf88(%rbx)
jmp 0xeef2
movq -0xc0(%rbp), %rdi
leaq -0x90(%rbp), %rsi
callq 0x1070
cmpl $0x736579, -0x90(%rbp)  # imm = 0x736579
movq %r13, %r14
je 0xef25
leaq -0x90(%rbp), %rdi
leaq 0x63aa(%rip), %rsi      # 0x15660
pushq $0x3
popq %rdx
callq 0x1090
testl %eax, %eax
je 0xef25
jmp 0xf636
movq -0xb8(%rbp), %rdi
leaq -0x90(%rbp), %rsi
callq 0x1070
cmpl $0x736579, -0x90(%rbp)  # imm = 0x736579
pushq $0xa
popq %r14
je 0xef25
leaq -0x90(%rbp), %rdi
leaq 0x6360(%rip), %rsi      # 0x15660
pushq $0x3
popq %rdx
callq 0x1090
testl %eax, %eax
je 0xef25
jmp 0xf63f
movq -0xb0(%rbp), %rdi
jmp 0xeee6
leaq 0x6345(%rip), %rdi      # 0x1566d
movq %r15, %rsi
pushq $0x5
popq %rdx
callq 0x1090
testl %eax, %eax
je 0xf393
movabsq $0x65736f62726576, %rax # imm = 0x65736F62726576
cmpq %rax, %r14
jne 0xf648
movq -0xa0(%rbp), %rdi
leaq -0x90(%rbp), %rsi
callq 0x1070
cmpl $0x736579, -0x90(%rbp)  # imm = 0x736579
movq %r13, %r14
je 0xef25
leaq -0x90(%rbp), %rdi
leaq 0x62e2(%rip), %rsi      # 0x15660
pushq $0x3
popq %rdx
callq 0x1090
testl %eax, %eax
je 0xef25
jmp 0xf658
movq -0x98(%rbp), %rdi
leaq -0x90(%rbp), %r14
movq %r14, %rsi
callq 0x1070
movq %r14, %rdi
leaq 0x6074(%rip), %rsi      # 0x15427
pushq $0xb
popq %rdx
callq 0x1090
testl %eax, %eax
movq %r13, %r14
je 0xef25
leaq -0x90(%rbp), %rdi
leaq 0x62d7(%rip), %rsi      # 0x156ab
movq %r14, %rdx
callq 0x1090
testl %eax, %eax
je 0xef25
leaq 0x6287(%rip), %rdi      # 0x15672
movq -0x98(%rbp), %rsi
jmp 0xf5f3
cmpb $0x0, -0x190(%rbp)
je 0xf602
leaq 0x14(%rbx), %rdi
leaq 0x5de8(%rip), %r14      # 0x151f7
xorl %r12d, %r12d
leaq -0x190(%rbp), %rcx
movq %r14, %rsi
movq -0xa8(%rbp), %r15
movq %r15, %rdx
xorl %eax, %eax
callq 0x1040
leaq 0x476(%rbx), %rdi
leaq 0x6335(%rip), %rsi      # 0x15770
movq %r15, %rdx
xorl %eax, %eax
callq 0x1040
leaq 0x26c(%rbx), %rdi
leaq -0x270(%rbp), %rcx
movq %r14, %rsi
movq %r15, %rdx
xorl %eax, %eax
callq 0x1040
leaq 0xdc(%rbx), %rdi
leaq 0x630f(%rip), %rsi      # 0x1577d
movq %r15, %rdx
xorl %eax, %eax
callq 0x1040
leaq 0x1a4(%rbx), %rdi
leaq 0x6305(%rip), %rsi      # 0x1578b
movq %r15, %rdx
xorl %eax, %eax
callq 0x1040
leaq 0x334(%rbx), %rdi
leaq -0x200(%rbp), %rcx
movq %r14, %rsi
movq %r15, %rdx
xorl %eax, %eax
callq 0x1040
leaq 0x53e(%rbx), %rdi
leaq 0x62e1(%rip), %rsi      # 0x1579a
movq %r15, %rdx
xorl %eax, %eax
callq 0x1040
leaq 0x606(%rbx), %rdi
leaq 0x62db(%rip), %rsi      # 0x157ac
movq %r15, %rdx
xorl %eax, %eax
callq 0x1040
leaq 0x85e(%rbx), %rdi
leaq 0x62d2(%rip), %rsi      # 0x157bb
movq %r15, %rdx
xorl %eax, %eax
callq 0x1040
leaq 0x926(%rbx), %rdi
leaq 0x62cc(%rip), %rsi      # 0x157cd
movq %r15, %rdx
xorl %eax, %eax
callq 0x1040
leaq 0x9ee(%rbx), %rdi
leaq 0x62cc(%rip), %rsi      # 0x157e5
movq %r15, %rdx
xorl %eax, %eax
callq 0x1040
leaq 0x6ce(%rbx), %rdi
leaq 0x62c3(%rip), %rsi      # 0x157f4
movq %r15, %rdx
xorl %eax, %eax
callq 0x1040
leaq 0xab6(%rbx), %rdi
leaq 0x62bb(%rip), %rsi      # 0x15804
movq %r15, %rdx
xorl %eax, %eax
callq 0x1040
leaq 0xb7e(%rbx), %rdi
leaq 0x62b8(%rip), %rsi      # 0x15819
movq %r15, %rdx
xorl %eax, %eax
callq 0x1040
leaq 0xc46(%rbx), %rdi
leaq 0x62b5(%rip), %rsi      # 0x1582e
movq %r15, %rdx
xorl %eax, %eax
callq 0x1040
leaq 0xd0e(%rbx), %rdi
leaq 0x62af(%rip), %rsi      # 0x15840
movq %r15, %rdx
xorl %eax, %eax
callq 0x1040
leaq 0x796(%rbx), %rdi
leaq 0x62a7(%rip), %rsi      # 0x15850
movq %r15, %rdx
xorl %eax, %eax
callq 0x1040
addq $0xdd6, %rbx            # imm = 0xDD6
leaq 0x629f(%rip), %rsi      # 0x15860
movq %rbx, %rdi
movq %r15, %rdx
xorl %eax, %eax
callq 0x1040
jmp 0xf5d4
pushq $-0x1
popq %r12
movl %r12d, %eax
addq $0x2b8, %rsp            # imm = 0x2B8
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
leaq 0x6119(%rip), %rdi      # 0x15709
movq %r14, %rsi
xorl %eax, %eax
callq 0x1030
pushq $-0x1
popq %rdi
callq 0x1100
leaq 0x6143(%rip), %rdi      # 0x1574c
jmp 0xf62d
leaq 0x5e74(%rip), %rdi      # 0x15486
jmp 0xf62d
leaq 0x5eb0(%rip), %rdi      # 0x154cb
jmp 0xf62d
leaq 0x5ef0(%rip), %rdi      # 0x15514
jmp 0xf62d
leaq 0x5f30(%rip), %rdi      # 0x1555d
xorl %eax, %eax
callq 0x1030
jmp 0xf5fa
leaq 0x5fa3(%rip), %rdi      # 0x155e0
jmp 0xf62d
leaq 0x5fd9(%rip), %rdi      # 0x1561f
jmp 0xf62d
leaq 0x609b(%rip), %rdi      # 0x156ea
leaq -0x2e0(%rbp), %rsi
jmp 0xf5f3
leaq 0x6056(%rip), %rdi      # 0x156b5
movq -0xa0(%rbp), %rsi
jmp 0xf5f3