// File: /workspace/github_cpp_makefile_star2_O1/pgrouchy[P]NoiseWorld/./mathNet.h
// Function: Genome::Genome(int, int, bool, int)
Genome(int myID, int maxDepth, bool isGrow, int isl_id) {
        Tree *new_tree;
        int i;
        pop_id = myID;
        num_trees = 0;
        fitness = 0;
        age = 0.0;
        isNan = false;

        is_alive = true;

        generateRandomPosition();
        mainGridLocation[0] = (int)((myPosition[0] + ((double)ISLAND_SIZE / 2.0)) / NN_BLOCK_SIZE);
        mainGridLocation[1] = (int)((myPosition[1] + ((double)ISLAND_SIZE / 2.0)) / NN_BLOCK_SIZE);

        for (i = 0; i < NUM_OUTPUTS; i++) {
            new_tree = new Tree(false, 0, maxDepth, isGrow, NUM_OUTPUTS, isl_id, i);

            trees.push_back(new_tree);
            tree_id_lookup.push_back(new TreeID(new_tree->tree_id));
            num_trees++;
        }

        myData = new double[num_trees];
        initialVal = new double[num_trees];
        for (i = 0; i < NUM_OUTPUTS; i++) {
            initialVal[i] = (2.0 * randfloat()) - 1.0;
        }
    }

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x18, %rsp
movq %r8, 0x10(%rsp)
movl %ecx, %r12d
movl %edx, 0xc(%rsp)
movq %rdi, %rbx
movq %rdi, 0x8(%rdi)
movq %rdi, (%rdi)
xorl %ebp, %ebp
movq %rbp, 0x10(%rdi)
leaq 0x18(%rdi), %r14
movq %r14, 0x20(%rdi)
movq %r14, 0x18(%rdi)
movq %rbp, 0x28(%rdi)
movl %esi, 0x30(%rdi)
movq %rbp, 0x34(%rdi)
movq %rbp, 0x40(%rdi)
movb $0x0, 0x88(%rdi)
movb $0x1, 0x58(%rdi)
callq 0x979a
movupd 0x68(%rbx), %xmm0
addpd 0x5b64(%rip), %xmm0     # 0xa050
mulpd 0x5b6c(%rip), %xmm0     # 0xa060
cvttpd2dq %xmm0, %xmm0
movlpd %xmm0, 0x48(%rbx)
movzbl %r12b, %r12d
movl $0x38, %edi
callq 0x2200
movq %rax, %r13
movq %rax, %rdi
xorl %esi, %esi
xorl %edx, %edx
movl 0xc(%rsp), %ecx
movl %r12d, %r8d
movl $0x2, %r9d
pushq %rbp
pushq 0x18(%rsp)
callq 0x4668
addq $0x10, %rsp
movl $0x18, %edi
callq 0x2200
movq %r13, 0x10(%rax)
movq %rax, %rdi
movq %rbx, %rsi
callq 0x2060
incq 0x10(%rbx)
movl $0x8, %edi
callq 0x2200
movq %rax, %r15
movq 0x10(%r13), %rax
movq (%rax), %rax
movq %rax, (%r15)
movl $0x18, %edi
callq 0x2200
movq %r15, 0x10(%rax)
movq %rax, %rdi
movq %r14, %rsi
callq 0x2060
incq 0x28(%rbx)
incl 0x34(%rbx)
incl %ebp
cmpl $0x1, %ebp
je 0x4501
movslq 0x34(%rbx), %rax
leaq (,%rax,8), %rcx
testq %rax, %rax
movq $-0x1, %r15
cmovnsq %rcx, %r15
movq %r15, %rdi
callq 0x2030
movq %rax, 0x78(%rbx)
movq %r15, %rdi
callq 0x2030
movq %rax, 0x80(%rbx)
xorl %r14d, %r14d
callq 0x2080
xorps %xmm0, %xmm0
cvtsi2sd %eax, %xmm0
mulsd 0x5a35(%rip), %xmm0     # 0xa010
addsd %xmm0, %xmm0
addsd 0x5a31(%rip), %xmm0     # 0xa018
movq 0x80(%rbx), %rax
movsd %xmm0, (%rax,%r14,8)
incq %r14
cmpq $0x1, %r14
je 0x45c7
addq $0x18, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
jmp 0x4622
movq %rax, %r15
movl $0x38, %esi
movq %r13, %rdi
callq 0x2210
jmp 0x4625
jmp 0x4622
movq %rax, %r15
movq (%r14), %rdi
cmpq %r14, %rdi
je 0x4642
movq (%rdi), %r12
movl $0x18, %esi
callq 0x2210
movq %r12, %rdi
cmpq %r14, %r12
jne 0x462d
movq (%rbx), %rdi
cmpq %rbx, %rdi
je 0x465f
movq (%rdi), %r14
movl $0x18, %esi
callq 0x2210
movq %r14, %rdi
cmpq %rbx, %r14
jne 0x464a
movq %r15, %rdi
callq 0x2340
nop