// File: tonymuu[P]distributed-kv-store/Message.cpp
// Function: Message::toString[abi:cxx11]()
string Message::toString(){
	string message = to_string(transID) + delimiter + fromAddr.getAddress() + delimiter + to_string(type) + delimiter;
	switch(type){
		case CREATE:
		case UPDATE:
			message += key + delimiter + value + delimiter + to_string(replica);
			break;
		case READ:
		case DELETE:
			message += key;
			break;
		case REPLY:
			if (success)
				message += "1";
			else
				message += "0";
			break;
		case READREPLY:
			message += value;
			break;
	}
	return message;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x1d0, %rsp            # imm = 0x1D0
movq %rdi, -0x1c8(%rbp)
movq %rdi, %rax
movq %rax, -0x1c0(%rbp)
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0x1b8(%rbp)
movb $0x0, -0x11(%rbp)
movl 0x50(%rax), %esi
leaq -0xb8(%rbp), %rdi
movq %rdi, -0x1b0(%rbp)
callq 0x14cf0
movq -0x1b8(%rbp), %rdx
movq -0x1b0(%rbp), %rsi
addq $0x58, %rdx
leaq -0x98(%rbp), %rdi
callq 0x28e80
jmp 0x2aa99
movq -0x1b8(%rbp), %rsi
addq $0x48, %rsi
leaq -0xe8(%rbp), %rdi
callq 0x14b50
jmp 0x2aab2
leaq -0x78(%rbp), %rdi
leaq -0x98(%rbp), %rsi
leaq -0xe8(%rbp), %rdx
callq 0x15710
jmp 0x2aacb
movq -0x1b8(%rbp), %rdx
addq $0x58, %rdx
leaq -0x58(%rbp), %rdi
leaq -0x78(%rbp), %rsi
callq 0x28e80
jmp 0x2aae5
movq -0x1b8(%rbp), %rax
movl (%rax), %esi
leaq -0x108(%rbp), %rdi
callq 0x14cf0
jmp 0x2aafc
leaq -0x38(%rbp), %rdi
leaq -0x58(%rbp), %rsi
leaq -0x108(%rbp), %rdx
callq 0x15710
jmp 0x2ab12
movq -0x1c8(%rbp), %rdi
movq -0x1b8(%rbp), %rdx
addq $0x58, %rdx
leaq -0x38(%rbp), %rsi
callq 0x28e80
jmp 0x2ab2f
leaq -0x38(%rbp), %rdi
callq 0x4200
leaq -0x108(%rbp), %rdi
callq 0x4200
leaq -0x58(%rbp), %rdi
callq 0x4200
leaq -0x78(%rbp), %rdi
callq 0x4200
leaq -0xe8(%rbp), %rdi
callq 0x4200
leaq -0x98(%rbp), %rdi
callq 0x4200
leaq -0xb8(%rbp), %rdi
callq 0x4200
movq -0x1b8(%rbp), %rax
movl (%rax), %eax
movq %rax, -0x1d0(%rbp)
subq $0x5, %rax
ja 0x2aea2
movq -0x1d0(%rbp), %rax
leaq 0x215a(%rip), %rcx      # 0x2ccfc
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xc0(%rbp)
movl %eax, -0xc4(%rbp)
jmp 0x2ac7a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xc0(%rbp)
movl %eax, -0xc4(%rbp)
jmp 0x2ac6e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xc0(%rbp)
movl %eax, -0xc4(%rbp)
jmp 0x2ac62
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xc0(%rbp)
movl %eax, -0xc4(%rbp)
jmp 0x2ac59
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xc0(%rbp)
movl %eax, -0xc4(%rbp)
jmp 0x2ac50
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xc0(%rbp)
movl %eax, -0xc4(%rbp)
jmp 0x2ac44
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xc0(%rbp)
movl %eax, -0xc4(%rbp)
leaq -0x38(%rbp), %rdi
callq 0x4200
leaq -0x108(%rbp), %rdi
callq 0x4200
leaq -0x58(%rbp), %rdi
callq 0x4200
leaq -0x78(%rbp), %rdi
callq 0x4200
leaq -0xe8(%rbp), %rdi
callq 0x4200
leaq -0x98(%rbp), %rdi
callq 0x4200
leaq -0xb8(%rbp), %rdi
callq 0x4200
jmp 0x2aed4
movq -0x1b8(%rbp), %rdx
movq %rdx, %rsi
addq $0x8, %rsi
addq $0x58, %rdx
leaq -0x188(%rbp), %rdi
callq 0x28ed0
jmp 0x2acab
movq -0x1b8(%rbp), %rdx
addq $0x28, %rdx
leaq -0x168(%rbp), %rdi
leaq -0x188(%rbp), %rsi
callq 0x28e80
jmp 0x2accb
movq -0x1b8(%rbp), %rdx
addq $0x58, %rdx
leaq -0x148(%rbp), %rdi
leaq -0x168(%rbp), %rsi
callq 0x28e80
jmp 0x2aceb
movq -0x1b8(%rbp), %rax
movl 0x4(%rax), %esi
leaq -0x1a8(%rbp), %rdi
callq 0x14cf0
jmp 0x2ad03
leaq -0x128(%rbp), %rdi
leaq -0x148(%rbp), %rsi
leaq -0x1a8(%rbp), %rdx
callq 0x15710
jmp 0x2ad1f
movq -0x1c8(%rbp), %rdi
leaq -0x128(%rbp), %rsi
callq 0x4450
jmp 0x2ad34
leaq -0x128(%rbp), %rdi
callq 0x4200
leaq -0x1a8(%rbp), %rdi
callq 0x4200
leaq -0x148(%rbp), %rdi
callq 0x4200
leaq -0x168(%rbp), %rdi
callq 0x4200
leaq -0x188(%rbp), %rdi
callq 0x4200
jmp 0x2aea2
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xc0(%rbp)
movl %eax, -0xc4(%rbp)
jmp 0x2aec8
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xc0(%rbp)
movl %eax, -0xc4(%rbp)
jmp 0x2ae1e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xc0(%rbp)
movl %eax, -0xc4(%rbp)
jmp 0x2ae12
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xc0(%rbp)
movl %eax, -0xc4(%rbp)
jmp 0x2ae06
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xc0(%rbp)
movl %eax, -0xc4(%rbp)
jmp 0x2adfa
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xc0(%rbp)
movl %eax, -0xc4(%rbp)
leaq -0x128(%rbp), %rdi
callq 0x4200
leaq -0x1a8(%rbp), %rdi
callq 0x4200
leaq -0x148(%rbp), %rdi
callq 0x4200
leaq -0x168(%rbp), %rdi
callq 0x4200
leaq -0x188(%rbp), %rdi
callq 0x4200
jmp 0x2aec8
movq -0x1c8(%rbp), %rdi
movq -0x1b8(%rbp), %rsi
addq $0x8, %rsi
callq 0x4450
jmp 0x2ae48
jmp 0x2aea2
movq -0x1b8(%rbp), %rax
testb $0x1, 0x54(%rax)
je 0x2ae6e
movq -0x1c8(%rbp), %rdi
leaq 0x1eaf(%rip), %rsi      # 0x2cd14
callq 0x4310
jmp 0x2ae6c
jmp 0x2ae85
movq -0x1c8(%rbp), %rdi
leaq 0x1e9a(%rip), %rsi      # 0x2cd16
callq 0x4310
jmp 0x2ae83
jmp 0x2ae85
jmp 0x2aea2
movq -0x1c8(%rbp), %rdi
movq -0x1b8(%rbp), %rsi
addq $0x28, %rsi
callq 0x4450
jmp 0x2aea0
jmp 0x2aea2
movb $0x1, -0x11(%rbp)
testb $0x1, -0x11(%rbp)
jne 0x2aeb8
movq -0x1c8(%rbp), %rdi
callq 0x4200
movq -0x1c0(%rbp), %rax
addq $0x1d0, %rsp            # imm = 0x1D0
popq %rbp
retq
movq -0x1c8(%rbp), %rdi
callq 0x4200
movq -0xc0(%rbp), %rdi
callq 0x45b0