// File: /workspace/github_cpp_makefile_star2_O2/prakhar2808[P]DBEngine/dbengine/dbops.cc
// Function: evalOp(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>&, database*, int)
opStatus evalOp(std::string& inBuffer, database* dbObject, int clientSocket) {
  // Put op
  if(regex_match(inBuffer, putRegex)) {
    keyValuePair_t keyValuePair = getKeyValuePair(inBuffer);
    return putOp(keyValuePair, clientSocket, dbObject);
  }
  // File put op
  if(inBuffer.substr(0,7) == "FILEPUT") {
    return filePutOp(inBuffer, clientSocket, dbObject); 
  }
  // Get op
  else if(regex_match(inBuffer, getRegex)) {
    std::string key = getKey(inBuffer);
    return getOp(key, clientSocket, dbObject);
  }
  // Delete op
  else if(regex_match(inBuffer, deleteRegex)) {
    std::string key = getKey(inBuffer);
    return deleteOp(key, clientSocket, dbObject);
  }
  //List all
  else if(regex_match(inBuffer, listAllRegex)) {
    return listAllOp(clientSocket, dbObject);
  }
  // No op
  return opStatus::opInvalid;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
subq $0x120, %rsp            # imm = 0x120
movl %edx, %ebp
movq %rsi, %rbx
movq %rdi, %r14
leaq 0x1061e(%rip), %rsi     # 0x17238
movq %rsp, %r15
pushq $0x10
popq %rdx
movq %r15, %rdi
callq 0x72e2
movq %r14, %rdi
movq %r15, %rsi
xorl %edx, %edx
callq 0x72cb
movl %eax, %r15d
movq %rsp, %rdi
callq 0x7348
testb %r15b, %r15b
je 0x6cae
leaq 0x80(%rsp), %r15
movq %r15, %rdi
movq %r14, %rsi
callq 0x5540
movq %rsp, %rdi
movq %r15, %rsi
callq 0x160d8
leaq 0x80(%rsp), %rdi
callq 0x51d0
leaq 0xe0(%rsp), %rdi
movq %rsp, %rsi
callq 0x6a76
leaq 0xe0(%rsp), %rdi
movl %ebp, %esi
movq %rbx, %rdx
callq 0x6ed5
movl %eax, %ebx
leaq 0xe0(%rsp), %rdi
callq 0x6ab0
movq %rsp, %rdi
callq 0x6ab0
jmp 0x6e0c
movq %rsp, %r15
pushq $0x7
popq %rcx
movq %r15, %rdi
movq %r14, %rsi
xorl %edx, %edx
callq 0x5400
leaq 0x105b2(%rip), %rsi     # 0x1727a
movq %r15, %rdi
callq 0x7362
movl %eax, %r12d
movq %r15, %rdi
callq 0x51d0
testb %r12b, %r12b
je 0x6cf4
movq %r14, %rdi
movl %ebp, %esi
movq %rbx, %rdx
callq 0x6f84
movl %eax, %ebx
jmp 0x6e0c
leaq 0x10587(%rip), %rsi     # 0x17282
movq %rsp, %r15
pushq $0x10
popq %rdx
movq %r15, %rdi
callq 0x72e2
movq %r14, %rdi
movq %r15, %rsi
xorl %edx, %edx
callq 0x72cb
movl %eax, %r15d
movq %rsp, %rdi
callq 0x7348
testb %r15b, %r15b
je 0x6d7c
leaq 0xc0(%rsp), %r15
movq %r15, %rdi
movq %r14, %rsi
callq 0x5540
movq %rsp, %rdi
movq %r15, %rsi
callq 0x16227
leaq 0xc0(%rsp), %rdi
callq 0x51d0
leaq 0x60(%rsp), %rdi
movq %rsp, %r15
movq %r15, %rsi
callq 0x5540
leaq 0x60(%rsp), %rdi
movl %ebp, %esi
movq %rbx, %rdx
callq 0x7170
movl %eax, %ebx
leaq 0x60(%rsp), %rdi
jmp 0x6dff
leaq 0x1052d(%rip), %rsi     # 0x172b0
movq %rsp, %r15
pushq $0x10
popq %rdx
movq %r15, %rdi
callq 0x72e2
movq %r14, %rdi
movq %r15, %rsi
xorl %edx, %edx
callq 0x72cb
movl %eax, %r15d
movq %rsp, %rdi
callq 0x7348
testb %r15b, %r15b
je 0x6e1e
leaq 0xa0(%rsp), %r15
movq %r15, %rdi
movq %r14, %rsi
callq 0x5540
movq %rsp, %rdi
movq %r15, %rsi
callq 0x16227
leaq 0xa0(%rsp), %rdi
callq 0x51d0
leaq 0x40(%rsp), %rdi
movq %rsp, %r15
movq %r15, %rsi
callq 0x5540
leaq 0x40(%rsp), %rdi
movl %ebp, %esi
movq %rbx, %rdx
callq 0x7204
movl %eax, %ebx
leaq 0x40(%rsp), %rdi
callq 0x51d0
movq %rsp, %rdi
callq 0x51d0
movl %ebx, %eax
addq $0x120, %rsp            # imm = 0x120
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
retq
leaq 0x104bf(%rip), %rsi     # 0x172e4
movq %rsp, %r15
pushq $0x10
popq %rdx
movq %r15, %rdi
callq 0x72e2
movq %r14, %rdi
movq %r15, %rsi
xorl %edx, %edx
callq 0x72cb
movl %eax, %r14d
movq %rsp, %rdi
callq 0x7348
testb %r14b, %r14b
je 0x6e5f
movl %ebp, %edi
movq %rbx, %rsi
callq 0x7298
jmp 0x6ced
pushq $0x1
popq %rbx
jmp 0x6e0c
movq %rax, %rbx
leaq 0x40(%rsp), %rdi
jmp 0x6e7c
jmp 0x6e87
jmp 0x6ec2
jmp 0x6e87
movq %rax, %rbx
leaq 0x60(%rsp), %rdi
callq 0x51d0
jmp 0x6e8a
jmp 0x6e87
jmp 0x6ec2
movq %rax, %rbx
movq %r15, %rdi
jmp 0x6ebb
jmp 0x6ec2
movq %rax, %rbx
leaq 0xe0(%rsp), %rdi
callq 0x6ab0
jmp 0x6ea6
movq %rax, %rbx
movq %rsp, %rdi
callq 0x6ab0
jmp 0x6ecd
movq %rax, %rbx
leaq 0x80(%rsp), %rdi
callq 0x51d0
jmp 0x6ecd
movq %rax, %rbx
movq %rsp, %rdi
callq 0x7348
movq %rbx, %rdi
callq 0x56c0