// File: /workspace/github_cpp_makefile_star2_O2/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 %r14
pushq %rbx
subq $0x28, %rsp
movq %rdi, %rbx
leaq 0x10(%rdi), %rax
movq %rax, (%rdi)
andq $0x0, 0x8(%rdi)
movb $0x0, 0x10(%rdi)
cmpl $0x2, %edx
je 0x2b4d
movq %rsi, %r14
cmpl $0x1, %edx
je 0x29b4
testl %edx, %edx
jne 0x2ca3
leaq 0x3a86(%rip), %rsi      # 0x628a
movq %rbx, %rdi
callq 0x22b0
leaq 0x3aa2(%rip), %rsi      # 0x62b5
movq %rbx, %rdi
callq 0x22a0
leaq 0x3abd(%rip), %rsi      # 0x62df
movq %rbx, %rdi
callq 0x22a0
leaq 0x3ad8(%rip), %rsi      # 0x6309
movq %rbx, %rdi
callq 0x22a0
leaq 0x3af3(%rip), %rsi      # 0x6333
movq %rbx, %rdi
callq 0x22a0
leaq 0x3b0e(%rip), %rsi      # 0x635d
movq %rbx, %rdi
callq 0x22a0
leaq 0x3b29(%rip), %rsi      # 0x6387
movq %rbx, %rdi
callq 0x22a0
leaq 0x3b44(%rip), %rsi      # 0x63b1
movq %rbx, %rdi
callq 0x22a0
leaq 0x3b5f(%rip), %rsi      # 0x63db
movq %rbx, %rdi
callq 0x22a0
leaq 0x3b7a(%rip), %rsi      # 0x6405
movq %rbx, %rdi
callq 0x22a0
leaq 0x3b95(%rip), %rsi      # 0x642f
movq %rbx, %rdi
callq 0x22a0
leaq 0x3bb0(%rip), %rsi      # 0x6459
movq %rbx, %rdi
callq 0x22a0
leaq 0x3bcb(%rip), %rsi      # 0x6483
movq %rbx, %rdi
callq 0x22a0
leaq 0x3be6(%rip), %rsi      # 0x64ad
movq %rbx, %rdi
callq 0x22a0
leaq 0x3c01(%rip), %rsi      # 0x64d7
movq %rbx, %rdi
callq 0x22a0
leaq 0x3c1c(%rip), %rsi      # 0x6501
movq %rbx, %rdi
callq 0x22a0
leaq 0x3c37(%rip), %rsi      # 0x652b
movq %rbx, %rdi
callq 0x22a0
leaq 0x3c52(%rip), %rsi      # 0x6555
movq %rbx, %rdi
callq 0x22a0
leaq 0x3c6d(%rip), %rsi      # 0x657f
movq %rbx, %rdi
callq 0x22a0
leaq 0x3c88(%rip), %rsi      # 0x65a9
movq %rbx, %rdi
callq 0x22a0
leaq 0x3ca4(%rip), %rsi      # 0x65d4
movq %rbx, %rdi
callq 0x22a0
movq 0x8(%r14), %rsi
leaq 0x8(%rsp), %rdi
callq 0x3dac
leaq 0x8(%rsp), %rsi
movq %rbx, %rdi
callq 0x22c0
leaq 0x8(%rsp), %rdi
callq 0x20d0
leaq 0x3c6d(%rip), %rsi      # 0x65d1
movq %rbx, %rdi
callq 0x22a0
leaq 0x3c72(%rip), %rsi      # 0x65e5
movq %rbx, %rdi
callq 0x22a0
leaq 0x3c85(%rip), %rsi      # 0x6607
movq %rbx, %rdi
callq 0x22a0
leaq 0x3caf(%rip), %rsi      # 0x6640
movq %rbx, %rdi
callq 0x22a0
leaq 0x3cd8(%rip), %rsi      # 0x6678
movq %rbx, %rdi
callq 0x22a0
leaq 0x3cdd(%rip), %rsi      # 0x668c
jmp 0x2e90
leaq 0x3cef(%rip), %rsi      # 0x66aa
movq %rbx, %rdi
callq 0x22b0
leaq 0x3d0a(%rip), %rsi      # 0x66d4
movq %rbx, %rdi
callq 0x22a0
leaq 0x3d25(%rip), %rsi      # 0x66fe
movq %rbx, %rdi
callq 0x22a0
leaq 0x3d40(%rip), %rsi      # 0x6728
movq %rbx, %rdi
callq 0x22a0
leaq 0x3d5b(%rip), %rsi      # 0x6752
movq %rbx, %rdi
callq 0x22a0
leaq 0x3d76(%rip), %rsi      # 0x677c
movq %rbx, %rdi
callq 0x22a0
leaq 0x3d91(%rip), %rsi      # 0x67a6
movq %rbx, %rdi
callq 0x22a0
leaq 0x3dac(%rip), %rsi      # 0x67d0
movq %rbx, %rdi
callq 0x22a0
leaq 0x3dc7(%rip), %rsi      # 0x67fa
movq %rbx, %rdi
callq 0x22a0
leaq 0x3de2(%rip), %rsi      # 0x6824
movq %rbx, %rdi
callq 0x22a0
leaq 0x3dfd(%rip), %rsi      # 0x684e
movq %rbx, %rdi
callq 0x22a0
leaq 0x3e18(%rip), %rsi      # 0x6878
movq %rbx, %rdi
callq 0x22a0
leaq 0x3e33(%rip), %rsi      # 0x68a2
movq %rbx, %rdi
callq 0x22a0
leaq 0x3e4e(%rip), %rsi      # 0x68cc
movq %rbx, %rdi
callq 0x22a0
leaq 0x3e69(%rip), %rsi      # 0x68f6
movq %rbx, %rdi
callq 0x22a0
leaq 0x3e84(%rip), %rsi      # 0x6920
movq %rbx, %rdi
callq 0x22a0
leaq 0x3e9f(%rip), %rsi      # 0x694a
movq %rbx, %rdi
callq 0x22a0
leaq 0x3eba(%rip), %rsi      # 0x6974
movq %rbx, %rdi
callq 0x22a0
leaq 0x3ed5(%rip), %rsi      # 0x699e
movq %rbx, %rdi
callq 0x22a0
leaq 0x3ef0(%rip), %rsi      # 0x69c8
movq %rbx, %rdi
callq 0x22a0
leaq 0x3f0c(%rip), %rsi      # 0x69f3
movq %rbx, %rdi
callq 0x22a0
leaq 0x3f38(%rip), %rsi      # 0x6a2e
movq %rbx, %rdi
callq 0x22a0
movq 0x8(%r14), %rsi
leaq 0x8(%rsp), %rdi
callq 0x3dac
leaq 0x8(%rsp), %rsi
movq %rbx, %rdi
callq 0x22c0
leaq 0x8(%rsp), %rdi
callq 0x20d0
leaq 0x369b(%rip), %rsi      # 0x61c5
movq %rbx, %rdi
callq 0x22a0
leaq 0x3efc(%rip), %rsi      # 0x6a35
movq %rbx, %rdi
callq 0x22a0
leaq 0x3f14(%rip), %rsi      # 0x6a5c
jmp 0x2e90
leaq 0x3f13(%rip), %rsi      # 0x6a67
movq %rbx, %rdi
callq 0x22b0
leaq 0x3f2e(%rip), %rsi      # 0x6a91
movq %rbx, %rdi
callq 0x22a0
leaq 0x3f49(%rip), %rsi      # 0x6abb
movq %rbx, %rdi
callq 0x22a0
leaq 0x3f64(%rip), %rsi      # 0x6ae5
movq %rbx, %rdi
callq 0x22a0
leaq 0x3f7f(%rip), %rsi      # 0x6b0f
movq %rbx, %rdi
callq 0x22a0
leaq 0x3f9a(%rip), %rsi      # 0x6b39
movq %rbx, %rdi
callq 0x22a0
leaq 0x3fb5(%rip), %rsi      # 0x6b63
movq %rbx, %rdi
callq 0x22a0
leaq 0x3fd0(%rip), %rsi      # 0x6b8d
movq %rbx, %rdi
callq 0x22a0
leaq 0x3feb(%rip), %rsi      # 0x6bb7
movq %rbx, %rdi
callq 0x22a0
leaq 0x4006(%rip), %rsi      # 0x6be1
movq %rbx, %rdi
callq 0x22a0
leaq 0x4021(%rip), %rsi      # 0x6c0b
movq %rbx, %rdi
callq 0x22a0
leaq 0x403c(%rip), %rsi      # 0x6c35
movq %rbx, %rdi
callq 0x22a0
leaq 0x4057(%rip), %rsi      # 0x6c5f
movq %rbx, %rdi
callq 0x22a0
leaq 0x4072(%rip), %rsi      # 0x6c89
movq %rbx, %rdi
callq 0x22a0
leaq 0x408d(%rip), %rsi      # 0x6cb3
movq %rbx, %rdi
callq 0x22a0
leaq 0x40a8(%rip), %rsi      # 0x6cdd
movq %rbx, %rdi
callq 0x22a0
leaq 0x40c3(%rip), %rsi      # 0x6d07
movq %rbx, %rdi
callq 0x22a0
leaq 0x40de(%rip), %rsi      # 0x6d31
movq %rbx, %rdi
callq 0x22a0
leaq 0x40f9(%rip), %rsi      # 0x6d5b
movq %rbx, %rdi
callq 0x22a0
leaq 0x4114(%rip), %rsi      # 0x6d85
movq %rbx, %rdi
callq 0x22a0
leaq 0x4130(%rip), %rsi      # 0x6db0
movq %rbx, %rdi
callq 0x22a0
leaq 0x415a(%rip), %rsi      # 0x6de9
movq %rbx, %rdi
callq 0x22a0
leaq 0x4156(%rip), %rsi      # 0x6df4
jmp 0x2e90
leaq 0x4184(%rip), %rsi      # 0x6e2e
movq %rbx, %rdi
callq 0x22b0
leaq 0x419f(%rip), %rsi      # 0x6e58
movq %rbx, %rdi
callq 0x22a0
leaq 0x41ba(%rip), %rsi      # 0x6e82
movq %rbx, %rdi
callq 0x22a0
leaq 0x41d5(%rip), %rsi      # 0x6eac
movq %rbx, %rdi
callq 0x22a0
leaq 0x41f0(%rip), %rsi      # 0x6ed6
movq %rbx, %rdi
callq 0x22a0
leaq 0x420b(%rip), %rsi      # 0x6f00
movq %rbx, %rdi
callq 0x22a0
leaq 0x4226(%rip), %rsi      # 0x6f2a
movq %rbx, %rdi
callq 0x22a0
leaq 0x4241(%rip), %rsi      # 0x6f54
movq %rbx, %rdi
callq 0x22a0
leaq 0x425c(%rip), %rsi      # 0x6f7e
movq %rbx, %rdi
callq 0x22a0
leaq 0x4277(%rip), %rsi      # 0x6fa8
movq %rbx, %rdi
callq 0x22a0
leaq 0x4292(%rip), %rsi      # 0x6fd2
movq %rbx, %rdi
callq 0x22a0
leaq 0x42ad(%rip), %rsi      # 0x6ffc
movq %rbx, %rdi
callq 0x22a0
leaq 0x42c8(%rip), %rsi      # 0x7026
movq %rbx, %rdi
callq 0x22a0
leaq 0x42e3(%rip), %rsi      # 0x7050
movq %rbx, %rdi
callq 0x22a0
leaq 0x42fe(%rip), %rsi      # 0x707a
movq %rbx, %rdi
callq 0x22a0
leaq 0x4319(%rip), %rsi      # 0x70a4
movq %rbx, %rdi
callq 0x22a0
leaq 0x4334(%rip), %rsi      # 0x70ce
movq %rbx, %rdi
callq 0x22a0
leaq 0x434f(%rip), %rsi      # 0x70f8
movq %rbx, %rdi
callq 0x22a0
leaq 0x436a(%rip), %rsi      # 0x7122
movq %rbx, %rdi
callq 0x22a0
leaq 0x4385(%rip), %rsi      # 0x714c
movq %rbx, %rdi
callq 0x22a0
movq 0x8(%r14), %rsi
leaq 0x8(%rsp), %rdi
callq 0x3dac
leaq 0x8(%rsp), %rsi
movq %rbx, %rdi
callq 0x22c0
leaq 0x8(%rsp), %rdi
callq 0x20d0
leaq 0x3c37(%rip), %rsi      # 0x6a32
movq %rbx, %rdi
callq 0x22a0
movq 0x8(%r14), %rsi
leaq 0x8(%rsp), %rdi
callq 0x3dac
leaq 0x8(%rsp), %rsi
movq %rbx, %rdi
callq 0x22c0
leaq 0x8(%rsp), %rdi
callq 0x20d0
leaq 0x3c03(%rip), %rsi      # 0x6a32
movq %rbx, %rdi
callq 0x22a0
movq 0x8(%r14), %rsi
leaq 0x8(%rsp), %rdi
callq 0x3dac
leaq 0x8(%rsp), %rsi
movq %rbx, %rdi
callq 0x22c0
leaq 0x8(%rsp), %rdi
callq 0x20d0
leaq 0x4d26(%rip), %rsi      # 0x7b89
movq %rbx, %rdi
callq 0x22a0
leaq 0x4305(%rip), %rsi      # 0x7177
movq %rbx, %rdi
callq 0x22a0
leaq 0x4323(%rip), %rsi      # 0x71a4
movq %rbx, %rdi
callq 0x22a0
leaq 0x433f(%rip), %rsi      # 0x71cf
movq %rbx, %rdi
callq 0x22a0
movq %rbx, %rax
addq $0x28, %rsp
popq %rbx
popq %r14
retq
jmp 0x2eb1
jmp 0x2ec4
jmp 0x2eb1
jmp 0x2ec4
jmp 0x2eb1
jmp 0x2eb1
jmp 0x2ec4
movq %rax, %r14
leaq 0x8(%rsp), %rdi
callq 0x20d0
jmp 0x2ec7
jmp 0x2ec4
jmp 0x2ec4
movq %rax, %r14
movq %rbx, %rdi
callq 0x20d0
movq %r14, %rdi
callq 0x2280
nop