1. A method for asynchronous processing of system calls, the method comprising: (a) detecting a system call on a computer system; (b) filtering the system call to determine when the system call matches a filter parameter; (c) making a copy of the system call and asynchronously processing the system call copy, if the system call does not pass through at least one filter, and the filter parameter does not match the system call; (d) placing the system call into a queue; (e) releasing the system call after an anti-virus (AV) check of the system call copy and terminating an object that caused the system call when the AV check reveals that the system call is malicious; and (f) for an object associated with the system call that has behavior differences compared to a previous known non-malicious version of the object but also similarities to the previous known non-malicious object, classifying the object as non-malicious, wherein steps (b)-(f) are performed sequentially without interrupting execution of the system call.