// File: /workspace/github_cpp_makefile_star2_O1/JacobLCarter[P]2D-Portal/game.cpp
// Function: Game::gameOutro[abi:cxx11](Ending)
std::string Game::gameOutro(Ending outroSelection)
{
    std::string outroText;

    //returned if the player wins the game
    if (outroSelection == VICTORY)
    {
        outroText= "\n                                     :X-\n"; 
        outroText += "                                  :X### \n";
        outroText += "                                ;@####@ \n";
        outroText += "                              ;M######X \n";
        outroText += "                            -@########$ \n";
        outroText += "                          .$##########@ \n";
        outroText += "                         =M############-\n";
        outroText += "                        +##############$\n";
        outroText += "                      .H############$=. \n";
        outroText += "         ,/:         ,M##########M;.    \n";
        outroText += "      -+@###;       =##########M;       \n";
        outroText += "   =%M#######;     :#########M/         \n";
        outroText += "-$M###########;   :#########/           \n";
        outroText += " ,;X###########; =########$.            \n";
        outroText += "     ;H#########+#######M=              \n";
        outroText += "       ,+##############+                \n";
        outroText += "          /M#########@-                 \n";
        outroText += "            ;M######%                   \n";
        outroText += "              +####:                    \n";
        outroText += "               ,$M-                     \n\n";  
        outroText += "Congratulations ";
        outroText += testSubject->getName();
        outroText += "\n\n";
        outroText += "You have succeeded in the test.\n\n";
        outroText += "I do not know how you did it. The test was impossible.\n\n";
        outroText += "I hope that you enjoyed the cake...perhaps next time I ";
        outroText += "should poison it.\n\n";
        outroText += "We will see you again soon.\n\n";
    }
    //returned if the player runs out of turns
    else if (outroSelection == BURNED)
    {

        outroText = "\n                     -$-               \n";
        outroText += "                    .H##H,              \n";
        outroText += "                   +######+             \n";
        outroText += "                .+#########H.           \n";
        outroText += "              -$############@.          \n";
        outroText += "            =H###############@  -X:     \n";
        outroText += "          .$##################:  @#@-   \n";
        outroText += "     ,;  .M###################;  H###;  \n";
        outroText += "   ;@#:  @###################@  ,#####: \n";
        outroText += " -M###.  M#################@.  ;######H \n";
        outroText += " M####-  +###############$   =@#######X \n";
        outroText += " H####$   -M###########+   :#########M, \n";
        outroText += "  /####X-   =########%   :M########@/.  \n";
        outroText += "    ,;%H@X;   .$###X   :##MM@%+;:-      \n";
        outroText += "                 ..                     \n";
        outroText += "  -/;:-,.              ,,-==+M########H \n";
        outroText += " -##################@HX%%+%%$%%%+:,,    \n";
        outroText += "    .-/H%%%+%%$H@###############M@+=:/+:\n";
        outroText += "/XHX%:#####MH%=    ,---:;;;;/%%XHM,:###$\n";
        outroText += "$@#MX %+;-                           .  \n\n";
        outroText += "I am afraid that you have run out of time to complete the ";
        outroText += "test, ";
        outroText += testSubject->getName();
        outroText += ".\n\n";
        outroText += "The chamber will now be set on fire.\n\n";
        outroText += "Goodbye.\n\n";
    }
    //returned if the player is killed by toxic waste
    else if (outroSelection == MELTED)
    {
        outroText = "\n            =+$HM####@H%;,             \n";
        outroText += "          /H###############M$,          \n";
        outroText += "          ,@################+           \n";
        outroText += "           .H##############+            \n";
        outroText += "             X############/             \n";
        outroText += "              $##########/              \n";
        outroText += "               %########/               \n";
        outroText += "                /X/;;+X/                \n";
        outroText += "                                        \n";
        outroText += "                 -XHHX-                 \n";
        outroText += "                ,######,                \n";
        outroText += "#############X  .M####M.  X#############\n";
        outroText += "##############-   -//-   -##############\n";
        outroText += "X##############%,      ,+##############X\n";
        outroText += "-##############X        X##############-\n";
        outroText += " %############%          %############% \n";
        outroText += "  %##########;            ;##########%  \n";
        outroText += "   ;#######M=              =M#######;   \n";
        outroText += "    .+M###@,                ,@###M+.    \n";
        outroText += "       :XH.                  .HX:       \n\n";
        outroText += "Did you really think that waste would be safe for human ";
        outroText += "contact?\n\n";
        outroText += "Oh well. At least I can now use your body for research.\n\n";
    }
    //returned if the player chooses to quit the game
    else
    {
        outroText = "\n                         .,---.        \n";
        outroText += "                        ,/XM#MMMX;,     \n";
        outroText += "                      -%##########M%,   \n";
        outroText += "                     -@######%  $###@=  \n";
        outroText += "      .,--,         -H#######$   $###M: \n";
        outroText += "   ,;$M###MMX;     .;##########$;HM###X=\n";
        outroText += " ,/@##########H=      ;################+\n";
        outroText += "-+#############M/,      %##############+\n";
        outroText += "%M###############=      /##############:\n";
        outroText += "H################      .M#############;.\n";
        outroText += "@###############M      ,@###########M:. \n";
        outroText += "X################,      -$=X#######@:   \n";
        outroText += "/@##################%-     +######$-    \n";
        outroText += ".;##################X     .X#####+,     \n";
        outroText += " .;H################/     -X####+.      \n";
        outroText += "   ,;X##############,       .MM/        \n";
        outroText += "      ,:+$H@M#######M#$-    .$$=        \n";
        outroText += "           .,-=;+$@###X:    ;/=.        \n";
        outroText += "                  .,/X$;   .::,         \n";
        outroText += "                      .,    ..          \n\n";
        outroText += testSubject->getName();
        outroText += ", ";
        outroText += testSubject->getName();
        outroText += ", ";
        outroText += testSubject->getName();
        outroText += ".\n";
        outroText += "You think that you can just call it quits?\n\n";
        outroText += "Fine. We will find another Test Subject.\n\n";
        outroText += "You will now be put back to sleep...permanently\n\n";
    }

    return outroText;
}

