// File: /workspace/github_cpp_makefile_star2_O3/gjoni[P]iPot/src/aace20.cpp
// Function: main
int main(int argc, char *argv[]) {

	/*
	 * (0) default energies (dmax=8.0A, kmin=5)
	 */
	const std::vector<double> h = {
		-2.53987e-01, -9.55884e-01, -5.46483e-01, -1.08783e+00, 2.44429e+00, -6.87903e-01, -1.49183e+00, 2.93111e-02, 2.50783e-01, 4.91162e-01, -3.29373e-01, -1.31334e+00, 1.34866e+00, 6.75723e-01, -3.23257e-01, -3.44367e-01, -2.33644e-01, 1.44822e+00, 4.81086e-01, 3.98668e-01
		};
	const std::vector<std::vector<double> > J = {
		{-3.71344e-02, 2.20701e-02, 3.18455e-02, 4.25143e-02, -1.70926e-02, 2.72930e-02, 5.31908e-02, -1.09550e-02, 1.51750e-02, -2.50904e-02, -2.44321e-02, 5.83197e-02, -1.67545e-02, -2.23743e-02, 1.17130e-02, 1.58646e-02, 2.23153e-03, -1.83572e-02, -1.00922e-02, -3.45738e-02 }, 
		{2.20701e-02, 4.17913e-02, 2.35753e-02, -4.54994e-02, 6.74010e-03, 2.35367e-02, -3.64684e-02, 4.90331e-03, 1.91966e-02, 2.34500e-02, 1.47213e-02, 9.72731e-02, 1.87448e-02, 2.50172e-03, 7.67610e-03, 1.49948e-02, 1.52291e-02, -1.92884e-02, -5.63319e-03, 1.44502e-02 }, 
		{3.18455e-02, 2.35753e-02, -3.42614e-02, 2.30339e-03, 1.67872e-03, 1.10331e-02, 3.34489e-02, -1.45569e-02, 7.83230e-03, 2.43254e-02, 4.55619e-02, 1.70446e-02, 1.80039e-02, 1.04812e-02, 9.19486e-03, -1.10260e-02, -6.26871e-03, -3.45688e-04, -4.06967e-03, 2.82638e-02 }, 
		{4.25143e-02, -4.54994e-02, 2.30339e-03, 6.08578e-02, 2.50615e-02, 3.57055e-02, 9.73346e-02, 1.79198e-03, -2.34830e-02, 4.56089e-02, 6.02836e-02, -3.07495e-02, 3.81317e-02, 3.25073e-02, 2.35846e-02, 4.29256e-03, 8.42867e-03, 6.45287e-03, 1.55564e-03, 3.85644e-02 }, 
		{-1.70926e-02, 6.74010e-03, 1.67872e-03, 2.50615e-02, -2.62680e-01, 5.37286e-03, 3.36006e-02, -2.16083e-02, -2.38917e-02, -3.45920e-02, -3.16786e-02, 1.95273e-02, -4.39283e-02, -4.86909e-02, -1.71290e-02, -1.74618e-02, -9.88666e-03, -4.57297e-02, -2.74419e-02, -3.96491e-02 }, 
		{2.72930e-02, 2.35367e-02, 1.10331e-02, 3.57055e-02, 5.37286e-03, 1.35826e-02, 5.34335e-02, 1.33446e-02, 1.63156e-02, 1.88270e-02, 2.27978e-02, 4.52448e-02, 1.46310e-02, 6.29104e-03, 1.20628e-02, 8.11129e-03, 4.49112e-03, -1.41691e-02, -1.80609e-03, 1.59103e-02 }, 
		{5.31908e-02, -3.64684e-02, 3.34489e-02, 9.73346e-02, 3.36006e-02, 5.34335e-02, 9.72670e-02, 3.81519e-02, -4.51864e-03, 3.12949e-02, 4.79989e-02, -2.34676e-02, 4.05531e-02, 2.41254e-02, 3.96978e-02, 2.83332e-02, 2.56658e-02, 5.68699e-03, 2.48728e-03, 2.73558e-02 }, 
		{-1.09550e-02, 4.90331e-03, -1.45569e-02, 1.79198e-03, -2.16083e-02, 1.33446e-02, 3.81519e-02, -5.27375e-02, -7.84873e-03, 1.42772e-02, 2.62637e-02, 2.69248e-02, -4.43414e-03, -3.78684e-03, -1.12145e-02, -1.59909e-02, -8.58234e-03, -1.29394e-02, -6.97832e-03, 1.47198e-03 }, 
		{1.51750e-02, 1.91966e-02, 7.83230e-03, -2.34830e-02, -2.38917e-02, 1.63156e-02, -4.51864e-03, -7.84873e-03, -4.29839e-02, 1.08293e-02, 1.36574e-02, 5.26484e-02, -6.41764e-03, -1.02180e-02, 3.96788e-04, -9.06387e-03, -3.02477e-03, -2.77911e-02, -1.94776e-02, 6.52479e-03 }, 
		{-2.50904e-02, 2.34500e-02, 2.43254e-02, 4.56089e-02, -3.45920e-02, 1.88270e-02, 3.12949e-02, 1.42772e-02, 1.08293e-02, -8.05287e-02, -5.85603e-02, 1.90216e-02, -4.10300e-02, -5.60307e-02, 2.34853e-02, 9.75105e-03, -9.26442e-03, -3.20940e-02, -3.71437e-02, -6.26080e-02 }, 
		{-2.44321e-02, 1.47213e-02, 4.55619e-02, 6.02836e-02, -3.16786e-02, 2.27978e-02, 4.79989e-02, 2.62637e-02, 1.36574e-02, -5.85603e-02, -6.42103e-02, 4.13288e-02, -3.17203e-02, -5.26119e-02, 1.96252e-02, 2.18609e-02, 8.40488e-03, -3.89716e-02, -2.91417e-02, -5.27405e-02 }, 
		{5.83197e-02, 9.72731e-02, 1.70446e-02, -3.07495e-02, 1.95273e-02, 4.52448e-02, -2.34676e-02, 2.69248e-02, 5.26484e-02, 1.90216e-02, 4.13288e-02, 7.59989e-02, 3.95383e-02, 1.56141e-02, 5.32374e-02, 2.62503e-02, 2.43331e-02, 6.16923e-03, -7.70190e-03, 2.20020e-02 }, 
		{-1.67545e-02, 1.87448e-02, 1.80039e-02, 3.81317e-02, -4.39283e-02, 1.46310e-02, 4.05531e-02, -4.43414e-03, -6.41764e-03, -4.10300e-02, -3.17203e-02, 3.95383e-02, -9.52427e-02, -5.35567e-02, 3.69553e-03, 8.29695e-03, 5.27945e-04, -4.40832e-02, -3.22654e-02, -3.46698e-02 }, 
		{-2.23743e-02, 2.50172e-03, 1.04812e-02, 3.25073e-02, -4.86909e-02, 6.29104e-03, 2.41254e-02, -3.78684e-03, -1.02180e-02, -5.60307e-02, -5.26119e-02, 1.56141e-02, -5.35567e-02, -7.01921e-02, -6.27462e-03, -3.47413e-03, -6.64416e-03, -5.27827e-02, -4.71942e-02, -4.64915e-02 }, 
		{1.17130e-02, 7.67610e-03, 9.19486e-03, 2.35846e-02, -1.71290e-02, 1.20628e-02, 3.96978e-02, -1.12145e-02, 3.96788e-04, 2.34853e-02, 1.96252e-02, 5.32374e-02, 3.69553e-03, -6.27462e-03, -1.43475e-02, 1.17501e-02, 8.99826e-03, -4.18122e-02, -2.90152e-02, 1.15780e-02 }, 
		{1.58646e-02, 1.49948e-02, -1.10260e-02, 4.29256e-03, -1.74618e-02, 8.11129e-03, 2.83332e-02, -1.59909e-02, -9.06387e-03, 9.75105e-03, 2.18609e-02, 2.62503e-02, 8.29695e-03, -3.47413e-03, 1.17501e-02, -2.00095e-02, -9.14658e-03, -8.74831e-03, -3.87656e-03, 4.57322e-03 }, 
		{2.23153e-03, 1.52291e-02, -6.26871e-03, 8.42867e-03, -9.88666e-03, 4.49112e-03, 2.56658e-02, -8.58234e-03, -3.02477e-03, -9.26442e-03, 8.40488e-03, 2.43331e-02, 5.27945e-04, -6.64416e-03, 8.99826e-03, -9.14658e-03, -2.34675e-02, -5.41073e-03, -6.32234e-03, -1.78545e-02 }, 
		{-1.83572e-02, -1.92884e-02, -3.45688e-04, 6.45287e-03, -4.57297e-02, -1.41691e-02, 5.68699e-03, -1.29394e-02, -2.77911e-02, -3.20940e-02, -3.89716e-02, 6.16923e-03, -4.40832e-02, -5.27827e-02, -4.18122e-02, -8.74831e-03, -5.41073e-03, -6.68405e-02, -4.10136e-02, -2.84353e-02 }, 
		{-1.00922e-02, -5.63319e-03, -4.06967e-03, 1.55564e-03, -2.74419e-02, -1.80609e-03, 2.48728e-03, -6.97832e-03, -1.94776e-02, -3.71437e-02, -2.91417e-02, -7.70190e-03, -3.22654e-02, -4.71942e-02, -2.90152e-02, -3.87656e-03, -6.32234e-03, -4.10136e-02, -3.76931e-02, -2.78836e-02 }, 
		{-3.45738e-02, 1.44502e-02, 2.82638e-02, 3.85644e-02, -3.96491e-02, 1.59103e-02, 2.73558e-02, 1.47198e-03, 6.52479e-03, -6.26080e-02, -5.27405e-02, 2.20020e-02, -3.46698e-02, -4.64915e-02, 1.15780e-02, 4.57322e-03, -1.78545e-02, -2.84353e-02, -2.78836e-02, -7.30337e-02 }
		};

	/*
	 * (1) process arguments
	 */
	OPTS opts = { "", "", "", DMAX };
	if (!GetOpts(argc, argv, opts)) {
		PrintOpts("aace20", DMAX);
		return 1;
	}

	/*
	 * (2) set potential
	 */
	AACE AACE_;
	if (opts.table != "") {
		AACE_ = AACE(AACE20_GROUPS, opts.dmax, opts.table);
	} else {
		AACE_ = AACE(AACE20_GROUPS, h, J, opts.dmax, "AACE20_8.0A_k5");
	}

	/*
	 * (2) get AACE energy
	 */
	double E;
	if (opts.lig == "") {
		E = AACE_.GetEnergy(Chain(opts.rec.c_str()));
	} else {
		E = AACE_.GetEnergy(Complex(opts.rec.c_str(), opts.lig.c_str()));
	}

	printf("E(%s)= %.5e\n", AACE_.GetName().c_str(), E);

	return 0;

}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0xeb8, %rsp            # imm = 0xEB8
movq %rsi, %r15
movl %edi, %ebp
leaq 0xf187(%rip), %rsi      # 0x25c68
leaq 0xf8(%rsp), %rbx
movl $0xa0, %edx
movq %rbx, %rdi
callq 0x21b0
leaq 0x28(%rsp), %rdi
leaq 0x2d8(%rsp), %rcx
movl $0x14, %edx
movq %rbx, %rsi
callq 0xfd76
leaq 0xf1f1(%rip), %rsi      # 0x25d08
leaq 0x2d8(%rsp), %r14
movl $0xa0, %edx
movq %r14, %rdi
callq 0x21b0
leaq 0xf8(%rsp), %rbx
leaq 0x1f(%rsp), %rcx
movl $0x14, %edx
movq %rbx, %rdi
movq %r14, %rsi
callq 0xfd76
leaq 0x110(%rsp), %r14
leaq 0xf250(%rip), %rsi      # 0x25da8
leaq 0x58(%rsp), %r12
movl $0xa0, %edx
movq %r12, %rdi
callq 0x21b0
leaq 0x1e(%rsp), %rcx
movl $0x14, %edx
movq %r14, %rdi
movq %r12, %rsi
callq 0xfd76
leaq 0x128(%rsp), %r14
leaq 0xf2ba(%rip), %rsi      # 0x25e48
leaq 0x378(%rsp), %r12
movl $0xa0, %edx
movq %r12, %rdi
callq 0x21b0
leaq 0x1d(%rsp), %rcx
movl $0x14, %edx
movq %r14, %rdi
movq %r12, %rsi
callq 0xfd76
leaq 0x140(%rsp), %r14
leaq 0xf321(%rip), %rsi      # 0x25ee8
leaq 0xe18(%rsp), %r12
movl $0xa0, %edx
movq %r12, %rdi
callq 0x21b0
leaq 0x1c(%rsp), %rcx
movl $0x14, %edx
movq %r14, %rdi
movq %r12, %rsi
callq 0xfd76
leaq 0x158(%rsp), %r14
leaq 0xf388(%rip), %rsi      # 0x25f88
leaq 0xd78(%rsp), %r12
movl $0xa0, %edx
movq %r12, %rdi
callq 0x21b0
leaq 0x1b(%rsp), %rcx
movl $0x14, %edx
movq %r14, %rdi
movq %r12, %rsi
callq 0xfd76
leaq 0x170(%rsp), %r14
leaq 0xf3ef(%rip), %rsi      # 0x26028
leaq 0xcd8(%rsp), %r12
movl $0xa0, %edx
movq %r12, %rdi
callq 0x21b0
leaq 0x1a(%rsp), %rcx
movl $0x14, %edx
movq %r14, %rdi
movq %r12, %rsi
callq 0xfd76
leaq 0x188(%rsp), %r14
leaq 0xf456(%rip), %rsi      # 0x260c8
leaq 0xc38(%rsp), %r12
movl $0xa0, %edx
movq %r12, %rdi
callq 0x21b0
leaq 0x19(%rsp), %rcx
movl $0x14, %edx
movq %r14, %rdi
movq %r12, %rsi
callq 0xfd76
leaq 0x1a0(%rsp), %r14
leaq 0xf4bd(%rip), %rsi      # 0x26168
leaq 0xb98(%rsp), %r12
movl $0xa0, %edx
movq %r12, %rdi
callq 0x21b0
leaq 0x18(%rsp), %rcx
movl $0x14, %edx
movq %r14, %rdi
movq %r12, %rsi
callq 0xfd76
leaq 0x1b8(%rsp), %r14
leaq 0xf524(%rip), %rsi      # 0x26208
leaq 0xaf8(%rsp), %r12
movl $0xa0, %edx
movq %r12, %rdi
callq 0x21b0
leaq 0x17(%rsp), %rcx
movl $0x14, %edx
movq %r14, %rdi
movq %r12, %rsi
callq 0xfd76
leaq 0x1d0(%rsp), %r14
leaq 0xf58b(%rip), %rsi      # 0x262a8
leaq 0xa58(%rsp), %r12
movl $0xa0, %edx
movq %r12, %rdi
callq 0x21b0
leaq 0x16(%rsp), %rcx
movl $0x14, %edx
movq %r14, %rdi
movq %r12, %rsi
callq 0xfd76
leaq 0x1e8(%rsp), %r14
leaq 0xf5f2(%rip), %rsi      # 0x26348
leaq 0x9b8(%rsp), %r12
movl $0xa0, %edx
movq %r12, %rdi
callq 0x21b0
leaq 0x15(%rsp), %rcx
movl $0x14, %edx
movq %r14, %rdi
movq %r12, %rsi
callq 0xfd76
leaq 0x200(%rsp), %r14
leaq 0xf659(%rip), %rsi      # 0x263e8
leaq 0x918(%rsp), %r12
movl $0xa0, %edx
movq %r12, %rdi
callq 0x21b0
leaq 0x14(%rsp), %rcx
movl $0x14, %edx
movq %r14, %rdi
movq %r12, %rsi
callq 0xfd76
leaq 0x218(%rsp), %r14
leaq 0xf6c0(%rip), %rsi      # 0x26488
leaq 0x878(%rsp), %r12
movl $0xa0, %edx
movq %r12, %rdi
callq 0x21b0
leaq 0x13(%rsp), %rcx
movl $0x14, %edx
movq %r14, %rdi
movq %r12, %rsi
callq 0xfd76
leaq 0x230(%rsp), %r14
leaq 0xf727(%rip), %rsi      # 0x26528
leaq 0x7d8(%rsp), %r12
movl $0xa0, %edx
movq %r12, %rdi
callq 0x21b0
leaq 0x12(%rsp), %rcx
movl $0x14, %edx
movq %r14, %rdi
movq %r12, %rsi
callq 0xfd76
leaq 0x248(%rsp), %r14
leaq 0xf78e(%rip), %rsi      # 0x265c8
leaq 0x738(%rsp), %r12
movl $0xa0, %edx
movq %r12, %rdi
callq 0x21b0
leaq 0x11(%rsp), %rcx
movl $0x14, %edx
movq %r14, %rdi
movq %r12, %rsi
callq 0xfd76
leaq 0x260(%rsp), %r14
leaq 0xf7f5(%rip), %rsi      # 0x26668
leaq 0x698(%rsp), %r12
movl $0xa0, %edx
movq %r12, %rdi
callq 0x21b0
leaq 0x10(%rsp), %rcx
movl $0x14, %edx
movq %r14, %rdi
movq %r12, %rsi
callq 0xfd76
leaq 0x278(%rsp), %r14
leaq 0xf85c(%rip), %rsi      # 0x26708
leaq 0x5f8(%rsp), %r12
movl $0xa0, %edx
movq %r12, %rdi
callq 0x21b0
leaq 0xf(%rsp), %rcx
movl $0x14, %edx
movq %r14, %rdi
movq %r12, %rsi
callq 0xfd76
leaq 0x290(%rsp), %r14
leaq 0xf8c3(%rip), %rsi      # 0x267a8
leaq 0x558(%rsp), %r12
movl $0xa0, %edx
movq %r12, %rdi
callq 0x21b0
leaq 0xe(%rsp), %rcx
movl $0x14, %edx
movq %r14, %rdi
movq %r12, %rsi
callq 0xfd76
leaq 0x2a8(%rsp), %r14
leaq 0xf92a(%rip), %rsi      # 0x26848
leaq 0x4b8(%rsp), %r12
movl $0xa0, %edx
movq %r12, %rdi
callq 0x21b0
leaq 0xd(%rsp), %rcx
movl $0x14, %edx
movq %r14, %rdi
movq %r12, %rsi
callq 0xfd76
leaq 0x2c0(%rsp), %r14
leaq 0xf991(%rip), %rsi      # 0x268e8
leaq 0x418(%rsp), %r12
movl $0xa0, %edx
movq %r12, %rdi
callq 0x21b0
leaq 0xc(%rsp), %rcx
movl $0x14, %edx
movq %r14, %rdi
movq %r12, %rsi
callq 0xfd76
leaq 0x40(%rsp), %rdi
leaq 0xf8(%rsp), %rsi
leaq 0xb(%rsp), %rcx
movl $0x14, %edx
callq 0xfdbc
movl $0x1e0, %ebx            # imm = 0x1E0
movq 0xe0(%rsp,%rbx), %rdi
testq %rdi, %rdi
je 0x16fbf
movq 0xf0(%rsp,%rbx), %rsi
subq %rdi, %rsi
callq 0x2220
addq $-0x18, %rbx
jne 0x16fa2
leaq 0x68(%rsp), %rax
movq %rax, -0x10(%rax)
leaq 0x2078(%rip), %rdx      # 0x1904d
leaq 0x58(%rsp), %rdi
movq %rdx, %rsi
callq 0xe36c
leaq 0x78(%rsp), %rbx
leaq 0x88(%rsp), %r13
movq %r13, -0x10(%r13)
leaq 0x2053(%rip), %rdx      # 0x1904d
movq %rbx, %rdi
movq %rdx, %rsi
callq 0xe36c
leaq 0x98(%rsp), %r14
leaq 0xa8(%rsp), %r12
movq %r12, -0x10(%r12)
leaq 0x202c(%rip), %rdx      # 0x1904d
movq %r14, %rdi
movq %rdx, %rsi
callq 0xe36c
movabsq $0x4020000000000000, %rax # imm = 0x4020000000000000
leaq 0x58(%rsp), %rdx
movq %rax, 0x60(%rdx)
movl %ebp, %edi
movq %r15, %rsi
callq 0xe1d7
testb %al, %al
je 0x170b8
leaq 0x2d8(%rsp), %rdi
callq 0x11592
leaq 0x1fec(%rip), %rsi      # 0x1904d
movq %r14, %rdi
callq 0x20b0
testl %eax, %eax
je 0x1711b
movsd 0xb8(%rsp), %xmm0
leaq 0x16307(%rip), %rsi     # 0x2d388
leaq 0xf8(%rsp), %rdi
movq %r14, %rdx
callq 0x10dc2
leaq 0x2d8(%rsp), %rdi
leaq 0xf8(%rsp), %rsi
callq 0x11694
leaq 0xf8(%rsp), %rdi
callq 0x11612
jmp 0x171bc
leaq 0x108(%rsp), %rbx
movq %rbx, -0x10(%rbx)
leaq 0xf8bd(%rip), %rsi      # 0x26988
leaq 0xf8bc(%rip), %rdx      # 0x2698e
leaq 0xf8(%rsp), %rdi
callq 0xe36c
leaq 0xf8(%rsp), %rdi
movsd 0xd271(%rip), %xmm0     # 0x24360
callq 0xe16c
movq 0xf8(%rsp), %rdi
cmpq %rbx, %rdi
je 0x17111
movq 0x108(%rsp), %rsi
incq %rsi
callq 0x2220
movl $0x1, %ebx
jmp 0x172a7
movsd 0xb8(%rsp), %xmm0
movsd %xmm0, 0x20(%rsp)
leaq 0x388(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0xf852(%rip), %rsi      # 0x2698f
leaq 0xf859(%rip), %rdx      # 0x2699d
leaq 0x378(%rsp), %rdi
callq 0xe36c
leaq 0x16230(%rip), %rsi     # 0x2d388
leaq 0xf8(%rsp), %rdi
leaq 0x28(%rsp), %rdx
leaq 0x40(%rsp), %rcx
leaq 0x378(%rsp), %r8
movsd 0x20(%rsp), %xmm0
callq 0x10ab0
leaq 0x2d8(%rsp), %rdi
leaq 0xf8(%rsp), %rsi
callq 0x11694
leaq 0xf8(%rsp), %rdi
callq 0x11612
movq 0x378(%rsp), %rdi
cmpq %r14, %rdi
je 0x171bc
movq 0x388(%rsp), %rsi
incq %rsi
callq 0x2220
leaq 0x1e8a(%rip), %rsi      # 0x1904d
movq %rbx, %rdi
callq 0x20b0
testl %eax, %eax
je 0x17210
movq 0x58(%rsp), %rsi
movq 0x78(%rsp), %rdx
leaq 0xf8(%rsp), %rdi
callq 0x153b4
leaq 0x2d8(%rsp), %rdi
leaq 0xf8(%rsp), %rsi
callq 0x11e1e
movsd %xmm0, 0x20(%rsp)
leaq 0xf8(%rsp), %rdi
callq 0x15438
jmp 0x1724a
movq 0x58(%rsp), %rsi
leaq 0xf8(%rsp), %rdi
callq 0xe638
leaq 0x2d8(%rsp), %rdi
leaq 0xf8(%rsp), %rsi
callq 0x11c10
movsd %xmm0, 0x20(%rsp)
leaq 0xf8(%rsp), %rdi
callq 0xf4e0
leaq 0xf8(%rsp), %rdi
leaq 0x2d8(%rsp), %rsi
callq 0x11ee4
leaq 0x108(%rsp), %rbx
movq -0x10(%rbx), %rsi
leaq 0xf72c(%rip), %rdi      # 0x2699e
movsd 0x20(%rsp), %xmm0
movb $0x1, %al
callq 0x2050
movq -0x10(%rbx), %rdi
cmpq %rbx, %rdi
je 0x17298
movq 0x108(%rsp), %rsi
incq %rsi
callq 0x2220
leaq 0x2d8(%rsp), %rdi
callq 0x11612
xorl %ebx, %ebx
movq 0x98(%rsp), %rdi
cmpq %r12, %rdi
je 0x172c4
movq 0xa8(%rsp), %rsi
incq %rsi
callq 0x2220
movq 0x78(%rsp), %rdi
cmpq %r13, %rdi
leaq 0x68(%rsp), %r14
je 0x172e3
movq 0x88(%rsp), %rsi
incq %rsi
callq 0x2220
movq 0x58(%rsp), %rdi
cmpq %r14, %rdi
je 0x172fa
movq 0x68(%rsp), %rsi
incq %rsi
callq 0x2220
leaq 0x40(%rsp), %rdi
callq 0xfe06
movq 0x28(%rsp), %rdi
testq %rdi, %rdi
je 0x1731b
movq 0x38(%rsp), %rsi
subq %rdi, %rsi
callq 0x2220
movl %ebx, %eax
addq $0xeb8, %rsp            # imm = 0xEB8
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq %rax, %r15
leaq 0xf8(%rsp), %rdi
callq 0xf4e0
jmp 0x173a4
jmp 0x173a1
movq %rax, %r15
leaq 0xf8(%rsp), %rdi
callq 0x11612
jmp 0x17358
movq %rax, %r15
movq 0x378(%rsp), %rdi
cmpq %r14, %rdi
je 0x173a4
movq 0x388(%rsp), %rsi
incq %rsi
callq 0x2220
jmp 0x173a4
jmp 0x173a1
movq %rax, %r15
leaq 0xf8(%rsp), %rdi
callq 0x15438
jmp 0x173a4
jmp 0x173a1
movq %rax, %r15
leaq 0xf8(%rsp), %rdi
callq 0x11612
jmp 0x173a4
jmp 0x173a1
movq %rax, %r15
leaq 0x2d8(%rsp), %rdi
callq 0x11612
jmp 0x173dc
movq %rax, %r15
movq 0xf8(%rsp), %rdi
cmpq %rbx, %rdi
je 0x173dc
movq 0x108(%rsp), %rsi
incq %rsi
callq 0x2220
jmp 0x173dc
jmp 0x173d9
jmp 0x173d9
movq %rax, %r15
leaq 0x58(%rsp), %rdi
callq 0x174d0
leaq 0x40(%rsp), %rdi
callq 0xfe06
jmp 0x174ab
movq %rax, %r15
movq 0x78(%rsp), %rdi
cmpq %r13, %rdi
je 0x17417
movq 0x88(%rsp), %rsi
incq %rsi
callq 0x2220
jmp 0x17417
movq %rax, %r15
movq 0x58(%rsp), %rdi
leaq 0x68(%rsp), %rax
cmpq %rax, %rdi
je 0x173e6
movq 0x68(%rsp), %rsi
incq %rsi
callq 0x2220
jmp 0x173e6
movq %rax, %r15
jmp 0x173e6
movq %rax, %r15
leaq 0x2d8(%rsp), %rdi
leaq 0xf8(%rsp), %rsi
callq 0x255d
movb $0x1, %al
jmp 0x1747f
jmp 0x1747a
jmp 0x1747a
jmp 0x1747a
jmp 0x1747a
jmp 0x1747a
jmp 0x1747a
jmp 0x1747a
jmp 0x1747a
jmp 0x1747a
jmp 0x1747a
jmp 0x1747a
jmp 0x1747a
jmp 0x1747a
jmp 0x1747a
jmp 0x1747a
jmp 0x1747a
jmp 0x1747a
jmp 0x1747a
movq %rax, %r15
xorl %eax, %eax
cmpq %r14, %rbx
sete %cl
testb %al, %al
jne 0x174ab
testb %cl, %cl
jne 0x174ab
movq -0x18(%r14), %rdi
testq %rdi, %rdi
je 0x174a2
movq -0x8(%r14), %rsi
subq %rdi, %rsi
callq 0x2220
addq $-0x18, %r14
cmpq %rbx, %r14
jne 0x1748d
movq 0x28(%rsp), %rdi
testq %rdi, %rdi
je 0x174c2
movq 0x38(%rsp), %rsi
subq %rdi, %rsi
callq 0x2220
movq %r15, %rdi
callq 0x2380
movq %rax, %r15
jmp 0x174ab
nop