// File: melop[P]admixem/config.cpp
// Function: SimulationConfigurations::LoadFromFile(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>)
void SimulationConfigurations::LoadFromFile(string szConfigFile) {


	FILE *pConfigFile;

	printf("%s\n", "Start loading config ...");

	_szConfigFilename = szConfigFile; // save name of config file

	pConfigFile = fopen(szConfigFile.c_str(), "r");

	if (!pConfigFile) {
		printf("%s\n", "Cannot open config file ...");
		throw "Cannot open config file!";
	}

	//Go over each line:
	char szBuffer[1024];


	while(fgets(szBuffer, 1024, pConfigFile) != NULL) 
	{
		char * szKey = new char[1024];
		char * szValue = new char[1024];
		sscanf(szBuffer, "%s = %s %*s", szKey, szValue);
		string sKey(szKey);
		string sVal(szValue);

		this->_mpConfigs[sKey] = sVal;
		printf("%s = %s \n", sKey.c_str(), sVal.c_str());
		//printf("Size of map: %d\n", this->_mpConfigs.size());
	}

	fclose(pConfigFile);

	this->fnParseNumericConfigs();
	//printf("Size of map: %d\n", this->_mpConfigs.size());
	printf("%s = %s \n", "PhenotypeFile", this->GetConfig("PhenotypeFile").c_str());
	printf("%s = %f \n", "pop1_init_size", this->GetNumericConfig("pop1_init_size"));
	//printf("Size of map: %d\n", this->_mpConfigs.size());

	/*
	for (std::map<char *,char *>::iterator it = this->_mpConfigs.begin(); it != this->_mpConfigs.end(); ++it) { // go over the configuration map with string values

		printf("%s%s", it->first, it->second);
	}
	*/
	
	#ifdef _OPENMP

		int nThreads = (int)this->GetNumericConfig("NumThreads");
		if (nThreads <= 0 ) {
			omp_set_num_threads( 2 );
		}
		else {
			omp_set_num_threads( nThreads );
		}
	#endif

	//Load other config files:
	this->pMarkerConfig->LoadFromFile(this->GetConfig("MarkerFile"));
	this->pRecombProbConfig->LoadFromFile(this->GetConfig("MarkerProbFile"));
	this->pPhenotypeConfig->LoadFromFile(this->GetConfig("PhenotypeFile"));
	this->pGeneConfig->LoadFromFile(this->GetConfig("GeneFile"));
	this->pNaturalSelConfig->LoadFromFile(this->GetConfig("NaturalSelection"));
	this->pSexualSelConfig->LoadFromFile(this->GetConfig("SexualSelection"));
	this->pMarkerConfig->CalculateMapDistances();
	this->fnParseSampleGenDef();

	if (this->GetNumericConfig("LogVerbose") == -1) {
		this->_nVerboseLogLevel = 0;//default, not verbose
	}
	else {
		this->_nVerboseLogLevel = this->GetNumericConfig("LogVerbose");
	}

	this->bOutputFirst3Gens = (this->GetConfig("DisableOutputForFirst3Gens")!="yes");

}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x840, %rsp            # imm = 0x840
movq %rsi, -0x750(%rbp)
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0x758(%rbp)
leaq 0x5033a(%rip), %rdi     # 0x77326
leaq 0x50864(%rip), %rsi     # 0x77857
movb $0x0, %al
callq 0x8080
movq -0x758(%rbp), %rdi
movq -0x750(%rbp), %rsi
addq $0x38, %rdi
callq 0x8070
movq -0x750(%rbp), %rdi
callq 0x81d0
movq %rax, %rdi
leaq 0x51f1b(%rip), %rsi     # 0x78f42
callq 0x85e0
movq %rax, -0x18(%rbp)
cmpq $0x0, -0x18(%rbp)
jne 0x27073
leaq 0x502e8(%rip), %rdi     # 0x77326
leaq 0x5082b(%rip), %rsi     # 0x77870
movb $0x0, %al
callq 0x8080
movl $0x8, %edi
callq 0x8230
movq %rax, %rdi
leaq 0x5082c(%rip), %rax     # 0x7788c
movq %rax, (%rdi)
movq 0x82ede(%rip), %rsi     # 0xa9f48
xorl %eax, %eax
movl %eax, %edx
callq 0x8820
jmp 0x27075
leaq -0x420(%rbp), %rdi
movq -0x18(%rbp), %rdx
movl $0x400, %esi            # imm = 0x400
callq 0x8750
cmpq $0x0, %rax
je 0x27271
movl $0x400, %edi            # imm = 0x400
movq %rdi, -0x770(%rbp)
callq 0x8040
movq -0x770(%rbp), %rdi
movq %rax, -0x428(%rbp)
callq 0x8040
movq %rax, -0x430(%rbp)
movq -0x428(%rbp), %rdx
movq -0x430(%rbp), %rcx
leaq 0x507d1(%rip), %rsi     # 0x778a5
xorl %eax, %eax
leaq -0x420(%rbp), %rdi
callq 0x8480
movq -0x428(%rbp), %rax
movq %rax, -0x768(%rbp)
leaq -0x451(%rbp), %rdi
movq %rdi, -0x760(%rbp)
callq 0x8870
movq -0x768(%rbp), %rsi
movq -0x760(%rbp), %rdx
leaq -0x450(%rbp), %rdi
callq 0xcb30
jmp 0x2711f
leaq -0x451(%rbp), %rdi
callq 0x8540
movq -0x430(%rbp), %rax
movq %rax, -0x780(%rbp)
leaq -0x489(%rbp), %rdi
movq %rdi, -0x778(%rbp)
callq 0x8870
movq -0x780(%rbp), %rsi
movq -0x778(%rbp), %rdx
leaq -0x488(%rbp), %rdi
callq 0xcb30
jmp 0x27168
leaq -0x489(%rbp), %rdi
callq 0x8540
movq -0x758(%rbp), %rdi
addq $0x58, %rdi
leaq -0x450(%rbp), %rsi
callq 0x2b1e0
movq %rax, -0x788(%rbp)
jmp 0x27194
movq -0x788(%rbp), %rdi
leaq -0x488(%rbp), %rsi
callq 0x8070
jmp 0x271a9
leaq -0x450(%rbp), %rdi
callq 0x81d0
movq %rax, -0x790(%rbp)
leaq -0x488(%rbp), %rdi
callq 0x81d0
movq -0x790(%rbp), %rsi
movq %rax, %rdx
leaq 0x506d8(%rip), %rdi     # 0x778b1
xorl %eax, %eax
callq 0x8080
jmp 0x271e2
leaq -0x488(%rbp), %rdi
callq 0x82e0
leaq -0x450(%rbp), %rdi
callq 0x82e0
jmp 0x27075
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x460(%rbp)
movl %eax, -0x464(%rbp)
leaq -0x451(%rbp), %rdi
callq 0x8540
jmp 0x27cd4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x460(%rbp)
movl %eax, -0x464(%rbp)
leaq -0x489(%rbp), %rdi
callq 0x8540
jmp 0x27260
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x460(%rbp)
movl %eax, -0x464(%rbp)
leaq -0x488(%rbp), %rdi
callq 0x82e0
leaq -0x450(%rbp), %rdi
callq 0x82e0
jmp 0x27cd4
movq -0x18(%rbp), %rdi
callq 0x84b0
movq -0x758(%rbp), %rdi
callq 0x27ce0
leaq -0x4d1(%rbp), %rdi
movq %rdi, -0x798(%rbp)
callq 0x8870
movq -0x798(%rbp), %rdx
leaq 0x50614(%rip), %rsi     # 0x778bb
leaq -0x4d0(%rbp), %rdi
callq 0xcb30
jmp 0x272b5
movq -0x758(%rbp), %rsi
leaq -0x4b0(%rbp), %rdi
leaq -0x4d0(%rbp), %rdx
callq 0x1c190
jmp 0x272d1
leaq -0x4b0(%rbp), %rdi
callq 0x81d0
movq %rax, %rdx
leaq 0x505ca(%rip), %rdi     # 0x778b1
leaq 0x505cd(%rip), %rsi     # 0x778bb
xorl %eax, %eax
callq 0x8080
jmp 0x272f7
leaq -0x4b0(%rbp), %rdi
callq 0x82e0
leaq -0x4d0(%rbp), %rdi
callq 0x82e0
leaq -0x4d1(%rbp), %rdi
callq 0x8540
leaq -0x4f9(%rbp), %rdi
movq %rdi, -0x7a0(%rbp)
callq 0x8870
movq -0x7a0(%rbp), %rdx
leaq 0x50597(%rip), %rsi     # 0x778d3
leaq -0x4f8(%rbp), %rdi
callq 0xcb30
jmp 0x2734a
movq -0x758(%rbp), %rdi
leaq -0x4f8(%rbp), %rsi
callq 0x27e40
movsd %xmm0, -0x7a8(%rbp)
jmp 0x27367
movsd -0x7a8(%rbp), %xmm0
leaq 0x50553(%rip), %rdi     # 0x778c9
leaq 0x50556(%rip), %rsi     # 0x778d3
movb $0x1, %al
callq 0x8080
jmp 0x27386
leaq -0x4f8(%rbp), %rdi
callq 0x82e0
leaq -0x4f9(%rbp), %rdi
callq 0x8540
movq -0x758(%rbp), %rax
movq (%rax), %rax
movq %rax, -0x7b8(%rbp)
leaq -0x541(%rbp), %rdi
movq %rdi, -0x7b0(%rbp)
callq 0x8870
movq -0x7b0(%rbp), %rdx
leaq 0x50512(%rip), %rsi     # 0x778e2
leaq -0x540(%rbp), %rdi
callq 0xcb30
jmp 0x273de
movq -0x758(%rbp), %rsi
leaq -0x520(%rbp), %rdi
leaq -0x540(%rbp), %rdx
callq 0x1c190
jmp 0x273fa
movq -0x7b8(%rbp), %rdi
leaq -0x520(%rbp), %rsi
callq 0x1b7f0
jmp 0x2740f
leaq -0x520(%rbp), %rdi
callq 0x82e0
leaq -0x540(%rbp), %rdi
callq 0x82e0
leaq -0x541(%rbp), %rdi
callq 0x8540
movq -0x758(%rbp), %rax
movq 0x8(%rax), %rax
movq %rax, -0x7c8(%rbp)
leaq -0x589(%rbp), %rdi
movq %rdi, -0x7c0(%rbp)
callq 0x8870
movq -0x7c0(%rbp), %rdx
leaq 0x50487(%rip), %rsi     # 0x778ed
leaq -0x588(%rbp), %rdi
callq 0xcb30
jmp 0x27474
movq -0x758(%rbp), %rsi
leaq -0x568(%rbp), %rdi
leaq -0x588(%rbp), %rdx
callq 0x1c190
jmp 0x27490
movq -0x7c8(%rbp), %rdi
leaq -0x568(%rbp), %rsi
callq 0x1d3c0
jmp 0x274a5
leaq -0x568(%rbp), %rdi
callq 0x82e0
leaq -0x588(%rbp), %rdi
callq 0x82e0
leaq -0x589(%rbp), %rdi
callq 0x8540
movq -0x758(%rbp), %rax
movq 0x10(%rax), %rax
movq %rax, -0x7d8(%rbp)
leaq -0x5d1(%rbp), %rdi
movq %rdi, -0x7d0(%rbp)
callq 0x8870
movq -0x7d0(%rbp), %rdx
leaq 0x503bf(%rip), %rsi     # 0x778bb
leaq -0x5d0(%rbp), %rdi
callq 0xcb30
jmp 0x2750a
movq -0x758(%rbp), %rsi
leaq -0x5b0(%rbp), %rdi
leaq -0x5d0(%rbp), %rdx
callq 0x1c190
jmp 0x27526
movq -0x7d8(%rbp), %rdi
leaq -0x5b0(%rbp), %rsi
callq 0x20ce0
jmp 0x2753b
leaq -0x5b0(%rbp), %rdi
callq 0x82e0
leaq -0x5d0(%rbp), %rdi
callq 0x82e0
leaq -0x5d1(%rbp), %rdi
callq 0x8540
movq -0x758(%rbp), %rax
movq 0x18(%rax), %rax
movq %rax, -0x7e8(%rbp)
leaq -0x619(%rbp), %rdi
movq %rdi, -0x7e0(%rbp)
callq 0x8870
movq -0x7e0(%rbp), %rdx
leaq 0x5036a(%rip), %rsi     # 0x778fc
leaq -0x618(%rbp), %rdi
callq 0xcb30
jmp 0x275a0
movq -0x758(%rbp), %rsi
leaq -0x5f8(%rbp), %rdi
leaq -0x618(%rbp), %rdx
callq 0x1c190
jmp 0x275bc
movq -0x7e8(%rbp), %rdi
leaq -0x5f8(%rbp), %rsi
callq 0x25b50
jmp 0x275d1
leaq -0x5f8(%rbp), %rdi
callq 0x82e0
leaq -0x618(%rbp), %rdi
callq 0x82e0
leaq -0x619(%rbp), %rdi
callq 0x8540
movq -0x758(%rbp), %rax
movq 0x20(%rax), %rax
movq %rax, -0x7f8(%rbp)
leaq -0x661(%rbp), %rdi
movq %rdi, -0x7f0(%rbp)
callq 0x8870
movq -0x7f0(%rbp), %rdx
leaq 0x502dd(%rip), %rsi     # 0x77905
leaq -0x660(%rbp), %rdi
callq 0xcb30
jmp 0x27636
movq -0x758(%rbp), %rsi
leaq -0x640(%rbp), %rdi
leaq -0x660(%rbp), %rdx
callq 0x1c190
jmp 0x27652
movq -0x7f8(%rbp), %rdi
leaq -0x640(%rbp), %rsi
callq 0x21db0
jmp 0x27667
leaq -0x640(%rbp), %rdi
callq 0x82e0
leaq -0x660(%rbp), %rdi
callq 0x82e0
leaq -0x661(%rbp), %rdi
callq 0x8540
movq -0x758(%rbp), %rax
movq 0x28(%rax), %rax
movq %rax, -0x808(%rbp)
leaq -0x6a9(%rbp), %rdi
movq %rdi, -0x800(%rbp)
callq 0x8870
movq -0x800(%rbp), %rdx
leaq 0x50258(%rip), %rsi     # 0x77916
leaq -0x6a8(%rbp), %rdi
callq 0xcb30
jmp 0x276cc
movq -0x758(%rbp), %rsi
leaq -0x688(%rbp), %rdi
leaq -0x6a8(%rbp), %rdx
callq 0x1c190
jmp 0x276e8
movq -0x808(%rbp), %rdi
leaq -0x688(%rbp), %rsi
callq 0x23cb0
jmp 0x276fd
leaq -0x688(%rbp), %rdi
callq 0x82e0
leaq -0x6a8(%rbp), %rdi
callq 0x82e0
leaq -0x6a9(%rbp), %rdi
callq 0x8540
movq -0x758(%rbp), %rax
movq (%rax), %rdi
callq 0x1c270
movq -0x758(%rbp), %rdi
callq 0x27ed0
leaq -0x6d1(%rbp), %rdi
movq %rdi, -0x810(%rbp)
callq 0x8870
movq -0x810(%rbp), %rdx
leaq 0x501c9(%rip), %rsi     # 0x77926
leaq -0x6d0(%rbp), %rdi
callq 0xcb30
jmp 0x2776b
movq -0x758(%rbp), %rdi
leaq -0x6d0(%rbp), %rsi
callq 0x27e40
movsd %xmm0, -0x818(%rbp)
jmp 0x27788
leaq -0x6d0(%rbp), %rdi
callq 0x82e0
leaq -0x6d1(%rbp), %rdi
callq 0x8540
movsd -0x818(%rbp), %xmm0
movsd 0x4eee8(%rip), %xmm1    # 0x76698
ucomisd %xmm1, %xmm0
jne 0x27b0e
jp 0x27b0e
movq -0x758(%rbp), %rax
movl $0x0, 0x30(%rax)
jmp 0x27bcd
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x460(%rbp)
movl %eax, -0x464(%rbp)
jmp 0x27825
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x460(%rbp)
movl %eax, -0x464(%rbp)
jmp 0x27819
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x460(%rbp)
movl %eax, -0x464(%rbp)
leaq -0x4b0(%rbp), %rdi
callq 0x82e0
leaq -0x4d0(%rbp), %rdi
callq 0x82e0
leaq -0x4d1(%rbp), %rdi
callq 0x8540
jmp 0x27cd4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x460(%rbp)
movl %eax, -0x464(%rbp)
jmp 0x27868
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x460(%rbp)
movl %eax, -0x464(%rbp)
leaq -0x4f8(%rbp), %rdi
callq 0x82e0
leaq -0x4f9(%rbp), %rdi
callq 0x8540
jmp 0x27cd4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x460(%rbp)
movl %eax, -0x464(%rbp)
jmp 0x278cb
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x460(%rbp)
movl %eax, -0x464(%rbp)
jmp 0x278bf
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x460(%rbp)
movl %eax, -0x464(%rbp)
leaq -0x520(%rbp), %rdi
callq 0x82e0
leaq -0x540(%rbp), %rdi
callq 0x82e0
leaq -0x541(%rbp), %rdi
callq 0x8540
jmp 0x27cd4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x460(%rbp)
movl %eax, -0x464(%rbp)
jmp 0x2792e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x460(%rbp)
movl %eax, -0x464(%rbp)
jmp 0x27922
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x460(%rbp)
movl %eax, -0x464(%rbp)
leaq -0x568(%rbp), %rdi
callq 0x82e0
leaq -0x588(%rbp), %rdi
callq 0x82e0
leaq -0x589(%rbp), %rdi
callq 0x8540
jmp 0x27cd4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x460(%rbp)
movl %eax, -0x464(%rbp)
jmp 0x27991
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x460(%rbp)
movl %eax, -0x464(%rbp)
jmp 0x27985
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x460(%rbp)
movl %eax, -0x464(%rbp)
leaq -0x5b0(%rbp), %rdi
callq 0x82e0
leaq -0x5d0(%rbp), %rdi
callq 0x82e0
leaq -0x5d1(%rbp), %rdi
callq 0x8540
jmp 0x27cd4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x460(%rbp)
movl %eax, -0x464(%rbp)
jmp 0x279f4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x460(%rbp)
movl %eax, -0x464(%rbp)
jmp 0x279e8
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x460(%rbp)
movl %eax, -0x464(%rbp)
leaq -0x5f8(%rbp), %rdi
callq 0x82e0
leaq -0x618(%rbp), %rdi
callq 0x82e0
leaq -0x619(%rbp), %rdi
callq 0x8540
jmp 0x27cd4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x460(%rbp)
movl %eax, -0x464(%rbp)
jmp 0x27a57
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x460(%rbp)
movl %eax, -0x464(%rbp)
jmp 0x27a4b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x460(%rbp)
movl %eax, -0x464(%rbp)
leaq -0x640(%rbp), %rdi
callq 0x82e0
leaq -0x660(%rbp), %rdi
callq 0x82e0
leaq -0x661(%rbp), %rdi
callq 0x8540
jmp 0x27cd4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x460(%rbp)
movl %eax, -0x464(%rbp)
jmp 0x27aba
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x460(%rbp)
movl %eax, -0x464(%rbp)
jmp 0x27aae
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x460(%rbp)
movl %eax, -0x464(%rbp)
leaq -0x688(%rbp), %rdi
callq 0x82e0
leaq -0x6a8(%rbp), %rdi
callq 0x82e0
leaq -0x6a9(%rbp), %rdi
callq 0x8540
jmp 0x27cd4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x460(%rbp)
movl %eax, -0x464(%rbp)
jmp 0x27afd
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x460(%rbp)
movl %eax, -0x464(%rbp)
leaq -0x6d0(%rbp), %rdi
callq 0x82e0
leaq -0x6d1(%rbp), %rdi
callq 0x8540
jmp 0x27cd4
leaq -0x6f9(%rbp), %rdi
movq %rdi, -0x820(%rbp)
callq 0x8870
movq -0x820(%rbp), %rdx
leaq 0x4fdf7(%rip), %rsi     # 0x77926
leaq -0x6f8(%rbp), %rdi
callq 0xcb30
jmp 0x27b3d
movq -0x758(%rbp), %rdi
leaq -0x6f8(%rbp), %rsi
callq 0x27e40
movsd %xmm0, -0x828(%rbp)
jmp 0x27b5a
movq -0x758(%rbp), %rax
movsd -0x828(%rbp), %xmm0
cvttsd2si %xmm0, %ecx
movl %ecx, 0x30(%rax)
leaq -0x6f8(%rbp), %rdi
callq 0x82e0
leaq -0x6f9(%rbp), %rdi
callq 0x8540
jmp 0x27bcd
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x460(%rbp)
movl %eax, -0x464(%rbp)
jmp 0x27bbc
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x460(%rbp)
movl %eax, -0x464(%rbp)
leaq -0x6f8(%rbp), %rdi
callq 0x82e0
leaq -0x6f9(%rbp), %rdi
callq 0x8540
jmp 0x27cd4
leaq -0x741(%rbp), %rdi
movq %rdi, -0x830(%rbp)
callq 0x8870
movq -0x830(%rbp), %rdx
leaq 0x4fd43(%rip), %rsi     # 0x77931
leaq -0x740(%rbp), %rdi
callq 0xcb30
jmp 0x27bfc
movq -0x758(%rbp), %rsi
leaq -0x720(%rbp), %rdi
leaq -0x740(%rbp), %rdx
callq 0x1c190
jmp 0x27c18
leaq 0x50ca5(%rip), %rsi     # 0x788c4
leaq -0x720(%rbp), %rdi
callq 0x2d8a0
movb %al, -0x831(%rbp)
jmp 0x27c33
movq -0x758(%rbp), %rax
movb -0x831(%rbp), %cl
andb $0x1, %cl
movb %cl, 0xd4(%rax)
leaq -0x720(%rbp), %rdi
callq 0x82e0
leaq -0x740(%rbp), %rdi
callq 0x82e0
leaq -0x741(%rbp), %rdi
callq 0x8540
addq $0x840, %rsp            # imm = 0x840
popq %rbp
retq
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x460(%rbp)
movl %eax, -0x464(%rbp)
jmp 0x27cc8
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x460(%rbp)
movl %eax, -0x464(%rbp)
jmp 0x27cbc
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x460(%rbp)
movl %eax, -0x464(%rbp)
leaq -0x720(%rbp), %rdi
callq 0x82e0
leaq -0x740(%rbp), %rdi
callq 0x82e0
leaq -0x741(%rbp), %rdi
callq 0x8540
movq -0x460(%rbp), %rdi
callq 0x8860