// Assembly:
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
subq $0x28, %rsp
movq %rdi, %rbx
leaq 0x10(%rdi), %r15
movq %r15, (%rdi)
movq $0x0, 0x8(%rdi)
movb $0x0, 0x10(%rdi)
cmpl $0x2, %edx
je 0x2bd8
movq %rsi, %r14
cmpl $0x1, %edx
je 0x2a1f
testl %edx, %edx
jne 0x2d38
leaq 0x4a3b(%rip), %rcx      # 0x728a
movl $0x2a, %r8d
movq %rbx, %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x21f0
leaq 0x4a4d(%rip), %rsi      # 0x72b5
movq %rbx, %rdi
callq 0x2270
leaq 0x4a68(%rip), %rsi      # 0x72df
movq %rbx, %rdi
callq 0x2270
leaq 0x4a83(%rip), %rsi      # 0x7309
movq %rbx, %rdi
callq 0x2270
leaq 0x4a9e(%rip), %rsi      # 0x7333
movq %rbx, %rdi
callq 0x2270
leaq 0x4ab9(%rip), %rsi      # 0x735d
movq %rbx, %rdi
callq 0x2270
leaq 0x4ad4(%rip), %rsi      # 0x7387
movq %rbx, %rdi
callq 0x2270
leaq 0x4aef(%rip), %rsi      # 0x73b1
movq %rbx, %rdi
callq 0x2270
leaq 0x4b0a(%rip), %rsi      # 0x73db
movq %rbx, %rdi
callq 0x2270
leaq 0x4b25(%rip), %rsi      # 0x7405
movq %rbx, %rdi
callq 0x2270
leaq 0x4b40(%rip), %rsi      # 0x742f
movq %rbx, %rdi
callq 0x2270
leaq 0x4b5b(%rip), %rsi      # 0x7459
movq %rbx, %rdi
callq 0x2270
leaq 0x4b76(%rip), %rsi      # 0x7483
movq %rbx, %rdi
callq 0x2270
leaq 0x4b91(%rip), %rsi      # 0x74ad
movq %rbx, %rdi
callq 0x2270
leaq 0x4bac(%rip), %rsi      # 0x74d7
movq %rbx, %rdi
callq 0x2270
leaq 0x4bc7(%rip), %rsi      # 0x7501
movq %rbx, %rdi
callq 0x2270
leaq 0x4be2(%rip), %rsi      # 0x752b
movq %rbx, %rdi
callq 0x2270
leaq 0x4bfd(%rip), %rsi      # 0x7555
movq %rbx, %rdi
callq 0x2270
leaq 0x4c18(%rip), %rsi      # 0x757f
movq %rbx, %rdi
callq 0x2270
leaq 0x4c33(%rip), %rsi      # 0x75a9
movq %rbx, %rdi
callq 0x2270
leaq 0x4c4f(%rip), %rsi      # 0x75d4
movq %rbx, %rdi
callq 0x2270
movq 0x8(%r14), %rsi
leaq 0x8(%rsp), %rdi
callq 0x4316
movq 0x8(%rsp), %rsi
movq 0x10(%rsp), %rdx
movq %rbx, %rdi
callq 0x2090
leaq 0x18(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x29c8
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x2160
leaq 0x4c02(%rip), %rsi      # 0x75d1
movq %rbx, %rdi
callq 0x2270
leaq 0x4c07(%rip), %rsi      # 0x75e5
movq %rbx, %rdi
callq 0x2270
leaq 0x4c1a(%rip), %rsi      # 0x7607
movq %rbx, %rdi
callq 0x2270
leaq 0x4c44(%rip), %rsi      # 0x7640
movq %rbx, %rdi
callq 0x2270
leaq 0x4c6d(%rip), %rsi      # 0x7678
movq %rbx, %rdi
callq 0x2270
leaq 0x4c72(%rip), %rsi      # 0x768c
jmp 0x2f6a
leaq 0x4c84(%rip), %rcx      # 0x76aa
movl $0x29, %r8d
movq %rbx, %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x21f0
leaq 0x4c95(%rip), %rsi      # 0x76d4
movq %rbx, %rdi
callq 0x2270
leaq 0x4cb0(%rip), %rsi      # 0x76fe
movq %rbx, %rdi
callq 0x2270
leaq 0x4ccb(%rip), %rsi      # 0x7728
movq %rbx, %rdi
callq 0x2270
leaq 0x4ce6(%rip), %rsi      # 0x7752
movq %rbx, %rdi
callq 0x2270
leaq 0x4d01(%rip), %rsi      # 0x777c
movq %rbx, %rdi
callq 0x2270
leaq 0x4d1c(%rip), %rsi      # 0x77a6
movq %rbx, %rdi
callq 0x2270
leaq 0x4d37(%rip), %rsi      # 0x77d0
movq %rbx, %rdi
callq 0x2270
leaq 0x4d52(%rip), %rsi      # 0x77fa
movq %rbx, %rdi
callq 0x2270
leaq 0x4d6d(%rip), %rsi      # 0x7824
movq %rbx, %rdi
callq 0x2270
leaq 0x4d88(%rip), %rsi      # 0x784e
movq %rbx, %rdi
callq 0x2270
leaq 0x4da3(%rip), %rsi      # 0x7878
movq %rbx, %rdi
callq 0x2270
leaq 0x4dbe(%rip), %rsi      # 0x78a2
movq %rbx, %rdi
callq 0x2270
leaq 0x4dd9(%rip), %rsi      # 0x78cc
movq %rbx, %rdi
callq 0x2270
leaq 0x4df4(%rip), %rsi      # 0x78f6
movq %rbx, %rdi
callq 0x2270
leaq 0x4e0f(%rip), %rsi      # 0x7920
movq %rbx, %rdi
callq 0x2270
leaq 0x4e2a(%rip), %rsi      # 0x794a
movq %rbx, %rdi
callq 0x2270
leaq 0x4e45(%rip), %rsi      # 0x7974
movq %rbx, %rdi
callq 0x2270
leaq 0x4e60(%rip), %rsi      # 0x799e
movq %rbx, %rdi
callq 0x2270
leaq 0x4e7b(%rip), %rsi      # 0x79c8
movq %rbx, %rdi
callq 0x2270
leaq 0x4e97(%rip), %rsi      # 0x79f3
movq %rbx, %rdi
callq 0x2270
leaq 0x4ec3(%rip), %rsi      # 0x7a2e
movq %rbx, %rdi
callq 0x2270
movq 0x8(%r14), %rsi
leaq 0x8(%rsp), %rdi
callq 0x4316
movq 0x8(%rsp), %rsi
movq 0x10(%rsp), %rdx
movq %rbx, %rdi
callq 0x2090
leaq 0x18(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x2bae
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x2160
leaq 0x4610(%rip), %rsi      # 0x71c5
movq %rbx, %rdi
callq 0x2270
leaq 0x4e71(%rip), %rsi      # 0x7a35
movq %rbx, %rdi
callq 0x2270
leaq 0x4e89(%rip), %rsi      # 0x7a5c
jmp 0x2f6a
leaq 0x4e88(%rip), %rcx      # 0x7a67
movl $0x29, %r8d
movq %rbx, %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x21f0
leaq 0x4e99(%rip), %rsi      # 0x7a91
movq %rbx, %rdi
callq 0x2270
leaq 0x4eb4(%rip), %rsi      # 0x7abb
movq %rbx, %rdi
callq 0x2270
leaq 0x4ecf(%rip), %rsi      # 0x7ae5
movq %rbx, %rdi
callq 0x2270
leaq 0x4eea(%rip), %rsi      # 0x7b0f
movq %rbx, %rdi
callq 0x2270
leaq 0x4f05(%rip), %rsi      # 0x7b39
movq %rbx, %rdi
callq 0x2270
leaq 0x4f20(%rip), %rsi      # 0x7b63
movq %rbx, %rdi
callq 0x2270
leaq 0x4f3b(%rip), %rsi      # 0x7b8d
movq %rbx, %rdi
callq 0x2270
leaq 0x4f56(%rip), %rsi      # 0x7bb7
movq %rbx, %rdi
callq 0x2270
leaq 0x4f71(%rip), %rsi      # 0x7be1
movq %rbx, %rdi
callq 0x2270
leaq 0x4f8c(%rip), %rsi      # 0x7c0b
movq %rbx, %rdi
callq 0x2270
leaq 0x4fa7(%rip), %rsi      # 0x7c35
movq %rbx, %rdi
callq 0x2270
leaq 0x4fc2(%rip), %rsi      # 0x7c5f
movq %rbx, %rdi
callq 0x2270
leaq 0x4fdd(%rip), %rsi      # 0x7c89
movq %rbx, %rdi
callq 0x2270
leaq 0x4ff8(%rip), %rsi      # 0x7cb3
movq %rbx, %rdi
callq 0x2270
leaq 0x5013(%rip), %rsi      # 0x7cdd
movq %rbx, %rdi
callq 0x2270
leaq 0x502e(%rip), %rsi      # 0x7d07
movq %rbx, %rdi
callq 0x2270
leaq 0x5049(%rip), %rsi      # 0x7d31
movq %rbx, %rdi
callq 0x2270
leaq 0x5064(%rip), %rsi      # 0x7d5b
movq %rbx, %rdi
callq 0x2270
leaq 0x507f(%rip), %rsi      # 0x7d85
movq %rbx, %rdi
callq 0x2270
leaq 0x509b(%rip), %rsi      # 0x7db0
movq %rbx, %rdi
callq 0x2270
leaq 0x50c5(%rip), %rsi      # 0x7de9
movq %rbx, %rdi
callq 0x2270
leaq 0x50c1(%rip), %rsi      # 0x7df4
jmp 0x2f6a
leaq 0x50ef(%rip), %rcx      # 0x7e2e
movl $0x29, %r8d
movq %rbx, %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x21f0
leaq 0x5100(%rip), %rsi      # 0x7e58
movq %rbx, %rdi
callq 0x2270
leaq 0x511b(%rip), %rsi      # 0x7e82
movq %rbx, %rdi
callq 0x2270
leaq 0x5136(%rip), %rsi      # 0x7eac
movq %rbx, %rdi
callq 0x2270
leaq 0x5151(%rip), %rsi      # 0x7ed6
movq %rbx, %rdi
callq 0x2270
leaq 0x516c(%rip), %rsi      # 0x7f00
movq %rbx, %rdi
callq 0x2270
leaq 0x5187(%rip), %rsi      # 0x7f2a
movq %rbx, %rdi
callq 0x2270
leaq 0x51a2(%rip), %rsi      # 0x7f54
movq %rbx, %rdi
callq 0x2270
leaq 0x51bd(%rip), %rsi      # 0x7f7e
movq %rbx, %rdi
callq 0x2270
leaq 0x51d8(%rip), %rsi      # 0x7fa8
movq %rbx, %rdi
callq 0x2270
leaq 0x51f3(%rip), %rsi      # 0x7fd2
movq %rbx, %rdi
callq 0x2270
leaq 0x520e(%rip), %rsi      # 0x7ffc
movq %rbx, %rdi
callq 0x2270
leaq 0x5229(%rip), %rsi      # 0x8026
movq %rbx, %rdi
callq 0x2270
leaq 0x5244(%rip), %rsi      # 0x8050
movq %rbx, %rdi
callq 0x2270
leaq 0x525f(%rip), %rsi      # 0x807a
movq %rbx, %rdi
callq 0x2270
leaq 0x527a(%rip), %rsi      # 0x80a4
movq %rbx, %rdi
callq 0x2270
leaq 0x5295(%rip), %rsi      # 0x80ce
movq %rbx, %rdi
callq 0x2270
leaq 0x52b0(%rip), %rsi      # 0x80f8
movq %rbx, %rdi
callq 0x2270
leaq 0x52cb(%rip), %rsi      # 0x8122
movq %rbx, %rdi
callq 0x2270
leaq 0x52e6(%rip), %rsi      # 0x814c
movq %rbx, %rdi
callq 0x2270
movq 0x8(%r14), %rsi
leaq 0x8(%rsp), %rdi
callq 0x4316
movq 0x8(%rsp), %rsi
movq 0x10(%rsp), %rdx
movq %rbx, %rdi
callq 0x2090
leaq 0x18(%rsp), %r12
movq -0x10(%r12), %rdi
cmpq %r12, %rdi
je 0x2eaa
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x2160
leaq 0x4b81(%rip), %rsi      # 0x7a32
movq %rbx, %rdi
callq 0x2270
movq 0x8(%r14), %rsi
leaq 0x8(%rsp), %rdi
callq 0x4316
movq 0x8(%rsp), %rsi
movq 0x10(%rsp), %rdx
movq %rbx, %rdi
callq 0x2090
movq 0x8(%rsp), %rdi
cmpq %r12, %rdi
je 0x2ef0
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x2160
leaq 0x4b3b(%rip), %rsi      # 0x7a32
movq %rbx, %rdi
callq 0x2270
movq 0x8(%r14), %rsi
leaq 0x8(%rsp), %rdi
callq 0x4316
movq 0x8(%rsp), %rsi
movq 0x10(%rsp), %rdx
movq %rbx, %rdi
callq 0x2090
movq 0x8(%rsp), %rdi
cmpq %r12, %rdi
je 0x2f36
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x2160
leaq 0x5c4c(%rip), %rsi      # 0x8b89
movq %rbx, %rdi
callq 0x2270
leaq 0x522b(%rip), %rsi      # 0x8177
movq %rbx, %rdi
callq 0x2270
leaq 0x5249(%rip), %rsi      # 0x81a4
movq %rbx, %rdi
callq 0x2270
leaq 0x5265(%rip), %rsi      # 0x81cf
movq %rbx, %rdi
callq 0x2270
movq %rbx, %rax
addq $0x28, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
retq
jmp 0x2f85
jmp 0x2fc0
movq %rax, %r14
movq 0x8(%rsp), %rdi
cmpq %r12, %rdi
jne 0x2fad
jmp 0x2fc3
jmp 0x2fc0
jmp 0x2f9c
jmp 0x2f9c
jmp 0x2fc0
movq %rax, %r14
leaq 0x18(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x2fc3
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x2160
jmp 0x2fc3
jmp 0x2fc0
jmp 0x2fc0
movq %rax, %r14
movq (%rbx), %rdi
cmpq %r15, %rdi
je 0x2fd6
movq (%r15), %rsi
incq %rsi
callq 0x2160
movq %r14, %rdi
callq 0x2240