// File: Agusyc[P]CTRPG/src/battle.cpp
// Function: Battle::start(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>)
Player Battle::start(string message) {
    // Start the battle

    printMessage(message, YELLOW);

    printMessage(RED + enemy.name + WHITE + string(" wants to fight!"));

    // Seed the random number generator.
    srand(time(NULL));

    loop();

    return player;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x160, %rsp            # imm = 0x160
movq %rdx, -0x148(%rbp)
movq %rsi, %rax
movq -0x148(%rbp), %rsi
movq %rdi, -0x140(%rbp)
movq %rdi, %rcx
movq %rcx, -0x138(%rbp)
movq %rdi, -0x8(%rbp)
movq %rax, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0x130(%rbp)
leaq -0x38(%rbp), %rdi
callq 0x3130
leaq -0x59(%rbp), %rdi
movq %rdi, -0x128(%rbp)
callq 0x3540
movq -0x128(%rbp), %rdx
leaq 0xd6f5(%rip), %rsi      # 0x11030
leaq -0x58(%rbp), %rdi
callq 0x33a0
jmp 0x3946
leaq -0x38(%rbp), %rdi
leaq -0x58(%rbp), %rsi
movl $0x23, %edx
movl $0x12c, %ecx            # imm = 0x12C
movl $0x1, %r8d
callq 0x10e00
jmp 0x3965
leaq -0x58(%rbp), %rdi
callq 0x31b0
leaq -0x59(%rbp), %rdi
callq 0x32d0
leaq -0x38(%rbp), %rdi
callq 0x31b0
movq -0x130(%rbp), %rdx
addq $0x78, %rdx
leaq 0xd6a4(%rip), %rsi      # 0x11036
leaq -0xd0(%rbp), %rdi
movq %rdi, -0x150(%rbp)
callq 0x82d0
movq -0x150(%rbp), %rsi
leaq 0xd689(%rip), %rdx      # 0x1103c
leaq -0xb0(%rbp), %rdi
callq 0x8280
jmp 0x39c1
leaq -0xf1(%rbp), %rdi
movq %rdi, -0x158(%rbp)
callq 0x3540
movq -0x158(%rbp), %rdx
leaq 0xd660(%rip), %rsi      # 0x11042
leaq -0xf0(%rbp), %rdi
callq 0x33a0
jmp 0x39f0
leaq -0x90(%rbp), %rdi
leaq -0xb0(%rbp), %rsi
leaq -0xf0(%rbp), %rdx
callq 0x81b0
jmp 0x3a0c
leaq -0x119(%rbp), %rdi
movq %rdi, -0x160(%rbp)
callq 0x3540
movq -0x160(%rbp), %rdx
leaq 0xd60f(%rip), %rsi      # 0x1103c
leaq -0x118(%rbp), %rdi
callq 0x33a0
jmp 0x3a3b
leaq -0x90(%rbp), %rdi
leaq -0x118(%rbp), %rsi
movl $0x23, %edx
movl $0x12c, %ecx            # imm = 0x12C
movl $0x1, %r8d
callq 0x10e00
jmp 0x3a60
leaq -0x118(%rbp), %rdi
callq 0x31b0
leaq -0x119(%rbp), %rdi
callq 0x32d0
leaq -0x90(%rbp), %rdi
callq 0x31b0
leaq -0xf0(%rbp), %rdi
callq 0x31b0
leaq -0xf1(%rbp), %rdi
callq 0x32d0
leaq -0xb0(%rbp), %rdi
callq 0x31b0
leaq -0xd0(%rbp), %rdi
callq 0x31b0
xorl %eax, %eax
movl %eax, %edi
callq 0x3250
movl %eax, %edi
callq 0x3270
movq -0x130(%rbp), %rdi
callq 0x3bd0
movq -0x140(%rbp), %rdi
movq -0x130(%rbp), %rsi
callq 0x83e0
movq -0x138(%rbp), %rax
addq $0x160, %rsp            # imm = 0x160
popq %rbp
retq
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
jmp 0x3b16
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
leaq -0x58(%rbp), %rdi
callq 0x31b0
leaq -0x59(%rbp), %rdi
callq 0x32d0
leaq -0x38(%rbp), %rdi
callq 0x31b0
jmp 0x3bc5
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
jmp 0x3bb9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
jmp 0x3ba1
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
jmp 0x3b95
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
jmp 0x3b7d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
leaq -0x118(%rbp), %rdi
callq 0x31b0
leaq -0x119(%rbp), %rdi
callq 0x32d0
leaq -0x90(%rbp), %rdi
callq 0x31b0
leaq -0xf0(%rbp), %rdi
callq 0x31b0
leaq -0xf1(%rbp), %rdi
callq 0x32d0
leaq -0xb0(%rbp), %rdi
callq 0x31b0
leaq -0xd0(%rbp), %rdi
callq 0x31b0
movq -0x68(%rbp), %rdi
callq 0x3530
nop