// File: /workspace/github_cpp_makefile_star2_O1/richardposner[P]BioNetFit2/src/code/Config.cpp
// Function: Config::checkConsistency()
void Config::checkConsistency() {
	/*
	 * Make sure we have SOME sort of stop criteria
	 */

	if (swarm_->options.fitType.empty()) {
		swarm_->outputError("Error: You didn't specify a fit_type in your .conf file. Refer to the documentation with help on setting this option. Quitting.");
	}

	if (swarm_->options.jobName.empty()) {
		swarm_->outputError("Error: You didn't specify a job_name. Quitting.");
	}

	if (swarm_->options.fitType != "ga" && swarm_->options.fitType != "sa" && swarm_->options.fitType != "de" && swarm_->options.fitType != "pso") {
		swarm_->outputError("Error: Unrecognized fit_type. Quitting.");
	}
	if (swarm_->options.models.size() < 1) {
		swarm_->outputError("Error: You didn't specify a model in your .conf file. Refer to the documentation with help on setting this option. Quitting.");
	}
	if (swarm_->options.expFiles.empty()) {
		swarm_->outputError("Error: You didn't specify any .exp files in your .conf file. Refer to the documentation with help on setting this option. Quitting.");
	}

	if (swarm_->options.outputDir.empty()) {
		swarm_->outputError("Error: You didn't specify an output_dir in your .conf file. Refer to the documentation with help on setting this option. Quitting.");
	}

	if (swarm_->options.bngCommand.empty()) {
		swarm_->outputError("Error: You didn't specify a bng_command in your .conf file. Refer to the documentation with help on setting this option. Quitting.");
	}

	if (swarm_->options.swarmSize == 0) {
		swarm_->outputError("Error: You didn't specify a population_size in your .conf file. Refer to the documentation with help on setting this option. Quitting.");
	}

	if (swarm_->options.enhancedInertia && swarm_->options.fitType == "pso") {
		if (!swarm_->options.enhancedStop) {
			swarm_->outputError("Error: You set enhanced_inertia to true, but enhanced_stop to false. Enhanced inertia requires enhanced_stop to be set to true. Quitting.");
		}
	}

	if (swarm_->options.enhancedStop  && swarm_->options.fitType == "pso") {
		if (swarm_->options.nmax == 0) {
			swarm_->outputError("Error: You set enhanced_stop to true, but did not set a maximum permance value (nmax) in your .conf file. Quitting.");
		}
	}

	if (swarm_->options.useCluster && swarm_->options.emailWhenFinished && swarm_->options.emailAddress.empty()) {
		swarm_->outputError("Error: You set email_when_finished to true, but did not specify an email address. Quitting.");
	}

	if (swarm_->options.useCluster && !swarm_->options.clusterSoftware.empty() && (swarm_->options.clusterSoftware != "mpi" && swarm_->options.clusterSoftware != "slurm" && swarm_->options.clusterSoftware != "torque" && swarm_->options.clusterSoftware != "BNF2mpi")) {
		cout << swarm_->options.clusterSoftware << endl;
		swarm_->outputError("Error: You set cluster_software to an invalid option. Quitting.");
	}

	if (swarm_->options.fitType == "de") {
		if (swarm_->options.mutateType == 1 && (swarm_->options.swarmSize / swarm_->options.numIslands) < 2 ) {
			swarm_->outputError("Error: mutate_type=1 requires at least 2 members per island. Quitting.");
		}

		if (swarm_->options.mutateType == 2 && (swarm_->options.swarmSize / swarm_->options.numIslands) < 4 ) {
			swarm_->outputError("Error: mutate_type=2 requires at least 4 members per island. Quitting.");
		}

		if (swarm_->options.mutateType == 3 && (swarm_->options.swarmSize / swarm_->options.numIslands) < 3 ) {
			swarm_->outputError("Error: mutate_type=3 requires at least 3 members per island. Quitting.");
		}

		if (swarm_->options.mutateType == 4 && (swarm_->options.swarmSize / swarm_->options.numIslands) < 5 ) {
			swarm_->outputError("Error: mutate_type=4 requires at least 5 members per island. Quitting.");
		}

		if (swarm_->options.numIslands == 0) {
			swarm_->outputError("Error: You are running a differential evolution fit, but didn't specify the number of islands to use. Quitting.");
		}
	}

	if (swarm_->options.fitType == "pso") {
		if (swarm_->options.fitType == "qpso") {
			if (!swarm_->options.maxNumSimulations) {
				swarm_->outputError("Error: You are using qpso, but didn't set max_num_simulations. Quitting.");
			}
		}
	}


	if (swarm_->options.fitType == "sa") {
		if ((unsigned) swarm_->options.swarmSize < (swarm_->options.models[0]->getNumFreeParams() + 1)) {
			swarm_->outputError("Error: You are using simulated annealing but your swarm size is less than N+1, where N is the number of free parameters in your model. Quitting.");
		}
		if (swarm_->options.synchronicity) {
			swarm_->outputError("Error: Simulated annealing does not support synchronous fitting. Quitting.");
		}
	}

	if (swarm_->options.fitType == "ga") {
		if (swarm_->options.synchronicity && swarm_->options.maxGenerations == 0) {
			swarm_->outputError("Error: You are running a synchronous ga fit, but didn't specify max_generations. Quitting.");
		}
	}

	//razi: check consistency between the model and exp files.
	//TODO more checks may be needed here
	if (!swarm_->check_model_exp_consistency()){
		swarm_->outputError("Error: Models are not consistent with exp files.");
	}

}

