Local receiver = (Local) iie.getBase();
NumberedString subSig = iie.getMethodRef().getSubSignature();
addVirtualCallSite(s, m, receiver, iie, subSig, Edge.ieToKind(iie));
if (subSig == sigStart) {
addVirtualCallSite(s, m, receiver, iie, sigRun, Kind.THREAD);
} else if (subSig == sigExecutorExecute || subSig == sigHandlerPost || subSig == sigHandlerPostAtFrontOfQueue
|| subSig == sigHandlerPostAtTime || subSig == sigHandlerPostAtTimeWithToken
Value runnable = iie.getArg(0);
if (runnable instanceof Local) {
addVirtualCallSite(s, m, (Local) runnable, iie, sigRun, Kind.EXECUTOR);
|| subSig == sigHandlerSendMessageAtFrontOfQueue || subSig == sigHandlerSendMessageAtTime
|| subSig == sigHandlerSendMessageDelayed) {
addVirtualCallSite(s, m, receiver, iie, sigHandlerHandleMessage, Kind.HANDLER);
} else if (subSig == sigExecute) {
addVirtualCallSite(s, m, receiver, iie, sigDoInBackground, Kind.ASYNCTASK);
addVirtualCallSite(s, m, receiver, null, sigObjRun, Kind.PRIVILEGED);