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

	/*
	 * (0) default energies (dmax=6.8A, kmin=5)
	 */
	const std::vector<double> h = {
		-1.60823e+00, -1.50102e+00, -1.47335e+00, -1.82202e+00, -1.75968e+00, -7.72545e-01, 6.04329e-01, 2.55978e-01, -4.19681e-01, -1.01144e+00, 4.42831e+00, 1.12513e+00, 7.39351e-01, 5.13158e-01, 7.03065e-01, -4.79007e-03, 1.23034e-01, 1.88040e+00
		};
	const std::vector<std::vector<double> > J = {
		{5.14494e-01, 2.32982e-01, -1.18825e-02, -4.79267e-01, -2.60971e-01, 7.92265e-03, 7.65882e-02, 3.00580e-02, 2.19054e-02, 5.83614e-02, -1.36975e-01, 1.96902e-01, 9.23782e-03, -2.08941e-02, 6.00891e-02, 1.23249e-01, -4.56176e-02, -8.81898e-03 }, 
		{2.32982e-01, -2.00039e-01, -6.56869e-02, 2.70771e-01, -2.92405e-01, -1.29688e-03, 2.66237e-02, 2.78053e-02, 4.34264e-02, 9.09723e-02, -3.18841e-03, -1.84093e-01, 1.75533e-02, 4.55108e-03, 4.44661e-03, 8.85454e-02, -5.36141e-03, -2.89657e-03 }, 
		{-1.18825e-02, -6.56869e-02, -3.58054e-03, 1.61754e-02, 1.01122e-01, -5.20250e-02, 1.47322e-02, -7.77877e-03, 2.93541e-02, 6.68389e-02, -3.44028e-02, -3.95784e-02, -9.05682e-03, -6.92520e-02, 8.67456e-02, 3.06997e-02, 2.63688e-02, -7.55891e-02 }, 
		{-4.79267e-01, 2.70771e-01, 1.61754e-02, -7.34460e-02, 4.22984e-01, -4.73875e-03, 1.43135e-02, -1.76282e-02, -7.93952e-03, 7.52781e-02, -1.01343e-01, 1.66995e-01, -1.17393e-02, -3.35176e-02, 4.17009e-02, 3.22659e-02, -2.99271e-02, -2.45088e-02 }, 
		{-2.60971e-01, -2.92405e-01, 1.01122e-01, 4.22984e-01, 1.36008e-01, -7.13044e-03, -7.48668e-03, -4.55776e-03, -7.20017e-03, 7.64353e-02, -1.09748e-01, -2.75419e-01, -8.12165e-03, -1.61199e-02, 6.78784e-02, 3.29076e-02, 1.26425e-02, -4.97552e-02 }, 
		{7.92265e-03, -1.29688e-03, -5.20250e-02, -4.73875e-03, -7.13044e-03, -1.05435e-01, -3.19825e-02, 1.00205e-03, 1.33486e-02, 2.53556e-02, -8.93222e-02, 2.00271e-02, -3.76764e-02, -1.29922e-01, 1.39732e-02, 4.12190e-02, -2.60661e-03, -9.08305e-02 }, 
		{7.65882e-02, 2.66237e-02, 1.47322e-02, 1.43135e-02, -7.48668e-03, -3.19825e-02, 6.23459e-02, 8.37308e-02, -4.59253e-03, -2.63784e-01, 5.51613e-02, -1.71107e-02, 2.27089e-03, 2.19795e-02, 2.54067e-01, 2.69225e-01, -1.72442e-02, -8.22190e-02 }, 
		{3.00580e-02, 2.78053e-02, -7.77877e-03, -1.76282e-02, -4.55776e-03, 1.00205e-03, 8.37308e-02, 1.56708e-02, -9.66613e-03, -2.53002e-01, 1.37543e-01, 7.54680e-03, -7.22425e-03, 7.30337e-02, 2.41662e-01, 1.82912e-01, -1.14706e-02, -7.38459e-02 }, 
		{2.19054e-02, 4.34264e-02, 2.93541e-02, -7.93952e-03, -7.20017e-03, 1.33486e-02, -4.59253e-03, -9.66613e-03, -8.89144e-02, -4.49119e-02, 1.13148e-01, -1.74796e-02, -2.83279e-02, 9.27447e-02, 7.43568e-03, -2.85799e-02, -5.86095e-02, -5.35649e-02 }, 
		{5.83614e-02, 9.09723e-02, 6.68389e-02, 7.52781e-02, 7.64353e-02, 2.53556e-02, -2.63784e-01, -2.53002e-01, -4.49119e-02, 1.21987e-01, 1.30581e-01, -5.94875e-03, -1.52840e-01, 1.10914e-01, -3.08656e-01, -3.40476e-01, -8.70755e-02, -9.98389e-02 }, 
		{-1.36975e-01, -3.18841e-03, -3.44028e-02, -1.01343e-01, -1.09748e-01, -8.93222e-02, 5.51613e-02, 1.37543e-01, 1.13148e-01, 1.30581e-01, -1.16021e+00, 1.89012e-01, -7.49936e-02, -8.24475e-02, 2.10707e-01, 1.61511e-01, 8.90165e-02, -5.08981e-02 }, 
		{1.96902e-01, -1.84093e-01, -3.95784e-02, 1.66995e-01, -2.75419e-01, 2.00271e-02, -1.71107e-02, 7.54680e-03, -1.74796e-02, -5.94875e-03, 1.89012e-01, -2.76854e-01, -1.09103e-02, 1.42503e-01, 1.03347e-01, -2.61694e-02, -1.89722e-02, -1.13523e-02 }, 
		{9.23782e-03, 1.75533e-02, -9.05682e-03, -1.17393e-02, -8.12165e-03, -3.76764e-02, 2.27089e-03, -7.22425e-03, -2.83279e-02, -1.52840e-01, -7.49936e-02, -1.09103e-02, -1.45362e-01, 1.86466e-02, 8.87609e-02, 6.51157e-02, -7.00287e-02, -1.05835e-01 }, 
		{-2.08941e-02, 4.55108e-03, -6.92520e-02, -3.35176e-02, -1.61199e-02, -1.29922e-01, 2.19795e-02, 7.30337e-02, 9.27447e-02, 1.10914e-01, -8.24475e-02, 1.42503e-01, 1.86466e-02, -2.57466e-01, 8.46647e-02, 1.38211e-01, 3.62556e-02, -1.05258e-01 }, 
		{6.00891e-02, 4.44661e-03, 8.67456e-02, 4.17009e-02, 6.78784e-02, 1.39732e-02, 2.54067e-01, 2.41662e-01, 7.43568e-03, -3.08656e-01, 2.10707e-01, 1.03347e-01, 8.87609e-02, 8.46647e-02, 3.68852e-01, 3.06581e-01, 3.14345e-02, -1.34007e-01 }, 
		{1.23249e-01, 8.85454e-02, 3.06997e-02, 3.22659e-02, 3.29076e-02, 4.12190e-02, 2.69225e-01, 1.82912e-01, -2.85799e-02, -3.40476e-01, 1.61511e-01, -2.61694e-02, 6.51157e-02, 1.38211e-01, 3.06581e-01, 1.85065e-01, -4.92545e-02, -1.02915e-01 }, 
		{-4.56176e-02, -5.36141e-03, 2.63688e-02, -2.99271e-02, 1.26425e-02, -2.60661e-03, -1.72442e-02, -1.14706e-02, -5.86095e-02, -8.70755e-02, 8.90165e-02, -1.89722e-02, -7.00287e-02, 3.62556e-02, 3.14345e-02, -4.92545e-02, -4.79142e-02, -2.83613e-02 }, 
		{-8.81898e-03, -2.89657e-03, -7.55891e-02, -2.45088e-02, -4.97552e-02, -9.08305e-02, -8.22190e-02, -7.38459e-02, -5.35649e-02, -9.98389e-02, -5.08981e-02, -1.13523e-02, -1.05835e-01, -1.05258e-01, -1.34007e-01, -1.02915e-01, -2.83613e-02, -1.01090e-01 }, 
		};

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

	/*
	 * (2) set potential
	 */
	AACE AACE_;
	if (opts.table != "") {
		AACE_ = AACE(AACE18_GROUPS, opts.dmax, opts.table);
	} else {
		AACE_ = AACE(AACE18_GROUPS, h, J, opts.dmax, "AACE18_6.8A_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 $0xc28, %rsp            # imm = 0xC28
movq %rsi, %r15
movl %edi, %ebp
leaq 0xc4d3(%rip), %rsi      # 0x1aaf0
leaq 0xe0(%rsp), %rbx
movl $0x90, %edx
movq %rbx, %rdi
callq 0x21b0
leaq 0x20(%rsp), %rdi
leaq 0x290(%rsp), %rcx
movl $0x12, %edx
movq %rbx, %rsi
callq 0xef92
leaq 0xc52d(%rip), %rsi      # 0x1ab80
leaq 0x290(%rsp), %r14
movl $0x90, %edx
movq %r14, %rdi
callq 0x21b0
leaq 0xe0(%rsp), %rbx
leaq 0x17(%rsp), %rcx
movl $0x12, %edx
movq %rbx, %rdi
movq %r14, %rsi
callq 0xef92
leaq 0xf8(%rsp), %r14
leaq 0xc57c(%rip), %rsi      # 0x1ac10
leaq 0x38(%rsp), %r12
movl $0x90, %edx
movq %r12, %rdi
callq 0x21b0
leaq 0x16(%rsp), %rcx
movl $0x12, %edx
movq %r14, %rdi
movq %r12, %rsi
callq 0xef92
leaq 0x110(%rsp), %r14
leaq 0xc5d6(%rip), %rsi      # 0x1aca0
leaq 0x328(%rsp), %r12
movl $0x90, %edx
movq %r12, %rdi
callq 0x21b0
leaq 0x15(%rsp), %rcx
movl $0x12, %edx
movq %r14, %rdi
movq %r12, %rsi
callq 0xef92
leaq 0x128(%rsp), %r14
leaq 0xc62d(%rip), %rsi      # 0x1ad30
leaq 0xb98(%rsp), %r12
movl $0x90, %edx
movq %r12, %rdi
callq 0x21b0
leaq 0x14(%rsp), %rcx
movl $0x12, %edx
movq %r14, %rdi
movq %r12, %rsi
callq 0xef92
leaq 0x140(%rsp), %r14
leaq 0xc684(%rip), %rsi      # 0x1adc0
leaq 0xb08(%rsp), %r12
movl $0x90, %edx
movq %r12, %rdi
callq 0x21b0
leaq 0x13(%rsp), %rcx
movl $0x12, %edx
movq %r14, %rdi
movq %r12, %rsi
callq 0xef92
leaq 0x158(%rsp), %r14
leaq 0xc6db(%rip), %rsi      # 0x1ae50
leaq 0xa78(%rsp), %r12
movl $0x90, %edx
movq %r12, %rdi
callq 0x21b0
leaq 0x12(%rsp), %rcx
movl $0x12, %edx
movq %r14, %rdi
movq %r12, %rsi
callq 0xef92
leaq 0x170(%rsp), %r14
leaq 0xc732(%rip), %rsi      # 0x1aee0
leaq 0x9e8(%rsp), %r12
movl $0x90, %edx
movq %r12, %rdi
callq 0x21b0
leaq 0x11(%rsp), %rcx
movl $0x12, %edx
movq %r14, %rdi
movq %r12, %rsi
callq 0xef92
leaq 0x188(%rsp), %r14
leaq 0xc789(%rip), %rsi      # 0x1af70
leaq 0x958(%rsp), %r12
movl $0x90, %edx
movq %r12, %rdi
callq 0x21b0
leaq 0x10(%rsp), %rcx
movl $0x12, %edx
movq %r14, %rdi
movq %r12, %rsi
callq 0xef92
leaq 0x1a0(%rsp), %r14
leaq 0xc7e0(%rip), %rsi      # 0x1b000
leaq 0x8c8(%rsp), %r12
movl $0x90, %edx
movq %r12, %rdi
callq 0x21b0
leaq 0xf(%rsp), %rcx
movl $0x12, %edx
movq %r14, %rdi
movq %r12, %rsi
callq 0xef92
leaq 0x1b8(%rsp), %r14
leaq 0xc837(%rip), %rsi      # 0x1b090
leaq 0x838(%rsp), %r12
movl $0x90, %edx
movq %r12, %rdi
callq 0x21b0
leaq 0xe(%rsp), %rcx
movl $0x12, %edx
movq %r14, %rdi
movq %r12, %rsi
callq 0xef92
leaq 0x1d0(%rsp), %r14
leaq 0xc88e(%rip), %rsi      # 0x1b120
leaq 0x7a8(%rsp), %r12
movl $0x90, %edx
movq %r12, %rdi
callq 0x21b0
leaq 0xd(%rsp), %rcx
movl $0x12, %edx
movq %r14, %rdi
movq %r12, %rsi
callq 0xef92
leaq 0x1e8(%rsp), %r14
leaq 0xc8e5(%rip), %rsi      # 0x1b1b0
leaq 0x718(%rsp), %r12
movl $0x90, %edx
movq %r12, %rdi
callq 0x21b0
leaq 0xc(%rsp), %rcx
movl $0x12, %edx
movq %r14, %rdi
movq %r12, %rsi
callq 0xef92
leaq 0x200(%rsp), %r14
leaq 0xc93c(%rip), %rsi      # 0x1b240
leaq 0x688(%rsp), %r12
movl $0x90, %edx
movq %r12, %rdi
callq 0x21b0
leaq 0xb(%rsp), %rcx
movl $0x12, %edx
movq %r14, %rdi
movq %r12, %rsi
callq 0xef92
leaq 0x218(%rsp), %r14
leaq 0xc993(%rip), %rsi      # 0x1b2d0
leaq 0x5f8(%rsp), %r12
movl $0x90, %edx
movq %r12, %rdi
callq 0x21b0
leaq 0xa(%rsp), %rcx
movl $0x12, %edx
movq %r14, %rdi
movq %r12, %rsi
callq 0xef92
leaq 0x230(%rsp), %r14
leaq 0xc9ea(%rip), %rsi      # 0x1b360
leaq 0x568(%rsp), %r12
movl $0x90, %edx
movq %r12, %rdi
callq 0x21b0
leaq 0x9(%rsp), %rcx
movl $0x12, %edx
movq %r14, %rdi
movq %r12, %rsi
callq 0xef92
leaq 0x248(%rsp), %r14
leaq 0xca41(%rip), %rsi      # 0x1b3f0
leaq 0x4d8(%rsp), %r12
movl $0x90, %edx
movq %r12, %rdi
callq 0x21b0
leaq 0x8(%rsp), %rcx
movl $0x12, %edx
movq %r14, %rdi
movq %r12, %rsi
callq 0xef92
leaq 0x260(%rsp), %r14
leaq 0xca98(%rip), %rsi      # 0x1b480
leaq 0x448(%rsp), %r12
movl $0x90, %edx
movq %r12, %rdi
callq 0x21b0
leaq 0x7(%rsp), %rcx
movl $0x12, %edx
movq %r14, %rdi
movq %r12, %rsi
callq 0xef92
leaq 0x278(%rsp), %r14
leaq 0xcaef(%rip), %rsi      # 0x1b510
leaq 0x3b8(%rsp), %r12
movl $0x90, %edx
movq %r12, %rdi
callq 0x21b0
leaq 0x6(%rsp), %rcx
movl $0x12, %edx
movq %r14, %rdi
movq %r12, %rsi
callq 0xef92
leaq 0xc8(%rsp), %rdi
leaq 0xe0(%rsp), %rsi
leaq 0x5(%rsp), %rcx
movl $0x12, %edx
callq 0xefd8
movl $0x1b0, %ebx            # imm = 0x1B0
movq 0xc8(%rsp,%rbx), %rdi
testq %rdi, %rdi
je 0xea8c
movq 0xd8(%rsp,%rbx), %rsi
subq %rdi, %rsi
callq 0x2220
addq $-0x18, %rbx
jne 0xea6f
leaq 0x48(%rsp), %rax
movq %rax, -0x10(%rax)
leaq 0xa5ab(%rip), %rdx      # 0x1904d
leaq 0x38(%rsp), %rdi
movq %rdx, %rsi
callq 0xe36c
leaq 0x58(%rsp), %rbx
leaq 0x68(%rsp), %r13
movq %r13, -0x10(%r13)
leaq 0xa589(%rip), %rdx      # 0x1904d
movq %rbx, %rdi
movq %rdx, %rsi
callq 0xe36c
leaq 0x78(%rsp), %r14
leaq 0x88(%rsp), %r12
movq %r12, -0x10(%r12)
leaq 0xa565(%rip), %rdx      # 0x1904d
movq %r14, %rdi
movq %rdx, %rsi
callq 0xe36c
movabsq $0x401b333333333333, %rax # imm = 0x401B333333333333
leaq 0x38(%rsp), %rdx
movq %rax, 0x60(%rdx)
movl %ebp, %edi
movq %r15, %rsi
callq 0xe1d7
testb %al, %al
je 0xeb7f
leaq 0x290(%rsp), %rdi
callq 0x1275e
leaq 0xa525(%rip), %rsi      # 0x1904d
movq %r14, %rdi
callq 0x20b0
testl %eax, %eax
je 0xebe2
movsd 0x98(%rsp), %xmm0
leaq 0x1e720(%rip), %rsi     # 0x2d268
leaq 0xe0(%rsp), %rdi
movq %r14, %rdx
callq 0x11f8e
leaq 0x290(%rsp), %rdi
leaq 0xe0(%rsp), %rsi
callq 0x12860
leaq 0xe0(%rsp), %rdi
callq 0x127de
jmp 0xec86
leaq 0xf0(%rsp), %rbx
movq %rbx, -0x10(%rbx)
leaq 0xcfaa(%rip), %rsi      # 0x1bb3c
leaq 0xcfa9(%rip), %rdx      # 0x1bb42
leaq 0xe0(%rsp), %rdi
callq 0xe36c
leaq 0xe0(%rsp), %rdi
movsd 0xa632(%rip), %xmm0     # 0x191e8
callq 0xe16c
movq 0xe0(%rsp), %rdi
cmpq %rbx, %rdi
je 0xebd8
movq 0xf0(%rsp), %rsi
incq %rsi
callq 0x2220
movl $0x1, %ebx
jmp 0xed71
movsd 0x98(%rsp), %xmm0
movsd %xmm0, 0x18(%rsp)
leaq 0x338(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0xcf3f(%rip), %rsi      # 0x1bb43
leaq 0xcf46(%rip), %rdx      # 0x1bb51
leaq 0x328(%rsp), %rdi
callq 0xe36c
leaq 0x1e649(%rip), %rsi     # 0x2d268
leaq 0xe0(%rsp), %rdi
leaq 0x20(%rsp), %rdx
leaq 0xc8(%rsp), %rcx
leaq 0x328(%rsp), %r8
movsd 0x18(%rsp), %xmm0
callq 0x11c7c
leaq 0x290(%rsp), %rdi
leaq 0xe0(%rsp), %rsi
callq 0x12860
leaq 0xe0(%rsp), %rdi
callq 0x127de
movq 0x328(%rsp), %rdi
cmpq %r14, %rdi
je 0xec86
movq 0x338(%rsp), %rsi
incq %rsi
callq 0x2220
leaq 0xa3c0(%rip), %rsi      # 0x1904d
movq %rbx, %rdi
callq 0x20b0
testl %eax, %eax
je 0xecda
movq 0x38(%rsp), %rsi
movq 0x58(%rsp), %rdx
leaq 0xe0(%rsp), %rdi
callq 0x15d94
leaq 0x290(%rsp), %rdi
leaq 0xe0(%rsp), %rsi
callq 0x12fea
movsd %xmm0, 0x18(%rsp)
leaq 0xe0(%rsp), %rdi
callq 0x15e18
jmp 0xed14
movq 0x38(%rsp), %rsi
leaq 0xe0(%rsp), %rdi
callq 0xfb68
leaq 0x290(%rsp), %rdi
leaq 0xe0(%rsp), %rsi
callq 0x12ddc
movsd %xmm0, 0x18(%rsp)
leaq 0xe0(%rsp), %rdi
callq 0x10a10
leaq 0xe0(%rsp), %rdi
leaq 0x290(%rsp), %rsi
callq 0x130b0
leaq 0xf0(%rsp), %rbx
movq -0x10(%rbx), %rsi
leaq 0xce16(%rip), %rdi      # 0x1bb52
movsd 0x18(%rsp), %xmm0
movb $0x1, %al
callq 0x2050
movq -0x10(%rbx), %rdi
cmpq %rbx, %rdi
je 0xed62
movq 0xf0(%rsp), %rsi
incq %rsi
callq 0x2220
leaq 0x290(%rsp), %rdi
callq 0x127de
xorl %ebx, %ebx
movq 0x78(%rsp), %rdi
cmpq %r12, %rdi
je 0xed8b
movq 0x88(%rsp), %rsi
incq %rsi
callq 0x2220
movq 0x58(%rsp), %rdi
cmpq %r13, %rdi
leaq 0x48(%rsp), %r14
je 0xeda7
movq 0x68(%rsp), %rsi
incq %rsi
callq 0x2220
movq 0x38(%rsp), %rdi
cmpq %r14, %rdi
je 0xedbe
movq 0x48(%rsp), %rsi
incq %rsi
callq 0x2220
leaq 0xc8(%rsp), %rdi
callq 0xf022
movq 0x20(%rsp), %rdi
testq %rdi, %rdi
je 0xede2
movq 0x30(%rsp), %rsi
subq %rdi, %rsi
callq 0x2220
movl %ebx, %eax
addq $0xc28, %rsp            # imm = 0xC28
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq %rax, %r15
leaq 0xe0(%rsp), %rdi
callq 0x10a10
jmp 0xee6b
jmp 0xee68
movq %rax, %r15
leaq 0xe0(%rsp), %rdi
callq 0x127de
jmp 0xee1f
movq %rax, %r15
movq 0x328(%rsp), %rdi
cmpq %r14, %rdi
je 0xee6b
movq 0x338(%rsp), %rsi
incq %rsi
callq 0x2220
jmp 0xee6b
jmp 0xee68
movq %rax, %r15
leaq 0xe0(%rsp), %rdi
callq 0x15e18
jmp 0xee6b
jmp 0xee68
movq %rax, %r15
leaq 0xe0(%rsp), %rdi
callq 0x127de
jmp 0xee6b
jmp 0xee68
movq %rax, %r15
leaq 0x290(%rsp), %rdi
callq 0x127de
jmp 0xeea3
movq %rax, %r15
movq 0xe0(%rsp), %rdi
cmpq %rbx, %rdi
je 0xeea3
movq 0xf0(%rsp), %rsi
incq %rsi
callq 0x2220
jmp 0xeea3
jmp 0xeea0
jmp 0xeea0
movq %rax, %r15
leaq 0x38(%rsp), %rdi
callq 0xf610
leaq 0xc8(%rsp), %rdi
callq 0xf022
jmp 0xef6e
movq %rax, %r15
movq 0x58(%rsp), %rdi
cmpq %r13, %rdi
je 0xeede
movq 0x68(%rsp), %rsi
incq %rsi
callq 0x2220
jmp 0xeede
movq %rax, %r15
movq 0x38(%rsp), %rdi
leaq 0x48(%rsp), %rax
cmpq %rax, %rdi
je 0xeead
movq 0x48(%rsp), %rsi
incq %rsi
callq 0x2220
jmp 0xeead
movq %rax, %r15
jmp 0xeead
movq %rax, %r15
leaq 0x290(%rsp), %rdi
leaq 0xe0(%rsp), %rsi
callq 0x23e0
movb $0x1, %al
jmp 0xef42
jmp 0xef3d
jmp 0xef3d
jmp 0xef3d
jmp 0xef3d
jmp 0xef3d
jmp 0xef3d
jmp 0xef3d
jmp 0xef3d
jmp 0xef3d
jmp 0xef3d
jmp 0xef3d
jmp 0xef3d
jmp 0xef3d
jmp 0xef3d
jmp 0xef3d
jmp 0xef3d
movq %rax, %r15
xorl %eax, %eax
cmpq %r14, %rbx
sete %cl
testb %al, %al
jne 0xef6e
testb %cl, %cl
jne 0xef6e
movq -0x18(%r14), %rdi
testq %rdi, %rdi
je 0xef65
movq -0x8(%r14), %rsi
subq %rdi, %rsi
callq 0x2220
addq $-0x18, %r14
cmpq %rbx, %r14
jne 0xef50
movq 0x20(%rsp), %rdi
testq %rdi, %rdi
je 0xef85
movq 0x30(%rsp), %rsi
subq %rdi, %rsi
callq 0x2220
movq %r15, %rdi
callq 0x2380
movq %rax, %r15
jmp 0xef6e