// File: nickgammon[P]tinymudserver/commands.cpp
// Function: DoTransfer(tPlayer*, std::istream&)
void DoTransfer (tPlayer * p, istream & sArgs)
{
  p->NeedFlag ("can_transfer");  // permissions
  tPlayer * ptarget = p->GetPlayer (sArgs, 
    "Usage: transfer <who> [ where ] (default is here)", true);  // who
  int room;
  sArgs >> room;
  
  if (sArgs.fail ())
    room = p->room;   // if no room number, transfer to our room
  
  NoMore (p, sArgs);  // check no more input  

  *p << "You transfer " <<  ptarget->playername << " to room " << room << "\n";
  
   // move player
  PlayerToRoom (ptarget, room,
                p->playername + " transfers you to another room!\n",
                ptarget->playername + " is yanked away by unseen forces!\n",
                ptarget->playername + " appears breathlessly!\n");
     
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x110, %rsp            # imm = 0x110
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0xe8(%rbp)
leaq -0x31(%rbp), %rdi
movq %rdi, -0xe0(%rbp)
callq 0x46e0
movq -0xe0(%rbp), %rdx
leaq 0x9db2(%rip), %rsi      # 0x1c60e
leaq -0x30(%rbp), %rdi
callq 0x67d0
jmp 0x12867
movq -0xe8(%rbp), %rdi
leaq -0x30(%rbp), %rsi
callq 0x82b0
jmp 0x12879
leaq -0x30(%rbp), %rdi
callq 0x47d8
leaq -0x31(%rbp), %rdi
callq 0x44a0
movq -0x8(%rbp), %rax
movq %rax, -0x100(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0xf8(%rbp)
leaq -0x71(%rbp), %rdi
movq %rdi, -0xf0(%rbp)
callq 0x46e0
movq -0xf0(%rbp), %rdx
leaq 0x9d5c(%rip), %rsi      # 0x1c61b
leaq -0x70(%rbp), %rdi
callq 0x67d0
jmp 0x128ca
movq -0xf8(%rbp), %rsi
movq -0x100(%rbp), %rdi
movb $0x1, -0x72(%rbp)
leaq -0x70(%rbp), %rdx
leaq -0x72(%rbp), %rcx
callq 0x77e0
movq %rax, -0x108(%rbp)
jmp 0x128f2
leaq -0x70(%rbp), %rdi
callq 0x47d8
leaq -0x71(%rbp), %rdi
callq 0x44a0
movq -0x108(%rbp), %rax
movq %rax, -0x50(%rbp)
movq -0x10(%rbp), %rdi
leaq -0x78(%rbp), %rsi
callq 0x42d0
movq -0x10(%rbp), %rdi
movq (%rdi), %rax
addq -0x18(%rax), %rdi
callq 0x4030
testb $0x1, %al
jne 0x12932
jmp 0x129a3
movq -0x8(%rbp), %rax
movl 0xd4(%rax), %eax
movl %eax, -0x78(%rbp)
jmp 0x129a3
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x12964
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0x30(%rbp), %rdi
callq 0x47d8
leaq -0x31(%rbp), %rdi
callq 0x44a0
jmp 0x12b06
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x12995
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0x70(%rbp), %rdi
callq 0x47d8
leaq -0x71(%rbp), %rdi
callq 0x44a0
jmp 0x12b06
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
callq 0x10580
movq -0x8(%rbp), %rdi
leaq 0x9c92(%rip), %rsi      # 0x1c64d
callq 0x13e30
movq %rax, %rdi
movq -0x50(%rbp), %rsi
addq $0x90, %rsi
callq 0xb450
movq %rax, %rdi
leaq 0x9be8(%rip), %rsi      # 0x1c5c5
callq 0x14160
movq %rax, %rdi
leaq -0x78(%rbp), %rsi
callq 0x14460
movq %rax, %rdi
leaq 0x96dc(%rip), %rsi      # 0x1c0d4
callq 0x13b80
movq -0x50(%rbp), %rax
movq %rax, -0x110(%rbp)
movq -0x8(%rbp), %rsi
addq $0x90, %rsi
leaq 0x9c41(%rip), %rdx      # 0x1c65b
leaq -0x98(%rbp), %rdi
callq 0x138e0
movq -0x50(%rbp), %rsi
addq $0x90, %rsi
leaq 0x9c44(%rip), %rdx      # 0x1c67c
leaq -0xb8(%rbp), %rdi
callq 0x138e0
jmp 0x12a46
movq -0x50(%rbp), %rsi
addq $0x90, %rsi
leaq 0x9c47(%rip), %rdx      # 0x1c69f
leaq -0xd8(%rbp), %rdi
callq 0x138e0
jmp 0x12a66
movq -0x110(%rbp), %rdi
leaq -0x78(%rbp), %rsi
leaq -0x98(%rbp), %rdx
leaq -0xb8(%rbp), %rcx
leaq -0xd8(%rbp), %r8
callq 0x108d0
jmp 0x12a8d
leaq -0xd8(%rbp), %rdi
callq 0x47d8
leaq -0xb8(%rbp), %rdi
callq 0x47d8
leaq -0x98(%rbp), %rdi
callq 0x47d8
addq $0x110, %rsp            # imm = 0x110
popq %rbp
retq
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x12afa
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x12aee
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0xd8(%rbp), %rdi
callq 0x47d8
leaq -0xb8(%rbp), %rdi
callq 0x47d8
leaq -0x98(%rbp), %rdi
callq 0x47d8
movq -0x40(%rbp), %rdi
callq 0x46d0
nop