// File: yasz24[P]eau2/src/network/../serialize/deserialize.cpp
// Function: Deserializable::deserialize(char*, KVStore*)
Object* Deserializable::deserialize(char* s, KVStore* kv) {
        String* classString = JSONHelper::getPayloadKey(s);
        char* className = classString->c_str();
        //std::cout << "deserialization class: " << className << "\n";
        String* valueString = JSONHelper::getPayloadValue(s);
        char* valueName = valueString->c_str();
        //figure out correct deserialization method to call...
        if (0 == strncmp(className, "Array", strlen(className))) {
            return new Array(s, kv);
        } else if(0 == strncmp(className, "IntDistributedArray", strlen(className))) {
            return new IntDistributedArray(s, kv);
        } else if(0 == strncmp(className, "FloatDistributedArray", strlen(className))) {
            return new FloatDistributedArray(s, kv);
        } else if(0 == strncmp(className, "DoubleDistributedArray", strlen(className))) {
            return new DoubleDistributedArray(s, kv);
        } else if(0 == strncmp(className, "BoolDistributedArray", strlen(className))) {
            return new BoolDistributedArray(s, kv);
        } else if(0 == strncmp(className, "StringDistributedArray", strlen(className))) {
            return new StringDistributedArray(s, kv);
        } else if(0 == strncmp(className, "DistributedDataFrame", strlen(className))) {
            return new DistributedDataFrame(s, kv);
        } else if(0 == strncmp(className, "DistributedIntColumn", strlen(className))) {
            return new DistributedIntColumn(s, kv);
        } else if(0 == strncmp(className, "DistributedDoubleColumn", strlen(className))) {
            return new DistributedDoubleColumn(s, kv);
        } else if(0 == strncmp(className, "DistributedFloatColumn", strlen(className))) {
            return new DistributedFloatColumn(s, kv);
        } else if(0 == strncmp(className, "DistributedBoolColumn", strlen(className))) {
            return new DistributedBoolColumn(s, kv);
        } else if(0 == strncmp(className, "DistributedStringColumn", strlen(className))) {
            return new DistributedStringColumn(s, kv);
        } else 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, kv);
        } 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, kv);
        } else if(0 == strncmp(className, "Reply", strlen(className))) {
            return new Reply(s, kv);
        } 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
