// File: /workspace/github_cpp_makefile_star2_O1/pgrouchy[P]NoiseWorld/./mathNet.h
// Function: Genome::Genome(Genome*)
Genome(Genome *copyMe) {
        int i;
        list<Tree*>::iterator curTree;
        Tree *new_tree;
        pop_id = copyMe->pop_id;
        num_trees = copyMe->num_trees;
        myData = new double[num_trees];
        initialVal = new double[num_trees];
        fitness = copyMe->fitness;
        closestInd = copyMe->closestInd;
        is_alive = copyMe->is_alive;
        age = copyMe->age;
        mainGridLocation[0] = copyMe->mainGridLocation[0];
        mainGridLocation[1] = copyMe->mainGridLocation[1];
        isNan = copyMe->isNan;

        for (i = 0; i < 2; i++) {
            myPosition[i] = copyMe->myPosition[i];
        }

        i = 0;
        for (curTree = copyMe->trees.begin(); curTree != copyMe->trees.end(); ++curTree) {
//            cout << "Copying eq net...";
            initialVal[i] = copyMe->initialVal[i];
            //myData[i] = copyMe->myData[i];
            new_tree = new Tree((*curTree));
            trees.push_back(new_tree);
            tree_id_lookup.push_back(new TreeID((*curTree)->tree_id));
//            cout << "done copying eq net." << endl;
            i++;
        }
    }

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
pushq %rax
movq %rsi, %r15
movq %rdi, %rbx
movq %rdi, 0x8(%rdi)
movq %rdi, (%rdi)
xorl %eax, %eax
movq %rax, 0x10(%rdi)
leaq 0x18(%rdi), %r14
movq %r14, 0x20(%rdi)
movq %r14, 0x18(%rdi)
movq %rax, 0x28(%rdi)
movl 0x30(%rsi), %eax
movl %eax, 0x30(%rdi)
movslq 0x34(%rsi), %rax
leaq (,%rax,8), %rcx
testq %rax, %rax
movl %eax, 0x34(%rdi)
movq $-0x1, %r12
cmovnsq %rcx, %r12
movq %r12, %rdi
callq 0x2030
movq %rax, 0x78(%rbx)
movq %r12, %rdi
callq 0x2030
movq %rax, 0x80(%rbx)
movl 0x38(%r15), %eax
movl %eax, 0x38(%rbx)
movq 0x50(%r15), %rax
movq %rax, 0x50(%rbx)
movb 0x58(%r15), %al
movb %al, 0x58(%rbx)
movsd 0x40(%r15), %xmm0
movsd %xmm0, 0x40(%rbx)
movl 0x48(%r15), %eax
movl %eax, 0x48(%rbx)
movl 0x4c(%r15), %eax
movl %eax, 0x4c(%rbx)
movb 0x88(%r15), %al
movb %al, 0x88(%rbx)
movl $0xd, %eax
movsd (%r15,%rax,8), %xmm0
movsd %xmm0, (%rbx,%rax,8)
incq %rax
cmpq $0xe, %rax
je 0x5977
movq (%r15), %r13
cmpq %r15, %r13
je 0x5a31
xorl %ebp, %ebp
movq 0x80(%r15), %rax
movsd (%rax,%rbp), %xmm0
movq 0x80(%rbx), %rax
movsd %xmm0, (%rax,%rbp)
movl $0x38, %edi
callq 0x21e0
movq %rax, %r12
movq 0x10(%r13), %rsi
movq %rax, %rdi
callq 0x5be0
movl $0x18, %edi
callq 0x21e0
movq %r12, 0x10(%rax)
movq %rax, %rdi
movq %rbx, %rsi
callq 0x2060
incq 0x10(%rbx)
movl $0x8, %edi
callq 0x21e0
movq %rax, %r12
movq 0x10(%r13), %rax
movq 0x10(%rax), %rax
movq (%rax), %rax
movq %rax, (%r12)
movl $0x18, %edi
callq 0x21e0
movq %r12, 0x10(%rax)
movq %rax, %rdi
movq %r14, %rsi
callq 0x2060
incq 0x28(%rbx)
movq (%r13), %r13
addq $0x8, %rbp
cmpq %r15, %r13
jne 0x5999
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
jmp 0x5a56
movq %rax, %r15
movl $0x38, %esi
movq %r12, %rdi
callq 0x21f0
jmp 0x5a59
jmp 0x5a56
movq %rax, %r15
movq (%r14), %rdi
cmpq %r14, %rdi
je 0x5a76
movq (%rdi), %r12
movl $0x18, %esi
callq 0x21f0
movq %r12, %rdi
cmpq %r14, %r12
jne 0x5a61
movq (%rbx), %rdi
cmpq %rbx, %rdi
je 0x5a93
movq (%rdi), %r14
movl $0x18, %esi
callq 0x21f0
movq %r14, %rdi
cmpq %rbx, %r14
jne 0x5a7e
movq %r15, %rdi
callq 0x2300
nop