// File: /workspace/github_cpp_makefile_star2_O3/richardposner[P]BioNetFit2/src/code/Swarm.cpp
// Function: Swarm::Swarm()
Swarm::Swarm() {

	// Whether or not we are master
	isMaster = false;
	resumingSavedSwarm = false;
	swarmComm = 0;
	fitCompareTolerance = 1e-6;
	bootstrapCounter = 0;
	commInit = false;
	verbose = false;  //razi added for debugging

	options.jobName = "";
	options.fitType = "";
	options.outputDir = "";
	options.bngCommand = "";
	options.outputEvery = 100;

	options.models.clear();
	options.defaultModel = -1;
	sConf_.clear();

	options.synchronicity = 0;
	options.maxGenerations = 0;
	options.swarmSize = 0;
	options.minFit = 0;
	options.bootstrap = 0;
	options.parallelCount = 0;
	options.seed = 0;

	options.useCluster = false;
	options.saveClusterOutput = false;
	options.emailWhenFinished = false;
	options.emailAddress = "";

	options.usePipes = false;
	options.divideByInit = false;
	options.logTransformSimData = false;
	options.standardizeSimData = false;
	options.standardizeExpData = false;

	options.deleteOldFiles = true;
	options.objFunc = 1;
	options.extraWeight = 0;
	options.swapRate = 0.5;
	options.forceDifferentParents = true;
	options.maxRetryDifferentParents = 100;
	options.smoothing = 1;
	options.keepParents = 0;

	//options.maxFitTime = MAX_LONG;
	options.maxFitTime = std::string("700:00:00");
	options.maxNumSimulations = MAX_LONG;

	// PSO options
	options.inertia = 0.72; // 0.72
	options.cognitive = 1.49; // 1.49
	options.social = 1.49; // 1.49
	options.nmax = 0; // 20
	options.nmin = 80; // 80
	options.inertiaInit = 1; // 1
	options.inertiaFinal = 0.1; // 0.1
	options.absTolerance = 10e-4; // 10E-4
	options.relTolerance = 10e-4; // 10E-4
	options.mutateQPSO = false;
	options.betaMin = 0.5;
	options.betaMax = 1.0;

	options.topology = "fullyconnected"; // fullyconnected
	options.psoType = "pso"; // pso

	options.enhancedStop = false; // true
	options.enhancedInertia = false; // true

	options.numIslands = 0;

	options.minTemp = pow(10, -10);
	options.minRadius = pow(10, -6);
	options.localSearchProbability = 0.01;
	options.randParamsProbability = 0.1;

	options.verbosity = 1;
	hasMutate = false;

	currentGeneration = 0;

	/*
	std::map<int, double> particleBestFits_;
	std::map<int, std::vector<double> > particleBestParamSets_;
	std::map<int, std::vector<double> > particleCurrParamSets_;
	std::map<int, double> particleWeights_;
	std::map<double, int> particleBestFitsByFit_;
	 */

	permanenceCounter_ = 0; // 0
	flightCounter_ = 0; // 0
	weightedAvgPos_ = 0; // 0
	optimum_ = 0; // 0
	inertiaUpdateCounter_ = 0; // 0;
	beta_ = 0.7;
	cauchyMutator_ = 0.2;

	auto seed = chrono::high_resolution_clock::now().time_since_epoch().count();
	generalRand.seed(seed);
	generalRand.discard(700000);

	/*
	if (options.seed) {
		generalRand.seed(options.seed);
		generalRand.discard(700000);

		srand(options.seed);
	}
	else {
		// TODO: Make sure everything is being seeded properly and in the proper place. Also let's do away with rand()
		// Seed our random number engine
		auto seed = chrono::high_resolution_clock::now().time_since_epoch().count();
		generalRand.seed(seed);
		generalRand.discard(700000);

		srand (std::tr1::random_device{}());
	}
	 */

}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0xf8, %rsp
movq %rdi, %rbx
leaq 0x10(%rdi), %rax
movl $0x0, 0x10(%rdi)
movq $0x0, 0x18(%rdi)
movq %rax, 0x20(%rdi)
movq %rax, 0x28(%rdi)
leaq 0x58(%rdi), %r15
xorps %xmm0, %xmm0
movups %xmm0, 0x30(%rdi)
movups %xmm0, 0x40(%rdi)
leaq 0xa144f(%rip), %rsi     # 0x1178fc
movq %r15, %rdi
callq 0xa7120
leaq 0xa20(%rbx), %rdi
leaq 0xa1439(%rip), %rsi     # 0x1178fc
callq 0xa7120
leaq 0x1408(%rbx), %rax
xorl %r13d, %r13d
movl %r13d, 0x1408(%rbx)
movq %r13, 0x1410(%rbx)
movq %rax, 0x1418(%rbx)
movq %rax, 0x1420(%rbx)
movq %r13, 0x1428(%rbx)
leaq 0x1438(%rbx), %rax
movl %r13d, 0x1438(%rbx)
movq %r13, 0x1440(%rbx)
movq %rax, 0x1448(%rbx)
movq %rax, 0x1450(%rbx)
movq %r13, 0x1458(%rbx)
leaq 0x1468(%rbx), %rax
movl %r13d, 0x1468(%rbx)
movq %r13, 0x1470(%rbx)
movq %rax, 0x1478(%rbx)
movq %rax, 0x1480(%rbx)
movq %r13, 0x1488(%rbx)
leaq 0x1498(%rbx), %rax
movl %r13d, 0x1498(%rbx)
movq %r13, 0x14a0(%rbx)
movq %rax, 0x14a8(%rbx)
movq %rax, 0x14b0(%rbx)
movq %r13, 0x14b8(%rbx)
leaq 0x14c0(%rbx), %r14
leaq 0x14d0(%rbx), %rax
movq %rax, 0x14c0(%rbx)
movq %r13, 0x14c8(%rbx)
movb %r13b, 0x14d0(%rbx)
leaq 0x14f0(%rbx), %rax
movq %rax, 0x14e0(%rbx)
movq %r13, 0x14e8(%rbx)
movb %r13b, 0x14f0(%rbx)
leaq 0x1510(%rbx), %rax
movq %rax, 0x1500(%rbx)
movq %r13, 0x1508(%rbx)
movb %r13b, 0x1510(%rbx)
leaq 0x1530(%rbx), %rax
movq %rax, 0x1520(%rbx)
movq %r13, 0x1528(%rbx)
movb %r13b, 0x1530(%rbx)
leaq 0x1550(%rbx), %rax
movq %rax, 0x1540(%rbx)
movq %r13, 0x1548(%rbx)
movb %r13b, 0x1550(%rbx)
leaq 0x1568(%rbx), %rax
movl %r13d, 0x1568(%rbx)
movq %r13, 0x1570(%rbx)
movq %rax, 0x1578(%rbx)
movq %rax, 0x1580(%rbx)
movq %r13, 0x1588(%rbx)
leaq 0x1598(%rbx), %rax
movl %r13d, 0x1598(%rbx)
movq %r13, 0x15a0(%rbx)
movq %rax, 0x15a8(%rbx)
movq %rax, 0x15b0(%rbx)
leaq 0x15e8(%rbx), %rax
movl %r13d, 0x15e8(%rbx)
movq %r13, 0x15f0(%rbx)
xorps %xmm0, %xmm0
movups %xmm0, 0x15c8(%rbx)
movups %xmm0, 0x15b8(%rbx)
movq %rax, 0x15f8(%rbx)
movq %rax, 0x1600(%rbx)
movq %r13, 0x1608(%rbx)
movl %r13d, 0x1610(%rbx)
leaq 0x1670(%rbx), %rax
movq %rax, 0x1660(%rbx)
movq %r13, 0x1668(%rbx)
movb %r13b, 0x1670(%rbx)
leaq 0x16c8(%rbx), %rax
movq %rax, 0x16b8(%rbx)
movq %r13, 0x16c0(%rbx)
movb %r13b, 0x16c8(%rbx)
leaq 0x16e8(%rbx), %rax
movq %rax, 0x16d8(%rbx)
movq %r13, 0x16e0(%rbx)
movb %r13b, 0x16e8(%rbx)
leaq 0x1740(%rbx), %rax
movq %rax, 0x1730(%rbx)
movq %r13, 0x1738(%rbx)
movb %r13b, 0x1740(%rbx)
leaq 0x1760(%rbx), %rax
movq %rax, 0x1750(%rbx)
movq %r13, 0x1758(%rbx)
movb %r13b, 0x1760(%rbx)
leaq 0x1788(%rbx), %rax
movq %rax, 0x1778(%rbx)
movq %r13, 0x1780(%rbx)
movb %r13b, 0x1788(%rbx)
leaq 0x17b0(%rbx), %rax
movq %rax, 0x17a0(%rbx)
movq %r13, 0x17a8(%rbx)
movb %r13b, 0x17b0(%rbx)
leaq 0x17d0(%rbx), %rax
movq %rax, 0x17c0(%rbx)
movq %r13, 0x17c8(%rbx)
movb %r13b, 0x17d0(%rbx)
leaq 0x17f0(%rbx), %rax
movq %rax, 0x10(%rsp)
movq %rax, 0x17e0(%rbx)
movq %r13, 0x17e8(%rbx)
movb %r13b, 0x17f0(%rbx)
leaq 0x1810(%rbx), %rax
movq %rax, 0x8(%rsp)
movq %rax, 0x1800(%rbx)
movq %r13, 0x1808(%rbx)
movb %r13b, 0x1810(%rbx)
leaq 0x1828(%rbx), %rax
movl %r13d, 0x1828(%rbx)
movq %r13, 0x1830(%rbx)
movq %rax, 0x1838(%rbx)
movq %rax, 0x1840(%rbx)
leaq 0x1860(%rbx), %rax
movl %r13d, 0x1860(%rbx)
movq %r13, 0x1868(%rbx)
movups %xmm0, 0x1848(%rbx)
movq %rax, 0x1870(%rbx)
movq %rax, 0x1878(%rbx)
leaq 0x1898(%rbx), %rax
movl %r13d, 0x1898(%rbx)
movq %r13, 0x18a0(%rbx)
movups %xmm0, 0x1880(%rbx)
movq %rax, 0x18a8(%rbx)
movq %rax, 0x18b0(%rbx)
movq %r13, 0x18b8(%rbx)
leaq 0x18c8(%rbx), %rax
movl %r13d, 0x18c8(%rbx)
movq %r13, 0x18d0(%rbx)
movq %rax, 0x18d8(%rbx)
movq %rax, 0x18e0(%rbx)
leaq 0x1910(%rbx), %rax
movl %r13d, 0x1910(%rbx)
movq %r13, 0x1918(%rbx)
movups %xmm0, 0x18e8(%rbx)
movups %xmm0, 0x18f8(%rbx)
movq %rax, 0x1920(%rbx)
movq %rax, 0x1928(%rbx)
leaq 0x1938(%rbx), %r12
leaq 0x1958(%rbx), %rax
movl %r13d, 0x1958(%rbx)
movq %r13, 0x1960(%rbx)
movups %xmm0, 0x1940(%rbx)
movups %xmm0, 0x1930(%rbx)
movq %rax, 0x1968(%rbx)
movq %rax, 0x1970(%rbx)
leaq 0x19a0(%rbx), %rax
movl %r13d, 0x19a0(%rbx)
movq %r13, 0x19a8(%rbx)
movups %xmm0, 0x1988(%rbx)
movups %xmm0, 0x1978(%rbx)
movq %rax, 0x19b0(%rbx)
movq %rax, 0x19b8(%rbx)
leaq 0x19d8(%rbx), %rax
movl %r13d, 0x19d8(%rbx)
movq %r13, 0x19e0(%rbx)
movups %xmm0, 0x19c0(%rbx)
movq %rax, 0x19e8(%rbx)
movq %rax, 0x19f0(%rbx)
leaq 0x1a28(%rbx), %rax
movl %r13d, 0x1a28(%rbx)
movq %r13, 0x1a30(%rbx)
movq %r13, 0x1a18(%rbx)
movups %xmm0, 0x1a08(%rbx)
movups %xmm0, 0x19f8(%rbx)
movq %rax, 0x1a38(%rbx)
movq %rax, 0x1a40(%rbx)
movq %r13, 0x1a48(%rbx)
leaq 0x1a58(%rbx), %rax
movl %r13d, 0x1a58(%rbx)
movq %r13, 0x1a60(%rbx)
movq %rax, 0x1a68(%rbx)
movq %rax, 0x1a70(%rbx)
movq %r13, 0x1a78(%rbx)
leaq 0x1a88(%rbx), %rax
movl %r13d, 0x1a88(%rbx)
movq %r13, 0x1a90(%rbx)
movq %rax, 0x1a98(%rbx)
movq %rax, 0x1aa0(%rbx)
movq %r13, 0x1aa8(%rbx)
leaq 0x1ab8(%rbx), %rax
movl %r13d, 0x1ab8(%rbx)
movq %r13, 0x1ac0(%rbx)
movq %rax, 0x1ac8(%rbx)
movq %rax, 0x1ad0(%rbx)
movq %r13, 0x1ad8(%rbx)
leaq 0x1ae8(%rbx), %rax
movl %r13d, 0x1ae8(%rbx)
movq %r13, 0x1af0(%rbx)
movq %rax, 0x1af8(%rbx)
movq %rax, 0x1b00(%rbx)
movq %r13, 0x1b08(%rbx)
leaq 0x1b18(%rbx), %rax
movl %r13d, 0x1b18(%rbx)
movq %r13, 0x1b20(%rbx)
movq %rax, 0x1b28(%rbx)
movq %rax, 0x1b30(%rbx)
movq %r13, 0x1b38(%rbx)
leaq 0x1b48(%rbx), %rax
movl %r13d, 0x1b48(%rbx)
movq %r13, 0x1b50(%rbx)
movq %rax, 0x1b58(%rbx)
movq %rax, 0x1b60(%rbx)
movq %r13, 0x1b68(%rbx)
leaq 0x1b78(%rbx), %rax
movl %r13d, 0x1b78(%rbx)
movq %r13, 0x1b80(%rbx)
movq %rax, 0x1b88(%rbx)
movq %rax, 0x1b90(%rbx)
movq %r13, 0x1b98(%rbx)
leaq 0x1ba8(%rbx), %rax
movl %r13d, 0x1ba8(%rbx)
movq %r13, 0x1bb0(%rbx)
movq %rax, 0x1bb8(%rbx)
movq %rax, 0x1bc0(%rbx)
movq %r13, 0x1bc8(%rbx)
leaq 0x1bd8(%rbx), %rax
movl %r13d, 0x1bd8(%rbx)
movq %r13, 0x1be0(%rbx)
movq %rax, 0x1be8(%rbx)
movq %rax, 0x1bf0(%rbx)
movq %r13, 0x1bf8(%rbx)
leaq 0x1c08(%rbx), %rax
movl %r13d, 0x1c08(%rbx)
movq %r13, 0x1c10(%rbx)
movq %rax, 0x1c18(%rbx)
movq %rax, 0x1c20(%rbx)
movq %r13, 0x1c28(%rbx)
leaq 0x1c38(%rbx), %rax
movl %r13d, 0x1c38(%rbx)
movq %r13, 0x1c40(%rbx)
movq %rax, 0x1c48(%rbx)
movq %rax, 0x1c50(%rbx)
movq %r13, 0x1c58(%rbx)
leaq 0x1c68(%rbx), %rax
movl %r13d, 0x1c68(%rbx)
movq %r13, 0x1c70(%rbx)
movq %rax, 0x1c78(%rbx)
movq %rax, 0x1c80(%rbx)
movq %r13, 0x1c88(%rbx)
leaq 0x1c98(%rbx), %rax
movl %r13d, 0x1c98(%rbx)
movq %r13, 0x1ca0(%rbx)
movq %rax, 0x1ca8(%rbx)
movq %rax, 0x1cb0(%rbx)
movq %r13, 0x1cb8(%rbx)
leaq 0x1cc8(%rbx), %rax
movl %r13d, 0x1cc8(%rbx)
movq %r13, 0x1cd0(%rbx)
movq %rax, 0x1cd8(%rbx)
movq %rax, 0x1ce0(%rbx)
movq %r13, 0x1ce8(%rbx)
leaq 0x1cf8(%rbx), %rax
movl %r13d, 0x1cf8(%rbx)
movq %r13, 0x1d00(%rbx)
movq %rax, 0x1d08(%rbx)
movq %rax, 0x1d10(%rbx)
leaq 0x1d58(%rbx), %rax
movl %r13d, 0x1d58(%rbx)
movq %r13, 0x1d60(%rbx)
movq %r13, 0x1d48(%rbx)
movups %xmm0, 0x1d38(%rbx)
movups %xmm0, 0x1d28(%rbx)
movups %xmm0, 0x1d18(%rbx)
movq %rax, 0x1d68(%rbx)
movq %rax, 0x1d70(%rbx)
movq %r13, 0x1d78(%rbx)
callq 0x220b0
movq %rax, 0x1db0(%rbx)
callq 0x220b0
movq %rax, 0x1db8(%rbx)
movb %r13b, 0x50(%rbx)
movb %r13b, 0x13f0(%rbx)
movq %r13, (%rbx)
movl $0x358637bd, 0x13f4(%rbx) # imm = 0x358637BD
movl %r13d, 0x13ec(%rbx)
movw $0x0, 0x13f8(%rbx)
movq 0x14c8(%rbx), %rdx
leaq 0x80013(%rip), %rcx     # 0xf6c71
movq %r14, 0xd0(%rsp)
movq %r14, %rdi
xorl %esi, %esi
xorl %r8d, %r8d
callq 0x22fb0
leaq 0x14e0(%rbx), %rdi
movq 0x14e8(%rbx), %rdx
leaq 0x7ffe9(%rip), %rcx     # 0xf6c71
xorl %esi, %esi
xorl %r8d, %r8d
callq 0x22fb0
leaq 0x1500(%rbx), %rdi
movq 0x1508(%rbx), %rdx
leaq 0x7ffca(%rip), %rcx     # 0xf6c71
xorl %esi, %esi
xorl %r8d, %r8d
callq 0x22fb0
leaq 0x1540(%rbx), %rdi
movq 0x1548(%rbx), %rdx
leaq 0x7ffab(%rip), %rcx     # 0xf6c71
xorl %esi, %esi
xorl %r8d, %r8d
callq 0x22fb0
leaq 0x17a0(%rbx), %r13
movl $0x64, 0x1728(%rbx)
movq 0x15c0(%rbx), %rax
cmpq %rax, 0x15c8(%rbx)
je 0x76cf8
movq %rax, 0x15c8(%rbx)
movl $0xffffffff, 0x15d8(%rbx) # imm = 0xFFFFFFFF
movq 0x1938(%rbx), %rsi
movq %r12, %rdi
callq 0x6aebc
xorl %ebp, %ebp
movb %bpl, 0x1618(%rbx)
movq $0x0, 0x1634(%rbx)
movb %bpl, 0x1631(%rbx)
movb %bpl, 0x1770(%rbx)
movb %bpl, 0x1798(%rbx)
xorps %xmm0, %xmm0
movups %xmm0, 0x161c(%rbx)
movq 0x17a8(%rbx), %rdx
leaq 0x7ff1f(%rip), %rcx     # 0xf6c71
movq %r13, %rdi
xorl %esi, %esi
xorl %r8d, %r8d
callq 0x22fb0
movb %bpl, 0x1630(%rbx)
movb %bpl, 0x163c(%rbx)
movl %ebp, 0x1640(%rbx)
movw $0x0, 0x1644(%rbx)
movb $0x1, %al
movb %al, 0x1646(%rbx)
movl $0x1, 0x162c(%rbx)
movabsq $0x3f00000000000000, %rcx # imm = 0x3F00000000000000
movq %rcx, 0x1648(%rbx)
movb %al, 0x1650(%rbx)
movabsq $0x100000064, %rax      # imm = 0x100000064
movq %rax, 0x1654(%rbx)
movl %ebp, 0x165c(%rbx)
leaq 0xe8(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x87635(%rip), %rsi     # 0xfe404
leaq 0x87637(%rip), %rdx     # 0xfe40d
leaq 0xd8(%rsp), %rdi
callq 0x321d2
leaq 0x1660(%rbx), %rdi
leaq 0x16b8(%rbx), %r13
leaq 0xd8(%rsp), %rbp
movq %rbp, %rsi
callq 0x22bb0
movq (%rbp), %rdi
cmpq %r14, %rdi
je 0x76e1a
movq 0xe8(%rsp), %rsi
incq %rsi
callq 0x229c0
movabsq $0x7fffffffffffffff, %rax # imm = 0x7FFFFFFFFFFFFFFF
movq %rax, 0x1680(%rbx)
movsd 0x8710d(%rip), %xmm0    # 0xfdf40
movsd %xmm0, 0x1688(%rbx)
movq $0x3fbeb852, 0x1690(%rbx) # imm = 0x3FBEB852
movl $0x50, 0x1698(%rbx)
movaps 0x870f9(%rip), %xmm0    # 0xfdf50
movups %xmm0, 0x169c(%rbx)
movb $0x0, 0x16ac(%rbx)
movsd 0x870f3(%rip), %xmm0    # 0xfdf60
movsd %xmm0, 0x16b0(%rbx)
movq 0x16c0(%rbx), %rdx
leaq 0x8758b(%rip), %rcx     # 0xfe40e
movl $0xe, %r8d
movq %r13, %rdi
xorl %esi, %esi
callq 0x22fb0
leaq 0x16d8(%rbx), %rdi
movq 0x16e0(%rbx), %rdx
leaq 0x880ca(%rip), %rcx     # 0xfef72
xorl %r14d, %r14d
movl $0x3, %r8d
xorl %esi, %esi
callq 0x22fb0
movw $0x0, 0x16f8(%rbx)
movl %r14d, 0x16fc(%rbx)
movaps 0x870a1(%rip), %xmm0    # 0xfdf70
movups %xmm0, 0x1710(%rbx)
movsd 0x870a2(%rip), %xmm0    # 0xfdf80
movsd %xmm0, 0x1720(%rbx)
movl $0x1, 0x1614(%rbx)
movb $0x0, 0x13f1(%rbx)
movl %r14d, 0x13e8(%rbx)
xorps %xmm0, %xmm0
movups %xmm0, 0x1d80(%rbx)
movups %xmm0, 0x1d8c(%rbx)
movaps 0x8707a(%rip), %xmm0    # 0xfdf90
movups %xmm0, 0x1da0(%rbx)
callq 0x220b0
movl %eax, 0x58(%rbx)
movl $0x1, %ecx
movl $0x17, %edx
movl %eax, %esi
shrl $0x1e, %esi
xorl %eax, %esi
imull $0x6c078965, %esi, %esi # imm = 0x6C078965
leal (%rcx,%rsi), %eax
addl %edx, %esi
addl $-0x16, %esi
movl %esi, (%rbx,%rdx,4)
incq %rcx
incq %rdx
cmpq $0x286, %rdx            # imm = 0x286
jne 0x76f2f
movq $0x270, 0xa18(%rbx) # imm = 0x270
movq %r15, %rdi
callq 0xad9f0
movq 0xa18(%rbx), %rax
movl $0xaae60, %r14d         # imm = 0xAAE60
cmpq $0x270, %rax            # imm = 0x270
jne 0x76f8d
movq %r15, %rdi
callq 0xada38
movq 0xa18(%rbx), %rax
incq %rax
movq %rax, 0xa18(%rbx)
decq %r14
jne 0x76f76
addq $0xf8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
jmp 0x76fb8
movq %rax, %r14
jmp 0x772fc
movq %rax, %r14
leaq 0x1908(%rbx), %rax
movq %rax, 0xc8(%rsp)
leaq 0x1950(%rbx), %rax
movq %rax, 0xc0(%rsp)
leaq 0x1980(%rbx), %rax
movq %rax, 0xb8(%rsp)
leaq 0x1998(%rbx), %rax
movq %rax, 0xb0(%rsp)
leaq 0x19d0(%rbx), %rax
movq %rax, 0xa0(%rsp)
leaq 0x1a08(%rbx), %rax
movq %rax, 0x90(%rsp)
leaq 0x1a20(%rbx), %rax
movq %rax, 0x80(%rsp)
leaq 0x1a50(%rbx), %rax
movq %rax, 0x78(%rsp)
leaq 0x1a80(%rbx), %rax
movq %rax, 0x70(%rsp)
leaq 0x1ab0(%rbx), %rax
movq %rax, 0x68(%rsp)
leaq 0x1ae0(%rbx), %rax
movq %rax, 0x60(%rsp)
leaq 0x1b10(%rbx), %rax
movq %rax, 0x58(%rsp)
leaq 0x1b40(%rbx), %rax
movq %rax, 0x50(%rsp)
leaq 0x1b70(%rbx), %rax
movq %rax, 0x48(%rsp)
leaq 0x1ba0(%rbx), %rax
movq %rax, 0x40(%rsp)
leaq 0x1bd0(%rbx), %rax
movq %rax, 0x38(%rsp)
leaq 0x1c00(%rbx), %rax
movq %rax, 0x30(%rsp)
leaq 0x1c30(%rbx), %rax
movq %rax, 0x28(%rsp)
leaq 0x1c60(%rbx), %rax
movq %rax, 0x20(%rsp)
leaq 0x1c90(%rbx), %rax
movq %rax, 0x18(%rsp)
leaq 0x1cc0(%rbx), %r13
leaq 0x1cf0(%rbx), %rbp
leaq 0x1d38(%rbx), %r15
leaq 0x1d50(%rbx), %rdi
callq 0x7260c
movq %r15, %rdi
callq 0xa7156
movq 0x1d20(%rbx), %rdi
testq %rdi, %rdi
je 0x77104
movq 0x1d30(%rbx), %rsi
subq %rdi, %rsi
callq 0x229c0
leaq 0x1820(%rbx), %r15
leaq 0x1858(%rbx), %rax
movq %rax, 0xa8(%rsp)
leaq 0x1890(%rbx), %rax
movq %rax, 0x98(%rsp)
leaq 0x18c0(%rbx), %rax
movq %rax, 0x88(%rsp)
movq %rbp, %rdi
callq 0xac1d4
movq %r13, %rdi
callq 0x7260c
movq 0x18(%rsp), %rdi
callq 0x7260c
movq 0x20(%rsp), %rdi
callq 0x462de
movq 0x28(%rsp), %rdi
callq 0x462de
movq 0x30(%rsp), %rdi
callq 0x462de
movq 0x38(%rsp), %rdi
callq 0x462de
movq 0x40(%rsp), %rdi
callq 0x462de
movq 0x48(%rsp), %rdi
callq 0x462de
movq 0x50(%rsp), %rdi
callq 0x462de
movq 0x58(%rsp), %rdi
callq 0x462de
movq 0x60(%rsp), %rdi
callq 0x462de
movq 0x68(%rsp), %rdi
callq 0x462de
movq 0x70(%rsp), %rdi
callq 0xac1d4
movq 0x78(%rsp), %rdi
callq 0xac1d4
movq 0x80(%rsp), %rdi
callq 0xac1d4
movq 0x90(%rsp), %rdi
callq 0xa7156
movq 0xa0(%rsp), %rdi
callq 0xac224
movq 0xb0(%rsp), %rdi
callq 0xac224
movq 0xb8(%rsp), %rdi
callq 0xa71aa
movq 0xc0(%rsp), %rdi
callq 0xac274
movq %r12, %rdi
callq 0x31a0a
movq 0xc8(%rsp), %rdi
callq 0xac2cc
movq 0x18f0(%rbx), %rdi
testq %rdi, %rdi
je 0x77248
movq 0x1900(%rbx), %rsi
subq %rdi, %rsi
callq 0x229c0
movq 0x88(%rsp), %rdi
callq 0xac224
movq 0x98(%rsp), %rdi
callq 0xac224
movq 0xa8(%rsp), %rdi
callq 0xac224
movq %r15, %rdi
callq 0xac224
movq 0x1800(%rbx), %rdi
cmpq 0x8(%rsp), %rdi
je 0x77295
movq 0x8(%rsp), %rax
movq (%rax), %rsi
incq %rsi
callq 0x229c0
leaq 0x1400(%rbx), %r15
leaq 0x1430(%rbx), %r12
leaq 0x1460(%rbx), %r13
leaq 0x1490(%rbx), %rbp
movq 0x17e0(%rbx), %rdi
cmpq 0x10(%rsp), %rdi
je 0x772cf
movq 0x10(%rsp), %rax
movq (%rax), %rsi
incq %rsi
callq 0x229c0
movq 0xd0(%rsp), %rdi
callq 0xa71f2
movq %rbp, %rdi
callq 0xac372
movq %r13, %rdi
callq 0xac372
movq %r12, %rdi
callq 0x7260c
movq %r15, %rdi
callq 0x7260c
leaq 0x38(%rbx), %rdi
addq $0x8, %rbx
callq 0x31ca4
movq %rbx, %rdi
callq 0xac3ca
movq %r14, %rdi
callq 0x23240
nop