subq $0x2b0, %rsp            # imm = 0x2B0
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
movq %rdx, -0x20(%rbp)
movq -0x18(%rbp), %rdi
callq 0x22880
movq %rax, -0x28(%rbp)
movq -0x28(%rbp), %rdi
movq (%rdi), %rax
callq *0x30(%rax)
movq %rax, -0x30(%rbp)
movq -0x18(%rbp), %rdi
callq 0x12b70
movq %rax, -0x38(%rbp)
movq -0x38(%rbp), %rdi
movq (%rdi), %rax
callq *0x30(%rax)
movq %rax, -0x40(%rbp)
movq -0x30(%rbp), %rax
movq %rax, -0x58(%rbp)
movq -0x30(%rbp), %rdi
callq 0x8130
movq -0x58(%rbp), %rdi
movq %rax, %rdx
leaq 0xb1d9(%rip), %rsi      # 0x2c645
callq 0x8150
movl %eax, %ecx
xorl %eax, %eax
cmpl %ecx, %eax
jne 0x214c3
movl $0x28, %edi
callq 0x8290
movq %rax, %rdi
movq %rdi, %rax
movq %rax, -0x60(%rbp)
movq -0x18(%rbp), %rsi
movq -0x20(%rbp), %rdx
callq 0x27db0
jmp 0x2149c
movq -0x60(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0x227d7
movq -0x60(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
callq 0x8260
jmp 0x227e4
movq -0x30(%rbp), %rax
movq %rax, -0x68(%rbp)
movq -0x30(%rbp), %rdi
callq 0x8130
movq -0x68(%rbp), %rdi
movq %rax, %rdx
leaq 0xb218(%rip), %rsi      # 0x2c6fa
callq 0x8150
movl %eax, %ecx
xorl %eax, %eax
cmpl %ecx, %eax
jne 0x21539
movl $0x70, %edi
callq 0x8290
movq %rax, %rdi
movq %rdi, %rax
movq %rax, -0x70(%rbp)
movq -0x18(%rbp), %rsi
movq -0x20(%rbp), %rdx
callq 0x28190
jmp 0x21512
movq -0x70(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0x227d7
movq -0x70(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
callq 0x8260
jmp 0x227e4
movq -0x30(%rbp), %rax
movq %rax, -0x78(%rbp)
movq -0x30(%rbp), %rdi
callq 0x8130
movq -0x78(%rbp), %rdi
movq %rax, %rdx
leaq 0xb377(%rip), %rsi      # 0x2c8cf
callq 0x8150
movl %eax, %ecx
xorl %eax, %eax
cmpl %ecx, %eax
jne 0x215af
movl $0x70, %edi
callq 0x8290
movq %rax, %rdi
movq %rdi, %rax
movq %rax, -0x80(%rbp)
movq -0x18(%rbp), %rsi
movq -0x20(%rbp), %rdx
callq 0x288a0
jmp 0x21588
movq -0x80(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0x227d7
movq -0x80(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
callq 0x8260
jmp 0x227e4
movq -0x30(%rbp), %rax
movq %rax, -0x88(%rbp)
movq -0x30(%rbp), %rdi
callq 0x8130
movq -0x88(%rbp), %rdi
movq %rax, %rdx
leaq 0xb060(%rip), %rsi      # 0x2c634
callq 0x8150
movl %eax, %ecx
xorl %eax, %eax
cmpl %ecx, %eax
jne 0x21634
movl $0x70, %edi
callq 0x8290
movq %rax, %rdi
movq %rdi, %rax
movq %rax, -0x90(%rbp)
movq -0x18(%rbp), %rsi
movq -0x20(%rbp), %rdx
callq 0x28fb0
jmp 0x21607
movq -0x90(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0x227d7
movq -0x90(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
callq 0x8260
jmp 0x227e4
movq -0x30(%rbp), %rax
movq %rax, -0x98(%rbp)
movq -0x30(%rbp), %rdi
callq 0x8130
movq -0x98(%rbp), %rdi
movq %rax, %rdx
leaq 0xb205(%rip), %rsi      # 0x2c85e
callq 0x8150
movl %eax, %ecx
xorl %eax, %eax
cmpl %ecx, %eax
jne 0x216b9
movl $0x70, %edi
callq 0x8290
movq %rax, %rdi
movq %rdi, %rax
movq %rax, -0xa0(%rbp)
movq -0x18(%rbp), %rsi
movq -0x20(%rbp), %rdx
callq 0x296c0
jmp 0x2168c
movq -0xa0(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0x227d7
movq -0xa0(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
callq 0x8260
jmp 0x227e4
movq -0x30(%rbp), %rax
movq %rax, -0xa8(%rbp)
movq -0x30(%rbp), %rdi
callq 0x8130
movq -0xa8(%rbp), %rdi
movq %rax, %rdx
leaq 0xb0bb(%rip), %rsi      # 0x2c799
callq 0x8150
movl %eax, %ecx
xorl %eax, %eax
cmpl %ecx, %eax
jne 0x2173e
movl $0x70, %edi
callq 0x8290
movq %rax, %rdi
movq %rdi, %rax
movq %rax, -0xb0(%rbp)
movq -0x18(%rbp), %rsi
movq -0x20(%rbp), %rdx
callq 0x29dd0
jmp 0x21711
movq -0xb0(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0x227d7
movq -0xb0(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
callq 0x8260
jmp 0x227e4
movq -0x30(%rbp), %rax
movq %rax, -0xb8(%rbp)
movq -0x30(%rbp), %rdi
callq 0x8130
movq -0xb8(%rbp), %rdi
movq %rax, %rdx
leaq 0xb1b2(%rip), %rsi      # 0x2c915
callq 0x8150
movl %eax, %ecx
xorl %eax, %eax
cmpl %ecx, %eax
jne 0x217c3
movl $0x28, %edi
callq 0x8290
movq %rax, %rdi
movq %rdi, %rax
movq %rax, -0xc0(%rbp)
movq -0x18(%rbp), %rsi
movq -0x20(%rbp), %rdx
callq 0x2a4e0
jmp 0x21796
movq -0xc0(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0x227d7
movq -0xc0(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
callq 0x8260
jmp 0x227e4
movq -0x30(%rbp), %rax
movq %rax, -0xc8(%rbp)
movq -0x30(%rbp), %rdi
callq 0x8130
movq -0xc8(%rbp), %rdi
movq %rax, %rdx
leaq 0xaf26(%rip), %rsi      # 0x2c70e
callq 0x8150
movl %eax, %ecx
xorl %eax, %eax
cmpl %ecx, %eax
jne 0x21848
movl $0x20, %edi
callq 0x8290
movq %rax, %rdi
movq %rdi, %rax
movq %rax, -0xd0(%rbp)
movq -0x18(%rbp), %rsi
movq -0x20(%rbp), %rdx
callq 0x2a690
jmp 0x2181b
movq -0xd0(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0x227d7
movq -0xd0(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
callq 0x8260
jmp 0x227e4
movq -0x30(%rbp), %rax
movq %rax, -0xd8(%rbp)
movq -0x30(%rbp), %rdi
callq 0x8130
movq -0xd8(%rbp), %rdi
movq %rax, %rdx
leaq 0xae21(%rip), %rsi      # 0x2c68e
callq 0x8150
movl %eax, %ecx
xorl %eax, %eax
cmpl %ecx, %eax
jne 0x218cd
movl $0x20, %edi
callq 0x8290
movq %rax, %rdi
movq %rdi, %rax
movq %rax, -0xe0(%rbp)
movq -0x18(%rbp), %rsi
movq -0x20(%rbp), %rdx
callq 0x2a790
jmp 0x218a0
movq -0xe0(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0x227d7
movq -0xe0(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
callq 0x8260
jmp 0x227e4
movq -0x30(%rbp), %rax
movq %rax, -0xe8(%rbp)
movq -0x30(%rbp), %rdi
callq 0x8130
movq -0xe8(%rbp), %rdi
movq %rax, %rdx
leaq 0xaff3(%rip), %rsi      # 0x2c8e5
callq 0x8150
movl %eax, %ecx
xorl %eax, %eax
cmpl %ecx, %eax
jne 0x21952
movl $0x20, %edi
callq 0x8290
movq %rax, %rdi
movq %rdi, %rax
movq %rax, -0xf0(%rbp)
movq -0x18(%rbp), %rsi
movq -0x20(%rbp), %rdx
callq 0x2a890
jmp 0x21925
movq -0xf0(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0x227d7
movq -0xf0(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
callq 0x8260
jmp 0x227e4
movq -0x30(%rbp), %rax
movq %rax, -0xf8(%rbp)
movq -0x30(%rbp), %rdi
callq 0x8130
movq -0xf8(%rbp), %rdi
movq %rax, %rdx
leaq 0xaefc(%rip), %rsi      # 0x2c873
callq 0x8150
movl %eax, %ecx
xorl %eax, %eax
cmpl %ecx, %eax
jne 0x219d7
movl $0x20, %edi
callq 0x8290
movq %rax, %rdi
movq %rdi, %rax
movq %rax, -0x100(%rbp)
movq -0x18(%rbp), %rsi
movq -0x20(%rbp), %rdx
callq 0x2a990
jmp 0x219aa
movq -0x100(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0x227d7
movq -0x100(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
callq 0x8260
jmp 0x227e4
movq -0x30(%rbp), %rax
movq %rax, -0x108(%rbp)
movq -0x30(%rbp), %rdi
callq 0x8130
movq -0x108(%rbp), %rdi
movq %rax, %rdx
leaq 0xadb4(%rip), %rsi      # 0x2c7b0
callq 0x8150
movl %eax, %ecx
xorl %eax, %eax
cmpl %ecx, %eax
jne 0x21a5c
movl $0x20, %edi
callq 0x8290
movq %rax, %rdi
movq %rdi, %rax
movq %rax, -0x110(%rbp)
movq -0x18(%rbp), %rsi
movq -0x20(%rbp), %rdx
callq 0x2aa90
jmp 0x21a2f
movq -0x110(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0x227d7
movq -0x110(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
callq 0x8260
jmp 0x227e4
movq -0x30(%rbp), %rax
movq %rax, -0x118(%rbp)
movq -0x30(%rbp), %rdi
callq 0x8130
movq -0x118(%rbp), %rdi
movq %rax, %rdx
leaq 0xaae0(%rip), %rsi      # 0x2c561
callq 0x8150
movl %eax, %ecx
xorl %eax, %eax
cmpl %ecx, %eax
jne 0x21add
movl $0x28, %edi
callq 0x8290
movq %rax, %rdi
movq %rdi, %rax
movq %rax, -0x120(%rbp)
movq -0x18(%rbp), %rsi
callq 0x15d70
jmp 0x21ab0
movq -0x120(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0x227d7
movq -0x120(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
callq 0x8260
jmp 0x227e4
movq -0x30(%rbp), %rax
movq %rax, -0x128(%rbp)
movq -0x30(%rbp), %rdi
callq 0x8130
movq -0x128(%rbp), %rdi
movq %rax, %rdx
leaq 0xad1a(%rip), %rsi      # 0x2c81c
callq 0x8150
movl %eax, %ecx
xorl %eax, %eax
cmpl %ecx, %eax
jne 0x21b5e
movl $0x28, %edi
callq 0x8290
movq %rax, %rdi
movq %rdi, %rax
movq %rax, -0x130(%rbp)
movq -0x18(%rbp), %rsi
callq 0x1c5b0
jmp 0x21b31
movq -0x130(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0x227d7
movq -0x130(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
callq 0x8260
jmp 0x227e4
movq -0x30(%rbp), %rax
movq %rax, -0x138(%rbp)
movq -0x30(%rbp), %rdi
callq 0x8130
movq -0x138(%rbp), %rdi
movq %rax, %rdx
leaq 0xabd8(%rip), %rsi      # 0x2c75b
callq 0x8150
movl %eax, %ecx
xorl %eax, %eax
cmpl %ecx, %eax
jne 0x21bdf
movl $0x28, %edi
callq 0x8290
movq %rax, %rdi
movq %rdi, %rax
movq %rax, -0x140(%rbp)
movq -0x18(%rbp), %rsi
callq 0x17f50
jmp 0x21bb2
movq -0x140(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0x227d7
movq -0x140(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
callq 0x8260
jmp 0x227e4
movq -0x30(%rbp), %rax
movq %rax, -0x148(%rbp)
movq -0x30(%rbp), %rdi
callq 0x8130
movq -0x148(%rbp), %rdi
movq %rax, %rdx
leaq 0xa972(%rip), %rsi      # 0x2c576
callq 0x8150
movl %eax, %ecx
xorl %eax, %eax
cmpl %ecx, %eax
jne 0x21c60
movl $0x28, %edi
callq 0x8290
movq %rax, %rdi
movq %rdi, %rax
movq %rax, -0x150(%rbp)
movq -0x18(%rbp), %rsi
callq 0x119f0
jmp 0x21c33
movq -0x150(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0x227d7
movq -0x150(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
callq 0x8260
jmp 0x227e4
movq -0x30(%rbp), %rax
movq %rax, -0x158(%rbp)
movq -0x30(%rbp), %rdi
callq 0x8130
movq -0x158(%rbp), %rdi
movq %rax, %rdx
leaq 0xab36(%rip), %rsi      # 0x2c7bb
callq 0x8150
movl %eax, %ecx
xorl %eax, %eax
cmpl %ecx, %eax
jne 0x21ce1
movl $0x28, %edi
callq 0x8290
movq %rax, %rdi
movq %rdi, %rax
movq %rax, -0x160(%rbp)
movq -0x18(%rbp), %rsi
callq 0x229d0
jmp 0x21cb4
movq -0x160(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0x227d7
movq -0x160(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
callq 0x8260
jmp 0x227e4
movq -0x30(%rbp), %rax
movq %rax, -0x168(%rbp)
movq -0x30(%rbp), %rdi
callq 0x8130
movq -0x168(%rbp), %rdi
movq %rax, %rdx
leaq 0xabea(%rip), %rsi      # 0x2c8f0
callq 0x8150
movl %eax, %ecx
xorl %eax, %eax
cmpl %ecx, %eax
jne 0x21d25
movq -0x40(%rbp), %rdi
callq 0x22c90
movq %rax, -0x8(%rbp)
jmp 0x227d7
movq -0x30(%rbp), %rax
movq %rax, -0x170(%rbp)
movq -0x30(%rbp), %rdi
callq 0x8130
movq -0x170(%rbp), %rdi
movq %rax, %rdx
leaq 0xa94f(%rip), %rsi      # 0x2c699
callq 0x8150
movl %eax, %ecx
xorl %eax, %eax
cmpl %ecx, %eax
jne 0x21d69
movq -0x40(%rbp), %rdi
callq 0x22f00
movq %rax, -0x8(%rbp)
jmp 0x227d7
movq -0x30(%rbp), %rax
movq %rax, -0x178(%rbp)
movq -0x30(%rbp), %rdi
callq 0x8130
movq -0x178(%rbp), %rdi
movq %rax, %rdx
leaq 0xa98b(%rip), %rsi      # 0x2c719
callq 0x8150
movl %eax, %ecx
xorl %eax, %eax
cmpl %ecx, %eax
jne 0x21dea
movl $0x28, %edi
callq 0x8290
movq %rax, %rdi
movq %rdi, %rax
movq %rax, -0x180(%rbp)
movq -0x18(%rbp), %rsi
callq 0x23170
jmp 0x21dbd
movq -0x180(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0x227d7
movq -0x180(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
callq 0x8260
jmp 0x227e4
movq -0x30(%rbp), %rax
movq %rax, -0x188(%rbp)
movq -0x30(%rbp), %rdi
callq 0x8130
movq -0x188(%rbp), %rdi
movq %rax, %rdx
leaq 0xaa6f(%rip), %rsi      # 0x2c87e
callq 0x8150
movl %eax, %ecx
xorl %eax, %eax
cmpl %ecx, %eax
jne 0x21e2e
movq -0x40(%rbp), %rdi
callq 0x23430
movq %rax, -0x8(%rbp)
jmp 0x227d7
movq -0x30(%rbp), %rax
movq %rax, -0x190(%rbp)
movq -0x30(%rbp), %rdi
callq 0x8130
movq -0x190(%rbp), %rdi
movq %rax, %rdx
leaq 0xaacd(%rip), %rsi      # 0x2c920
callq 0x8150
movl %eax, %ecx
xorl %eax, %eax
cmpl %ecx, %eax
jne 0x21e72
movq -0x40(%rbp), %rdi
callq 0x236a0
movq %rax, -0x8(%rbp)
jmp 0x227d7
movq -0x30(%rbp), %rax
movq %rax, -0x198(%rbp)
movq -0x30(%rbp), %rdi
callq 0x8130
movq -0x198(%rbp), %rdi
movq %rax, %rdx
leaq 0xa629(%rip), %rsi      # 0x2c4c0
callq 0x8150
movl %eax, %ecx
xorl %eax, %eax
cmpl %ecx, %eax
jne 0x21ef3
movl $0x50, %edi
callq 0x8290
movq %rax, %rdi
movq %rdi, %rax
movq %rax, -0x1a0(%rbp)
movq -0x40(%rbp), %rsi
callq 0x237d0
jmp 0x21ec6
movq -0x1a0(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0x227d7
movq -0x1a0(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
callq 0x8260
jmp 0x227e4
movq -0x30(%rbp), %rax
movq %rax, -0x1a8(%rbp)
movq -0x30(%rbp), %rdi
callq 0x8130
movq -0x1a8(%rbp), %rdi
movq %rax, %rdx
leaq 0xa72d(%rip), %rsi      # 0x2c645
callq 0x8150
movl %eax, %ecx
xorl %eax, %eax
cmpl %ecx, %eax
jne 0x21f74
movl $0x28, %edi
callq 0x8290
movq %rax, %rdi
movq %rdi, %rax
movq %rax, -0x1b0(%rbp)
movq -0x18(%rbp), %rsi
callq 0x23c70
jmp 0x21f47
movq -0x1b0(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0x227d7
movq -0x1b0(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
callq 0x8260
jmp 0x227e4
movq -0x30(%rbp), %rax
movq %rax, -0x1b8(%rbp)
movq -0x30(%rbp), %rdi
callq 0x8130
movq -0x1b8(%rbp), %rdi
movq %rax, %rdx
leaq 0xa4fa(%rip), %rsi      # 0x2c493
callq 0x8150
movl %eax, %ecx
xorl %eax, %eax
cmpl %ecx, %eax
jne 0x21ff5
movl $0x30, %edi
callq 0x8290
movq %rax, %rdi
movq %rdi, %rax
movq %rax, -0x1c0(%rbp)
movq -0x18(%rbp), %rsi
callq 0x24040
jmp 0x21fc8
movq -0x1c0(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0x227d7
movq -0x1c0(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
callq 0x8260
jmp 0x227e4
movq -0x30(%rbp), %rax
movq %rax, -0x1c8(%rbp)
movq -0x30(%rbp), %rdi
callq 0x8130
movq -0x1c8(%rbp), %rdi
movq %rax, %rdx
leaq 0xa429(%rip), %rsi      # 0x2c443
callq 0x8150
movl %eax, %ecx
xorl %eax, %eax
cmpl %ecx, %eax
jne 0x22076
movl $0x28, %edi
callq 0x8290
movq %rax, %rdi
movq %rdi, %rax
movq %rax, -0x1d0(%rbp)
movq -0x18(%rbp), %rsi
callq 0x243e0
jmp 0x22049
movq -0x1d0(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0x227d7
movq -0x1d0(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
callq 0x8260
jmp 0x227e4
movq -0x30(%rbp), %rax
movq %rax, -0x1d8(%rbp)
movq -0x30(%rbp), %rdi
callq 0x8130
movq -0x1d8(%rbp), %rdi
movq %rax, %rdx
leaq 0xa394(%rip), %rsi      # 0x2c42f
callq 0x8150
movl %eax, %ecx
xorl %eax, %eax
cmpl %ecx, %eax
jne 0x220f7
movl $0x20, %edi
callq 0x8290
movq %rax, %rdi
movq %rdi, %rax
movq %rax, -0x1e0(%rbp)
movq -0x18(%rbp), %rsi
callq 0x24650
jmp 0x220ca
movq -0x1e0(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0x227d7
movq -0x1e0(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
callq 0x8260
jmp 0x227e4
movq -0x30(%rbp), %rax
movq %rax, -0x1e8(%rbp)
movq -0x30(%rbp), %rdi
callq 0x8130
movq -0x1e8(%rbp), %rdi
movq %rax, %rdx
leaq 0xa35a(%rip), %rsi      # 0x2c476
callq 0x8150
movl %eax, %ecx
xorl %eax, %eax
cmpl %ecx, %eax
jne 0x2213b
movq -0x40(%rbp), %rdi
callq 0x24800
movq %rax, -0x8(%rbp)
jmp 0x227d7
movq -0x30(%rbp), %rax
movq %rax, -0x1f0(%rbp)
movq -0x30(%rbp), %rdi
callq 0x8130
movq -0x1f0(%rbp), %rdi
movq %rax, %rdx
leaq 0xa4c9(%rip), %rsi      # 0x2c629
callq 0x8150
movl %eax, %ecx
xorl %eax, %eax
cmpl %ecx, %eax
jne 0x221c0
movl $0x20, %edi
callq 0x8290
movq %rax, %rdi
movq %rdi, %rax
movq %rax, -0x1f8(%rbp)
movq -0x18(%rbp), %rsi
movq -0x20(%rbp), %rdx
callq 0x11fa0
jmp 0x22193
movq -0x1f8(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0x227d7
movq -0x1f8(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
callq 0x8260
jmp 0x227e4
movq -0x30(%rbp), %rax
movq %rax, -0x200(%rbp)
movq -0x30(%rbp), %rdi
callq 0x8130
movq -0x200(%rbp), %rdi
movq %rax, %rdx
leaq 0xa22c(%rip), %rsi      # 0x2c411
callq 0x8150
movl %eax, %ecx
xorl %eax, %eax
cmpl %ecx, %eax
jne 0x22241
movl $0x118, %edi            # imm = 0x118
callq 0x8290
movq %rax, %rdi
movq %rdi, %rax
movq %rax, -0x208(%rbp)
movq -0x18(%rbp), %rsi
callq 0x24b40
jmp 0x22214
movq -0x208(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0x227d7
movq -0x208(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
callq 0x8260
jmp 0x227e4
movq -0x30(%rbp), %rax
movq %rax, -0x210(%rbp)
movq -0x30(%rbp), %rdi
callq 0x8130
movq -0x210(%rbp), %rdi
movq %rax, %rdx
leaq 0xa08d(%rip), %rsi      # 0x2c2f3
callq 0x8150
movl %eax, %ecx
xorl %eax, %eax
cmpl %ecx, %eax
jne 0x222c2
movl $0x30, %edi
callq 0x8290
movq %rax, %rdi
movq %rdi, %rax
movq %rax, -0x218(%rbp)
movq -0x18(%rbp), %rsi
callq 0x24e20
jmp 0x22295
movq -0x218(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0x227d7
movq -0x218(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
callq 0x8260
jmp 0x227e4
movq -0x30(%rbp), %rax
movq %rax, -0x220(%rbp)
movq -0x30(%rbp), %rdi
callq 0x8130
movq -0x220(%rbp), %rdi
movq %rax, %rdx
leaq 0xa81c(%rip), %rsi      # 0x2cb03
callq 0x8150
movl %eax, %ecx
xorl %eax, %eax
cmpl %ecx, %eax
jne 0x22343
movl $0x30, %edi
callq 0x8290
movq %rax, %rdi
movq %rdi, %rax
movq %rax, -0x228(%rbp)
movq -0x18(%rbp), %rsi
callq 0x25210
jmp 0x22316
movq -0x228(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0x227d7
movq -0x228(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
callq 0x8260
jmp 0x227e4
movq -0x30(%rbp), %rax
movq %rax, -0x230(%rbp)
movq -0x30(%rbp), %rdi
callq 0x8130
movq -0x230(%rbp), %rdi
movq %rax, %rdx
leaq 0xa79f(%rip), %rsi      # 0x2cb07
callq 0x8150
movl %eax, %ecx
xorl %eax, %eax
cmpl %ecx, %eax
jne 0x223c4
movl $0x30, %edi
callq 0x8290
movq %rax, %rdi
movq %rdi, %rax
movq %rax, -0x238(%rbp)
movq -0x18(%rbp), %rsi
callq 0x25600
jmp 0x22397
movq -0x238(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0x227d7
movq -0x238(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
callq 0x8260
jmp 0x227e4
movq -0x30(%rbp), %rax
movq %rax, -0x240(%rbp)
movq -0x30(%rbp), %rdi
callq 0x8130
movq -0x240(%rbp), %rdi
movq %rax, %rdx
leaq 0xa576(%rip), %rsi      # 0x2c95f
callq 0x8150
movl %eax, %ecx
xorl %eax, %eax
cmpl %ecx, %eax
jne 0x22449
movl $0x40, %edi
callq 0x8290
movq %rax, %rdi
movq %rdi, %rax
movq %rax, -0x248(%rbp)
movq -0x18(%rbp), %rsi
movq -0x20(%rbp), %rdx
callq 0x2ab90
jmp 0x2241c
movq -0x248(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0x227d7
movq -0x248(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
callq 0x8260
jmp 0x227e4
movq -0x30(%rbp), %rax
movq %rax, -0x250(%rbp)
movq -0x30(%rbp), %rdi
callq 0x8130
movq -0x250(%rbp), %rdi
movq %rax, %rdx
leaq 0xa4fc(%rip), %rsi      # 0x2c96a
callq 0x8150
movl %eax, %ecx
xorl %eax, %eax
cmpl %ecx, %eax
jne 0x224ce
movl $0x38, %edi
callq 0x8290
movq %rax, %rdi
movq %rdi, %rax
movq %rax, -0x258(%rbp)
movq -0x18(%rbp), %rsi
movq -0x20(%rbp), %rdx
callq 0x2b090
jmp 0x224a1
movq -0x258(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0x227d7
movq -0x258(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
callq 0x8260
jmp 0x227e4
movq -0x30(%rbp), %rax
movq %rax, -0x260(%rbp)
movq -0x30(%rbp), %rdi
callq 0x8130
movq -0x260(%rbp), %rdi
movq %rax, %rdx
leaq 0xa484(%rip), %rsi      # 0x2c977
callq 0x8150
movl %eax, %ecx
xorl %eax, %eax
cmpl %ecx, %eax
jne 0x2254f
movl $0x38, %edi
callq 0x8290
movq %rax, %rdi
movq %rdi, %rax
movq %rax, -0x268(%rbp)
movq -0x18(%rbp), %rsi
callq 0x263f0
jmp 0x22522
movq -0x268(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0x227d7
movq -0x268(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
callq 0x8260
jmp 0x227e4
movq -0x30(%rbp), %rax
movq %rax, -0x270(%rbp)
movq -0x30(%rbp), %rdi
callq 0x8130
movq -0x270(%rbp), %rdi
movq %rax, %rdx
leaq 0xa3fc(%rip), %rsi      # 0x2c970
callq 0x8150
movl %eax, %ecx
xorl %eax, %eax
cmpl %ecx, %eax
jne 0x225d0
movl $0x38, %edi
callq 0x8290
movq %rax, %rdi
movq %rdi, %rax
movq %rax, -0x278(%rbp)
movq -0x18(%rbp), %rsi
callq 0x26860
jmp 0x225a3
movq -0x278(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0x227d7
movq -0x278(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
callq 0x8260
jmp 0x227e4
movq -0x30(%rbp), %rax
movq %rax, -0x280(%rbp)
movq -0x30(%rbp), %rdi
callq 0x8130
movq -0x280(%rbp), %rdi
movq %rax, %rdx
leaq 0xa993(%rip), %rsi      # 0x2cf88
callq 0x8150
movl %eax, %ecx
xorl %eax, %eax
cmpl %ecx, %eax
jne 0x22651
movl $0x38, %edi
callq 0x8290
movq %rax, %rdi
movq %rdi, %rax
movq %rax, -0x288(%rbp)
movq -0x18(%rbp), %rsi
callq 0x26cd0
jmp 0x22624
movq -0x288(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0x227d7
movq -0x288(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
callq 0x8260
jmp 0x227e4
movq -0x30(%rbp), %rax
movq %rax, -0x290(%rbp)
movq -0x30(%rbp), %rdi
callq 0x8130
movq -0x290(%rbp), %rdi
movq %rax, %rdx
leaq 0x9d4a(%rip), %rsi      # 0x2c3c0
callq 0x8150
movl %eax, %ecx
xorl %eax, %eax
cmpl %ecx, %eax
jne 0x226d2
movl $0x40, %edi
callq 0x8290
movq %rax, %rdi
movq %rdi, %rax
movq %rax, -0x298(%rbp)
movq -0x18(%rbp), %rsi
callq 0x27100
jmp 0x226a5
movq -0x298(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0x227d7
movq -0x298(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
callq 0x8260
jmp 0x227e4
movq -0x30(%rbp), %rax
movq %rax, -0x2a0(%rbp)
movq -0x30(%rbp), %rdi
callq 0x8130
movq -0x2a0(%rbp), %rdi
movq %rax, %rdx
leaq 0xa898(%rip), %rsi      # 0x2cf8f
callq 0x8150
movl %eax, %ecx
xorl %eax, %eax
cmpl %ecx, %eax
jne 0x22753
movl $0x48, %edi
callq 0x8290
movq %rax, %rdi
movq %rdi, %rax
movq %rax, -0x2a8(%rbp)
movq -0x18(%rbp), %rsi
callq 0x27610
jmp 0x22726
movq -0x2a8(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0x227d7
movq -0x2a8(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
callq 0x8260
jmp 0x227e4
movq 0x19866(%rip), %rdi     # 0x3bfc0
leaq 0xa838(%rip), %rsi      # 0x2cf99
callq 0x8280
movq %rax, %rdi
movq -0x30(%rbp), %rsi
callq 0x8280
movq %rax, %rdi
leaq 0x99b1(%rip), %rsi      # 0x2c12d
callq 0x8280
jmp 0x22783
jmp 0x22785
jmp 0x22787
jmp 0x22789
jmp 0x2278b
jmp 0x2278d
jmp 0x2278f
jmp 0x22791
jmp 0x22793
jmp 0x22795
jmp 0x22797
jmp 0x22799
jmp 0x2279b
jmp 0x2279d
jmp 0x2279f
jmp 0x227a1
jmp 0x227a3
jmp 0x227a5
jmp 0x227a7
jmp 0x227a9
jmp 0x227ab
jmp 0x227ad
jmp 0x227af
jmp 0x227b1
jmp 0x227b3
jmp 0x227b5
jmp 0x227b7
jmp 0x227b9
jmp 0x227bb
jmp 0x227bd
jmp 0x227bf
jmp 0x227c1
jmp 0x227c3
jmp 0x227c5
jmp 0x227c7
jmp 0x227c9
jmp 0x227cb
jmp 0x227cd
jmp 0x227cf
movq $0x0, -0x8(%rbp)
movq -0x8(%rbp), %rax
addq $0x2b0, %rsp            # imm = 0x2B0
popq %rbp
retq
movq -0x48(%rbp), %rdi
callq 0x8400
nopl (%rax)