// File: /workspace/github_cpp_makefile_star2_O3/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 %r15d, %r15d
movq %r15, 0x10(%rdi)
leaq 0x18(%rdi), %r14
movq %r14, 0x20(%rdi)
movq %r14, 0x18(%rdi)
movq %r15, 0x28(%rdi)
movl %esi, 0x30(%rdi)
movq %r15, 0x34(%rdi)
movq %r15, 0x40(%rdi)
movb $0x0, 0x88(%rdi)
movb $0x1, 0x58(%rdi)
callq 0x97a8
movupd 0x68(%rbx), %xmm0
addpd 0x5b71(%rip), %xmm0     # 0xa050
mulpd 0x5b79(%rip), %xmm0     # 0xa060
cvttpd2dq %xmm0, %xmm0
movlpd %xmm0, 0x48(%rbx)
movb $0x1, %bpl
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 %r15
pushq 0x18(%rsp)
callq 0x4684
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)
movslq 0x34(%rbx), %rcx
leaq 0x1(%rcx), %rax
movl %eax, 0x34(%rbx)
movl $0x1, %r15d
testb $0x1, %bpl
movl $0x0, %ebp
jne 0x44f7
shlq $0x3, %rax
cmpl $-0x1, %ecx
movq $-0x1, %r15
cmovgeq %rax, %r15
movq %r15, %rdi
callq 0x2030
movq %rax, 0x78(%rbx)
movq %r15, %rdi
callq 0x2030
movq %rax, 0x80(%rbx)
callq 0x2080
cvtsi2sd %eax, %xmm0
mulsd 0x5a3a(%rip), %xmm0     # 0xa010
addsd %xmm0, %xmm0
addsd 0x5a36(%rip), %xmm0     # 0xa018
movq 0x80(%rbx), %rax
movsd %xmm0, (%rax)
callq 0x2080
xorps %xmm0, %xmm0
cvtsi2sd %eax, %xmm0
mulsd 0x5a0f(%rip), %xmm0     # 0xa010
addsd %xmm0, %xmm0
addsd 0x5a0b(%rip), %xmm0     # 0xa018
movq 0x80(%rbx), %rax
movsd %xmm0, 0x8(%rax)
addq $0x18, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
jmp 0x463e
movq %rax, %r15
movl $0x38, %esi
movq %r13, %rdi
callq 0x2210
jmp 0x4641
jmp 0x463e
movq %rax, %r15
movq (%r14), %rdi
cmpq %r14, %rdi
je 0x465e
movq (%rdi), %r12
movl $0x18, %esi
callq 0x2210
movq %r12, %rdi
cmpq %r14, %r12
jne 0x4649
movq (%rbx), %rdi
cmpq %rbx, %rdi
je 0x467b
movq (%rdi), %r14
movl $0x18, %esi
callq 0x2210
movq %r14, %rdi
cmpq %rbx, %r14
jne 0x4666
movq %r15, %rdi
callq 0x2340
nop