CrackMe.apk
Download file
package kotlinx.coroutines;
import kotlin.Metadata;
import kotlin.Unit;
import kotlin.coroutines.Continuation;
import kotlin.coroutines.CoroutineContext;
import kotlinx.coroutines.internal.ScopeCoroutine;
import kotlinx.coroutines.internal.ThreadContextKt;
@Metadata(d1 = {"\u00000\n\u0002\u0018\u0002\n\u0000\n\u0002\u0018\u0002\n\u0000\n\u0002\u0018\u0002\n\u0000\n\u0002\u0018\u0002\n\u0002\b\u0003\n\u0002\u0010\u0000\n\u0000\n\u0002\u0010\u0002\n\u0002\b\u0002\n\u0002\u0010\u000b\n\u0002\b\u0003\b\u0000\u0018\u0000*\u0006\b\u0000\u0010\u0001 \u00002\b\u0012\u0004\u0012\u0002H\u00010\u0002B\u001b\u0012\u0006\u0010\u0003\u001a\u00020\u0004\u0012\f\u0010\u0005\u001a\b\u0012\u0004\u0012\u00028\u00000\u0006¢\u0006\u0002\u0010\u0007J\u0012\u0010\u000b\u001a\u00020\f2\b\u0010\r\u001a\u0004\u0018\u00010\nH\u0014J\u0006\u0010\u000e\u001a\u00020\u000fJ\u0018\u0010\u0010\u001a\u00020\f2\u0006\u0010\u0003\u001a\u00020\u00042\b\u0010\u0011\u001a\u0004\u0018\u00010\nR\u0010\u0010\b\u001a\u0004\u0018\u00010\u0004X\u000e¢\u0006\u0002\n\u0000R\u0010\u0010\t\u001a\u0004\u0018\u00010\nX\u000e¢\u0006\u0002\n\u0000¨\u0006\u0012"}, d2 = {"Lkotlinx/coroutines/UndispatchedCoroutine;", "T", "Lkotlinx/coroutines/internal/ScopeCoroutine;", "context", "Lkotlin/coroutines/CoroutineContext;", "uCont", "Lkotlin/coroutines/Continuation;", "(Lkotlin/coroutines/CoroutineContext;Lkotlin/coroutines/Continuation;)V", "savedContext", "savedOldValue", "", "afterResume", "", "state", "clearThreadContext", "", "saveThreadContext", "oldValue", "kotlinx-coroutines-core"}, k = 1, mv = {1, 6, 0}, xi = 48)
/* compiled from: CoroutineContext.kt */
public final class UndispatchedCoroutine<T> extends ScopeCoroutine<T> {
private CoroutineContext savedContext;
private Object savedOldValue;
/* JADX INFO: super call moved to the top of the method (can break code semantics) */
public UndispatchedCoroutine(CoroutineContext coroutineContext, Continuation<? super T> continuation) {
super(coroutineContext.get(UndispatchedMarker.INSTANCE) == null ? coroutineContext.plus(UndispatchedMarker.INSTANCE) : coroutineContext, continuation);
}
public final void saveThreadContext(CoroutineContext coroutineContext, Object obj) {
this.savedContext = coroutineContext;
this.savedOldValue = obj;
}
public final boolean clearThreadContext() {
if (this.savedContext == null) {
return false;
}
this.savedContext = null;
this.savedOldValue = null;
return true;
}
/* access modifiers changed from: protected */
public void afterResume(Object obj) {
CoroutineContext coroutineContext = this.savedContext;
UndispatchedCoroutine<?> undispatchedCoroutine = null;
if (coroutineContext != null) {
ThreadContextKt.restoreThreadContext(coroutineContext, this.savedOldValue);
this.savedContext = undispatchedCoroutine;
this.savedOldValue = undispatchedCoroutine;
}
Object recoverResult = CompletionStateKt.recoverResult(obj, this.uCont);
Continuation continuation = this.uCont;
CoroutineContext context = continuation.getContext();
Object updateThreadContext = ThreadContextKt.updateThreadContext(context, undispatchedCoroutine);
if (updateThreadContext != ThreadContextKt.NO_THREAD_ELEMENTS) {
undispatchedCoroutine = CoroutineContextKt.updateUndispatchedCompletion(continuation, context, updateThreadContext);
} else {
UndispatchedCoroutine undispatchedCoroutine2 = undispatchedCoroutine;
}
try {
this.uCont.resumeWith(recoverResult);
Unit unit = Unit.INSTANCE;
} finally {
if (undispatchedCoroutine == null || undispatchedCoroutine.clearThreadContext()) {
ThreadContextKt.restoreThreadContext(context, updateThreadContext);
}
}
}
}
Download file