// File: /workspace/github_cpp_makefile_star2_O2/canzarlab[P]Trajan/src/generator.cpp
// Function: main
int main(int argc, char** argv)
{
    if (argc != 3)
    {
        cout << "usage: " << argv[0] << " <n-leaves> <n-trees>\n";
        return 1;
    }
    srand(unsigned(time(0)));
    int n_leaves = stoi(argv[1]);
    int n_trees = stoi(argv[2]);
    for (int i = 0; i < n_trees; ++i)
    {
        for (int j = 0; j < 2; ++j)
        {
            newick_node* root = F[j](n_leaves);
            ofstream file(string("data") + to_string(j) + string("/a") + to_string(i));
            assert(file);
            print_tree(root, file);
            file << '\n';
            delete root;
        }
    }
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x2f8, %rsp            # imm = 0x2F8
movq %rsi, %rbx
cmpl $0x3, %edi
jne 0x2d28
xorl %edi, %edi
callq 0x21b0
movl %eax, %edi
callq 0x21c0
movq 0x8(%rbx), %rsi
leaq 0xf8(%rsp), %rdi
leaq 0x78(%rsp), %rdx
callq 0x2e2e
leaq 0xf8(%rsp), %rdi
pushq $0xa
popq %rdx
xorl %esi, %esi
callq 0x2f64
movl %eax, 0xc(%rsp)
leaq 0xf8(%rsp), %rdi
callq 0x20e0
movq 0x10(%rbx), %rsi
leaq 0xf8(%rsp), %rdi
leaq 0x78(%rsp), %rdx
callq 0x2e2e
xorl %ebx, %ebx
leaq 0xf8(%rsp), %rdi
pushq $0xa
popq %rdx
xorl %esi, %esi
callq 0x2f64
movl %eax, %ebp
leaq 0xf8(%rsp), %r15
movq %r15, %rdi
callq 0x20e0
testl %ebp, %ebp
cmovlel %ebx, %ebp
movl %ebp, 0x8(%rsp)
cmpl %ebp, %ebx
je 0x2d5a
movq %rbx, 0x10(%rsp)
leaq 0x761a(%rip), %r14      # 0xa1d0
xorl %ebp, %ebp
cmpq $0x2, %rbp
je 0x2d18
movl 0xc(%rsp), %edi
callq *(%r14)
movq %rax, %rbx
leaq 0x18(%rsp), %rdi
leaq 0x344b(%rip), %rsi      # 0x6023
leaq 0x7(%rsp), %rdx
callq 0x2e2e
leaq 0xd8(%rsp), %r13
movq %r13, %rdi
movl %ebp, %esi
callq 0x2fe7
leaq 0x38(%rsp), %rdi
leaq 0x18(%rsp), %rsi
movq %r13, %rdx
callq 0x2f80
leaq 0xb8(%rsp), %r13
movq %r13, %rdi
leaq 0x3410(%rip), %rsi      # 0x6028
leaq 0x6(%rsp), %rdx
callq 0x2e2e
leaq 0x58(%rsp), %rdi
leaq 0x38(%rsp), %rsi
movq %r13, %rdx
callq 0x2f80
leaq 0x98(%rsp), %r13
movq %r13, %rdi
movq 0x10(%rsp), %rsi
callq 0x2fe7
leaq 0x78(%rsp), %r12
movq %r12, %rdi
leaq 0x58(%rsp), %rsi
movq %r13, %rdx
callq 0x2f80
movq %r15, %rdi
movq %r12, %rsi
pushq $0x10
popq %rdx
callq 0x2360
movq %r12, %rdi
callq 0x20e0
leaq 0x98(%rsp), %rdi
callq 0x20e0
leaq 0x58(%rsp), %rdi
callq 0x20e0
leaq 0xb8(%rsp), %rdi
callq 0x20e0
leaq 0x38(%rsp), %rdi
callq 0x20e0
leaq 0xd8(%rsp), %rdi
callq 0x20e0
leaq 0x18(%rsp), %rdi
callq 0x20e0
movq 0xf8(%rsp), %rax
movq -0x18(%rax), %rax
testb $0x5, 0x118(%rsp,%rax)
jne 0x2d6e
movq %rbx, %rdi
movq %r15, %r13
movq %r15, %rsi
callq 0x3dc8
movq %r13, %rdi
pushq $0xa
popq %rsi
callq 0x2230
testq %rbx, %rbx
je 0x2cf9
movq %rbx, %rdi
callq 0x35e0
movq %rbx, %rdi
pushq $0x38
popq %rsi
callq 0x21f0
movq %r15, %rdi
callq 0x22d0
incq %rbp
addq $0x8, %r14
jmp 0x2bb8
movq 0x10(%rsp), %rbx
incl %ebx
movl 0x8(%rsp), %ebp
jmp 0x2ba2
movq 0x7291(%rip), %rdi      # 0x9fc0
leaq 0x32ce(%rip), %rsi      # 0x6004
callq 0x21d0
movq (%rbx), %rsi
movq %rax, %rdi
callq 0x21d0
leaq 0x32bf(%rip), %rsi      # 0x600c
movq %rax, %rdi
callq 0x21d0
pushq $0x1
popq %rax
jmp 0x2d5c
xorl %eax, %eax
addq $0x2f8, %rsp            # imm = 0x2F8
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
leaq 0x32b6(%rip), %rdi      # 0x602b
leaq 0x32b4(%rip), %rsi      # 0x6030
leaq 0x32bf(%rip), %rcx      # 0x6042
pushq $0x5c
popq %rdx
callq 0x2130
jmp 0x2d8f
jmp 0x2dad
movq %rax, %rbx
leaq 0xf8(%rsp), %rdi
jmp 0x2e0e
jmp 0x2dad
movq %rax, %rbx
leaq 0x78(%rsp), %rdi
callq 0x20e0
jmp 0x2dce
movq %rax, %rbx
jmp 0x2e25
movq %rax, %rbx
jmp 0x2e09
movq %rax, %rbx
jmp 0x2dfc
movq %rax, %rbx
jmp 0x2df2
movq %rax, %rbx
jmp 0x2de5
movq %rax, %rbx
jmp 0x2ddb
movq %rax, %rbx
leaq 0x98(%rsp), %rdi
callq 0x20e0
leaq 0x58(%rsp), %rdi
callq 0x20e0
leaq 0xb8(%rsp), %rdi
callq 0x20e0
leaq 0x38(%rsp), %rdi
callq 0x20e0
leaq 0xd8(%rsp), %rdi
callq 0x20e0
leaq 0x18(%rsp), %rdi
callq 0x20e0
jmp 0x2e25
movq %rax, %rbx
leaq 0xf8(%rsp), %rdi
callq 0x22d0
movq %rbx, %rdi
callq 0x2330
nop