// File: /workspace/github_cpp_makefile_star2_O1/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 0x11eb9(%rip), %rsi     # 0x1921c
leaq 0x11eba(%rip), %rdx     # 0x19224
leaq -0x100(%rbp), %r14
movq %r14, %rdi
callq 0x6f6c
leaq -0x40(%rbp), %rdi
movq %rbx, %rsi
movq %r14, %rdx
callq 0xb338
movq -0x100(%rbp), %rdi
cmpq %r15, %rdi
je 0x7399
callq 0x4310
leaq -0x90(%rbp), %r14
movq %r14, -0x10(%r14)
leaq 0x11e7a(%rip), %rsi     # 0x19225
leaq 0x11e7b(%rip), %rdx     # 0x1922d
leaq -0xa0(%rbp), %rdi
callq 0x6f6c
leaq -0xc0(%rbp), %rdi
leaq -0xa0(%rbp), %rdx
movq %rbx, %rsi
callq 0xb338
movq -0xa0(%rbp), %rdi
cmpq %r14, %rdi
je 0x73e5
callq 0x4310
leaq 0x11e42(%rip), %rsi     # 0x1922e
leaq -0x40(%rbp), %rdi
callq 0x4120
testl %eax, %eax
je 0x752c
movq 0x17bcc(%rip), %rdi     # 0x1efd0
leaq 0x11e4e(%rip), %rsi     # 0x19259
movl $0xa, %edx
callq 0x43c0
movq -0x40(%rbp), %rsi
movq -0x38(%rbp), %rdx
movq 0x17bac(%rip), %rdi     # 0x1efd0
callq 0x43c0
movq %rax, %rbx
leaq 0x11e31(%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 0x11c64(%rip), %rsi     # 0x190f3
leaq 0x11c62(%rip), %rdx     # 0x190f8
leaq -0x80(%rbp), %rdi
callq 0x6f6c
leaq -0x80(%rbp), %rdi
callq 0xa5bc
movq %rax, %rbx
movq -0x80(%rbp), %rdi
cmpq %r14, %rdi
je 0x74b9
callq 0x4310
leaq -0x50(%rbp), %r14
movq %r14, -0x10(%r14)
leaq 0x11da9(%rip), %rsi     # 0x19271
leaq 0x11da5(%rip), %rdx     # 0x19274
leaq -0x60(%rbp), %rdi
callq 0x6f6c
leaq -0x60(%rbp), %rsi
movq %rbx, %rdi
callq 0xa48c
movq -0x60(%rbp), %rdi
cmpq %r14, %rdi
je 0x74f2
callq 0x4310
leaq -0xb0(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x7507
callq 0x4310
leaq -0x30(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x7519
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), %r12
movq %r12, -0x10(%r12)
leaq 0x11ce7(%rip), %rsi     # 0x19233
leaq 0x11d05(%rip), %rdx     # 0x19258
leaq -0xe0(%rbp), %rdi
callq 0x6f6c
movb $0x1, %r15b
leaq -0xe0(%rbp), %rsi
movq %r14, %rdi
callq 0x139e0
xorl %r15d, %r15d
leaq 0x17555(%rip), %rsi     # 0x1ead0
leaq 0x5c8(%rip), %rdx       # 0x7b4a
movq %r14, %rdi
callq 0x4570
movq %rax, %rbx
movq -0xe0(%rbp), %rdi
cmpq %r12, %rdi
je 0x75a6
callq 0x4310
jmp 0x75a6
movq %rax, %rbx
movb $0x1, %r15b
testb %r15b, %r15b
je 0x75ff
movq %r14, %rdi
callq 0x4290
jmp 0x75ff
movq %rax, %rbx
movq -0x60(%rbp), %rdi
jmp 0x75c7
jmp 0x75fc
movq %rax, %rbx
movq -0x80(%rbp), %rdi
cmpq %r14, %rdi
je 0x75ff
callq 0x4310
jmp 0x75ff
jmp 0x75fc
movq %rax, %rbx
movq -0xa0(%rbp), %rdi
cmpq %r14, %rdi
jne 0x760f
jmp 0x7614
movq %rax, %rbx
jmp 0x7614
movq %rax, %rbx
movq -0x100(%rbp), %rdi
cmpq %r15, %rdi
jne 0x7621
jmp 0x7626
movq %rax, %rbx
leaq -0xb0(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x7614
callq 0x4310
leaq -0x30(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x7626
callq 0x4310
movq %rbx, %rdi
callq 0x45a0