// File: /workspace/github_cpp_makefile_star2_O3/UTAP[P]APHTTP/examples/handlers.cpp
// Function: LoginHandler::callback(Request*)
Response *LoginHandler::callback(Request *req) {
  string username = req->getBodyParam("username");
  string password = req->getBodyParam("password");
  if (username == "root")
    throw Server::Exception("Remote root access has been disabled.");
  cout << "username: " << username << ",\tpassword: " << password << endl;
  Response *res = Response::redirect("/rand");
  res->setSessionId("SID");
  return res;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
subq $0xe0, %rsp
movq %rsi, %rbx
leaq -0xf0(%rbp), %r15
movq %r15, -0x10(%r15)
leaq 0x11ecd(%rip), %rsi     # 0x1921c
leaq 0x11ece(%rip), %rdx     # 0x19224
leaq -0x100(%rbp), %r14
movq %r14, %rdi
callq 0x6f56
leaq -0x40(%rbp), %rdi
movq %rbx, %rsi
movq %r14, %rdx
callq 0xb2e8
movq -0x100(%rbp), %rdi
cmpq %r15, %rdi
je 0x7385
callq 0x4310
leaq -0x90(%rbp), %r14
movq %r14, -0x10(%r14)
leaq 0x11e8e(%rip), %rsi     # 0x19225
leaq 0x11e8f(%rip), %rdx     # 0x1922d
leaq -0xa0(%rbp), %rdi
callq 0x6f56
leaq -0xc0(%rbp), %rdi
leaq -0xa0(%rbp), %rdx
movq %rbx, %rsi
callq 0xb2e8
movq -0xa0(%rbp), %rdi
cmpq %r14, %rdi
je 0x73d1
callq 0x4310
leaq 0x11e56(%rip), %rsi     # 0x1922e
leaq -0x40(%rbp), %rdi
callq 0x4120
testl %eax, %eax
je 0x7518
movq 0x17be0(%rip), %rdi     # 0x1efd0
leaq 0x11e62(%rip), %rsi     # 0x19259
movl $0xa, %edx
callq 0x43c0
movq -0x40(%rbp), %rsi
movq -0x38(%rbp), %rdx
movq 0x17bc0(%rip), %rdi     # 0x1efd0
callq 0x43c0
movq %rax, %rbx
leaq 0x11e45(%rip), %rsi     # 0x19264
movl $0xc, %edx
movq %rax, %rdi
callq 0x43c0
movq -0xc0(%rbp), %rsi
movq -0xb8(%rbp), %rdx
movq %rbx, %rdi
callq 0x43c0
movq %rax, %rbx
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x4330
movsbl %al, %esi
movq %rbx, %rdi
callq 0x4040
movq %rax, %rdi
callq 0x4260
leaq -0x70(%rbp), %r14
movq %r14, -0x10(%r14)
leaq 0x11c78(%rip), %rsi     # 0x190f3
leaq 0x11c76(%rip), %rdx     # 0x190f8
leaq -0x80(%rbp), %rdi
callq 0x6f56
leaq -0x80(%rbp), %rdi
callq 0xa57c
movq %rax, %rbx
movq -0x80(%rbp), %rdi
cmpq %r14, %rdi
je 0x74a5
callq 0x4310
leaq -0x50(%rbp), %r14
movq %r14, -0x10(%r14)
leaq 0x11dbd(%rip), %rsi     # 0x19271
leaq 0x11db9(%rip), %rdx     # 0x19274
leaq -0x60(%rbp), %rdi
callq 0x6f56
leaq -0x60(%rbp), %rsi
movq %rbx, %rdi
callq 0xa44c
movq -0x60(%rbp), %rdi
cmpq %r14, %rdi
je 0x74de
callq 0x4310
leaq -0xb0(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x74f3
callq 0x4310
leaq -0x30(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x7505
callq 0x4310
movq %rbx, %rax
addq $0xe0, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
retq
movl $0x28, %edi
callq 0x41f0
movq %rax, %r14
leaq -0xd0(%rbp), %r15
movq %r15, -0x10(%r15)
leaq 0x11cfc(%rip), %rsi     # 0x19233
leaq 0x11d1a(%rip), %rdx     # 0x19258
leaq -0xe0(%rbp), %rdi
callq 0x6f56
movb $0x1, %r12b
leaq -0xe0(%rbp), %rsi
movq %r14, %rdi
callq 0x138e0
xorl %r12d, %r12d
leaq 0x1756a(%rip), %rsi     # 0x1ead0
leaq 0x5c5(%rip), %rdx       # 0x7b32
movq %r14, %rdi
callq 0x4570
movq %rax, %rbx
movq -0xe0(%rbp), %rdi
cmpq %r15, %rdi
je 0x7589
callq 0x4310
testb %r12b, %r12b
jne 0x7593
jmp 0x75e7
movq %rax, %rbx
movq %r14, %rdi
callq 0x4290
jmp 0x75e7
movq %rax, %rbx
movq -0x60(%rbp), %rdi
jmp 0x75af
jmp 0x75e4
movq %rax, %rbx
movq -0x80(%rbp), %rdi
cmpq %r14, %rdi
je 0x75e7
callq 0x4310
jmp 0x75e7
jmp 0x75e4
movq %rax, %rbx
movq -0xa0(%rbp), %rdi
cmpq %r14, %rdi
jne 0x75f7
jmp 0x75fc
movq %rax, %rbx
jmp 0x75fc
movq %rax, %rbx
movq -0x100(%rbp), %rdi
cmpq %r15, %rdi
jne 0x7609
jmp 0x760e
movq %rax, %rbx
leaq -0xb0(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x75fc
callq 0x4310
leaq -0x30(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x760e
callq 0x4310
movq %rbx, %rdi
callq 0x45a0