// File: /workspace/github_cpp_makefile_star2_O3/Wheatwizard[P]Waldo/main.cpp
// Function: main
int main(int argc, char** argv) {
	/*if (argc == 1) {
		std::cout << argv[0] << " takes 1 argument." << std::endl;
		std::cout << "Please pass the name of a file to read from." << std::endl;
	}*/
	 Reactor b(10, 10, 2);
	b.addWaldo("red", 0, 0);
	b.addWaldo("blue", 0, 0);
	b.addArrow(RIGHT, 0, 0, 0);
	b.addArrow(DOWN, 0, 9, 0);
	b.addArrow(LEFT, 9, 9, 0);
	b.addArrow(UP, 9, 0, 0);
	b.addInstruction(Instruction(BOND),0,1,0);
	b[1][1].setMat(BONDER);
	b[1][2].setMat(BONDER);
	Atom* one = new Atom(TRADITIONAL, 1);
	Atom* two = new Atom(TRADITIONAL, 1);	
	b[1][1].addAtom(one);
	b[1][2].addAtom(two);
	while (true) {
		b.advance(0);
	}
}

// Assembly:
pushq %r15
pushq %r14
pushq %rbx
subq $0x60, %rsp
leaq 0x20(%rsp), %rdi
movl $0xa, %esi
movl $0xa, %edx
movl $0x2, %ecx
callq 0x2ef8
leaq 0x10(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x2c36(%rip), %rsi      # 0x5004
leaq 0x2c32(%rip), %rdx      # 0x5007
movq %rsp, %rdi
callq 0x262e
leaq 0x20(%rsp), %rdi
movq %rsp, %rsi
xorl %edx, %edx
xorl %ecx, %ecx
callq 0x3a26
movq (%rsp), %rdi
cmpq %r14, %rdi
je 0x2404
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x2140
movq %rsp, %rdi
movq %r14, (%rdi)
leaq 0x2bf7(%rip), %rsi      # 0x5008
leaq 0x2bf4(%rip), %rdx      # 0x500c
callq 0x262e
leaq 0x20(%rsp), %rdi
movq %rsp, %rsi
xorl %edx, %edx
xorl %ecx, %ecx
callq 0x3a26
movq (%rsp), %rdi
cmpq %r14, %rdi
je 0x2444
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x2140
leaq 0x20(%rsp), %rdi
movl $0x1, %esi
xorl %edx, %edx
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x3ae6
leaq 0x20(%rsp), %rdi
movl $0x4, %esi
xorl %edx, %edx
movl $0x9, %ecx
xorl %r8d, %r8d
callq 0x3ae6
leaq 0x20(%rsp), %rdi
movl $0x3, %esi
movl $0x9, %edx
movl $0x9, %ecx
xorl %r8d, %r8d
callq 0x3ae6
leaq 0x20(%rsp), %rdi
movl $0x2, %esi
movl $0x9, %edx
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x3ae6
leaq 0x20(%rsp), %rdi
movl $0x1, %esi
xorl %edx, %edx
movl $0x1, %ecx
xorl %r8d, %r8d
callq 0x3a66
cmpl $0x1, 0x24(%rsp)
jbe 0x25b9
movq 0x38(%rsp), %rax
movq 0x8(%rax), %rdi
addq $0x28, %rdi
movl $0x1, %esi
callq 0x41d0
cmpl $0x1, 0x24(%rsp)
jbe 0x25b9
movq 0x38(%rsp), %rax
movq 0x8(%rax), %rdi
addq $0x50, %rdi
movl $0x1, %esi
callq 0x41d0
movl $0x50, %edi
callq 0x2130
movq %rax, %r14
movabsq $0x100000000, %rbx      # imm = 0x100000000
movq %rbx, (%rax)
movl $0x8, %r15d
leaq (%r14,%r15), %rdi
callq 0x3bf0
addq $0x10, %r15
cmpq $0x48, %r15
jne 0x2525
movq $0x0, 0x48(%r14)
movl $0x50, %edi
callq 0x2130
movq %rax, %r15
movq %rbx, (%rax)
movl $0x8, %ebx
leaq (%r15,%rbx), %rdi
callq 0x3bf0
addq $0x10, %rbx
cmpq $0x48, %rbx
jne 0x2555
movq $0x0, 0x48(%r15)
cmpl $0x1, 0x24(%rsp)
jbe 0x25b9
movq 0x38(%rsp), %rax
movq 0x8(%rax), %rdi
addq $0x28, %rdi
movq %r14, %rsi
callq 0x3eb0
cmpl $0x1, 0x24(%rsp)
jbe 0x25b9
movq 0x38(%rsp), %rax
movq 0x8(%rax), %rdi
addq $0x50, %rdi
movq %r15, %rsi
callq 0x3eb0
leaq 0x20(%rsp), %rbx
movq %rbx, %rdi
xorl %esi, %esi
callq 0x3794
jmp 0x25ad
leaq 0x2a4d(%rip), %rdi      # 0x500d
leaq 0x2a5b(%rip), %rsi      # 0x5022
leaq 0x2a60(%rip), %rcx      # 0x502e
movl $0x32, %edx
callq 0x20d0
jmp 0x2619
movq %rax, %rbx
movl $0x50, %esi
movq %r15, %rdi
jmp 0x2612
jmp 0x2619
movq %rax, %rbx
movl $0x50, %esi
movq %r14, %rdi
jmp 0x2612
jmp 0x2619
jmp 0x2619
jmp 0x25fe
jmp 0x2619
movq %rax, %rbx
movq (%rsp), %rdi
cmpq %r14, %rdi
je 0x261c
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x2140
jmp 0x261c
movq %rax, %rbx
leaq 0x20(%rsp), %rdi
callq 0x30f0
movq %rbx, %rdi
callq 0x21c0