// File: /workspace/github_cpp_makefile_star2_O3/WinChua[P]MLDemo/main.cpp
// Function: main
int main(int argc, char* argv[])
{
    if(argc < 3)
    {
        std::cout << "you should specify the train and test file like:" << std::endl;
        std::cout << "MLDemo train.file test.file" << std::endl;
        return 1;
    }
    std::string trainfile(argv[1]), testfile(argv[2]);
    File train(trainfile);
    File test(testfile);
    //train.show_features();
    TreeNode root(train);
    train.show_statistic();
    test.show_statistic();
    root.test(test);
    return 0;
}

// Assembly:
pushq %r14
pushq %rbx
subq $0x1f8, %rsp            # imm = 0x1F8
cmpl $0x2, %edi
jg 0x5022
movq 0x4036(%rip), %rbx      # 0x8fd8
leaq 0x11c4(%rip), %rsi      # 0x616d
movl $0x30, %edx
movq %rbx, %rdi
callq 0x21d0
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x2180
movsbl %al, %esi
movq %rbx, %rdi
callq 0x2030
movq %rax, %rdi
callq 0x2120
leaq 0x11ba(%rip), %rsi      # 0x619e
movl $0x1b, %edx
movq %rbx, %rdi
callq 0x21d0
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x2180
movsbl %al, %esi
movq %rbx, %rdi
callq 0x2030
movq %rax, %rdi
callq 0x2120
movl $0x1, %eax
jmp 0x51e8
movq %rsi, %rbx
movq 0x8(%rsi), %rsi
leaq 0x68(%rsp), %rdi
leaq 0x168(%rsp), %rdx
callq 0x52a8
movq 0x10(%rbx), %rsi
leaq 0x48(%rsp), %rdi
leaq 0x168(%rsp), %rdx
callq 0x52a8
leaq 0x38(%rsp), %r14
movq %r14, -0x10(%r14)
movq 0x68(%rsp), %rsi
movq 0x70(%rsp), %rdx
addq %rsi, %rdx
leaq 0x28(%rsp), %rdi
callq 0x3b8e
leaq 0xf8(%rsp), %rdi
leaq 0x28(%rsp), %rsi
callq 0x43a0
movq 0x28(%rsp), %rdi
cmpq %r14, %rdi
je 0x509a
movq 0x38(%rsp), %rsi
incq %rsi
callq 0x21a0
leaq 0x18(%rsp), %r14
movq %r14, -0x10(%r14)
movq 0x48(%rsp), %rsi
movq 0x50(%rsp), %rdx
addq %rsi, %rdx
leaq 0x8(%rsp), %rdi
callq 0x3b8e
leaq 0x88(%rsp), %rdi
leaq 0x8(%rsp), %rsi
callq 0x43a0
movq 0x8(%rsp), %rdi
cmpq %r14, %rdi
je 0x50e3
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x21a0
leaq 0x168(%rsp), %rdi
leaq 0xf8(%rsp), %rsi
callq 0x249c
leaq 0xf8(%rsp), %rdi
callq 0x42ac
leaq 0x88(%rsp), %rdi
callq 0x42ac
leaq 0x168(%rsp), %rdi
leaq 0x88(%rsp), %rsi
callq 0x2df0
leaq 0x168(%rsp), %rdi
callq 0x52e6
leaq 0xc0(%rsp), %rdi
callq 0x38d8
leaq 0xa8(%rsp), %rbx
movq %rbx, %rdi
callq 0x4518
movq -0x20(%rbx), %rdi
leaq 0x98(%rsp), %rax
cmpq %rax, %rdi
je 0x5172
movq 0x98(%rsp), %rsi
incq %rsi
callq 0x21a0
leaq 0x130(%rsp), %rdi
callq 0x38d8
leaq 0x118(%rsp), %rbx
movq %rbx, %rdi
callq 0x4518
movq -0x20(%rbx), %rdi
leaq 0x108(%rsp), %rax
cmpq %rax, %rdi
je 0x51b0
movq 0x108(%rsp), %rsi
incq %rsi
callq 0x21a0
leaq 0x58(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x51cb
movq 0x58(%rsp), %rsi
incq %rsi
callq 0x21a0
leaq 0x78(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x51e6
movq 0x78(%rsp), %rsi
incq %rsi
callq 0x21a0
xorl %eax, %eax
addq $0x1f8, %rsp            # imm = 0x1F8
popq %rbx
popq %r14
retq
movq %rax, %rbx
jmp 0x524f
movq %rax, %rbx
movq 0x8(%rsp), %rdi
cmpq %r14, %rdi
je 0x525c
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x21a0
jmp 0x525c
movq %rax, %rbx
jmp 0x525c
movq %rax, %rbx
movq 0x28(%rsp), %rdi
cmpq %r14, %rdi
je 0x5269
movq 0x38(%rsp), %rsi
incq %rsi
callq 0x21a0
jmp 0x5269
movq %rax, %rbx
jmp 0x5269
movq %rax, %rbx
jmp 0x5284
movq %rax, %rbx
leaq 0x168(%rsp), %rdi
callq 0x52e6
leaq 0x88(%rsp), %rdi
callq 0x5374
leaq 0xf8(%rsp), %rdi
callq 0x5374
leaq 0x58(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x5284
movq 0x58(%rsp), %rsi
incq %rsi
callq 0x21a0
leaq 0x78(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x529f
movq 0x78(%rsp), %rsi
incq %rsi
callq 0x21a0
movq %rbx, %rdi
callq 0x2290
nop