// File: yasz24[P]eau2/src/network/./../serialize/jsonHelper.h
// Function: JSONHelper::getValueFromKey(char*, char*)
static String* getValueFromKey(char* name, char* s) {
        int len = strlen( s );
        //pull the class name from the serialzed string
        int startIndex = 0;
        for (int i = 0; i < len; i++){
            //iterate through s, checking for each key until we have a match
            bool nameStarted = false;
            char buff[len];
            int loc = 0;
            for(int j = startIndex; j < len; j++) {
                char temp = s[j];
                if(temp == '\'' && !nameStarted) {
                    nameStarted = true;
                } else if(temp == '\'' && nameStarted) {
                    //full name has been discovered
                    startIndex = j+1;
                    break;
                } else if(temp == '[' || temp == '{') { //special case for nested things
                    startIndex = endIndex(s, temp, i);
                } else if(nameStarted) {
                    buff[loc] = temp;
                    loc++;
                }
            }
            buff[loc] = '\0';
            char* keyName = buff;
            if(0 == strncmp(keyName, name, strlen(keyName))) {
                //we have a match!!!
                //get the specific starting place for getting value
                int objSize = len-startIndex;
                char* objectValue = new char[objSize];
                for(int z = 0; z < objSize; z++) {
                    objectValue[z] = s[z+startIndex];
                }
                return getPayloadValue(objectValue);
            }
        }
        return new String("");
    }

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0xa0, %rsp
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
movq -0x18(%rbp), %rdi
callq 0x8130
movl %eax, -0x1c(%rbp)
movl $0x0, -0x20(%rbp)
movl $0x0, -0x24(%rbp)
movl -0x24(%rbp), %eax
cmpl -0x1c(%rbp), %eax
jge 0x12fab
movb $0x0, -0x25(%rbp)
movl -0x1c(%rbp), %eax
movq %rsp, %rcx
movq %rcx, -0x30(%rbp)
movq %rax, %rdx
addq $0xf, %rdx
andq $-0x10, %rdx
movq %rsp, %rcx
subq %rdx, %rcx
movq %rcx, -0x80(%rbp)
movq %rcx, %rsp
movq %rax, -0x38(%rbp)
movl $0x0, -0x3c(%rbp)
movl -0x20(%rbp), %eax
movl %eax, -0x40(%rbp)
movl -0x40(%rbp), %eax
cmpl -0x1c(%rbp), %eax
jge 0x12ec5
movq -0x18(%rbp), %rax
movslq -0x40(%rbp), %rcx
movb (%rax,%rcx), %al
movb %al, -0x41(%rbp)
movsbl -0x41(%rbp), %eax
cmpl $0x27, %eax
jne 0x12e4f
testb $0x1, -0x25(%rbp)
jne 0x12e4f
movb $0x1, -0x25(%rbp)
jmp 0x12eb5
movsbl -0x41(%rbp), %eax
cmpl $0x27, %eax
jne 0x12e69
testb $0x1, -0x25(%rbp)
je 0x12e69
movl -0x40(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x20(%rbp)
jmp 0x12ec5
movsbl -0x41(%rbp), %eax
cmpl $0x5b, %eax
je 0x12e7b
movsbl -0x41(%rbp), %eax
cmpl $0x7b, %eax
jne 0x12e92
movq -0x18(%rbp), %rdi
movb -0x41(%rbp), %al
movl -0x24(%rbp), %edx
movsbl %al, %esi
callq 0x13300
movl %eax, -0x20(%rbp)
jmp 0x12eb1
testb $0x1, -0x25(%rbp)
je 0x12eaf
movq -0x80(%rbp), %rax
movb -0x41(%rbp), %dl
movslq -0x3c(%rbp), %rcx
movb %dl, (%rax,%rcx)
movl -0x3c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x3c(%rbp)
jmp 0x12eb1
jmp 0x12eb3
jmp 0x12eb5
jmp 0x12eb7
movl -0x40(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x40(%rbp)
jmp 0x12e20
movq -0x80(%rbp), %rax
movslq -0x3c(%rbp), %rcx
movb $0x0, (%rax,%rcx)
movq %rax, -0x50(%rbp)
movq -0x50(%rbp), %rax
movq %rax, -0x90(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0x88(%rbp)
movq -0x50(%rbp), %rdi
callq 0x8130
movq -0x90(%rbp), %rdi
movq -0x88(%rbp), %rsi
movq %rax, %rdx
callq 0x8150
movl %eax, %ecx
xorl %eax, %eax
cmpl %ecx, %eax
jne 0x12f82
movl -0x1c(%rbp), %eax
subl -0x20(%rbp), %eax
movl %eax, -0x54(%rbp)
movslq -0x54(%rbp), %rdi
movq $-0x1, %rax
cmpq $0x0, %rdi
cmovlq %rax, %rdi
callq 0x8030
movq %rax, -0x60(%rbp)
movl $0x0, -0x64(%rbp)
movl -0x64(%rbp), %eax
cmpl -0x54(%rbp), %eax
jge 0x12f6c
movq -0x18(%rbp), %rax
movl -0x64(%rbp), %ecx
addl -0x20(%rbp), %ecx
movslq %ecx, %rcx
movb (%rax,%rcx), %dl
movq -0x60(%rbp), %rax
movslq -0x64(%rbp), %rcx
movb %dl, (%rax,%rcx)
movl -0x64(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x64(%rbp)
jmp 0x12f3e
movq -0x60(%rbp), %rdi
callq 0x12b70
movq %rax, -0x8(%rbp)
movl $0x1, -0x68(%rbp)
jmp 0x12f89
movl $0x0, -0x68(%rbp)
movq -0x30(%rbp), %rax
movq %rax, %rsp
movl -0x68(%rbp), %eax
testl %eax, %eax
je 0x12f9b
jmp 0x12f99
jmp 0x12ff7
jmp 0x12f9d
movl -0x24(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x24(%rbp)
jmp 0x12ddd
movl $0x20, %edi
callq 0x8290
movq %rax, %rdi
movq %rdi, %rax
movq %rax, -0x98(%rbp)
leaq 0x19165(%rip), %rsi     # 0x2c12e
callq 0xc630
jmp 0x12fd0
movq -0x98(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0x12ff7
movq -0x98(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x70(%rbp)
movl %eax, -0x74(%rbp)
callq 0x8260
jmp 0x13000
movq -0x8(%rbp), %rax
movq %rbp, %rsp
popq %rbp
retq
movq -0x70(%rbp), %rdi
callq 0x8400
nopl (%rax)