// File: /workspace/github_cpp_makefile_star2_O1/nickgammon[P]tinymudserver/commands.cpp
// Function: DoGoTo(tPlayer*, std::istream&)
void DoGoTo (tPlayer * p, istream & sArgs)
  {
  p->NeedFlag ("can_goto");

  int room;
  sArgs >> room;
  
  // check room number supplied OK
  if (sArgs.fail ())
    throw runtime_error ("Go to which room?");

  NoMore (p, sArgs);  // check no more input

  // move player
  PlayerToRoom (p, room,
                MAKE_STRING ("You go to room " << room << "\n"),
                p->playername + " disappears in a puff of smoke!\n",
                p->playername + " appears in a puff of smoke!\n");
  
  }

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %rbx
subq $0x1e8, %rsp            # imm = 0x1E8
movq %rsi, %r14
movq %rdi, %rbx
leaq -0x1e8(%rbp), %r15
movq %r15, -0x10(%r15)
leaq 0x62c1(%rip), %rsi      # 0x105b6
leaq 0x62c2(%rip), %rdx      # 0x105be
leaq -0x1f8(%rbp), %rdi
callq 0x4bc4
leaq -0x1f8(%rbp), %rsi
movq %rbx, %rdi
callq 0x5bf4
movq -0x1f8(%rbp), %rdi
cmpq %r15, %rdi
je 0xa332
movq -0x1e8(%rbp), %rsi
incq %rsi
callq 0x32f0
leaq -0x1c(%rbp), %rsi
movq %r14, %rdi
callq 0x31e0
movq (%r14), %rax
movq -0x18(%rax), %rax
testb $0x5, 0x20(%r14,%rax)
jne 0xa4ae
movq %r14, %rsi
callq 0x8774
leaq -0x1f8(%rbp), %r14
movq %r14, %rdi
callq 0x33d0
movq (%r14), %rax
movq -0x18(%rax), %rax
orl $0x1, -0x1e0(%rbp,%rax)
leaq 0x6253(%rip), %rsi      # 0x105d1
movl $0xf, %edx
movq %r14, %rdi
callq 0x3370
movl -0x1c(%rbp), %esi
leaq -0x1f8(%rbp), %rdi
callq 0x3510
leaq 0x5d2b(%rip), %rsi      # 0x100cc
leaq -0x1f8(%rbp), %rdi
movl $0x1, %edx
callq 0x3370
leaq -0x1f0(%rbp), %rsi
leaq -0x80(%rbp), %rdi
callq 0x3480
leaq -0x50(%rbp), %r14
movq %r14, -0x10(%r14)
movq 0x90(%rbx), %rsi
movq 0x98(%rbx), %rdx
addq %rsi, %rdx
leaq -0x60(%rbp), %rdi
callq 0x5192
leaq 0x61f6(%rip), %rsi      # 0x105e1
leaq -0x60(%rbp), %rdi
callq 0x35a0
leaq -0x30(%rbp), %r15
movq %r15, -0x10(%r15)
movq 0x90(%rbx), %rsi
movq 0x98(%rbx), %rdx
addq %rsi, %rdx
leaq -0x40(%rbp), %rdi
callq 0x5192
leaq 0x61e5(%rip), %rsi      # 0x10602
leaq -0x40(%rbp), %rdi
callq 0x35a0
leaq -0x1c(%rbp), %rsi
leaq -0x80(%rbp), %rdx
leaq -0x60(%rbp), %rcx
leaq -0x40(%rbp), %r8
movq %rbx, %rdi
callq 0x8a22
movq -0x40(%rbp), %rdi
cmpq %r15, %rdi
je 0xa453
movq -0x30(%rbp), %rsi
incq %rsi
callq 0x32f0
movq -0x60(%rbp), %rdi
cmpq %r14, %rdi
je 0xa468
movq -0x50(%rbp), %rsi
incq %rsi
callq 0x32f0
leaq -0x70(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0xa481
movq -0x70(%rbp), %rsi
incq %rsi
callq 0x32f0
movq 0xbb30(%rip), %rsi      # 0x15fb8
leaq -0x1f8(%rbp), %rdi
callq 0x3190
leaq -0x188(%rbp), %rdi
callq 0x3110
addq $0x1e8, %rsp            # imm = 0x1E8
popq %rbx
popq %r14
popq %r15
popq %rbp
retq
movl $0x10, %edi
callq 0x3180
movq %rax, %r14
leaq 0x60fd(%rip), %rsi      # 0x105bf
movq %rax, %rdi
callq 0x3130
movq 0xbb1f(%rip), %rsi      # 0x15ff0
movq 0xbad8(%rip), %rdx      # 0x15fb0
movq %r14, %rdi
callq 0x3500
movq %rax, %rbx
movq %r14, %rdi
callq 0x3250
jmp 0xa58d
jmp 0xa4f2
movq %rax, %rbx
movq -0x40(%rbp), %rdi
cmpq %r15, %rdi
je 0xa511
movq -0x30(%rbp), %rsi
incq %rsi
callq 0x32f0
jmp 0xa511
jmp 0xa50e
movq %rax, %rbx
movq -0x60(%rbp), %rdi
cmpq %r14, %rdi
je 0xa52b
movq -0x50(%rbp), %rsi
incq %rsi
callq 0x32f0
jmp 0xa52b
movq %rax, %rbx
leaq -0x70(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0xa56e
movq -0x70(%rbp), %rsi
incq %rsi
callq 0x32f0
jmp 0xa56e
movq %rax, %rbx
movq -0x1f8(%rbp), %rdi
cmpq %r15, %rdi
je 0xa58d
movq -0x1e8(%rbp), %rsi
incq %rsi
callq 0x32f0
jmp 0xa58d
movq %rax, %rbx
jmp 0xa58d
movq %rax, %rbx
movq 0xba43(%rip), %rsi      # 0x15fb8
leaq -0x1f8(%rbp), %rdi
callq 0x3190
leaq -0x188(%rbp), %rdi
callq 0x3110
movq %rbx, %rdi
callq 0x3530