// File: Quinny[P]IteratedPrisoners/main.cpp
// Function: winner_battle()
void winner_battle() {
    using namespace ipd;

    std::string genome;
    int n;
    std::ifstream f("winners.txt");
    std::vector<prisoner_t> winners;

    while (f >> genome >> n)
        winners.emplace_back(
            make_prisoner_t(genetic::genetic_strategy(genome))
        );

    auto sb = play_tourny(winners, ipd::config::rounds);
    for (auto i: sb)
        std::cout << i.first << ", " << i.second << std::endl;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x380, %rsp            # imm = 0x380
leaq -0x20(%rbp), %rdi
callq 0x44e0
leaq 0x177e2(%rip), %rsi     # 0x201dd
leaq -0x230(%rbp), %rdi
movl $0x8, %edx
callq 0x45f0
jmp 0x8a0e
leaq -0x258(%rbp), %rdi
callq 0xa3f0
leaq -0x230(%rbp), %rdi
leaq -0x20(%rbp), %rsi
callq 0x4480
movq %rax, -0x350(%rbp)
jmp 0x8a33
movq -0x350(%rbp), %rdi
leaq -0x24(%rbp), %rsi
callq 0x4220
movq %rax, -0x358(%rbp)
jmp 0x8a4c
movq -0x358(%rbp), %rdi
movq (%rdi), %rax
movq -0x18(%rax), %rax
addq %rax, %rdi
callq 0x4470
movb %al, -0x359(%rbp)
jmp 0x8a6a
movb -0x359(%rbp), %al
testb $0x1, %al
jne 0x8a79
jmp 0x8b43
leaq -0x2d0(%rbp), %rdi
leaq -0x20(%rbp), %rsi
callq 0xb150
jmp 0x8a8b
leaq -0x298(%rbp), %rdi
leaq -0x2d0(%rbp), %rsi
callq 0x6690
jmp 0x8aa0
leaq -0x258(%rbp), %rdi
leaq -0x298(%rbp), %rsi
callq 0xb930
jmp 0x8ab5
leaq -0x298(%rbp), %rdi
callq 0x9450
leaq -0x2d0(%rbp), %rdi
callq 0xa3c0
jmp 0x8a1a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x238(%rbp)
movl %eax, -0x23c(%rbp)
jmp 0x8cde
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x238(%rbp)
movl %eax, -0x23c(%rbp)
jmp 0x8cc6
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x238(%rbp)
movl %eax, -0x23c(%rbp)
jmp 0x8b32
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x238(%rbp)
movl %eax, -0x23c(%rbp)
leaq -0x298(%rbp), %rdi
callq 0x9450
leaq -0x2d0(%rbp), %rdi
callq 0xa3c0
jmp 0x8cc6
movl 0x2985f(%rip), %edx     # 0x323a8
leaq -0x2e8(%rbp), %rdi
leaq -0x258(%rbp), %rsi
callq 0x59c0
jmp 0x8b5e
leaq -0x2e8(%rbp), %rax
movq %rax, -0x2f0(%rbp)
movq -0x2f0(%rbp), %rdi
callq 0x94c0
movq %rax, -0x2f8(%rbp)
movq -0x2f0(%rbp), %rdi
callq 0x94f0
movq %rax, -0x300(%rbp)
leaq -0x2f8(%rbp), %rdi
leaq -0x300(%rbp), %rsi
callq 0xb870
testb $0x1, %al
jne 0x8bae
jmp 0x8c84
leaq -0x2f8(%rbp), %rdi
callq 0xb8b0
movq %rax, %rsi
leaq -0x348(%rbp), %rdi
callq 0xb8d0
jmp 0x8bcb
movq 0x293e6(%rip), %rdi     # 0x31fb8
leaq -0x348(%rbp), %rsi
callq 0x56c0
movq %rax, -0x368(%rbp)
jmp 0x8be7
movq -0x368(%rbp), %rdi
leaq 0x17515(%rip), %rsi     # 0x2010a
callq 0x43d0
movq %rax, -0x370(%rbp)
jmp 0x8c03
movq -0x370(%rbp), %rdi
movl -0x308(%rbp), %esi
callq 0x45a0
movq %rax, -0x378(%rbp)
jmp 0x8c1e
movq -0x378(%rbp), %rdi
movq 0x2934c(%rip), %rsi     # 0x31f78
callq 0x4420
jmp 0x8c33
leaq -0x348(%rbp), %rdi
callq 0x9430
leaq -0x2f8(%rbp), %rdi
callq 0xb910
jmp 0x8b92
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x238(%rbp)
movl %eax, -0x23c(%rbp)
jmp 0x8cba
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x238(%rbp)
movl %eax, -0x23c(%rbp)
leaq -0x348(%rbp), %rdi
callq 0x9430
jmp 0x8cba
leaq -0x2e8(%rbp), %rdi
callq 0x9520
leaq -0x258(%rbp), %rdi
callq 0x9890
leaq -0x230(%rbp), %rdi
callq 0x4100
leaq -0x20(%rbp), %rdi
callq 0x4230
addq $0x380, %rsp            # imm = 0x380
popq %rbp
retq
leaq -0x2e8(%rbp), %rdi
callq 0x9520
leaq -0x258(%rbp), %rdi
callq 0x9890
leaq -0x230(%rbp), %rdi
callq 0x4100
leaq -0x20(%rbp), %rdi
callq 0x4230
movq -0x238(%rbp), %rdi
callq 0x45c0
nopw %cs:(%rax,%rax)