// File: /workspace/github_cpp_makefile_star2_O1/tyhsu[P]Ewn/ewnAi.cpp
// Function: EwnAI::EwnAI()
EwnAI::EwnAI()
{
    int cmd;
    cout << "Please choose an AI:" << endl;
    cout << "0)Minimax evaluating with feature" << endl;
    cout << "1)Minimax evaluating with simulation 1" << endl;
    cout << "2)Minimax evaluating with simulation 2" << endl;
    cout << "3)Minimax evaluating with simulation 3" << endl;
    cout << "4)Minimax evaluating with simulation 4" << endl;
    cout << "5)MCTS" << endl;
    cout << "6)Random" << endl;
    cout << "Choose: ";
    cin >> cmd;
    if (cmd >= 0 && cmd <=6) this->ai_mode = cmd;
    else this->ai_mode = 0;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %rbx
pushq %rax
movq %rdi, %rbx
addq $0x8, %rdi
callq 0x6c20
leaq 0x88(%rbx), %rdi
callq 0x6c20
leaq 0x7dfb(%rip), %rax      # 0xcc68
movq %rax, 0x88(%rbx)
movabsq $0xaa00000003, %rax     # imm = 0xAA00000003
movq %rax, 0x90(%rbx)
leaq 0x108(%rbx), %rdi
callq 0x6c20
leaq 0x7e08(%rip), %rax      # 0xcca0
movq %rax, 0x108(%rbx)
movabsq $0xb400000003, %rax     # imm = 0xB400000003
movq %rax, 0x110(%rbx)
leaq 0x188(%rbx), %rdi
callq 0x6c20
leaq 0x7e15(%rip), %rax      # 0xccd8
movq %rax, 0x188(%rbx)
movabsq $0xc800000003, %rax     # imm = 0xC800000003
movq %rax, 0x190(%rbx)
leaq 0x208(%rbx), %rdi
callq 0x6c20
leaq 0x7e22(%rip), %rax      # 0xcd10
movq %rax, 0x208(%rbx)
movabsq $0xbe00000003, %rax     # imm = 0xBE00000003
movq %rax, 0x210(%rbx)
leaq 0x288(%rbx), %r14
movq %r14, %rdi
callq 0x6048
leaq 0x298(%rbx), %rdi
callq 0x5f54
movq 0x80a0(%rip), %r15      # 0xcfc8
leaq 0x4791(%rip), %rsi      # 0x96c0
movl $0x14, %edx
movq %r15, %rdi
callq 0x2170
movq (%r15), %rax
addq -0x18(%rax), %r15
movq %r15, %rdi
movl $0xa, %esi
callq 0x2130
movsbl %al, %esi
movq 0x806e(%rip), %rdi      # 0xcfc8
callq 0x2030
movq %rax, %rdi
callq 0x20c0
movq 0x805a(%rip), %r15      # 0xcfc8
leaq 0x43d6(%rip), %rsi      # 0x934b
movl $0x21, %edx
movq %r15, %rdi
callq 0x2170
movq (%r15), %rax
addq -0x18(%rax), %r15
movq %r15, %rdi
movl $0xa, %esi
callq 0x2130
movsbl %al, %esi
movq 0x8028(%rip), %rdi      # 0xcfc8
callq 0x2030
movq %rax, %rdi
callq 0x20c0
movq 0x8014(%rip), %r15      # 0xcfc8
leaq 0x43b2(%rip), %rsi      # 0x936d
movl $0x26, %edx
movq %r15, %rdi
callq 0x2170
movq (%r15), %rax
addq -0x18(%rax), %r15
movq %r15, %rdi
movl $0xa, %esi
callq 0x2130
movsbl %al, %esi
movq 0x7fe2(%rip), %rdi      # 0xcfc8
callq 0x2030
movq %rax, %rdi
callq 0x20c0
movq 0x7fce(%rip), %r15      # 0xcfc8
leaq 0x4393(%rip), %rsi      # 0x9394
movl $0x26, %edx
movq %r15, %rdi
callq 0x2170
movq (%r15), %rax
addq -0x18(%rax), %r15
movq %r15, %rdi
movl $0xa, %esi
callq 0x2130
movsbl %al, %esi
movq 0x7f9c(%rip), %rdi      # 0xcfc8
callq 0x2030
movq %rax, %rdi
callq 0x20c0
movq 0x7f88(%rip), %r15      # 0xcfc8
leaq 0x4374(%rip), %rsi      # 0x93bb
movl $0x26, %edx
movq %r15, %rdi
callq 0x2170
movq (%r15), %rax
addq -0x18(%rax), %r15
movq %r15, %rdi
movl $0xa, %esi
callq 0x2130
movsbl %al, %esi
movq 0x7f56(%rip), %rdi      # 0xcfc8
callq 0x2030
movq %rax, %rdi
callq 0x20c0
movq 0x7f42(%rip), %r15      # 0xcfc8
leaq 0x4355(%rip), %rsi      # 0x93e2
movl $0x26, %edx
movq %r15, %rdi
callq 0x2170
movq (%r15), %rax
addq -0x18(%rax), %r15
movq %r15, %rdi
movl $0xa, %esi
callq 0x2130
movsbl %al, %esi
movq 0x7f10(%rip), %rdi      # 0xcfc8
callq 0x2030
movq %rax, %rdi
callq 0x20c0
movq 0x7efc(%rip), %r15      # 0xcfc8
leaq 0x4336(%rip), %rsi      # 0x9409
movl $0x6, %edx
movq %r15, %rdi
callq 0x2170
movq (%r15), %rax
addq -0x18(%rax), %r15
movq %r15, %rdi
movl $0xa, %esi
callq 0x2130
movsbl %al, %esi
movq 0x7eca(%rip), %rdi      # 0xcfc8
callq 0x2030
movq %rax, %rdi
callq 0x20c0
movq 0x7eb6(%rip), %r15      # 0xcfc8
leaq 0x42f7(%rip), %rsi      # 0x9410
movl $0x8, %edx
movq %r15, %rdi
callq 0x2170
movq (%r15), %rax
addq -0x18(%rax), %r15
movq %r15, %rdi
movl $0xa, %esi
callq 0x2130
movsbl %al, %esi
movq 0x7e84(%rip), %rdi      # 0xcfc8
callq 0x2030
movq %rax, %rdi
callq 0x20c0
movq 0x7e70(%rip), %rdi      # 0xcfc8
leaq 0x3f42(%rip), %rsi      # 0x90a1
movl $0x8, %edx
callq 0x2170
movq 0x7e68(%rip), %rdi      # 0xcfd8
leaq -0x1c(%rbp), %rsi
callq 0x20a0
movl -0x1c(%rbp), %eax
xorl %ecx, %ecx
cmpl $0x7, %eax
cmovbl %eax, %ecx
movl %ecx, (%rbx)
addq $0x8, %rsp
popq %rbx
popq %r14
popq %r15
popq %rbp
retq
jmp 0x51b2
movq %rax, %r15
jmp 0x51bd
movq %rax, %r15
jmp 0x51e7
movq %rax, %r15
jmp 0x5211
movq %rax, %r15
jmp 0x523b
movq %rax, %r15
jmp 0x5265
movq %rax, %r15
movq %r14, %rdi
callq 0x6090
leaq 0x7bb4(%rip), %rax      # 0xcd78
addq $0x10, %rax
movq %rax, 0x208(%rbx)
leaq 0x250(%rbx), %rdi
callq 0x4de6
leaq 0x220(%rbx), %rdi
callq 0x4de6
leaq 0x7b8a(%rip), %rax      # 0xcd78
addq $0x10, %rax
movq %rax, 0x188(%rbx)
leaq 0x1d0(%rbx), %rdi
callq 0x4de6
leaq 0x1a0(%rbx), %rdi
callq 0x4de6
leaq 0x7b60(%rip), %rax      # 0xcd78
addq $0x10, %rax
movq %rax, 0x108(%rbx)
leaq 0x150(%rbx), %rdi
callq 0x4de6
leaq 0x120(%rbx), %rdi
callq 0x4de6
leaq 0x7b36(%rip), %rax      # 0xcd78
addq $0x10, %rax
movq %rax, 0x88(%rbx)
leaq 0xd0(%rbx), %rdi
callq 0x4de6
leaq 0xa0(%rbx), %rdi
callq 0x4de6
leaq 0x7b0c(%rip), %rax      # 0xcd78
addq $0x10, %rax
movq %rax, 0x8(%rbx)
leaq 0x50(%rbx), %rdi
callq 0x4de6
addq $0x20, %rbx
movq %rbx, %rdi
callq 0x4de6
movq %r15, %rdi
callq 0x2200
nop