// File: /workspace/github_cpp_makefile_star2_O3/yasz24[P]eau2/src/network/../serialize/deserialize.cpp
// Function: Deserializable::deserialize(char*)
Object* Deserializable::deserialize(char* s) {
        String* classString = JSONHelper::getPayloadKey(s);
        char* className = classString->c_str();
        String* valueString = JSONHelper::getPayloadValue(s);
        char* valueName = valueString->c_str();
        //figure out correct deserialization method to call...
        if(0 == strncmp(className,"IntArray", strlen(className))) {
            return new IntArray(s);
        } else if(0 == strncmp(className,"FloatArray", strlen(className))) {
            return new FloatArray(s);
        } else if(0 == strncmp(className,"StringArray", strlen(className))) {
            return new StringArray(s);
        } else if(0 == strncmp(className,"DoubleArray", strlen(className))) {
            return new DoubleArray(s);
        } else if(0 == strncmp(className,"StringColumn", strlen(className))) {
            return new StringColumn(s);
        } else if(0 == strncmp(className,"FloatColumn", strlen(className))) {
            return FloatColumn::deserialize(valueName);
        } else if(0 == strncmp(className,"DoubleColumn", strlen(className))) {
            return DoubleColumn::deserialize(valueName);
        } else if(0 == strncmp(className,"IntColumn", strlen(className))) {
            return new IntColumn(s);
        } else if(0 == strncmp(className,"BoolColumn", strlen(className))) {
            return BoolColumn::deserialize(valueName);
        } else if(0 == strncmp(className, "DataFrame", strlen(className))) {
            return DataFrame::deserialize(valueName);
        } else if(0 == strncmp(className, "Schema", strlen(className))) {
            return new Schema(valueName);
        } else if(0 == strncmp(className, "Array", strlen(className))) {
            return new Array(s);
        } else if(0 == strncmp(className, "Map", strlen(className))) {
            return new Map(s);
        } else if(0 == strncmp(className, "Queue", strlen(className))) {
            return new Queue(s);
        } else if(0 == strncmp(className, "Key", strlen(className))) {
            return new Key(s);
        } else if(0 == strncmp(className, "KeyVal", strlen(className))) {
            return KeyVal::deserialize(valueName);
        } else if(0 == strncmp(className, "Value", strlen(className))) {
            return new Value(s);
        } else if(0 == strncmp(className, "KVStore", strlen(className))) {
            return new KVStore(s);
        } else if(0 == strncmp(className, "Message", strlen(className))) {
            return new Message(s);
        } else if(0 == strncmp(className, "Ack", strlen(className))) {
            return new Ack(s);
        } else if(0 == strncmp(className, "Nack", strlen(className))) {
            return new Nack(s);
        } else if(0 == strncmp(className, "Put", strlen(className))) {
            return new Put(s);
        } else if(0 == strncmp(className, "Reply", strlen(className))) {
            return new Reply(s);
        } else if(0 == strncmp(className, "Get", strlen(className))) {
            return new Get(s);
        } else if(0 == strncmp(className, "WaitAndGet", strlen(className))) {
            return new WaitAndGet(s);
        } else if(0 == strncmp(className, "Status", strlen(className))) {
            return new Status(s);
        } else if(0 == strncmp(className, "Register", strlen(className))) {
            return new Register(s);
        } else if(0 == strncmp(className, "Directory", strlen(className))) {
            return new Directory(s);
        } else {
            std::cout<<"ERROR: Classname picked up: "<<className<<"\n";
        }
        return nullptr;
    }

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
movq %rsi, %rbx
movq %rsi, %rdi
callq 0x156b2
movq (%rax), %rcx
movq %rax, %rdi
callq *0x30(%rcx)
movq %rax, %r14
movq %rbx, %rdi
callq 0xc82c
movq (%rax), %rcx
movq %rax, %rdi
callq *0x30(%rcx)
movq %rax, %r12
movq %r14, %rdi
callq 0x7100
movq %rax, %r15
leaq 0x8d9f(%rip), %rsi      # 0x1d4d7
movq %r14, %rdi
movq %rax, %rdx
callq 0x7120
testl %eax, %eax
je 0x14a4b
leaq 0x9040(%rip), %rsi      # 0x1d792
movq %r14, %rdi
movq %r15, %rdx
callq 0x7120
testl %eax, %eax
je 0x14a65
leaq 0x8f65(%rip), %rsi      # 0x1d6d1
movq %r14, %rdi
movq %r15, %rdx
callq 0x7120
testl %eax, %eax
je 0x14a7f
leaq 0x8d66(%rip), %rsi      # 0x1d4ec
movq %r14, %rdi
movq %r15, %rdx
callq 0x7120
testl %eax, %eax
je 0x14a99
leaq 0x8f91(%rip), %rsi      # 0x1d731
movq %r14, %rdi
movq %r15, %rdx
callq 0x7120
testl %eax, %eax
je 0x14ab3
leaq 0x90ac(%rip), %rsi      # 0x1d866
movq %r14, %rdi
movq %r15, %rdx
callq 0x7120
testl %eax, %eax
je 0x14ad7
leaq 0x8e3b(%rip), %rsi      # 0x1d60f
movq %r14, %rdi
movq %r15, %rdx
callq 0x7120
testl %eax, %eax
je 0x14ae7
leaq 0x8ea1(%rip), %rsi      # 0x1d68f
movq %r14, %rdi
movq %r15, %rdx
callq 0x7120
testl %eax, %eax
je 0x14af7
leaq 0x8fec(%rip), %rsi      # 0x1d7f4
movq %r14, %rdi
movq %r15, %rdx
callq 0x7120
testl %eax, %eax
je 0x14b11
leaq 0x9074(%rip), %rsi      # 0x1d896
movq %r14, %rdi
movq %r15, %rdx
callq 0x7120
testl %eax, %eax
je 0x14b21
leaq 0x8bfa(%rip), %rsi      # 0x1d436
movq %r14, %rdi
movq %r15, %rdx
callq 0x7120
testl %eax, %eax
je 0x14b31
leaq 0x8d65(%rip), %rsi      # 0x1d5bb
movq %r14, %rdi
movq %r15, %rdx
callq 0x7120
testl %eax, %eax
je 0x14b4b
leaq 0x8b99(%rip), %rsi      # 0x1d409
movq %r14, %rdi
movq %r15, %rdx
callq 0x7120
testl %eax, %eax
je 0x14b68
leaq 0x8b2f(%rip), %rsi      # 0x1d3b9
movq %r14, %rdi
movq %r15, %rdx
callq 0x7120
testl %eax, %eax
je 0x14b85
leaq 0x8b01(%rip), %rsi      # 0x1d3a5
movq %r14, %rdi
movq %r15, %rdx
callq 0x7120
testl %eax, %eax
je 0x14ba2
leaq 0x8b2e(%rip), %rsi      # 0x1d3ec
movq %r14, %rdi
movq %r15, %rdx
callq 0x7120
testl %eax, %eax
je 0x14bbf
leaq 0x8cc7(%rip), %rsi      # 0x1d59f
movq %r14, %rdi
movq %r15, %rdx
callq 0x7120
testl %eax, %eax
je 0x14bcf
leaq 0x8a95(%rip), %rsi      # 0x1d387
movq %r14, %rdi
movq %r15, %rdx
callq 0x7120
testl %eax, %eax
je 0x14bec
leaq 0x95ec(%rip), %rsi      # 0x1def8
movq %r14, %rdi
movq %r15, %rdx
callq 0x7120
testl %eax, %eax
je 0x14c09
leaq 0x9153(%rip), %rsi      # 0x1da79
movq %r14, %rdi
movq %r15, %rdx
callq 0x7120
testl %eax, %eax
je 0x14c26
leaq 0x913d(%rip), %rsi      # 0x1da7d
movq %r14, %rdi
movq %r15, %rdx
callq 0x7120
testl %eax, %eax
je 0x14c43
leaq 0x8f7b(%rip), %rsi      # 0x1d8d5
movq %r14, %rdi
movq %r15, %rdx
callq 0x7120
testl %eax, %eax
je 0x14c60
leaq 0x8f6c(%rip), %rsi      # 0x1d8e0
movq %r14, %rdi
movq %r15, %rdx
callq 0x7120
testl %eax, %eax
je 0x14c7d
leaq 0x8f5f(%rip), %rsi      # 0x1d8ed
movq %r14, %rdi
movq %r15, %rdx
callq 0x7120
testl %eax, %eax
je 0x14c9a
leaq 0x8f3e(%rip), %rsi      # 0x1d8e6
movq %r14, %rdi
movq %r15, %rdx
callq 0x7120
testl %eax, %eax
je 0x14cb7
leaq 0x953e(%rip), %rsi      # 0x1df00
movq %r14, %rdi
movq %r15, %rdx
callq 0x7120
testl %eax, %eax
je 0x14cd4
leaq 0x895a(%rip), %rsi      # 0x1d336
movq %r14, %rdi
movq %r15, %rdx
callq 0x7120
testl %eax, %eax
je 0x14cf1
leaq 0x9511(%rip), %rsi      # 0x1df07
movq %r14, %rdi
movq %r15, %rdx
callq 0x7120
testl %eax, %eax
je 0x14d0e
movq 0x145c0(%rip), %rbx     # 0x28fd0
leaq 0x94fa(%rip), %rsi      # 0x1df11
movl $0x1c, %edx
movq %rbx, %rdi
callq 0x7290
movq %rbx, %rdi
movq %r14, %rsi
callq 0x7220
leaq 0x86b3(%rip), %rsi      # 0x1d0e9
movl $0x1, %edx
movq %rax, %rdi
callq 0x7290
xorl %r14d, %r14d
jmp 0x14acb
movl $0x28, %edi
callq 0x7230
movq %rax, %r14
movq %rax, %rdi
movq %rbx, %rsi
callq 0xe56e
jmp 0x14acb
movl $0x28, %edi
callq 0x7230
movq %rax, %r14
movq %rax, %rdi
movq %rbx, %rsi
callq 0x1278e
jmp 0x14acb
movl $0x28, %edi
callq 0x7230
movq %rax, %r14
movq %rax, %rdi
movq %rbx, %rsi
callq 0xfb72
jmp 0x14acb
movl $0x28, %edi
callq 0x7230
movq %rax, %r14
movq %rax, %rdi
movq %rbx, %rsi
callq 0xc026
jmp 0x14acb
movl $0x28, %edi
callq 0x7230
movq %rax, %r14
movq %rax, %rdi
movq %rbx, %rsi
callq 0x15792
movq %r14, %rax
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
retq
movq %r12, %rdi
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
jmp 0x159d6
movq %r12, %rdi
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
jmp 0x15bfc
movl $0x28, %edi
callq 0x7230
movq %rax, %r14
movq %rax, %rdi
movq %rbx, %rsi
callq 0x15e22
jmp 0x14acb
movq %r12, %rdi
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
jmp 0x16066
movq %r12, %rdi
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
jmp 0x1628c
movl $0x50, %edi
callq 0x7230
movq %rax, %r14
movq %rax, %rdi
movq %r12, %rsi
callq 0x16354
jmp 0x14acb
movl $0x28, %edi
callq 0x7230
movq %rax, %r14
movq %rax, %rdi
movq %rbx, %rsi
callq 0x16692
jmp 0x14acb
movl $0x30, %edi
callq 0x7230
movq %rax, %r14
movq %rax, %rdi
movq %rbx, %rsi
callq 0x16942
jmp 0x14acb
movl $0x28, %edi
callq 0x7230
movq %rax, %r14
movq %rax, %rdi
movq %rbx, %rsi
callq 0x16c28
jmp 0x14acb
movl $0x20, %edi
callq 0x7230
movq %rax, %r14
movq %rax, %rdi
movq %rbx, %rsi
callq 0x16daa
jmp 0x14acb
movq %r12, %rdi
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
jmp 0x16f40
movl $0x20, %edi
callq 0x7230
movq %rax, %r14
movq %rax, %rdi
movq %rbx, %rsi
callq 0x16fba
jmp 0x14acb
movl $0x118, %edi            # imm = 0x118
callq 0x7230
movq %rax, %r14
movq %rax, %rdi
movq %rbx, %rsi
callq 0x17122
jmp 0x14acb
movl $0x30, %edi
callq 0x7230
movq %rax, %r14
movq %rax, %rdi
movq %rbx, %rsi
callq 0x173fc
jmp 0x14acb
movl $0x30, %edi
callq 0x7230
movq %rax, %r14
movq %rax, %rdi
movq %rbx, %rsi
callq 0x17758
jmp 0x14acb
movl $0x30, %edi
callq 0x7230
movq %rax, %r14
movq %rax, %rdi
movq %rbx, %rsi
callq 0x17ab4
jmp 0x14acb
movl $0x40, %edi
callq 0x7230
movq %rax, %r14
movq %rax, %rdi
movq %rbx, %rsi
callq 0x17e10
jmp 0x14acb
movl $0x38, %edi
callq 0x7230
movq %rax, %r14
movq %rax, %rdi
movq %rbx, %rsi
callq 0x181e4
jmp 0x14acb
movl $0x38, %edi
callq 0x7230
movq %rax, %r14
movq %rax, %rdi
movq %rbx, %rsi
callq 0x185a2
jmp 0x14acb
movl $0x38, %edi
callq 0x7230
movq %rax, %r14
movq %rax, %rdi
movq %rbx, %rsi
callq 0x18928
jmp 0x14acb
movl $0x38, %edi
callq 0x7230
movq %rax, %r14
movq %rax, %rdi
movq %rbx, %rsi
callq 0x18cae
jmp 0x14acb
movl $0x40, %edi
callq 0x7230
movq %rax, %r14
movq %rax, %rdi
movq %rbx, %rsi
callq 0x1901a
jmp 0x14acb
movl $0x48, %edi
callq 0x7230
movq %rax, %r14
movq %rax, %rdi
movq %rbx, %rsi
callq 0x1945a
jmp 0x14acb
jmp 0x14d57
jmp 0x14d57
jmp 0x14d57
jmp 0x14d57
jmp 0x14d57
jmp 0x14d57
jmp 0x14d57
jmp 0x14d57
jmp 0x14d57
jmp 0x14d57
jmp 0x14d57
jmp 0x14d57
jmp 0x14d57
jmp 0x14d57
jmp 0x14d57
jmp 0x14d57
jmp 0x14d57
jmp 0x14d57
jmp 0x14d57
jmp 0x14d57
jmp 0x14d57
jmp 0x14d57
movq %rax, %rbx
movq %r14, %rdi
callq 0x7200
movq %rbx, %rdi
callq 0x73b0