// File: /workspace/github_cpp_makefile_star2_O1/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 0x15b22
movq (%rax), %rcx
movq %rax, %rdi
callq *0x30(%rcx)
movq %rax, %r14
movq %rbx, %rdi
callq 0xc9f0
movq (%rax), %rcx
movq %rax, %rdi
callq *0x30(%rcx)
movq %rax, %r12
movq %r14, %rdi
callq 0x7100
movq %rax, %r15
leaq 0x892f(%rip), %rsi      # 0x1d4d7
movq %r14, %rdi
movq %rax, %rdx
callq 0x7120
testl %eax, %eax
je 0x14ebb
leaq 0x8bd0(%rip), %rsi      # 0x1d792
movq %r14, %rdi
movq %r15, %rdx
callq 0x7120
testl %eax, %eax
je 0x14ed5
leaq 0x8af5(%rip), %rsi      # 0x1d6d1
movq %r14, %rdi
movq %r15, %rdx
callq 0x7120
testl %eax, %eax
je 0x14eef
leaq 0x88f6(%rip), %rsi      # 0x1d4ec
movq %r14, %rdi
movq %r15, %rdx
callq 0x7120
testl %eax, %eax
je 0x14f09
leaq 0x8b21(%rip), %rsi      # 0x1d731
movq %r14, %rdi
movq %r15, %rdx
callq 0x7120
testl %eax, %eax
je 0x14f23
leaq 0x8c3c(%rip), %rsi      # 0x1d866
movq %r14, %rdi
movq %r15, %rdx
callq 0x7120
testl %eax, %eax
je 0x14f47
leaq 0x89cb(%rip), %rsi      # 0x1d60f
movq %r14, %rdi
movq %r15, %rdx
callq 0x7120
testl %eax, %eax
je 0x14f57
leaq 0x8a31(%rip), %rsi      # 0x1d68f
movq %r14, %rdi
movq %r15, %rdx
callq 0x7120
testl %eax, %eax
je 0x14f67
leaq 0x8b7c(%rip), %rsi      # 0x1d7f4
movq %r14, %rdi
movq %r15, %rdx
callq 0x7120
testl %eax, %eax
je 0x14f81
leaq 0x8c04(%rip), %rsi      # 0x1d896
movq %r14, %rdi
movq %r15, %rdx
callq 0x7120
testl %eax, %eax
je 0x14f91
leaq 0x878a(%rip), %rsi      # 0x1d436
movq %r14, %rdi
movq %r15, %rdx
callq 0x7120
testl %eax, %eax
je 0x14fa1
leaq 0x88f5(%rip), %rsi      # 0x1d5bb
movq %r14, %rdi
movq %r15, %rdx
callq 0x7120
testl %eax, %eax
je 0x14fbb
leaq 0x8729(%rip), %rsi      # 0x1d409
movq %r14, %rdi
movq %r15, %rdx
callq 0x7120
testl %eax, %eax
je 0x14fd8
leaq 0x86bf(%rip), %rsi      # 0x1d3b9
movq %r14, %rdi
movq %r15, %rdx
callq 0x7120
testl %eax, %eax
je 0x14ff5
leaq 0x8691(%rip), %rsi      # 0x1d3a5
movq %r14, %rdi
movq %r15, %rdx
callq 0x7120
testl %eax, %eax
je 0x15012
leaq 0x86be(%rip), %rsi      # 0x1d3ec
movq %r14, %rdi
movq %r15, %rdx
callq 0x7120
testl %eax, %eax
je 0x1502f
leaq 0x8857(%rip), %rsi      # 0x1d59f
movq %r14, %rdi
movq %r15, %rdx
callq 0x7120
testl %eax, %eax
je 0x1503f
leaq 0x8625(%rip), %rsi      # 0x1d387
movq %r14, %rdi
movq %r15, %rdx
callq 0x7120
testl %eax, %eax
je 0x1505c
leaq 0x917c(%rip), %rsi      # 0x1def8
movq %r14, %rdi
movq %r15, %rdx
callq 0x7120
testl %eax, %eax
je 0x15079
leaq 0x8ce3(%rip), %rsi      # 0x1da79
movq %r14, %rdi
movq %r15, %rdx
callq 0x7120
testl %eax, %eax
je 0x15096
leaq 0x8ccd(%rip), %rsi      # 0x1da7d
movq %r14, %rdi
movq %r15, %rdx
callq 0x7120
testl %eax, %eax
je 0x150b3
leaq 0x8b0b(%rip), %rsi      # 0x1d8d5
movq %r14, %rdi
movq %r15, %rdx
callq 0x7120
testl %eax, %eax
je 0x150d0
leaq 0x8afc(%rip), %rsi      # 0x1d8e0
movq %r14, %rdi
movq %r15, %rdx
callq 0x7120
testl %eax, %eax
je 0x150ed
leaq 0x8aef(%rip), %rsi      # 0x1d8ed
movq %r14, %rdi
movq %r15, %rdx
callq 0x7120
testl %eax, %eax
je 0x1510a
leaq 0x8ace(%rip), %rsi      # 0x1d8e6
movq %r14, %rdi
movq %r15, %rdx
callq 0x7120
testl %eax, %eax
je 0x15127
leaq 0x90ce(%rip), %rsi      # 0x1df00
movq %r14, %rdi
movq %r15, %rdx
callq 0x7120
testl %eax, %eax
je 0x15144
leaq 0x84ea(%rip), %rsi      # 0x1d336
movq %r14, %rdi
movq %r15, %rdx
callq 0x7120
testl %eax, %eax
je 0x15161
leaq 0x90a1(%rip), %rsi      # 0x1df07
movq %r14, %rdi
movq %r15, %rdx
callq 0x7120
testl %eax, %eax
je 0x1517e
movq 0x15150(%rip), %rbx     # 0x29fd0
leaq 0x908a(%rip), %rsi      # 0x1df11
movl $0x1c, %edx
movq %rbx, %rdi
callq 0x7290
movq %rbx, %rdi
movq %r14, %rsi
callq 0x7220
leaq 0x8243(%rip), %rsi      # 0x1d0e9
movl $0x1, %edx
movq %rax, %rdi
callq 0x7290
xorl %r14d, %r14d
jmp 0x14f3b
movl $0x28, %edi
callq 0x7230
movq %rax, %r14
movq %rax, %rdi
movq %rbx, %rsi
callq 0xe7da
jmp 0x14f3b
movl $0x28, %edi
callq 0x7230
movq %rax, %r14
movq %rax, %rdi
movq %rbx, %rsi
callq 0x12b94
jmp 0x14f3b
movl $0x28, %edi
callq 0x7230
movq %rax, %r14
movq %rax, %rdi
movq %rbx, %rsi
callq 0xfe46
jmp 0x14f3b
movl $0x28, %edi
callq 0x7230
movq %rax, %r14
movq %rax, %rdi
movq %rbx, %rsi
callq 0xc1a0
jmp 0x14f3b
movl $0x28, %edi
callq 0x7230
movq %rax, %r14
movq %rax, %rdi
movq %rbx, %rsi
callq 0x15c1c
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 0x15e60
movq %r12, %rdi
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
jmp 0x16086
movl $0x28, %edi
callq 0x7230
movq %rax, %r14
movq %rax, %rdi
movq %rbx, %rsi
callq 0x162ac
jmp 0x14f3b
movq %r12, %rdi
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
jmp 0x164f0
movq %r12, %rdi
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
jmp 0x16716
movl $0x50, %edi
callq 0x7230
movq %rax, %r14
movq %rax, %rdi
movq %r12, %rsi
callq 0x167de
jmp 0x14f3b
movl $0x28, %edi
callq 0x7230
movq %rax, %r14
movq %rax, %rdi
movq %rbx, %rsi
callq 0x16b22
jmp 0x14f3b
movl $0x30, %edi
callq 0x7230
movq %rax, %r14
movq %rax, %rdi
movq %rbx, %rsi
callq 0x16dce
jmp 0x14f3b
movl $0x28, %edi
callq 0x7230
movq %rax, %r14
movq %rax, %rdi
movq %rbx, %rsi
callq 0x170ba
jmp 0x14f3b
movl $0x20, %edi
callq 0x7230
movq %rax, %r14
movq %rax, %rdi
movq %rbx, %rsi
callq 0x1723c
jmp 0x14f3b
movq %r12, %rdi
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
jmp 0x173d4
movl $0x20, %edi
callq 0x7230
movq %rax, %r14
movq %rax, %rdi
movq %rbx, %rsi
callq 0x1744e
jmp 0x14f3b
movl $0x118, %edi            # imm = 0x118
callq 0x7230
movq %rax, %r14
movq %rax, %rdi
movq %rbx, %rsi
callq 0x175b8
jmp 0x14f3b
movl $0x30, %edi
callq 0x7230
movq %rax, %r14
movq %rax, %rdi
movq %rbx, %rsi
callq 0x17896
jmp 0x14f3b
movl $0x30, %edi
callq 0x7230
movq %rax, %r14
movq %rax, %rdi
movq %rbx, %rsi
callq 0x17bf8
jmp 0x14f3b
movl $0x30, %edi
callq 0x7230
movq %rax, %r14
movq %rax, %rdi
movq %rbx, %rsi
callq 0x17f5a
jmp 0x14f3b
movl $0x40, %edi
callq 0x7230
movq %rax, %r14
movq %rax, %rdi
movq %rbx, %rsi
callq 0x182bc
jmp 0x14f3b
movl $0x38, %edi
callq 0x7230
movq %rax, %r14
movq %rax, %rdi
movq %rbx, %rsi
callq 0x18696
jmp 0x14f3b
movl $0x38, %edi
callq 0x7230
movq %rax, %r14
movq %rax, %rdi
movq %rbx, %rsi
callq 0x18a5a
jmp 0x14f3b
movl $0x38, %edi
callq 0x7230
movq %rax, %r14
movq %rax, %rdi
movq %rbx, %rsi
callq 0x18de6
jmp 0x14f3b
movl $0x38, %edi
callq 0x7230
movq %rax, %r14
movq %rax, %rdi
movq %rbx, %rsi
callq 0x19172
jmp 0x14f3b
movl $0x40, %edi
callq 0x7230
movq %rax, %r14
movq %rax, %rdi
movq %rbx, %rsi
callq 0x194d6
jmp 0x14f3b
movl $0x48, %edi
callq 0x7230
movq %rax, %r14
movq %rax, %rdi
movq %rbx, %rsi
callq 0x19904
jmp 0x14f3b
jmp 0x151c7
jmp 0x151c7
jmp 0x151c7
jmp 0x151c7
jmp 0x151c7
jmp 0x151c7
jmp 0x151c7
jmp 0x151c7
jmp 0x151c7
jmp 0x151c7
jmp 0x151c7
jmp 0x151c7
jmp 0x151c7
jmp 0x151c7
jmp 0x151c7
jmp 0x151c7
jmp 0x151c7
jmp 0x151c7
jmp 0x151c7
jmp 0x151c7
jmp 0x151c7
jmp 0x151c7
movq %rax, %rbx
movq %r14, %rdi
callq 0x7200
movq %rbx, %rdi
callq 0x73b0