// File: /workspace/github_cpp_makefile_star2_O3/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 $0x2a8, %rsp            # imm = 0x2A8
movq %rsi, -0x180(%rbp)
movl $0x736579, %eax         # imm = 0x736579
movl %eax, 0xf78(%rdi)
movl %eax, 0xa(%rdi)
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)
movb %al, -0x2d0(%rbp)
movabsq $0x742e74757074756f, %rsi # imm = 0x742E74757074756F
movq %rsi, -0x260(%rbp)
movl $0x747874, -0x259(%rbp) # imm = 0x747874
movups 0x63c3(%rip), %xmm0     # 0x16439
movaps %xmm0, -0x1f0(%rbp)
movw $0x74, -0x1e0(%rbp)
movl $0x657571, 0xea5(%rdi)  # imm = 0x657571
movabsq $0x71696e7500736579, %rsi # imm = 0x71696E7500736579
movq %rsi, 0xe9e(%rdi)
movb %al, 0xf0e(%rdi)
movw %cx, 0xf0c(%rdi)
movl $0x64, 0xf08(%rdi)
movq $0x0, 0xf84(%rdi)
movb %al, 0x2(%rdi)
movw %cx, (%rdi)
movb %al, 0xf8e(%rdi)
movw %cx, 0xf8c(%rdi)
cmpl $0x2, %edx
jl 0x10aaf
movq %rdi, %rbx
leaq 0xf78(%rdi), %rax
movq %rax, -0x128(%rbp)
leaq 0xa(%rdi), %rax
movq %rax, -0x178(%rbp)
leaq 0x3fc(%rdi), %rax
movq %rax, -0x170(%rbp)
leaq 0xf46(%rdi), %rax
movq %rax, -0xa0(%rbp)
leaq 0xf14(%rdi), %rax
movq %rax, -0x98(%rbp)
leaq 0x43c(%rdi), %rax
movq %rax, -0x140(%rbp)
leaq 0x41a(%rdi), %rax
movq %rax, -0x150(%rbp)
leaq 0x42e(%rdi), %rax
movq %rax, -0x158(%rbp)
leaq 0x438(%rdi), %rax
movq %rax, -0x148(%rbp)
leaq 0x406(%rdi), %rax
movq %rax, -0x160(%rbp)
leaq 0xf10(%rdi), %rax
movq %rax, -0x118(%rbp)
leaq 0x444(%rdi), %rax
movq %rax, -0xa8(%rbp)
movl %edx, %r12d
leaq 0xea2(%rdi), %rax
movq %rax, -0x130(%rbp)
leaq 0xe9e(%rdi), %rax
movq %rax, -0x138(%rbp)
leaq 0xf0c(%rdi), %rax
movq %rax, -0x120(%rbp)
leaq 0xf8c(%rdi), %rax
movq %rax, -0x168(%rbp)
movl $0x1, %r15d
leaq -0x110(%rbp), %r13
movq -0x180(%rbp), %rax
movq (%rax,%r15,8), %r14
movq %r14, %rdi
leaq -0x90(%rbp), %rsi
movq %r13, %rdx
callq 0xfef0
testl %eax, %eax
je 0x10a94
movl -0x90(%rbp), %eax
movl $0x706c6568, %ecx       # imm = 0x706C6568
xorl %ecx, %eax
movzbl -0x8c(%rbp), %ecx
orl %eax, %ecx
je 0x1089d
movq -0x90(%rbp), %rax
movabsq $0x626557746e697270, %rcx # imm = 0x626557746E697270
xorq %rcx, %rax
movzbl -0x88(%rbp), %ecx
orq %rax, %rcx
je 0x10334
movq -0x90(%rbp), %rax
movabsq $0x6c69667475706e69, %rcx # imm = 0x6C69667475706E69
xorq %rcx, %rax
movzwl -0x88(%rbp), %ecx
xorq $0x65, %rcx
orq %rax, %rcx
je 0x1033d
movq -0x90(%rbp), %rax
movabsq $0x696674757074756f, %rcx # imm = 0x696674757074756F
xorq %rcx, %rax
movabsq $0x656c6966746c75, %rdx # imm = 0x656C6966746C75
leaq 0x8fb(%rdx), %rcx
xorq -0x8d(%rbp), %rcx
orq %rax, %rcx
je 0x10346
movq -0x90(%rbp), %rax
movabsq $0x6c75736572746768, %rcx # imm = 0x6C75736572746768
xorq %rcx, %rax
movq -0x8a(%rbp), %rcx
xorq %rdx, %rcx
orq %rax, %rcx
je 0x1034f
movq -0x90(%rbp), %rax
movabsq $0x6f69726574697263, %rcx # imm = 0x6F69726574697263
xorq %rcx, %rax
movzwl -0x88(%rbp), %ecx
xorq $0x6e, %rcx
orq %rax, %rcx
je 0x1036f
movq -0x90(%rbp), %rax
movabsq $0x7473796270657473, %rcx # imm = 0x7473796270657473
xorq %rcx, %rax
movq -0x8d(%rbp), %rcx
movabsq $0x70657473796270, %rdx # imm = 0x70657473796270
xorq %rdx, %rcx
orq %rax, %rcx
je 0x103ce
movq -0x90(%rbp), %rax
movabsq $0x6e6f6973726576, %rcx # imm = 0x6E6F6973726576
cmpq %rcx, %rax
jne 0x1040f
movq -0x160(%rbp), %rdi
jmp 0x10356
movq -0x178(%rbp), %rdi
jmp 0x10356
leaq -0x2d0(%rbp), %rdi
jmp 0x10356
leaq -0x260(%rbp), %rdi
jmp 0x10356
leaq -0x1f0(%rbp), %rdi
movq %r13, %rsi
callq 0x1090
incq %r15
cmpq %r15, %r12
jne 0x101cf
jmp 0x108a8
movq -0x170(%rbp), %rdi
movq %r13, %rsi
callq 0x1090
movl -0x110(%rbp), %eax
movl $0x6672, %ecx           # imm = 0x6672
xorl %ecx, %eax
movzbl -0x10e(%rbp), %ecx
orw %ax, %cx
je 0x1035e
movl -0x110(%rbp), %eax
movl $0x6462, %ecx           # imm = 0x6462
xorl %ecx, %eax
movzbl -0x10e(%rbp), %ecx
orw %ax, %cx
je 0x1035e
movl -0x110(%rbp), %eax
movl $0x736c, %ecx           # imm = 0x736C
xorl %ecx, %eax
movzbl -0x10e(%rbp), %ecx
orw %ax, %cx
je 0x1035e
jmp 0x10abf
movq -0x168(%rbp), %rdi
movq %r13, %rsi
callq 0x1090
cmpl $0x736579, -0x110(%rbp) # imm = 0x736579
je 0x1035e
movl -0x110(%rbp), %eax
movl $0x6f6e, %ecx           # imm = 0x6F6E
xorl %ecx, %eax
movzbl -0x10e(%rbp), %ecx
orw %ax, %cx
je 0x1035e
jmp 0x10ac8
movq -0x90(%rbp), %rcx
movabsq $0x7273656963657073, %rdx # imm = 0x7273656963657073
xorq %rdx, %rcx
movl -0x88(%rbp), %edx
xorq $0x746f6f, %rdx         # imm = 0x746F6F
orq %rcx, %rdx
je 0x104e7
movq -0x90(%rbp), %rcx
movabsq $0x746f6f72656e6567, %rdx # imm = 0x746F6F72656E6567
xorq %rdx, %rcx
movzbl -0x88(%rbp), %edx
orq %rcx, %rdx
je 0x1053b
movl -0x90(%rbp), %ecx
movl $0x64616f6c, %edx       # imm = 0x64616F6C
xorl %edx, %ecx
movzbl -0x8c(%rbp), %edx
orl %ecx, %edx
je 0x105c0
movq -0x90(%rbp), %rcx
movabsq $0x6565727477656976, %rdx # imm = 0x6565727477656976
xorq %rdx, %rcx
movzbl -0x88(%rbp), %edx
orq %rcx, %rdx
je 0x105cc
movl -0x90(%rbp), %ecx
movl $0x68746170, %edx       # imm = 0x68746170
xorl %edx, %ecx
movzbl -0x8c(%rbp), %edx
orl %ecx, %edx
je 0x105d8
movabsq $0x65657274627573, %rcx # imm = 0x65657274627573
cmpq %rcx, %rax
je 0x105e4
movabsq $0x6c616963657073, %rcx # imm = 0x6C616963657073
cmpq %rcx, %rax
jne 0x105f0
movq %rbx, %rdi
jmp 0x10356
movq -0x158(%rbp), %rdi
movq %r13, %rsi
callq 0x1090
movl -0x110(%rbp), %eax
movl $0x656c6966, %ecx       # imm = 0x656C6966
xorl %ecx, %eax
movzbl -0x10c(%rbp), %ecx
orl %eax, %ecx
je 0x1035e
movq -0x110(%rbp), %rax
movabsq $0x746e696f7064696d, %rcx # imm = 0x746E696F7064696D
xorq %rcx, %rax
movzbl -0x108(%rbp), %ecx
orq %rax, %rcx
je 0x1035e
jmp 0x10ad1
movq -0x150(%rbp), %rdi
movq %r13, %rsi
callq 0x1090
movl -0x110(%rbp), %eax
movl $0x656c6966, %ecx       # imm = 0x656C6966
xorl %ecx, %eax
movzbl -0x10c(%rbp), %ecx
orl %eax, %ecx
je 0x1035e
movq -0x110(%rbp), %rax
movabsq $0x746e696f7064696d, %rcx # imm = 0x746E696F7064696D
xorq %rcx, %rax
movzbl -0x108(%rbp), %ecx
orq %rax, %rcx
je 0x1035e
movq -0x110(%rbp), %rax
movabsq $0x7262667274736562, %rcx # imm = 0x7262667274736562
xorq %rcx, %rax
movq -0x10b(%rbp), %rcx
movabsq $0x68636e61726266, %rdx # imm = 0x68636E61726266
xorq %rdx, %rcx
orq %rax, %rcx
je 0x1035e
jmp 0x10ada
movq -0x148(%rbp), %rdi
jmp 0x10356
movq -0x140(%rbp), %rdi
jmp 0x10356
movq -0xa8(%rbp), %rdi
jmp 0x10356
movq -0x138(%rbp), %rdi
jmp 0x10356
movq -0x90(%rbp), %rcx
movabsq $0x6f6972616e656373, %rdx # imm = 0x6F6972616E656373
xorq %rdx, %rcx
movzbl -0x88(%rbp), %edx
orq %rcx, %rdx
je 0x106f6
movl -0x90(%rbp), %ecx
movl $0x6768626e, %edx       # imm = 0x6768626E
xorl %edx, %ecx
movzwl -0x8c(%rbp), %edx
xorl $0x74, %edx
orl %ecx, %edx
je 0x10702
movq -0x90(%rbp), %rcx
movabsq $0x746f6f62646e6172, %rdx # imm = 0x746F6F62646E6172
xorq %rdx, %rcx
movq -0x8a(%rbp), %rdx
movabsq $0x7061727473746f, %rsi # imm = 0x7061727473746F
xorq %rsi, %rdx
orq %rcx, %rdx
je 0x10715
movl -0x90(%rbp), %ecx
movl $0x74726f73, %edx       # imm = 0x74726F73
xorl %edx, %ecx
movzbl -0x8c(%rbp), %edx
orl %ecx, %edx
je 0x10728
movq -0x90(%rbp), %rcx
movabsq $0x61727473746f6f62, %rdx # imm = 0x61727473746F6F62
xorq %rdx, %rcx
movzwl -0x88(%rbp), %edx
xorq $0x70, %rdx
orq %rcx, %rdx
je 0x10769
movq -0x90(%rbp), %rcx
movabsq $0x6e656769746c756d, %rdx # imm = 0x6E656769746C756D
xorq %rdx, %rcx
movzwl -0x88(%rbp), %edx
xorq $0x65, %rdx
orq %rcx, %rdx
je 0x107aa
movabsq $0x6e696d746f6f62, %rcx # imm = 0x6E696D746F6F62
cmpq %rcx, %rax
jne 0x107b6
movq %r13, %rdi
callq 0x11a0
movl %eax, 0xf84(%rbx)
jmp 0x1035e
movq -0x130(%rbp), %rdi
jmp 0x10356
movq %r13, %rdi
callq 0x11a0
movl %eax, 0xf08(%rbx)
jmp 0x1035e
movq %r13, %rdi
callq 0x11a0
movl %eax, 0xf88(%rbx)
jmp 0x1035e
movq -0x128(%rbp), %rdi
movq %r13, %rsi
callq 0x1090
cmpl $0x736579, -0x110(%rbp) # imm = 0x736579
je 0x1035e
movl -0x110(%rbp), %eax
movl $0x6f6e, %ecx           # imm = 0x6F6E
xorl %ecx, %eax
movzbl -0x10e(%rbp), %ecx
orw %ax, %cx
je 0x1035e
jmp 0x10ae3
movq -0x120(%rbp), %rdi
movq %r13, %rsi
callq 0x1090
cmpl $0x736579, -0x110(%rbp) # imm = 0x736579
je 0x1035e
movl -0x110(%rbp), %eax
movl $0x6f6e, %ecx           # imm = 0x6F6E
xorl %ecx, %eax
movzbl -0x10e(%rbp), %ecx
orw %ax, %cx
je 0x1035e
jmp 0x10aec
movq -0x118(%rbp), %rdi
jmp 0x10356
movl -0x90(%rbp), %ecx
movl $0x65646f6d, %edx       # imm = 0x65646F6D
xorl %edx, %ecx
movzbl -0x8c(%rbp), %edx
orl %ecx, %edx
je 0x10822
movabsq $0x65736f62726576, %rcx # imm = 0x65736F62726576
cmpq %rcx, %rax
jne 0x10af5
movq -0xa0(%rbp), %rdi
movq %r13, %rsi
callq 0x1090
cmpl $0x736579, -0x110(%rbp) # imm = 0x736579
je 0x1035e
movl -0x110(%rbp), %eax
movl $0x6f6e, %ecx           # imm = 0x6F6E
xorl %ecx, %eax
movzbl -0x10e(%rbp), %ecx
orw %ax, %cx
je 0x1035e
jmp 0x10b05
movq -0x98(%rbp), %rdi
movq %r13, %rsi
callq 0x1090
movq -0x110(%rbp), %rax
movabsq $0x65686369746c756d, %rcx # imm = 0x65686369746C756D
xorq %rcx, %rax
movq -0x10d(%rbp), %rcx
movabsq $0x6b636568636974, %rdx # imm = 0x6B636568636974
xorq %rdx, %rcx
orq %rax, %rcx
je 0x1035e
movq -0x110(%rbp), %rax
movabsq $0x636568636f6e6f6d, %rcx # imm = 0x636568636F6E6F6D
xorq %rcx, %rax
movzwl -0x108(%rbp), %ecx
xorq $0x6b, %rcx
orq %rax, %rcx
je 0x1035e
leaq 0x5de1(%rip), %rdi      # 0x16672
movq -0x98(%rbp), %rsi
jmp 0x10a9e
movl $0xffffffff, %r15d      # imm = 0xFFFFFFFF
jmp 0x10a7f
cmpb $0x0, -0x2d0(%rbp)
je 0x10aaf
leaq 0x14(%rbx), %rdi
leaq 0x5937(%rip), %r12      # 0x161f7
xorl %r15d, %r15d
leaq -0x2d0(%rbp), %rcx
movq %r12, %rsi
movq -0xa8(%rbp), %r14
movq %r14, %rdx
xorl %eax, %eax
callq 0x1040
leaq 0x476(%rbx), %rdi
leaq 0x5e84(%rip), %rsi      # 0x16770
movq %r14, %rdx
xorl %eax, %eax
callq 0x1040
leaq 0x26c(%rbx), %rdi
leaq -0x260(%rbp), %rcx
movq %r12, %rsi
movq %r14, %rdx
xorl %eax, %eax
callq 0x1040
leaq 0xdc(%rbx), %rdi
leaq 0x5e5e(%rip), %rsi      # 0x1677d
movq %r14, %rdx
xorl %eax, %eax
callq 0x1040
leaq 0x1a4(%rbx), %rdi
leaq 0x5e54(%rip), %rsi      # 0x1678b
movq %r14, %rdx
xorl %eax, %eax
callq 0x1040
leaq 0x334(%rbx), %rdi
leaq -0x1f0(%rbp), %rcx
movq %r12, %rsi
movq %r14, %rdx
xorl %eax, %eax
callq 0x1040
leaq 0x53e(%rbx), %rdi
leaq 0x5e30(%rip), %rsi      # 0x1679a
movq %r14, %rdx
xorl %eax, %eax
callq 0x1040
leaq 0x606(%rbx), %rdi
leaq 0x5e2a(%rip), %rsi      # 0x167ac
movq %r14, %rdx
xorl %eax, %eax
callq 0x1040
leaq 0x85e(%rbx), %rdi
leaq 0x5e21(%rip), %rsi      # 0x167bb
movq %r14, %rdx
xorl %eax, %eax
callq 0x1040
leaq 0x926(%rbx), %rdi
leaq 0x5e1b(%rip), %rsi      # 0x167cd
movq %r14, %rdx
xorl %eax, %eax
callq 0x1040
leaq 0x9ee(%rbx), %rdi
leaq 0x5e1b(%rip), %rsi      # 0x167e5
movq %r14, %rdx
xorl %eax, %eax
callq 0x1040
leaq 0x6ce(%rbx), %rdi
leaq 0x5e12(%rip), %rsi      # 0x167f4
movq %r14, %rdx
xorl %eax, %eax
callq 0x1040
leaq 0xab6(%rbx), %rdi
leaq 0x5e0a(%rip), %rsi      # 0x16804
movq %r14, %rdx
xorl %eax, %eax
callq 0x1040
leaq 0xb7e(%rbx), %rdi
leaq 0x5e07(%rip), %rsi      # 0x16819
movq %r14, %rdx
xorl %eax, %eax
callq 0x1040
leaq 0xc46(%rbx), %rdi
leaq 0x5e04(%rip), %rsi      # 0x1682e
movq %r14, %rdx
xorl %eax, %eax
callq 0x1040
leaq 0xd0e(%rbx), %rdi
leaq 0x5dfe(%rip), %rsi      # 0x16840
movq %r14, %rdx
xorl %eax, %eax
callq 0x1040
leaq 0x796(%rbx), %rdi
leaq 0x5df6(%rip), %rsi      # 0x16850
movq %r14, %rdx
xorl %eax, %eax
callq 0x1040
addq $0xdd6, %rbx            # imm = 0xDD6
leaq 0x5dee(%rip), %rsi      # 0x16860
movq %rbx, %rdi
movq %r14, %rdx
xorl %eax, %eax
callq 0x1040
movl %r15d, %eax
addq $0x2a8, %rsp            # imm = 0x2A8
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
leaq 0x5c6e(%rip), %rdi      # 0x16709
movq %r14, %rsi
xorl %eax, %eax
callq 0x1030
movl $0xffffffff, %edi       # imm = 0xFFFFFFFF
callq 0x1110
leaq 0x5c96(%rip), %rdi      # 0x1674c
xorl %eax, %eax
callq 0x1030
jmp 0x10aa5
leaq 0x59c0(%rip), %rdi      # 0x16486
jmp 0x10ab6
leaq 0x59fc(%rip), %rdi      # 0x164cb
jmp 0x10ab6
leaq 0x5a3c(%rip), %rdi      # 0x16514
jmp 0x10ab6
leaq 0x5a7c(%rip), %rdi      # 0x1655d
jmp 0x10ab6
leaq 0x5af6(%rip), %rdi      # 0x165e0
jmp 0x10ab6
leaq 0x5b2c(%rip), %rdi      # 0x1661f
jmp 0x10ab6
leaq 0x5bee(%rip), %rdi      # 0x166ea
leaq -0x90(%rbp), %rsi
jmp 0x10a9e
leaq 0x5ba9(%rip), %rdi      # 0x166b5
movq -0xa0(%rbp), %rsi
jmp 0x10a9e