// File: /workspace/github_cpp_makefile_star2_O2/tonymuu[P]distributed-kv-store/MP2Node.cpp
// Function: MP2Node::handleUpdateMessage(Message)
void MP2Node::handleUpdateMessage(Message msg) {
    Message reply(msg.transID, memberNode->addr, REPLY, msg.key, msg.value, msg.replica);
    if (!updateKeyValue(msg.key, msg.value, msg.replica)) {
        log->logUpdateFail(&msg.fromAddr, false, msg.transID, msg.key, msg.value);
        reply.success = false;
    } else {
        log->logUpdateSuccess(&msg.fromAddr, false, msg.transID, msg.key, msg.value);
        reply.success = true;
    }
    sendMessage(msg.fromAddr, reply);
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x218, %rsp            # imm = 0x218
movq %rsi, %r14
movl 0x50(%rsi), %ebx
movq %rdi, 0x10(%rsp)
movq 0x50(%rdi), %rsi
addq $0x8, %rsi
leaq 0x22(%rsp), %rdi
callq 0xac20
leaq 0x8(%r14), %r12
leaq 0x88(%rsp), %rdi
movq %r12, %rsi
callq 0x33a0
leaq 0x28(%r14), %r15
leaq 0x68(%rsp), %rdi
movq %r15, %rsi
callq 0x33a0
movl 0x4(%r14), %eax
movl %eax, (%rsp)
leaq 0x128(%rsp), %rdi
leaq 0x22(%rsp), %rdx
pushq $0x4
popq %rcx
leaq 0x88(%rsp), %r8
leaq 0x68(%rsp), %r9
movl %ebx, %esi
callq 0x11d34
leaq 0x68(%rsp), %rdi
callq 0x3120
leaq 0x88(%rsp), %rdi
callq 0x3120
leaq 0x48(%rsp), %rdi
movq %r12, %rsi
callq 0x33a0
leaq 0x28(%rsp), %rdi
movq %r15, %rsi
callq 0x33a0
movl 0x4(%r14), %ecx
leaq 0x48(%rsp), %rsi
leaq 0x28(%rsp), %rdx
movq 0x10(%rsp), %rbx
movq %rbx, %rdi
callq 0xe4f4
movl %eax, %r13d
leaq 0x28(%rsp), %rdi
callq 0x3120
leaq 0x48(%rsp), %rdi
callq 0x3120
movq 0x68(%rbx), %rbx
movl 0x50(%r14), %ebp
addq $0x48, %r14
testb %r13b, %r13b
je 0xebf8
leaq 0xc8(%rsp), %r13
movq %r13, %rdi
movq %r12, %rsi
callq 0x33a0
leaq 0xa8(%rsp), %r12
movq %r12, %rdi
movq %r15, %rsi
callq 0x33a0
movb $0x1, %r15b
movq %rbx, %rdi
movq %r14, %rsi
xorl %edx, %edx
movl %ebp, %ecx
movq %r13, %r8
movq %r12, %r9
callq 0xa626
jmp 0xec36
leaq 0x108(%rsp), %r13
movq %r13, %rdi
movq %r12, %rsi
callq 0x33a0
leaq 0xe8(%rsp), %r12
movq %r12, %rdi
movq %r15, %rsi
callq 0x33a0
xorl %r15d, %r15d
movq %rbx, %rdi
movq %r14, %rsi
xorl %edx, %edx
movl %ebp, %ecx
movq %r13, %r8
movq %r12, %r9
callq 0xa902
movq %r12, %rdi
callq 0x3120
movq %r13, %rdi
callq 0x3120
movb %r15b, 0x17c(%rsp)
leaq 0x1c(%rsp), %rdi
movq %r14, %rsi
callq 0xac20
leaq 0x1a0(%rsp), %rdi
leaq 0x128(%rsp), %rsi
callq 0x11e20
leaq 0x1c(%rsp), %rsi
leaq 0x1a0(%rsp), %rdx
movq 0x10(%rsp), %rdi
callq 0xdb48
leaq 0x1a0(%rsp), %rdi
callq 0xf3c4
leaq 0x128(%rsp), %rdi
callq 0xf3c4
addq $0x218, %rsp            # imm = 0x218
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq %rax, %rbx
leaq 0xe8(%rsp), %rdi
callq 0x3120
jmp 0xecda
movq %rax, %rbx
leaq 0xa8(%rsp), %rdi
callq 0x3120
jmp 0xece7
movq %rax, %rbx
leaq 0x108(%rsp), %rdi
jmp 0xed1a
movq %rax, %rbx
leaq 0xc8(%rsp), %rdi
jmp 0xed1a
movq %rax, %rbx
leaq 0x1a0(%rsp), %rdi
callq 0xf3c4
jmp 0xed45
movq %rax, %rbx
leaq 0x28(%rsp), %rdi
callq 0x3120
jmp 0xed15
movq %rax, %rbx
leaq 0x48(%rsp), %rdi
callq 0x3120
jmp 0xed45
movq %rax, %rbx
leaq 0x68(%rsp), %rdi
callq 0x3120
jmp 0xed33
movq %rax, %rbx
leaq 0x88(%rsp), %rdi
callq 0x3120
jmp 0xed52
movq %rax, %rbx
leaq 0x128(%rsp), %rdi
callq 0xf3c4
movq %rbx, %rdi
callq 0x3490