// File: /workspace/github_cpp_makefile_star2_O3/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 0x30cc5
leaq 0x2b0(%rsp), %r13
movq %r13, -0x10(%r13)
leaq 0xc1253(%rip), %rsi     # 0xf1ed9
leaq 0xc12cb(%rip), %rdx     # 0xf1f58
leaq 0x2a0(%rsp), %r15
movq %r15, %rdi
callq 0x321d2
movq %r14, %rdi
movq %r15, %rsi
callq 0x784c2
movq 0x2a0(%rsp), %rdi
cmpq %r13, %rdi
je 0x30cc5
movq 0x2b0(%rsp), %rsi
incq %rsi
callq 0x229c0
movq 0x8(%rbx), %r14
cmpq $0x0, 0x14c8(%r14)
jne 0x30d25
leaq 0x290(%rsp), %r13
movq %r13, -0x10(%r13)
leaq 0xc1273(%rip), %rsi     # 0xf1f59
leaq 0xc129b(%rip), %rdx     # 0xf1f88
leaq 0x280(%rsp), %r15
movq %r15, %rdi
callq 0x321d2
movq %r14, %rdi
movq %r15, %rsi
callq 0x784c2
movq 0x280(%rsp), %rdi
cmpq %r13, %rdi
je 0x30d25
movq 0x290(%rsp), %rsi
incq %rsi
callq 0x229c0
movl $0x14e0, %r14d          # imm = 0x14E0
movq 0x8(%rbx), %rdi
addq %r14, %rdi
leaq 0xc1250(%rip), %rsi     # 0xf1f89
callq 0x22250
testl %eax, %eax
je 0x30deb
addq 0x8(%rbx), %r14
leaq 0xc123b(%rip), %rsi     # 0xf1f8c
movq %r14, %rdi
callq 0x22250
testl %eax, %eax
je 0x30deb
movl $0x14e0, %r14d          # imm = 0x14E0
movq 0x8(%rbx), %rdi
addq %r14, %rdi
leaq 0xfd186(%rip), %rsi     # 0x12defb
callq 0x22250
testl %eax, %eax
je 0x30deb
addq 0x8(%rbx), %r14
leaq 0xce1e9(%rip), %rsi     # 0xfef72
movq %r14, %rdi
callq 0x22250
testl %eax, %eax
je 0x30deb
movq 0x8(%rbx), %r14
leaq 0x270(%rsp), %r13
movq %r13, -0x10(%r13)
leaq 0xc11e3(%rip), %rsi     # 0xf1f8f
leaq 0xc1203(%rip), %rdx     # 0xf1fb6
leaq 0x260(%rsp), %r15
movq %r15, %rdi
callq 0x321d2
movq %r14, %rdi
movq %r15, %rsi
callq 0x784c2
movq 0x260(%rsp), %rdi
cmpq %r13, %rdi
je 0x30deb
movq 0x270(%rsp), %rsi
incq %rsi
callq 0x229c0
movq 0x8(%rbx), %r14
movq 0x15c8(%r14), %rax
cmpq 0x15c0(%r14), %rax
jne 0x30e51
leaq 0x250(%rsp), %r13
movq %r13, -0x10(%r13)
leaq 0xc11a5(%rip), %rsi     # 0xf1fb7
leaq 0xc121a(%rip), %rdx     # 0xf2033
leaq 0x240(%rsp), %r15
movq %r15, %rdi
callq 0x321d2
movq %r14, %rdi
movq %r15, %rsi
callq 0x784c2
movq 0x240(%rsp), %rdi
cmpq %r13, %rdi
je 0x30e51
movq 0x250(%rsp), %rsi
incq %rsi
callq 0x229c0
movq 0x8(%rbx), %r14
cmpq $0x0, 0x1588(%r14)
jne 0x30eb1
leaq 0x230(%rsp), %r13
movq %r13, -0x10(%r13)
leaq 0xc11c2(%rip), %rsi     # 0xf2034
leaq 0xc123e(%rip), %rdx     # 0xf20b7
leaq 0x220(%rsp), %r15
movq %r15, %rdi
callq 0x321d2
movq %r14, %rdi
movq %r15, %rsi
callq 0x784c2
movq 0x220(%rsp), %rdi
cmpq %r13, %rdi
je 0x30eb1
movq 0x230(%rsp), %rsi
incq %rsi
callq 0x229c0
movq 0x8(%rbx), %r14
cmpq $0x0, 0x1508(%r14)
jne 0x30f11
leaq 0x210(%rsp), %r13
movq %r13, -0x10(%r13)
leaq 0xc11e6(%rip), %rsi     # 0xf20b8
leaq 0xc1261(%rip), %rdx     # 0xf213a
leaq 0x200(%rsp), %r15
movq %r15, %rdi
callq 0x321d2
movq %r14, %rdi
movq %r15, %rsi
callq 0x784c2
movq 0x200(%rsp), %rdi
cmpq %r13, %rdi
je 0x30f11
movq 0x210(%rsp), %rsi
incq %rsi
callq 0x229c0
movq 0x8(%rbx), %r14
cmpq $0x0, 0x1548(%r14)
jne 0x30f71
leaq 0x1f0(%rsp), %r13
movq %r13, -0x10(%r13)
leaq 0xc1209(%rip), %rsi     # 0xf213b
leaq 0xc1284(%rip), %rdx     # 0xf21bd
leaq 0x1e0(%rsp), %r15
movq %r15, %rdi
callq 0x321d2
movq %r14, %rdi
movq %r15, %rsi
callq 0x784c2
movq 0x1e0(%rsp), %rdi
cmpq %r13, %rdi
je 0x30f71
movq 0x1f0(%rsp), %rsi
incq %rsi
callq 0x229c0
movq 0x8(%rbx), %r14
cmpl $0x0, 0x1620(%r14)
jne 0x30fd1
leaq 0x1d0(%rsp), %r13
movq %r13, -0x10(%r13)
leaq 0xc122c(%rip), %rsi     # 0xf21be
leaq 0xc12ab(%rip), %rdx     # 0xf2244
leaq 0x1c0(%rsp), %r15
movq %r15, %rdi
callq 0x321d2
movq %r14, %rdi
movq %r15, %rsi
callq 0x784c2
movq 0x1c0(%rsp), %rdi
cmpq %r13, %rdi
je 0x30fd1
movq 0x1d0(%rsp), %rsi
incq %rsi
callq 0x229c0
movq 0x8(%rbx), %rdi
cmpb $0x1, 0x16f9(%rdi)
jne 0x31055
addq $0x14e0, %rdi           # imm = 0x14E0
leaq 0xcdf86(%rip), %rsi     # 0xfef72
callq 0x22250
testl %eax, %eax
jne 0x31055
movq 0x8(%rbx), %r14
cmpb $0x0, 0x16f8(%r14)
jne 0x31055
leaq 0x1b0(%rsp), %r13
movq %r13, -0x10(%r13)
leaq 0xc122f(%rip), %rsi     # 0xf2245
leaq 0xc12b1(%rip), %rdx     # 0xf22ce
leaq 0x1a0(%rsp), %r15
movq %r15, %rdi
callq 0x321d2
movq %r14, %rdi
movq %r15, %rsi
callq 0x784c2
movq 0x1a0(%rsp), %rdi
cmpq %r13, %rdi
je 0x31055
movq 0x1b0(%rsp), %rsi
incq %rsi
callq 0x229c0
movq 0x8(%rbx), %rdi
cmpb $0x1, 0x16f8(%rdi)
jne 0x310d9
addq $0x14e0, %rdi           # imm = 0x14E0
leaq 0xcdf02(%rip), %rsi     # 0xfef72
callq 0x22250
testl %eax, %eax
jne 0x310d9
movq 0x8(%rbx), %r14
cmpl $0x0, 0x1694(%r14)
jne 0x310d9
leaq 0x190(%rsp), %r13
movq %r13, -0x10(%r13)
leaq 0xc1235(%rip), %rsi     # 0xf22cf
leaq 0xc12a1(%rip), %rdx     # 0xf2342
leaq 0x180(%rsp), %r15
movq %r15, %rdi
callq 0x321d2
movq %r14, %rdi
movq %r15, %rsi
callq 0x784c2
movq 0x180(%rsp), %rdi
cmpq %r13, %rdi
je 0x310d9
movq 0x190(%rsp), %rsi
incq %rsi
callq 0x229c0
movq 0x8(%rbx), %r14
cmpb $0x1, 0x1631(%r14)
jne 0x3114d
cmpb $0x1, 0x1798(%r14)
jne 0x3114d
cmpq $0x0, 0x17a8(%r14)
jne 0x3114d
leaq 0x170(%rsp), %r13
movq %r13, -0x10(%r13)
leaq 0xc1235(%rip), %rsi     # 0xf2343
leaq 0xc1289(%rip), %rdx     # 0xf239e
leaq 0x160(%rsp), %r15
movq %r15, %rdi
callq 0x321d2
movq %r14, %rdi
movq %r15, %rsi
callq 0x784c2
movq 0x160(%rsp), %rdi
cmpq %r13, %rdi
je 0x3114d
movq 0x170(%rsp), %rsi
incq %rsi
callq 0x229c0
movq 0x8(%rbx), %rdi
cmpb $0x1, 0x1631(%rdi)
jne 0x31258
cmpq $0x0, 0x1738(%rdi)
je 0x31258
addq $0x1730, %rdi           # imm = 0x1730
leaq 0xc1236(%rip), %rsi     # 0xf23b0
callq 0x22250
testl %eax, %eax
je 0x31258
movl $0x1730, %r14d          # imm = 0x1730
movq 0x8(%rbx), %rdi
addq %r14, %rdi
leaq 0xc1204(%rip), %rsi     # 0xf239f
callq 0x22250
testl %eax, %eax
je 0x31258
addq 0x8(%rbx), %r14
leaq 0xc11f2(%rip), %rsi     # 0xf23a5
movq %r14, %rdi
callq 0x22250
testl %eax, %eax
je 0x31258
movl $0x1730, %edi           # imm = 0x1730
addq 0x8(%rbx), %rdi
leaq 0xc11d9(%rip), %rsi     # 0xf23ac
callq 0x22250
testl %eax, %eax
je 0x31258
movq 0x8(%rbx), %rax
movq 0x1730(%rax), %rsi
movq 0x1738(%rax), %rdx
movq 0x144db3(%rip), %rdi    # 0x175fa8
callq 0x22ab0
movq %rax, %rdi
callq 0x22430
movq 0x8(%rbx), %r14
leaq 0x150(%rsp), %r13
movq %r13, -0x10(%r13)
leaq 0xc119b(%rip), %rsi     # 0xf23b4
leaq 0xc11d3(%rip), %rdx     # 0xf23f3
leaq 0x140(%rsp), %r15
movq %r15, %rdi
callq 0x321d2
movq %r14, %rdi
movq %r15, %rsi
callq 0x784c2
movq 0x140(%rsp), %rdi
cmpq %r13, %rdi
je 0x31258
movq 0x150(%rsp), %rsi
incq %rsi
callq 0x229c0
movl $0x14e0, %r14d          # imm = 0x14E0
movq 0x8(%rbx), %rdi
addq %r14, %rdi
leaq 0xfcc8f(%rip), %rsi     # 0x12defb
callq 0x22250
testl %eax, %eax
jne 0x314ad
movq 0x8(%rbx), %r15
cmpl $0x1, 0x1700(%r15)
jne 0x312ee
movl 0x1620(%r15), %eax
xorl %edx, %edx
divl 0x16fc(%r15)
cmpl $0x1, %eax
ja 0x312ee
leaq 0x130(%rsp), %r13
movq %r13, -0x10(%r13)
leaq 0xc1145(%rip), %rsi     # 0xf23f4
leaq 0xc1184(%rip), %rdx     # 0xf243a
leaq 0x120(%rsp), %r12
movq %r12, %rdi
callq 0x321d2
movq %r15, %rdi
movq %r12, %rsi
callq 0x784c2
movq 0x120(%rsp), %rdi
cmpq %r13, %rdi
je 0x312ee
movq 0x130(%rsp), %rsi
incq %rsi
callq 0x229c0
movq 0x8(%rbx), %r15
cmpl $0x2, 0x1700(%r15)
jne 0x31363
movl 0x1620(%r15), %eax
xorl %edx, %edx
divl 0x16fc(%r15)
cmpl $0x3, %eax
ja 0x31363
leaq 0x110(%rsp), %r13
movq %r13, -0x10(%r13)
leaq 0xc1117(%rip), %rsi     # 0xf243b
leaq 0xc1156(%rip), %rdx     # 0xf2481
leaq 0x100(%rsp), %r12
movq %r12, %rdi
callq 0x321d2
movq %r15, %rdi
movq %r12, %rsi
callq 0x784c2
movq 0x100(%rsp), %rdi
cmpq %r13, %rdi
je 0x31363
movq 0x110(%rsp), %rsi
incq %rsi
callq 0x229c0
movq 0x8(%rbx), %r15
cmpl $0x3, 0x1700(%r15)
jne 0x313d8
movl 0x1620(%r15), %eax
xorl %edx, %edx
divl 0x16fc(%r15)
cmpl $0x2, %eax
ja 0x313d8
leaq 0xf0(%rsp), %r13
movq %r13, -0x10(%r13)
leaq 0xc10e9(%rip), %rsi     # 0xf2482
leaq 0xc1128(%rip), %rdx     # 0xf24c8
leaq 0xe0(%rsp), %r12
movq %r12, %rdi
callq 0x321d2
movq %r15, %rdi
movq %r12, %rsi
callq 0x784c2
movq 0xe0(%rsp), %rdi
cmpq %r13, %rdi
je 0x313d8
movq 0xf0(%rsp), %rsi
incq %rsi
callq 0x229c0
movq 0x8(%rbx), %r15
cmpl $0x4, 0x1700(%r15)
jne 0x3144d
movl 0x1620(%r15), %eax
xorl %edx, %edx
divl 0x16fc(%r15)
cmpl $0x4, %eax
ja 0x3144d
leaq 0xd0(%rsp), %r13
movq %r13, -0x10(%r13)
leaq 0xc10bb(%rip), %rsi     # 0xf24c9
leaq 0xc10fa(%rip), %rdx     # 0xf250f
leaq 0xc0(%rsp), %r12
movq %r12, %rdi
callq 0x321d2
movq %r15, %rdi
movq %r12, %rsi
callq 0x784c2
movq 0xc0(%rsp), %rdi
cmpq %r13, %rdi
je 0x3144d
movq 0xd0(%rsp), %rsi
incq %rsi
callq 0x229c0
movq 0x8(%rbx), %r15
cmpl $0x0, 0x16fc(%r15)
jne 0x314ad
leaq 0xb0(%rsp), %r13
movq %r13, -0x10(%r13)
leaq 0xc10a2(%rip), %rsi     # 0xf2510
leaq 0xc110a(%rip), %rdx     # 0xf257f
leaq 0xa0(%rsp), %r12
movq %r12, %rdi
callq 0x321d2
movq %r15, %rdi
movq %r12, %rsi
callq 0x784c2
movq 0xa0(%rsp), %rdi
cmpq %r13, %rdi
je 0x314ad
movq 0xb0(%rsp), %rsi
incq %rsi
callq 0x229c0
addq 0x8(%rbx), %r14
leaq 0xcdaba(%rip), %rsi     # 0xfef72
movq %r14, %rdi
callq 0x22250
testl %eax, %eax
jne 0x3153d
movl $0x14e0, %edi           # imm = 0x14E0
addq 0x8(%rbx), %rdi
leaq 0xc03d5(%rip), %rsi     # 0xf18a9
callq 0x22250
testl %eax, %eax
jne 0x3153d
movq 0x8(%rbx), %r14
cmpq $0x0, 0x1680(%r14)
jne 0x3153d
leaq 0x90(%rsp), %r13
movq %r13, -0x10(%r13)
leaq 0xc1082(%rip), %rsi     # 0xf2580
leaq 0xc10c3(%rip), %rdx     # 0xf25c8
leaq 0x80(%rsp), %r15
movq %r15, %rdi
callq 0x321d2
movq %r14, %rdi
movq %r15, %rsi
callq 0x784c2
movq 0x80(%rsp), %rdi
cmpq %r13, %rdi
je 0x3153d
movq 0x90(%rsp), %rsi
incq %rsi
callq 0x229c0
movl $0x14e0, %r14d          # imm = 0x14E0
movq 0x8(%rbx), %rdi
addq %r14, %rdi
leaq 0xc0a3b(%rip), %rsi     # 0xf1f8c
callq 0x22250
testl %eax, %eax
jne 0x31614
movq 0x8(%rbx), %r15
movq 0x15c0(%r15), %rax
movq (%rax), %rax
movl 0x58(%rax), %eax
incl %eax
cmpl %eax, 0x1620(%r15)
jae 0x315c0
leaq 0x70(%rsp), %r13
movq %r13, -0x10(%r13)
leaq 0xc103f(%rip), %rsi     # 0xf25c9
leaq 0xc10c8(%rip), %rdx     # 0xf2659
leaq 0x60(%rsp), %r12
movq %r12, %rdi
callq 0x321d2
movq %r15, %rdi
movq %r12, %rsi
callq 0x784c2
movq 0x60(%rsp), %rdi
cmpq %r13, %rdi
je 0x315c0
movq 0x70(%rsp), %rsi
incq %rsi
callq 0x229c0
movq 0x8(%rbx), %r15
cmpb $0x1, 0x1618(%r15)
jne 0x31614
leaq 0x50(%rsp), %r13
movq %r13, -0x10(%r13)
leaq 0xc107c(%rip), %rsi     # 0xf265a
leaq 0xc10bf(%rip), %rdx     # 0xf26a4
leaq 0x40(%rsp), %r12
movq %r12, %rdi
callq 0x321d2
movq %r15, %rdi
movq %r12, %rsi
callq 0x784c2
movq 0x40(%rsp), %rdi
cmpq %r13, %rdi
je 0x31614
movq 0x50(%rsp), %rsi
incq %rsi
callq 0x229c0
addq 0x8(%rbx), %r14
leaq 0xc096a(%rip), %rsi     # 0xf1f89
movq %r14, %rdi
callq 0x22250
testl %eax, %eax
jne 0x31689
movq 0x8(%rbx), %r14
cmpb $0x1, 0x1618(%r14)
jne 0x31689
cmpl $0x0, 0x161c(%r14)
jne 0x31689
leaq 0x30(%rsp), %r13
movq %r13, -0x10(%r13)
leaq 0xc1052(%rip), %rsi     # 0xf26a5
leaq 0xc10a5(%rip), %rdx     # 0xf26ff
leaq 0x20(%rsp), %r15
movq %r15, %rdi
callq 0x321d2
movq %r14, %rdi
movq %r15, %rsi
callq 0x784c2
movq 0x20(%rsp), %rdi
cmpq %r13, %rdi
je 0x31689
movq 0x30(%rsp), %rsi
incq %rsi
callq 0x229c0
movq 0x8(%rbx), %rdi
callq 0x7a0ba
testb %al, %al
jne 0x316dd
movq 0x8(%rbx), %rbx
leaq 0x10(%rsp), %r13
movq %r13, -0x10(%r13)
leaq 0xc1056(%rip), %rsi     # 0xf2700
leaq 0xc107f(%rip), %rdx     # 0xf2730
movq %rsp, %r14
movq %r14, %rdi
callq 0x321d2
movq %rbx, %rdi
movq %r14, %rsi
callq 0x784c2
movq (%rsp), %rdi
cmpq %r13, %rdi
je 0x316dd
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 0x3181e
movq %rax, %rbx
movq 0x80(%rsp), %rdi
jmp 0x3181e
movq %rax, %rbx
movq 0x20(%rsp), %rdi
jmp 0x3181e
movq %rax, %rbx
movq 0x180(%rsp), %rdi
jmp 0x3181e
movq %rax, %rbx
movq 0xc0(%rsp), %rdi
jmp 0x3181e
movq %rax, %rbx
movq 0xe0(%rsp), %rdi
jmp 0x3181e
movq %rax, %rbx
movq 0x100(%rsp), %rdi
jmp 0x3181e
movq %rax, %rbx
movq 0x120(%rsp), %rdi
jmp 0x3181e
movq %rax, %rbx
movq 0x160(%rsp), %rdi
jmp 0x3181e
movq %rax, %rbx
movq 0x1a0(%rsp), %rdi
jmp 0x3181e
movq %rax, %rbx
movq 0xa0(%rsp), %rdi
jmp 0x3181e
movq %rax, %rbx
movq 0x260(%rsp), %rdi
jmp 0x3181e
movq %rax, %rbx
movq 0x40(%rsp), %rdi
jmp 0x3181e
movq %rax, %rbx
movq 0x60(%rsp), %rdi
jmp 0x3181e
movq %rax, %rbx
movq 0x1c0(%rsp), %rdi
jmp 0x3181e
movq %rax, %rbx
movq 0x1e0(%rsp), %rdi
jmp 0x3181e
movq %rax, %rbx
movq 0x200(%rsp), %rdi
jmp 0x3181e
movq %rax, %rbx
movq 0x220(%rsp), %rdi
jmp 0x3181e
movq %rax, %rbx
movq 0x240(%rsp), %rdi
jmp 0x3181e
movq %rax, %rbx
movq 0x280(%rsp), %rdi
jmp 0x3181e
movq %rax, %rbx
movq 0x2a0(%rsp), %rdi
jmp 0x3181e
movq %rax, %rbx
movq (%rsp), %rdi
cmpq %r13, %rdi
je 0x3182f
movq (%r13), %rsi
incq %rsi
callq 0x229c0
movq %rbx, %rdi
callq 0x23240
nop