// File: JoshCplusplus[P]Chemistry-Atom-Simulator-/main.cc
// Function: sim_board(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, molecule)
void sim_board(string obj1, string obj2, molecule molec){
	string mol = molec.get_name();
	avmol.push(molec);
	tot_energy += molec.get_energy();
	system("clear");
	int pos1 = 217;
	int pos2 = 247;
	board[pos1] = obj1;
	board[pos2] = obj2;
	print_board();
	while(pos1 != pos2){
		board[pos1] = "*";
		board[pos2] = "*";
		board[++pos1] = obj1;
		board[--pos2] = obj2;
		if(pos1 == pos2) break;
		system("clear");
		print_board();
		cout << endl;
	}
	system("clear");
	board[pos1] = mol;
	print_board();
	board[pos1] = "*";
	cout << molec.get_message() << endl;
	cout << "\nTotal Energy(Kj/mol): " << tot_energy << "  H.E.M: " << avmol.top().get_name() << endl;

}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0xf0, %rsp
movq %rdx, -0xb0(%rbp)
movq %rsi, %rax
movq -0xb0(%rbp), %rsi
movq %rdi, -0xa8(%rbp)
movq %rax, -0xa0(%rbp)
movq %rsi, -0x98(%rbp)
movq %rdi, -0x8(%rbp)
movq %rax, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
leaq -0x38(%rbp), %rdi
callq 0x5b40
movq -0x98(%rbp), %rsi
leaq 0x10734(%rip), %rdi     # 0x15118
callq 0x5fd0
jmp 0x49eb
movq -0x98(%rbp), %rdi
callq 0x59f0
movsd %xmm0, -0xb8(%rbp)
jmp 0x4a01
movsd -0xb8(%rbp), %xmm1
cvtsi2sdl 0x1068f(%rip), %xmm0 # 0x150a0
addsd %xmm1, %xmm0
cvttsd2si %xmm0, %eax
movl %eax, 0x10681(%rip)     # 0x150a0
leaq 0x66f9(%rip), %rdi      # 0xb11f
callq 0x2140
jmp 0x4a2d
movq -0xa8(%rbp), %rsi
movl $0xd9, -0x48(%rbp)
movl $0xf7, -0x4c(%rbp)
movslq -0x48(%rbp), %rax
shlq $0x5, %rax
leaq 0xcc2f(%rip), %rdi      # 0x11680
addq %rax, %rdi
callq 0x2030
jmp 0x4a5b
movq -0xa0(%rbp), %rsi
movslq -0x4c(%rbp), %rax
shlq $0x5, %rax
leaq 0xcc0f(%rip), %rdi      # 0x11680
addq %rax, %rdi
callq 0x2030
jmp 0x4a7b
callq 0x45a0
jmp 0x4a82
jmp 0x4a84
movl -0x48(%rbp), %eax
cmpl -0x4c(%rbp), %eax
je 0x4b6c
movslq -0x48(%rbp), %rax
shlq $0x5, %rax
leaq 0xcbe1(%rip), %rdi      # 0x11680
addq %rax, %rdi
leaq 0x66b9(%rip), %rsi      # 0xb162
callq 0x2240
jmp 0x4ab0
movslq -0x4c(%rbp), %rax
shlq $0x5, %rax
leaq 0xcbc1(%rip), %rdi      # 0x11680
addq %rax, %rdi
leaq 0x6699(%rip), %rsi      # 0xb162
callq 0x2240
jmp 0x4ad0
movq -0xa8(%rbp), %rsi
movslq -0x48(%rbp), %rax
movl %eax, %ecx
shlq $0x5, %rax
incl %ecx
movl %ecx, -0x48(%rbp)
leaq 0xcb93(%rip), %rcx      # 0x11680
leaq 0x20(%rax,%rcx), %rdi
callq 0x2030
jmp 0x4af9
movq -0xa0(%rbp), %rsi
movslq -0x4c(%rbp), %rax
movl %eax, %ecx
shlq $0x5, %rax
decl %ecx
movl %ecx, -0x4c(%rbp)
leaq 0xcb6a(%rip), %rcx      # 0x11680
leaq -0x20(%rax,%rcx), %rdi
callq 0x2030
jmp 0x4b22
movl -0x48(%rbp), %eax
cmpl -0x4c(%rbp), %eax
jne 0x4b3d
jmp 0x4b6c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x4d02
leaq 0x65db(%rip), %rdi      # 0xb11f
callq 0x2140
jmp 0x4b4b
callq 0x45a0
jmp 0x4b52
movq 0xc477(%rip), %rdi      # 0x10fd0
movq 0xc460(%rip), %rsi      # 0x10fc0
callq 0x21c0
jmp 0x4b67
jmp 0x4a84
leaq 0x65ac(%rip), %rdi      # 0xb11f
callq 0x2140
jmp 0x4b7a
movslq -0x48(%rbp), %rax
shlq $0x5, %rax
leaq 0xcaf7(%rip), %rdi      # 0x11680
addq %rax, %rdi
leaq -0x38(%rbp), %rsi
callq 0x2030
jmp 0x4b97
callq 0x45a0
jmp 0x4b9e
movslq -0x48(%rbp), %rax
shlq $0x5, %rax
leaq 0xcad3(%rip), %rdi      # 0x11680
addq %rax, %rdi
leaq 0x65ab(%rip), %rsi      # 0xb162
callq 0x2240
jmp 0x4bbe
movq -0x98(%rbp), %rsi
leaq -0x70(%rbp), %rdi
callq 0x6020
jmp 0x4bd0
movq 0xc3f9(%rip), %rdi      # 0x10fd0
leaq -0x70(%rbp), %rsi
callq 0x2170
movq %rax, -0xc0(%rbp)
jmp 0x4be9
movq -0xc0(%rbp), %rdi
movq 0xc3c9(%rip), %rsi      # 0x10fc0
callq 0x21c0
jmp 0x4bfe
leaq -0x70(%rbp), %rdi
callq 0x2100
movq 0xc3c2(%rip), %rdi      # 0x10fd0
leaq 0x654f(%rip), %rsi      # 0xb164
callq 0x21a0
movq %rax, -0xc8(%rbp)
jmp 0x4c23
movq -0xc8(%rbp), %rdi
movl 0x10470(%rip), %esi     # 0x150a0
callq 0x22c0
movq %rax, -0xd0(%rbp)
jmp 0x4c3e
movq -0xd0(%rbp), %rdi
leaq 0x6530(%rip), %rsi      # 0xb17c
callq 0x21a0
movq %rax, -0xd8(%rbp)
jmp 0x4c5a
leaq 0x104b7(%rip), %rdi     # 0x15118
callq 0x5b20
movq %rax, -0xe0(%rbp)
jmp 0x4c6f
movq -0xe0(%rbp), %rsi
leaq -0x90(%rbp), %rdi
callq 0x5b40
jmp 0x4c84
movq -0xd8(%rbp), %rdi
leaq -0x90(%rbp), %rsi
callq 0x2170
movq %rax, -0xe8(%rbp)
jmp 0x4ca0
movq -0xe8(%rbp), %rdi
movq 0xc312(%rip), %rsi      # 0x10fc0
callq 0x21c0
jmp 0x4cb5
leaq -0x90(%rbp), %rdi
callq 0x2100
leaq -0x38(%rbp), %rdi
callq 0x2100
addq $0xf0, %rsp
popq %rbp
retq
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0x70(%rbp), %rdi
callq 0x2100
jmp 0x4d02
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0x90(%rbp), %rdi
callq 0x2100
leaq -0x38(%rbp), %rdi
callq 0x2100
movq -0x40(%rbp), %rdi
callq 0x22d0
nopw %cs:(%rax,%rax)