// File: 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
subq $0x1e0, %rsp            # imm = 0x1E0
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
movq -0x18(%rbp), %rdi
callq 0x22880
movq %rax, -0x20(%rbp)
movq -0x20(%rbp), %rdi
movq (%rdi), %rax
callq *0x30(%rax)
movq %rax, -0x28(%rbp)
movq -0x18(%rbp), %rdi
callq 0x12b70
movq %rax, -0x30(%rbp)
movq -0x30(%rbp), %rdi
movq (%rdi), %rax
callq *0x30(%rax)
movq %rax, -0x38(%rbp)
movq -0x28(%rbp), %rax
movq %rax, -0x50(%rbp)
movq -0x28(%rbp), %rdi
callq 0x8130
movq -0x50(%rbp), %rdi
movq %rax, %rdx
leaq 0xbe79(%rip), %rsi      # 0x2c561
callq 0x8150
movl %eax, %ecx
xorl %eax, %eax
cmpl %ecx, %eax
jne 0x2073b
movl $0x28, %edi
callq 0x8290
movq %rax, %rdi
movq %rdi, %rax
movq %rax, -0x58(%rbp)
movq -0x18(%rbp), %rsi
callq 0x15d70
jmp 0x20714
movq -0x58(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0x213ea
movq -0x58(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
callq 0x8260
jmp 0x213f7
movq -0x28(%rbp), %rax
movq %rax, -0x60(%rbp)
movq -0x28(%rbp), %rdi
callq 0x8130
movq -0x60(%rbp), %rdi
movq %rax, %rdx
leaq 0xc0c2(%rip), %rsi      # 0x2c81c
callq 0x8150
movl %eax, %ecx
xorl %eax, %eax
cmpl %ecx, %eax
jne 0x207ad
movl $0x28, %edi
callq 0x8290
movq %rax, %rdi
movq %rdi, %rax
movq %rax, -0x68(%rbp)
movq -0x18(%rbp), %rsi
callq 0x1c5b0
jmp 0x20786
movq -0x68(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0x213ea
movq -0x68(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
callq 0x8260
jmp 0x213f7
movq -0x28(%rbp), %rax
movq %rax, -0x70(%rbp)
movq -0x28(%rbp), %rdi
callq 0x8130
movq -0x70(%rbp), %rdi
movq %rax, %rdx
leaq 0xbf8f(%rip), %rsi      # 0x2c75b
callq 0x8150
movl %eax, %ecx
xorl %eax, %eax
cmpl %ecx, %eax
jne 0x2081f
movl $0x28, %edi
callq 0x8290
movq %rax, %rdi
movq %rdi, %rax
movq %rax, -0x78(%rbp)
movq -0x18(%rbp), %rsi
callq 0x17f50
jmp 0x207f8
movq -0x78(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0x213ea
movq -0x78(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
callq 0x8260
jmp 0x213f7
movq -0x28(%rbp), %rax
movq %rax, -0x80(%rbp)
movq -0x28(%rbp), %rdi
callq 0x8130
movq -0x80(%rbp), %rdi
movq %rax, %rdx
leaq 0xbd38(%rip), %rsi      # 0x2c576
callq 0x8150
movl %eax, %ecx
xorl %eax, %eax
cmpl %ecx, %eax
jne 0x2089a
movl $0x28, %edi
callq 0x8290
movq %rax, %rdi
movq %rdi, %rax
movq %rax, -0x88(%rbp)
movq -0x18(%rbp), %rsi
callq 0x119f0
jmp 0x2086d
movq -0x88(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0x213ea
movq -0x88(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
callq 0x8260
jmp 0x213f7
movq -0x28(%rbp), %rax
movq %rax, -0x90(%rbp)
movq -0x28(%rbp), %rdi
callq 0x8130
movq -0x90(%rbp), %rdi
movq %rax, %rdx
leaq 0xbefc(%rip), %rsi      # 0x2c7bb
callq 0x8150
movl %eax, %ecx
xorl %eax, %eax
cmpl %ecx, %eax
jne 0x2091b
movl $0x28, %edi
callq 0x8290
movq %rax, %rdi
movq %rdi, %rax
movq %rax, -0x98(%rbp)
movq -0x18(%rbp), %rsi
callq 0x229d0
jmp 0x208ee
movq -0x98(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0x213ea
movq -0x98(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
callq 0x8260
jmp 0x213f7
movq -0x28(%rbp), %rax
movq %rax, -0xa0(%rbp)
movq -0x28(%rbp), %rdi
callq 0x8130
movq -0xa0(%rbp), %rdi
movq %rax, %rdx
leaq 0xbfb0(%rip), %rsi      # 0x2c8f0
callq 0x8150
movl %eax, %ecx
xorl %eax, %eax
cmpl %ecx, %eax
jne 0x2095f
movq -0x38(%rbp), %rdi
callq 0x22c90
movq %rax, -0x8(%rbp)
jmp 0x213ea
movq -0x28(%rbp), %rax
movq %rax, -0xa8(%rbp)
movq -0x28(%rbp), %rdi
callq 0x8130
movq -0xa8(%rbp), %rdi
movq %rax, %rdx
leaq 0xbd15(%rip), %rsi      # 0x2c699
callq 0x8150
movl %eax, %ecx
xorl %eax, %eax
cmpl %ecx, %eax
jne 0x209a3
movq -0x38(%rbp), %rdi
callq 0x22f00
movq %rax, -0x8(%rbp)
jmp 0x213ea
movq -0x28(%rbp), %rax
movq %rax, -0xb0(%rbp)
movq -0x28(%rbp), %rdi
callq 0x8130
movq -0xb0(%rbp), %rdi
movq %rax, %rdx
leaq 0xbd51(%rip), %rsi      # 0x2c719
callq 0x8150
movl %eax, %ecx
xorl %eax, %eax
cmpl %ecx, %eax
jne 0x20a24
movl $0x28, %edi
callq 0x8290
movq %rax, %rdi
movq %rdi, %rax
movq %rax, -0xb8(%rbp)
movq -0x18(%rbp), %rsi
callq 0x23170
jmp 0x209f7
movq -0xb8(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0x213ea
movq -0xb8(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
callq 0x8260
jmp 0x213f7
movq -0x28(%rbp), %rax
movq %rax, -0xc0(%rbp)
movq -0x28(%rbp), %rdi
callq 0x8130
movq -0xc0(%rbp), %rdi
movq %rax, %rdx
leaq 0xbe35(%rip), %rsi      # 0x2c87e
callq 0x8150
movl %eax, %ecx
xorl %eax, %eax
cmpl %ecx, %eax
jne 0x20a68
movq -0x38(%rbp), %rdi
callq 0x23430
movq %rax, -0x8(%rbp)
jmp 0x213ea
movq -0x28(%rbp), %rax
movq %rax, -0xc8(%rbp)
movq -0x28(%rbp), %rdi
callq 0x8130
movq -0xc8(%rbp), %rdi
movq %rax, %rdx
leaq 0xbe93(%rip), %rsi      # 0x2c920
callq 0x8150
movl %eax, %ecx
xorl %eax, %eax
cmpl %ecx, %eax
jne 0x20aac
movq -0x38(%rbp), %rdi
callq 0x236a0
movq %rax, -0x8(%rbp)
jmp 0x213ea
movq -0x28(%rbp), %rax
movq %rax, -0xd0(%rbp)
movq -0x28(%rbp), %rdi
callq 0x8130
movq -0xd0(%rbp), %rdi
movq %rax, %rdx
leaq 0xb9ef(%rip), %rsi      # 0x2c4c0
callq 0x8150
movl %eax, %ecx
xorl %eax, %eax
cmpl %ecx, %eax
jne 0x20b2d
movl $0x50, %edi
callq 0x8290
movq %rax, %rdi
movq %rdi, %rax
movq %rax, -0xd8(%rbp)
movq -0x38(%rbp), %rsi
callq 0x237d0
jmp 0x20b00
movq -0xd8(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0x213ea
movq -0xd8(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
callq 0x8260
jmp 0x213f7
movq -0x28(%rbp), %rax
movq %rax, -0xe0(%rbp)
movq -0x28(%rbp), %rdi
callq 0x8130
movq -0xe0(%rbp), %rdi
movq %rax, %rdx
leaq 0xbaf3(%rip), %rsi      # 0x2c645
callq 0x8150
movl %eax, %ecx
xorl %eax, %eax
cmpl %ecx, %eax
jne 0x20bae
movl $0x28, %edi
callq 0x8290
movq %rax, %rdi
movq %rdi, %rax
movq %rax, -0xe8(%rbp)
movq -0x18(%rbp), %rsi
callq 0x23c70
jmp 0x20b81
movq -0xe8(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0x213ea
movq -0xe8(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
callq 0x8260
jmp 0x213f7
movq -0x28(%rbp), %rax
movq %rax, -0xf0(%rbp)
movq -0x28(%rbp), %rdi
callq 0x8130
movq -0xf0(%rbp), %rdi
movq %rax, %rdx
leaq 0xb8c0(%rip), %rsi      # 0x2c493
callq 0x8150
movl %eax, %ecx
xorl %eax, %eax
cmpl %ecx, %eax
jne 0x20c2f
movl $0x30, %edi
callq 0x8290
movq %rax, %rdi
movq %rdi, %rax
movq %rax, -0xf8(%rbp)
movq -0x18(%rbp), %rsi
callq 0x24040
jmp 0x20c02
movq -0xf8(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0x213ea
movq -0xf8(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
callq 0x8260
jmp 0x213f7
movq -0x28(%rbp), %rax
movq %rax, -0x100(%rbp)
movq -0x28(%rbp), %rdi
callq 0x8130
movq -0x100(%rbp), %rdi
movq %rax, %rdx
leaq 0xb7ef(%rip), %rsi      # 0x2c443
callq 0x8150
movl %eax, %ecx
xorl %eax, %eax
cmpl %ecx, %eax
jne 0x20cb0
movl $0x28, %edi
callq 0x8290
movq %rax, %rdi
movq %rdi, %rax
movq %rax, -0x108(%rbp)
movq -0x18(%rbp), %rsi
callq 0x243e0
jmp 0x20c83
movq -0x108(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0x213ea
movq -0x108(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
callq 0x8260
jmp 0x213f7
movq -0x28(%rbp), %rax
movq %rax, -0x110(%rbp)
movq -0x28(%rbp), %rdi
callq 0x8130
movq -0x110(%rbp), %rdi
movq %rax, %rdx
leaq 0xb75a(%rip), %rsi      # 0x2c42f
callq 0x8150
movl %eax, %ecx
xorl %eax, %eax
cmpl %ecx, %eax
jne 0x20d31
movl $0x20, %edi
callq 0x8290
movq %rax, %rdi
movq %rdi, %rax
movq %rax, -0x118(%rbp)
movq -0x18(%rbp), %rsi
callq 0x24650
jmp 0x20d04
movq -0x118(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0x213ea
movq -0x118(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
callq 0x8260
jmp 0x213f7
movq -0x28(%rbp), %rax
movq %rax, -0x120(%rbp)
movq -0x28(%rbp), %rdi
callq 0x8130
movq -0x120(%rbp), %rdi
movq %rax, %rdx
leaq 0xb720(%rip), %rsi      # 0x2c476
callq 0x8150
movl %eax, %ecx
xorl %eax, %eax
cmpl %ecx, %eax
jne 0x20d75
movq -0x38(%rbp), %rdi
callq 0x24800
movq %rax, -0x8(%rbp)
jmp 0x213ea
movq -0x28(%rbp), %rax
movq %rax, -0x128(%rbp)
movq -0x28(%rbp), %rdi
callq 0x8130
movq -0x128(%rbp), %rdi
movq %rax, %rdx
leaq 0xb88f(%rip), %rsi      # 0x2c629
callq 0x8150
movl %eax, %ecx
xorl %eax, %eax
cmpl %ecx, %eax
jne 0x20df6
movl $0x20, %edi
callq 0x8290
movq %rax, %rdi
movq %rdi, %rax
movq %rax, -0x130(%rbp)
movq -0x18(%rbp), %rsi
callq 0x248e0
jmp 0x20dc9
movq -0x130(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0x213ea
movq -0x130(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
callq 0x8260
jmp 0x213f7
movq -0x28(%rbp), %rax
movq %rax, -0x138(%rbp)
movq -0x28(%rbp), %rdi
callq 0x8130
movq -0x138(%rbp), %rdi
movq %rax, %rdx
leaq 0xb5f6(%rip), %rsi      # 0x2c411
callq 0x8150
movl %eax, %ecx
xorl %eax, %eax
cmpl %ecx, %eax
jne 0x20e77
movl $0x118, %edi            # imm = 0x118
callq 0x8290
movq %rax, %rdi
movq %rdi, %rax
movq %rax, -0x140(%rbp)
movq -0x18(%rbp), %rsi
callq 0x24b40
jmp 0x20e4a
movq -0x140(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0x213ea
movq -0x140(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
callq 0x8260
jmp 0x213f7
movq -0x28(%rbp), %rax
movq %rax, -0x148(%rbp)
movq -0x28(%rbp), %rdi
callq 0x8130
movq -0x148(%rbp), %rdi
movq %rax, %rdx
leaq 0xb457(%rip), %rsi      # 0x2c2f3
callq 0x8150
movl %eax, %ecx
xorl %eax, %eax
cmpl %ecx, %eax
jne 0x20ef8
movl $0x30, %edi
callq 0x8290
movq %rax, %rdi
movq %rdi, %rax
movq %rax, -0x150(%rbp)
movq -0x18(%rbp), %rsi
callq 0x24e20
jmp 0x20ecb
movq -0x150(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0x213ea
movq -0x150(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
callq 0x8260
jmp 0x213f7
movq -0x28(%rbp), %rax
movq %rax, -0x158(%rbp)
movq -0x28(%rbp), %rdi
callq 0x8130
movq -0x158(%rbp), %rdi
movq %rax, %rdx
leaq 0xbbe6(%rip), %rsi      # 0x2cb03
callq 0x8150
movl %eax, %ecx
xorl %eax, %eax
cmpl %ecx, %eax
jne 0x20f79
movl $0x30, %edi
callq 0x8290
movq %rax, %rdi
movq %rdi, %rax
movq %rax, -0x160(%rbp)
movq -0x18(%rbp), %rsi
callq 0x25210
jmp 0x20f4c
movq -0x160(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0x213ea
movq -0x160(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
callq 0x8260
jmp 0x213f7
movq -0x28(%rbp), %rax
movq %rax, -0x168(%rbp)
movq -0x28(%rbp), %rdi
callq 0x8130
movq -0x168(%rbp), %rdi
movq %rax, %rdx
leaq 0xbb69(%rip), %rsi      # 0x2cb07
callq 0x8150
movl %eax, %ecx
xorl %eax, %eax
cmpl %ecx, %eax
jne 0x20ffa
movl $0x30, %edi
callq 0x8290
movq %rax, %rdi
movq %rdi, %rax
movq %rax, -0x170(%rbp)
movq -0x18(%rbp), %rsi
callq 0x25600
jmp 0x20fcd
movq -0x170(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0x213ea
movq -0x170(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
callq 0x8260
jmp 0x213f7
movq -0x28(%rbp), %rax
movq %rax, -0x178(%rbp)
movq -0x28(%rbp), %rdi
callq 0x8130
movq -0x178(%rbp), %rdi
movq %rax, %rdx
leaq 0xb940(%rip), %rsi      # 0x2c95f
callq 0x8150
movl %eax, %ecx
xorl %eax, %eax
cmpl %ecx, %eax
jne 0x2107b
movl $0x40, %edi
callq 0x8290
movq %rax, %rdi
movq %rdi, %rax
movq %rax, -0x180(%rbp)
movq -0x18(%rbp), %rsi
callq 0x259f0
jmp 0x2104e
movq -0x180(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0x213ea
movq -0x180(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
callq 0x8260
jmp 0x213f7
movq -0x28(%rbp), %rax
movq %rax, -0x188(%rbp)
movq -0x28(%rbp), %rdi
callq 0x8130
movq -0x188(%rbp), %rdi
movq %rax, %rdx
leaq 0xb8ca(%rip), %rsi      # 0x2c96a
callq 0x8150
movl %eax, %ecx
xorl %eax, %eax
cmpl %ecx, %eax
jne 0x210fc
movl $0x38, %edi
callq 0x8290
movq %rax, %rdi
movq %rdi, %rax
movq %rax, -0x190(%rbp)
movq -0x18(%rbp), %rsi
callq 0x25ef0
jmp 0x210cf
movq -0x190(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0x213ea
movq -0x190(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
callq 0x8260
jmp 0x213f7
movq -0x28(%rbp), %rax
movq %rax, -0x198(%rbp)
movq -0x28(%rbp), %rdi
callq 0x8130
movq -0x198(%rbp), %rdi
movq %rax, %rdx
leaq 0xb856(%rip), %rsi      # 0x2c977
callq 0x8150
movl %eax, %ecx
xorl %eax, %eax
cmpl %ecx, %eax
jne 0x2117d
movl $0x38, %edi
callq 0x8290
movq %rax, %rdi
movq %rdi, %rax
movq %rax, -0x1a0(%rbp)
movq -0x18(%rbp), %rsi
callq 0x263f0
jmp 0x21150
movq -0x1a0(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0x213ea
movq -0x1a0(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
callq 0x8260
jmp 0x213f7
movq -0x28(%rbp), %rax
movq %rax, -0x1a8(%rbp)
movq -0x28(%rbp), %rdi
callq 0x8130
movq -0x1a8(%rbp), %rdi
movq %rax, %rdx
leaq 0xb7ce(%rip), %rsi      # 0x2c970
callq 0x8150
movl %eax, %ecx
xorl %eax, %eax
cmpl %ecx, %eax
jne 0x211fe
movl $0x38, %edi
callq 0x8290
movq %rax, %rdi
movq %rdi, %rax
movq %rax, -0x1b0(%rbp)
movq -0x18(%rbp), %rsi
callq 0x26860
jmp 0x211d1
movq -0x1b0(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0x213ea
movq -0x1b0(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
callq 0x8260
jmp 0x213f7
movq -0x28(%rbp), %rax
movq %rax, -0x1b8(%rbp)
movq -0x28(%rbp), %rdi
callq 0x8130
movq -0x1b8(%rbp), %rdi
movq %rax, %rdx
leaq 0xbd65(%rip), %rsi      # 0x2cf88
callq 0x8150
movl %eax, %ecx
xorl %eax, %eax
cmpl %ecx, %eax
jne 0x2127f
movl $0x38, %edi
callq 0x8290
movq %rax, %rdi
movq %rdi, %rax
movq %rax, -0x1c0(%rbp)
movq -0x18(%rbp), %rsi
callq 0x26cd0
jmp 0x21252
movq -0x1c0(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0x213ea
movq -0x1c0(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
callq 0x8260
jmp 0x213f7
movq -0x28(%rbp), %rax
movq %rax, -0x1c8(%rbp)
movq -0x28(%rbp), %rdi
callq 0x8130
movq -0x1c8(%rbp), %rdi
movq %rax, %rdx
leaq 0xb11c(%rip), %rsi      # 0x2c3c0
callq 0x8150
movl %eax, %ecx
xorl %eax, %eax
cmpl %ecx, %eax
jne 0x21300
movl $0x40, %edi
callq 0x8290
movq %rax, %rdi
movq %rdi, %rax
movq %rax, -0x1d0(%rbp)
movq -0x18(%rbp), %rsi
callq 0x27100
jmp 0x212d3
movq -0x1d0(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0x213ea
movq -0x1d0(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
callq 0x8260
jmp 0x213f7
movq -0x28(%rbp), %rax
movq %rax, -0x1d8(%rbp)
movq -0x28(%rbp), %rdi
callq 0x8130
movq -0x1d8(%rbp), %rdi
movq %rax, %rdx
leaq 0xbc6a(%rip), %rsi      # 0x2cf8f
callq 0x8150
movl %eax, %ecx
xorl %eax, %eax
cmpl %ecx, %eax
jne 0x2137e
movl $0x48, %edi
callq 0x8290
movq %rax, %rdi
movq %rdi, %rax
movq %rax, -0x1e0(%rbp)
movq -0x18(%rbp), %rsi
callq 0x27610
jmp 0x21354
movq -0x1e0(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0x213ea
movq -0x1e0(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
callq 0x8260
jmp 0x213f7
movq 0x1ac3b(%rip), %rdi     # 0x3bfc0
leaq 0xbc0d(%rip), %rsi      # 0x2cf99
callq 0x8280
movq %rax, %rdi
movq -0x28(%rbp), %rsi
callq 0x8280
movq %rax, %rdi
leaq 0xad86(%rip), %rsi      # 0x2c12d
callq 0x8280
jmp 0x213ae
jmp 0x213b0
jmp 0x213b2
jmp 0x213b4
jmp 0x213b6
jmp 0x213b8
jmp 0x213ba
jmp 0x213bc
jmp 0x213be
jmp 0x213c0
jmp 0x213c2
jmp 0x213c4
jmp 0x213c6
jmp 0x213c8
jmp 0x213ca
jmp 0x213cc
jmp 0x213ce
jmp 0x213d0
jmp 0x213d2
jmp 0x213d4
jmp 0x213d6
jmp 0x213d8
jmp 0x213da
jmp 0x213dc
jmp 0x213de
jmp 0x213e0
jmp 0x213e2
movq $0x0, -0x8(%rbp)
movq -0x8(%rbp), %rax
addq $0x1e0, %rsp            # imm = 0x1E0
popq %rbp
retq
movq -0x40(%rbp), %rdi
callq 0x8400