// File: /workspace/github_cpp_makefile_star2_O2/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
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x58, %rsp
movq %rdx, %rbx
movq %rsi, -0x30(%rbp)
movq %rdi, %r15
leaq -0x78(%rbp), %rdi
movq %rdx, %rsi
callq 0x21d0
leaq 0x9ad9(%rip), %rdi      # 0xd0c8
movq %rbx, %rsi
callq 0x3ff0
cvtsi2sdl 0x9a51(%rip), %xmm0 # 0xd050
addsd 0x60(%rbx), %xmm0
cvttsd2si %xmm0, %eax
movl %eax, 0x9a42(%rip)      # 0xd050
leaq 0x2b06(%rip), %rdi      # 0x611b
callq 0x2120
movq %rbx, -0x38(%rbp)
leaq 0x7b2b(%rip), %r12      # 0xb150
movq %r12, %rdi
movq %r15, %rsi
callq 0x20d0
leaq 0x7ed9(%rip), %r13      # 0xb510
movq %r13, %rdi
movq -0x30(%rbp), %rsi
callq 0x20d0
callq 0x3399
pushq $0xf
popq %r14
leaq 0x2b0b(%rip), %rbx      # 0x615e
movq %r12, %rdi
movq %rbx, %rsi
callq 0x2250
movq %r13, %rdi
movq %rbx, %rsi
callq 0x2250
addq $0x20, %r12
movq %r12, %rdi
movq %r15, %rsi
callq 0x20d0
addq $-0x20, %r13
movq %r13, %rdi
movq -0x30(%rbp), %rsi
callq 0x20d0
decq %r14
je 0x36ac
leaq 0x2a87(%rip), %rdi      # 0x611b
callq 0x2120
callq 0x3399
movq 0x592b(%rip), %rdi      # 0x8fd0
callq 0x20b0
jmp 0x3653
leaq 0x2a68(%rip), %rdi      # 0x611b
callq 0x2120
leaq 0x7c71(%rip), %rdi      # 0xb330
leaq -0x78(%rbp), %rsi
callq 0x20d0
callq 0x3399
leaq 0x7c5c(%rip), %rdi      # 0xb330
leaq 0x2a83(%rip), %rsi      # 0x615e
callq 0x2250
movq -0x38(%rbp), %rsi
addq $0x68, %rsi
leaq -0x58(%rbp), %rdi
callq 0x21d0
movq 0x58d8(%rip), %rdi      # 0x8fd0
leaq -0x58(%rbp), %rsi
callq 0x2140
movq %rax, %rdi
callq 0x20b0
leaq -0x58(%rbp), %rdi
callq 0x20a0
movq 0x58b7(%rip), %rdi      # 0x8fd0
leaq 0x2a40(%rip), %rsi      # 0x6160
callq 0x2160
movl 0x9925(%rip), %esi      # 0xd050
movq %rax, %rdi
callq 0x2220
leaq 0x2a3e(%rip), %rsi      # 0x6178
movq %rax, %rdi
callq 0x2160
movq %rax, %rbx
movq 0x997c(%rip), %rsi      # 0xd0c8
leaq -0x58(%rbp), %rdi
callq 0x21d0
leaq -0x58(%rbp), %rsi
movq %rbx, %rdi
callq 0x2140
movq %rax, %rdi
callq 0x20b0
leaq -0x58(%rbp), %rdi
callq 0x20a0
leaq -0x78(%rbp), %rdi
callq 0x20a0
addq $0x58, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
jmp 0x37a2
jmp 0x37a2
jmp 0x3790
movq %rax, %rbx
leaq -0x58(%rbp), %rdi
callq 0x20a0
jmp 0x37a5
jmp 0x37a2
jmp 0x37a2
movq %rax, %rbx
leaq -0x78(%rbp), %rdi
callq 0x20a0
movq %rbx, %rdi
callq 0x2230