// Assembly:
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x2c0, %rsp            # imm = 0x2C0
movq %rdi, %rbx
movq 0x8(%rdi), %r14
cmpq $0x0, 0x14e8(%r14)
jne 0x30d59
leaq 0x2b0(%rsp), %r13
movq %r13, -0x10(%r13)
leaq 0xc11df(%rip), %rsi     # 0xf1ef9
leaq 0xc1257(%rip), %rdx     # 0xf1f78
leaq 0x2a0(%rsp), %r15
movq %r15, %rdi
callq 0x32210
movq %r14, %rdi
movq %r15, %rsi
callq 0x78b66
movq 0x2a0(%rsp), %rdi
cmpq %r13, %rdi
je 0x30d59
movq 0x2b0(%rsp), %rsi
incq %rsi
callq 0x229c0
movq 0x8(%rbx), %r14
cmpq $0x0, 0x14c8(%r14)
jne 0x30db9
leaq 0x290(%rsp), %r13
movq %r13, -0x10(%r13)
leaq 0xc11ff(%rip), %rsi     # 0xf1f79
leaq 0xc1227(%rip), %rdx     # 0xf1fa8
leaq 0x280(%rsp), %r15
movq %r15, %rdi
callq 0x32210
movq %r14, %rdi
movq %r15, %rsi
callq 0x78b66
movq 0x280(%rsp), %rdi
cmpq %r13, %rdi
je 0x30db9
movq 0x290(%rsp), %rsi
incq %rsi
callq 0x229c0
movl $0x14e0, %r14d          # imm = 0x14E0
movq 0x8(%rbx), %rdi
addq %r14, %rdi
leaq 0xc11dc(%rip), %rsi     # 0xf1fa9
callq 0x22250
testl %eax, %eax
je 0x30e7f
addq 0x8(%rbx), %r14
leaq 0xc11c7(%rip), %rsi     # 0xf1fac
movq %r14, %rdi
callq 0x22250
testl %eax, %eax
je 0x30e7f
movl $0x14e0, %r14d          # imm = 0x14E0
movq 0x8(%rbx), %rdi
addq %r14, %rdi
leaq 0xfd112(%rip), %rsi     # 0x12df1b
callq 0x22250
testl %eax, %eax
je 0x30e7f
addq 0x8(%rbx), %r14
leaq 0xce0e5(%rip), %rsi     # 0xfef02
movq %r14, %rdi
callq 0x22250
testl %eax, %eax
je 0x30e7f
movq 0x8(%rbx), %r14
leaq 0x270(%rsp), %r13
movq %r13, -0x10(%r13)
leaq 0xc116f(%rip), %rsi     # 0xf1faf
leaq 0xc118f(%rip), %rdx     # 0xf1fd6
leaq 0x260(%rsp), %r15
movq %r15, %rdi
callq 0x32210
movq %r14, %rdi
movq %r15, %rsi
callq 0x78b66
movq 0x260(%rsp), %rdi
cmpq %r13, %rdi
je 0x30e7f
movq 0x270(%rsp), %rsi
incq %rsi
callq 0x229c0
movq 0x8(%rbx), %r14
movq 0x15c8(%r14), %rax
cmpq 0x15c0(%r14), %rax
jne 0x30ee5
leaq 0x250(%rsp), %r13
movq %r13, -0x10(%r13)
leaq 0xc1131(%rip), %rsi     # 0xf1fd7
leaq 0xc11a6(%rip), %rdx     # 0xf2053
leaq 0x240(%rsp), %r15
movq %r15, %rdi
callq 0x32210
movq %r14, %rdi
movq %r15, %rsi
callq 0x78b66
movq 0x240(%rsp), %rdi
cmpq %r13, %rdi
je 0x30ee5
movq 0x250(%rsp), %rsi
incq %rsi
callq 0x229c0
movq 0x8(%rbx), %r14
cmpq $0x0, 0x1588(%r14)
jne 0x30f45
leaq 0x230(%rsp), %r13
movq %r13, -0x10(%r13)
leaq 0xc114e(%rip), %rsi     # 0xf2054
leaq 0xc11ca(%rip), %rdx     # 0xf20d7
leaq 0x220(%rsp), %r15
movq %r15, %rdi
callq 0x32210
movq %r14, %rdi
movq %r15, %rsi
callq 0x78b66
movq 0x220(%rsp), %rdi
cmpq %r13, %rdi
je 0x30f45
movq 0x230(%rsp), %rsi
incq %rsi
callq 0x229c0
movq 0x8(%rbx), %r14
cmpq $0x0, 0x1508(%r14)
jne 0x30fa5
leaq 0x210(%rsp), %r13
movq %r13, -0x10(%r13)
leaq 0xc1172(%rip), %rsi     # 0xf20d8
leaq 0xc11ed(%rip), %rdx     # 0xf215a
leaq 0x200(%rsp), %r15
movq %r15, %rdi
callq 0x32210
movq %r14, %rdi
movq %r15, %rsi
callq 0x78b66
movq 0x200(%rsp), %rdi
cmpq %r13, %rdi
je 0x30fa5
movq 0x210(%rsp), %rsi
incq %rsi
callq 0x229c0
movq 0x8(%rbx), %r14
cmpq $0x0, 0x1548(%r14)
jne 0x31005
leaq 0x1f0(%rsp), %r13
movq %r13, -0x10(%r13)
leaq 0xc1195(%rip), %rsi     # 0xf215b
leaq 0xc1210(%rip), %rdx     # 0xf21dd
leaq 0x1e0(%rsp), %r15
movq %r15, %rdi
callq 0x32210
movq %r14, %rdi
movq %r15, %rsi
callq 0x78b66
movq 0x1e0(%rsp), %rdi
cmpq %r13, %rdi
je 0x31005
movq 0x1f0(%rsp), %rsi
incq %rsi
callq 0x229c0
movq 0x8(%rbx), %r14
cmpl $0x0, 0x1620(%r14)
jne 0x31065
leaq 0x1d0(%rsp), %r13
movq %r13, -0x10(%r13)
leaq 0xc11b8(%rip), %rsi     # 0xf21de
leaq 0xc1237(%rip), %rdx     # 0xf2264
leaq 0x1c0(%rsp), %r15
movq %r15, %rdi
callq 0x32210
movq %r14, %rdi
movq %r15, %rsi
callq 0x78b66
movq 0x1c0(%rsp), %rdi
cmpq %r13, %rdi
je 0x31065
movq 0x1d0(%rsp), %rsi
incq %rsi
callq 0x229c0
movq 0x8(%rbx), %rdi
cmpb $0x1, 0x16f9(%rdi)
jne 0x310e9
addq $0x14e0, %rdi           # imm = 0x14E0
leaq 0xcde82(%rip), %rsi     # 0xfef02
callq 0x22250
testl %eax, %eax
jne 0x310e9
movq 0x8(%rbx), %r14
cmpb $0x0, 0x16f8(%r14)
jne 0x310e9
leaq 0x1b0(%rsp), %r13
movq %r13, -0x10(%r13)
leaq 0xc11bb(%rip), %rsi     # 0xf2265
leaq 0xc123d(%rip), %rdx     # 0xf22ee
leaq 0x1a0(%rsp), %r15
movq %r15, %rdi
callq 0x32210
movq %r14, %rdi
movq %r15, %rsi
callq 0x78b66
movq 0x1a0(%rsp), %rdi
cmpq %r13, %rdi
je 0x310e9
movq 0x1b0(%rsp), %rsi
incq %rsi
callq 0x229c0
movq 0x8(%rbx), %rdi
cmpb $0x1, 0x16f8(%rdi)
jne 0x3116d
addq $0x14e0, %rdi           # imm = 0x14E0
leaq 0xcddfe(%rip), %rsi     # 0xfef02
callq 0x22250
testl %eax, %eax
jne 0x3116d
movq 0x8(%rbx), %r14
cmpl $0x0, 0x1694(%r14)
jne 0x3116d
leaq 0x190(%rsp), %r13
movq %r13, -0x10(%r13)
leaq 0xc11c1(%rip), %rsi     # 0xf22ef
leaq 0xc122d(%rip), %rdx     # 0xf2362
leaq 0x180(%rsp), %r15
movq %r15, %rdi
callq 0x32210
movq %r14, %rdi
movq %r15, %rsi
callq 0x78b66
movq 0x180(%rsp), %rdi
cmpq %r13, %rdi
je 0x3116d
movq 0x190(%rsp), %rsi
incq %rsi
callq 0x229c0
movq 0x8(%rbx), %r14
cmpb $0x1, 0x1631(%r14)
jne 0x311e1
cmpb $0x1, 0x1798(%r14)
jne 0x311e1
cmpq $0x0, 0x17a8(%r14)
jne 0x311e1
leaq 0x170(%rsp), %r13
movq %r13, -0x10(%r13)
leaq 0xc11c1(%rip), %rsi     # 0xf2363
leaq 0xc1215(%rip), %rdx     # 0xf23be
leaq 0x160(%rsp), %r15
movq %r15, %rdi
callq 0x32210
movq %r14, %rdi
movq %r15, %rsi
callq 0x78b66
movq 0x160(%rsp), %rdi
cmpq %r13, %rdi
je 0x311e1
movq 0x170(%rsp), %rsi
incq %rsi
callq 0x229c0
movq 0x8(%rbx), %rdi
cmpb $0x1, 0x1631(%rdi)
jne 0x312ec
cmpq $0x0, 0x1738(%rdi)
je 0x312ec
addq $0x1730, %rdi           # imm = 0x1730
leaq 0xc11c2(%rip), %rsi     # 0xf23d0
callq 0x22250
testl %eax, %eax
je 0x312ec
movl $0x1730, %r14d          # imm = 0x1730
movq 0x8(%rbx), %rdi
addq %r14, %rdi
leaq 0xc1190(%rip), %rsi     # 0xf23bf
callq 0x22250
testl %eax, %eax
je 0x312ec
addq 0x8(%rbx), %r14
leaq 0xc117e(%rip), %rsi     # 0xf23c5
movq %r14, %rdi
callq 0x22250
testl %eax, %eax
je 0x312ec
movl $0x1730, %edi           # imm = 0x1730
addq 0x8(%rbx), %rdi
leaq 0xc1165(%rip), %rsi     # 0xf23cc
callq 0x22250
testl %eax, %eax
je 0x312ec
movq 0x8(%rbx), %rax
movq 0x1730(%rax), %rsi
movq 0x1738(%rax), %rdx
movq 0x144d07(%rip), %rdi    # 0x175f90
callq 0x22ab0
movq %rax, %rdi
callq 0x22430
movq 0x8(%rbx), %r14
leaq 0x150(%rsp), %r13
movq %r13, -0x10(%r13)
leaq 0xc1127(%rip), %rsi     # 0xf23d4
leaq 0xc115f(%rip), %rdx     # 0xf2413
leaq 0x140(%rsp), %r15
movq %r15, %rdi
callq 0x32210
movq %r14, %rdi
movq %r15, %rsi
callq 0x78b66
movq 0x140(%rsp), %rdi
cmpq %r13, %rdi
je 0x312ec
movq 0x150(%rsp), %rsi
incq %rsi
callq 0x229c0
movl $0x14e0, %r14d          # imm = 0x14E0
movq 0x8(%rbx), %rdi
addq %r14, %rdi
leaq 0xfcc1b(%rip), %rsi     # 0x12df1b
callq 0x22250
testl %eax, %eax
jne 0x31541
movq 0x8(%rbx), %r15
cmpl $0x1, 0x1700(%r15)
jne 0x31382
movl 0x1620(%r15), %eax
xorl %edx, %edx
divl 0x16fc(%r15)
cmpl $0x1, %eax
ja 0x31382
leaq 0x130(%rsp), %r13
movq %r13, -0x10(%r13)
leaq 0xc10d1(%rip), %rsi     # 0xf2414
leaq 0xc1110(%rip), %rdx     # 0xf245a
leaq 0x120(%rsp), %r12
movq %r12, %rdi
callq 0x32210
movq %r15, %rdi
movq %r12, %rsi
callq 0x78b66
movq 0x120(%rsp), %rdi
cmpq %r13, %rdi
je 0x31382
movq 0x130(%rsp), %rsi
incq %rsi
callq 0x229c0
movq 0x8(%rbx), %r15
cmpl $0x2, 0x1700(%r15)
jne 0x313f7
movl 0x1620(%r15), %eax
xorl %edx, %edx
divl 0x16fc(%r15)
cmpl $0x3, %eax
ja 0x313f7
leaq 0x110(%rsp), %r13
movq %r13, -0x10(%r13)
leaq 0xc10a3(%rip), %rsi     # 0xf245b
leaq 0xc10e2(%rip), %rdx     # 0xf24a1
leaq 0x100(%rsp), %r12
movq %r12, %rdi
callq 0x32210
movq %r15, %rdi
movq %r12, %rsi
callq 0x78b66
movq 0x100(%rsp), %rdi
cmpq %r13, %rdi
je 0x313f7
movq 0x110(%rsp), %rsi
incq %rsi
callq 0x229c0
movq 0x8(%rbx), %r15
cmpl $0x3, 0x1700(%r15)
jne 0x3146c
movl 0x1620(%r15), %eax
xorl %edx, %edx
divl 0x16fc(%r15)
cmpl $0x2, %eax
ja 0x3146c
leaq 0xf0(%rsp), %r13
movq %r13, -0x10(%r13)
leaq 0xc1075(%rip), %rsi     # 0xf24a2
leaq 0xc10b4(%rip), %rdx     # 0xf24e8
leaq 0xe0(%rsp), %r12
movq %r12, %rdi
callq 0x32210
movq %r15, %rdi
movq %r12, %rsi
callq 0x78b66
movq 0xe0(%rsp), %rdi
cmpq %r13, %rdi
je 0x3146c
movq 0xf0(%rsp), %rsi
incq %rsi
callq 0x229c0
movq 0x8(%rbx), %r15
cmpl $0x4, 0x1700(%r15)
jne 0x314e1
movl 0x1620(%r15), %eax
xorl %edx, %edx
divl 0x16fc(%r15)
cmpl $0x4, %eax
ja 0x314e1
leaq 0xd0(%rsp), %r13
movq %r13, -0x10(%r13)
leaq 0xc1047(%rip), %rsi     # 0xf24e9
leaq 0xc1086(%rip), %rdx     # 0xf252f
leaq 0xc0(%rsp), %r12
movq %r12, %rdi
callq 0x32210
movq %r15, %rdi
movq %r12, %rsi
callq 0x78b66
movq 0xc0(%rsp), %rdi
cmpq %r13, %rdi
je 0x314e1
movq 0xd0(%rsp), %rsi
incq %rsi
callq 0x229c0
movq 0x8(%rbx), %r15
cmpl $0x0, 0x16fc(%r15)
jne 0x31541
leaq 0xb0(%rsp), %r13
movq %r13, -0x10(%r13)
leaq 0xc102e(%rip), %rsi     # 0xf2530
leaq 0xc1096(%rip), %rdx     # 0xf259f
leaq 0xa0(%rsp), %r12
movq %r12, %rdi
callq 0x32210
movq %r15, %rdi
movq %r12, %rsi
callq 0x78b66
movq 0xa0(%rsp), %rdi
cmpq %r13, %rdi
je 0x31541
movq 0xb0(%rsp), %rsi
incq %rsi
callq 0x229c0
addq 0x8(%rbx), %r14
leaq 0xcd9b6(%rip), %rsi     # 0xfef02
movq %r14, %rdi
callq 0x22250
testl %eax, %eax
jne 0x315d1
movl $0x14e0, %edi           # imm = 0x14E0
addq 0x8(%rbx), %rdi
leaq 0xc0361(%rip), %rsi     # 0xf18c9
callq 0x22250
testl %eax, %eax
jne 0x315d1
movq 0x8(%rbx), %r14
cmpq $0x0, 0x1680(%r14)
jne 0x315d1
leaq 0x90(%rsp), %r13
movq %r13, -0x10(%r13)
leaq 0xc100e(%rip), %rsi     # 0xf25a0
leaq 0xc104f(%rip), %rdx     # 0xf25e8
leaq 0x80(%rsp), %r15
movq %r15, %rdi
callq 0x32210
movq %r14, %rdi
movq %r15, %rsi
callq 0x78b66
movq 0x80(%rsp), %rdi
cmpq %r13, %rdi
je 0x315d1
movq 0x90(%rsp), %rsi
incq %rsi
callq 0x229c0
movl $0x14e0, %r14d          # imm = 0x14E0
movq 0x8(%rbx), %rdi
addq %r14, %rdi
leaq 0xc09c7(%rip), %rsi     # 0xf1fac
callq 0x22250
testl %eax, %eax
jne 0x316a8
movq 0x8(%rbx), %r15
movq 0x15c0(%r15), %rax
movq (%rax), %rax
movl 0x58(%rax), %eax
incl %eax
cmpl %eax, 0x1620(%r15)
jae 0x31654
leaq 0x70(%rsp), %r13
movq %r13, -0x10(%r13)
leaq 0xc0fcb(%rip), %rsi     # 0xf25e9
leaq 0xc1054(%rip), %rdx     # 0xf2679
leaq 0x60(%rsp), %r12
movq %r12, %rdi
callq 0x32210
movq %r15, %rdi
movq %r12, %rsi
callq 0x78b66
movq 0x60(%rsp), %rdi
cmpq %r13, %rdi
je 0x31654
movq 0x70(%rsp), %rsi
incq %rsi
callq 0x229c0
movq 0x8(%rbx), %r15
cmpb $0x1, 0x1618(%r15)
jne 0x316a8
leaq 0x50(%rsp), %r13
movq %r13, -0x10(%r13)
leaq 0xc1008(%rip), %rsi     # 0xf267a
leaq 0xc104b(%rip), %rdx     # 0xf26c4
leaq 0x40(%rsp), %r12
movq %r12, %rdi
callq 0x32210
movq %r15, %rdi
movq %r12, %rsi
callq 0x78b66
movq 0x40(%rsp), %rdi
cmpq %r13, %rdi
je 0x316a8
movq 0x50(%rsp), %rsi
incq %rsi
callq 0x229c0
addq 0x8(%rbx), %r14
leaq 0xc08f6(%rip), %rsi     # 0xf1fa9
movq %r14, %rdi
callq 0x22250
testl %eax, %eax
jne 0x3171d
movq 0x8(%rbx), %r14
cmpb $0x1, 0x1618(%r14)
jne 0x3171d
cmpl $0x0, 0x161c(%r14)
jne 0x3171d
leaq 0x30(%rsp), %r13
movq %r13, -0x10(%r13)
leaq 0xc0fde(%rip), %rsi     # 0xf26c5
leaq 0xc1031(%rip), %rdx     # 0xf271f
leaq 0x20(%rsp), %r15
movq %r15, %rdi
callq 0x32210
movq %r14, %rdi
movq %r15, %rsi
callq 0x78b66
movq 0x20(%rsp), %rdi
cmpq %r13, %rdi
je 0x3171d
movq 0x30(%rsp), %rsi
incq %rsi
callq 0x229c0
movq 0x8(%rbx), %rdi
callq 0x7a77e
testb %al, %al
jne 0x31771
movq 0x8(%rbx), %rbx
leaq 0x10(%rsp), %r13
movq %r13, -0x10(%r13)
leaq 0xc0fe2(%rip), %rsi     # 0xf2720
leaq 0xc100b(%rip), %rdx     # 0xf2750
movq %rsp, %r14
movq %r14, %rdi
callq 0x32210
movq %rbx, %rdi
movq %r14, %rsi
callq 0x78b66
movq (%rsp), %rdi
cmpq %r13, %rdi
je 0x31771
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x229c0
addq $0x2c0, %rsp            # imm = 0x2C0
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
retq
movq %rax, %rbx
movq 0x140(%rsp), %rdi
jmp 0x318b2
movq %rax, %rbx
movq 0x80(%rsp), %rdi
jmp 0x318b2
movq %rax, %rbx
movq 0x20(%rsp), %rdi
jmp 0x318b2
movq %rax, %rbx
movq 0x180(%rsp), %rdi
jmp 0x318b2
movq %rax, %rbx
movq 0xc0(%rsp), %rdi
jmp 0x318b2
movq %rax, %rbx
movq 0xe0(%rsp), %rdi
jmp 0x318b2
movq %rax, %rbx
movq 0x100(%rsp), %rdi
jmp 0x318b2
movq %rax, %rbx
movq 0x120(%rsp), %rdi
jmp 0x318b2
movq %rax, %rbx
movq 0x160(%rsp), %rdi
jmp 0x318b2
movq %rax, %rbx
movq 0x1a0(%rsp), %rdi
jmp 0x318b2
movq %rax, %rbx
movq 0xa0(%rsp), %rdi
jmp 0x318b2
movq %rax, %rbx
movq 0x260(%rsp), %rdi
jmp 0x318b2
movq %rax, %rbx
movq 0x40(%rsp), %rdi
jmp 0x318b2
movq %rax, %rbx
movq 0x60(%rsp), %rdi
jmp 0x318b2
movq %rax, %rbx
movq 0x1c0(%rsp), %rdi
jmp 0x318b2
movq %rax, %rbx
movq 0x1e0(%rsp), %rdi
jmp 0x318b2
movq %rax, %rbx
movq 0x200(%rsp), %rdi
jmp 0x318b2
movq %rax, %rbx
movq 0x220(%rsp), %rdi
jmp 0x318b2
movq %rax, %rbx
movq 0x240(%rsp), %rdi
jmp 0x318b2
movq %rax, %rbx
movq 0x280(%rsp), %rdi
jmp 0x318b2
movq %rax, %rbx
movq 0x2a0(%rsp), %rdi
jmp 0x318b2
movq %rax, %rbx
movq (%rsp), %rdi
cmpq %r13, %rdi
je 0x318c3
movq (%r13), %rsi
incq %rsi
callq 0x229c0
movq %rbx, %rdi
callq 0x23240
nop