// File: UTAP[P]APHTTP/examples/handlers.cpp
// Function: ColorHandler::handle[abi:cxx11](Request*)
map<string, string> ColorHandler::handle(Request *req) {
  map<string, string> context;
  string newName = "I am " + req->getQueryParam("name");
  context["name"] = newName;
  context["color"] = req->getQueryParam("color");
  return context;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x180, %rsp            # imm = 0x180
movq %rdi, -0x150(%rbp)
movq %rdi, %rax
movq %rax, -0x148(%rbp)
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movb $0x0, -0x19(%rbp)
callq 0x9a50
movq -0x18(%rbp), %rax
movq %rax, -0x140(%rbp)
leaq -0x81(%rbp), %rdi
movq %rdi, -0x138(%rbp)
callq 0x46c0
movq -0x138(%rbp), %rdx
leaq 0x17cdf(%rip), %rsi     # 0x2125c
leaq -0x80(%rbp), %rdi
callq 0x4550
jmp 0x9588
movq -0x140(%rbp), %rsi
leaq -0x60(%rbp), %rdi
leaq -0x80(%rbp), %rdx
callq 0x10580
jmp 0x959e
leaq 0x17cc9(%rip), %rsi     # 0x2126e
leaq -0x40(%rbp), %rdi
leaq -0x60(%rbp), %rdx
callq 0x9a70
jmp 0x95b4
leaq -0x60(%rbp), %rdi
callq 0x4768
leaq -0x80(%rbp), %rdi
callq 0x4768
leaq -0x81(%rbp), %rdi
callq 0x4440
leaq -0xb9(%rbp), %rdi
movq %rdi, -0x158(%rbp)
callq 0x46c0
movq -0x158(%rbp), %rdx
leaq 0x17c69(%rip), %rsi     # 0x2125c
leaq -0xb8(%rbp), %rdi
callq 0x4550
jmp 0x9601
movq -0x150(%rbp), %rdi
leaq -0xb8(%rbp), %rsi
callq 0x9ac0
movq %rax, -0x160(%rbp)
jmp 0x961d
movq -0x160(%rbp), %rdi
leaq -0x40(%rbp), %rsi
callq 0x4060
jmp 0x962f
leaq -0xb8(%rbp), %rdi
callq 0x4768
leaq -0xb9(%rbp), %rdi
callq 0x4440
movq -0x18(%rbp), %rax
movq %rax, -0x170(%rbp)
leaq -0x101(%rbp), %rdi
movq %rdi, -0x168(%rbp)
callq 0x46c0
movq -0x168(%rbp), %rdx
leaq 0x17c01(%rip), %rsi     # 0x21274
leaq -0x100(%rbp), %rdi
callq 0x4550
jmp 0x9681
movq -0x170(%rbp), %rsi
leaq -0xe0(%rbp), %rdi
leaq -0x100(%rbp), %rdx
callq 0x10580
jmp 0x969d
leaq -0x129(%rbp), %rdi
movq %rdi, -0x178(%rbp)
callq 0x46c0
movq -0x178(%rbp), %rdx
leaq 0x17bb6(%rip), %rsi     # 0x21274
leaq -0x128(%rbp), %rdi
callq 0x4550
jmp 0x96cc
movq -0x150(%rbp), %rdi
leaq -0x128(%rbp), %rsi
callq 0x9ac0
movq %rax, -0x180(%rbp)
jmp 0x96e8
movq -0x180(%rbp), %rdi
leaq -0xe0(%rbp), %rsi
callq 0x44b0
leaq -0x128(%rbp), %rdi
callq 0x4768
leaq -0x129(%rbp), %rdi
callq 0x4440
leaq -0xe0(%rbp), %rdi
callq 0x4768
leaq -0x100(%rbp), %rdi
callq 0x4768
leaq -0x101(%rbp), %rdi
callq 0x4440
movb $0x1, -0x19(%rbp)
leaq -0x40(%rbp), %rdi
callq 0x4768
testb $0x1, -0x19(%rbp)
jne 0x9894
jmp 0x9888
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x90(%rbp)
movl %eax, -0x94(%rbp)
jmp 0x979f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x90(%rbp)
movl %eax, -0x94(%rbp)
jmp 0x9796
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x90(%rbp)
movl %eax, -0x94(%rbp)
leaq -0x60(%rbp), %rdi
callq 0x4768
leaq -0x80(%rbp), %rdi
callq 0x4768
leaq -0x81(%rbp), %rdi
callq 0x4440
jmp 0x98a4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x90(%rbp)
movl %eax, -0x94(%rbp)
jmp 0x97e2
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x90(%rbp)
movl %eax, -0x94(%rbp)
leaq -0xb8(%rbp), %rdi
callq 0x4768
leaq -0xb9(%rbp), %rdi
callq 0x4440
jmp 0x987d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x90(%rbp)
movl %eax, -0x94(%rbp)
jmp 0x9871
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x90(%rbp)
movl %eax, -0x94(%rbp)
jmp 0x9865
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x90(%rbp)
movl %eax, -0x94(%rbp)
jmp 0x984d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x90(%rbp)
movl %eax, -0x94(%rbp)
leaq -0x128(%rbp), %rdi
callq 0x4768
leaq -0x129(%rbp), %rdi
callq 0x4440
leaq -0xe0(%rbp), %rdi
callq 0x4768
leaq -0x100(%rbp), %rdi
callq 0x4768
leaq -0x101(%rbp), %rdi
callq 0x4440
leaq -0x40(%rbp), %rdi
callq 0x4768
jmp 0x98a4
movq -0x150(%rbp), %rdi
callq 0x9ba0
movq -0x148(%rbp), %rax
addq $0x180, %rsp            # imm = 0x180
popq %rbp
retq
movq -0x150(%rbp), %rdi
callq 0x9ba0
movq -0x90(%rbp), %rdi
callq 0x46b0
nopl (%rax)