CrackMe.apk
Download file
package kotlin.reflect.jvm.internal.impl.metadata.deserialization;
import kotlin.reflect.jvm.internal.impl.metadata.ProtoBuf;
import kotlin.reflect.jvm.internal.impl.protobuf.Internal;
public class Flags {
public static final FlagField<ProtoBuf.Class.Kind> CLASS_KIND;
public static final BooleanFlagField DECLARES_DEFAULT_VALUE;
public static final BooleanFlagField DEFINITELY_NOT_NULL_TYPE;
public static final BooleanFlagField HAS_ANNOTATIONS;
public static final BooleanFlagField HAS_CONSTANT;
public static final BooleanFlagField HAS_GETTER;
public static final BooleanFlagField HAS_SETTER;
public static final BooleanFlagField IS_CONST;
public static final BooleanFlagField IS_CONSTRUCTOR_WITH_NON_STABLE_PARAMETER_NAMES;
public static final BooleanFlagField IS_CROSSINLINE;
public static final BooleanFlagField IS_DATA;
public static final BooleanFlagField IS_DELEGATED;
public static final BooleanFlagField IS_EXPECT_CLASS;
public static final BooleanFlagField IS_EXPECT_FUNCTION;
public static final BooleanFlagField IS_EXPECT_PROPERTY;
public static final BooleanFlagField IS_EXTERNAL_ACCESSOR;
public static final BooleanFlagField IS_EXTERNAL_CLASS;
public static final BooleanFlagField IS_EXTERNAL_FUNCTION;
public static final BooleanFlagField IS_EXTERNAL_PROPERTY;
public static final BooleanFlagField IS_FUNCTION_WITH_NON_STABLE_PARAMETER_NAMES;
public static final BooleanFlagField IS_FUN_INTERFACE;
public static final BooleanFlagField IS_INFIX;
public static final BooleanFlagField IS_INLINE;
public static final BooleanFlagField IS_INLINE_ACCESSOR;
public static final BooleanFlagField IS_INLINE_CLASS;
public static final BooleanFlagField IS_INNER;
public static final BooleanFlagField IS_LATEINIT;
public static final BooleanFlagField IS_NEGATED;
public static final BooleanFlagField IS_NOINLINE;
public static final BooleanFlagField IS_NOT_DEFAULT;
public static final BooleanFlagField IS_NULL_CHECK_PREDICATE;
public static final BooleanFlagField IS_OPERATOR;
public static final BooleanFlagField IS_SECONDARY;
public static final BooleanFlagField IS_SUSPEND;
public static final BooleanFlagField IS_TAILREC;
public static final BooleanFlagField IS_UNSIGNED = FlagField.booleanFirst();
public static final BooleanFlagField IS_VAR;
public static final FlagField<ProtoBuf.MemberKind> MEMBER_KIND;
public static final FlagField<ProtoBuf.Modality> MODALITY;
public static final BooleanFlagField SUSPEND_TYPE;
public static final FlagField<ProtoBuf.Visibility> VISIBILITY;
/* JADX WARNING: Removed duplicated region for block: B:19:0x0036 */
/* JADX WARNING: Removed duplicated region for block: B:20:0x003b */
/* JADX WARNING: Removed duplicated region for block: B:21:0x0040 */
/* JADX WARNING: Removed duplicated region for block: B:22:0x0045 */
/* JADX WARNING: Removed duplicated region for block: B:23:0x004a */
/* Code decompiled incorrectly, please refer to instructions dump. */
private static /* synthetic */ void $$$reportNull$$$0(int r5) {
/*
r0 = 3
java.lang.Object[] r0 = new java.lang.Object[r0]
r1 = 1
r2 = 0
r3 = 2
if (r5 == r1) goto L_0x002b
if (r5 == r3) goto L_0x0026
r4 = 5
if (r5 == r4) goto L_0x002b
r4 = 6
if (r5 == r4) goto L_0x0021
r4 = 8
if (r5 == r4) goto L_0x002b
r4 = 9
if (r5 == r4) goto L_0x0021
r4 = 11
if (r5 == r4) goto L_0x002b
java.lang.String r4 = "visibility"
r0[r2] = r4
goto L_0x002f
L_0x0021:
java.lang.String r4 = "memberKind"
r0[r2] = r4
goto L_0x002f
L_0x0026:
java.lang.String r4 = "kind"
r0[r2] = r4
goto L_0x002f
L_0x002b:
java.lang.String r4 = "modality"
r0[r2] = r4
L_0x002f:
java.lang.String r2 = "kotlin/reflect/jvm/internal/impl/metadata/deserialization/Flags"
r0[r1] = r2
switch(r5) {
case 3: goto L_0x004a;
case 4: goto L_0x0045;
case 5: goto L_0x0045;
case 6: goto L_0x0045;
case 7: goto L_0x0040;
case 8: goto L_0x0040;
case 9: goto L_0x0040;
case 10: goto L_0x003b;
case 11: goto L_0x003b;
default: goto L_0x0036;
}
L_0x0036:
java.lang.String r5 = "getClassFlags"
r0[r3] = r5
goto L_0x004e
L_0x003b:
java.lang.String r5 = "getAccessorFlags"
r0[r3] = r5
goto L_0x004e
L_0x0040:
java.lang.String r5 = "getPropertyFlags"
r0[r3] = r5
goto L_0x004e
L_0x0045:
java.lang.String r5 = "getFunctionFlags"
r0[r3] = r5
goto L_0x004e
L_0x004a:
java.lang.String r5 = "getConstructorFlags"
r0[r3] = r5
L_0x004e:
java.lang.String r5 = "Argument for @NotNull parameter '%s' of %s.%s must not be null"
java.lang.String r5 = java.lang.String.format(r5, r0)
java.lang.IllegalArgumentException r0 = new java.lang.IllegalArgumentException
r0.<init>(r5)
throw r0
*/
throw new UnsupportedOperationException("Method not decompiled: kotlin.reflect.jvm.internal.impl.metadata.deserialization.Flags.$$$reportNull$$$0(int):void");
}
static {
BooleanFlagField booleanFirst = FlagField.booleanFirst();
SUSPEND_TYPE = booleanFirst;
DEFINITELY_NOT_NULL_TYPE = FlagField.booleanAfter(booleanFirst);
BooleanFlagField booleanFirst2 = FlagField.booleanFirst();
HAS_ANNOTATIONS = booleanFirst2;
FlagField<ProtoBuf.Visibility> after = FlagField.after(booleanFirst2, ProtoBuf.Visibility.values());
VISIBILITY = after;
FlagField<ProtoBuf.Modality> after2 = FlagField.after(after, ProtoBuf.Modality.values());
MODALITY = after2;
FlagField<ProtoBuf.Class.Kind> after3 = FlagField.after(after2, ProtoBuf.Class.Kind.values());
CLASS_KIND = after3;
BooleanFlagField booleanAfter = FlagField.booleanAfter(after3);
IS_INNER = booleanAfter;
BooleanFlagField booleanAfter2 = FlagField.booleanAfter(booleanAfter);
IS_DATA = booleanAfter2;
BooleanFlagField booleanAfter3 = FlagField.booleanAfter(booleanAfter2);
IS_EXTERNAL_CLASS = booleanAfter3;
BooleanFlagField booleanAfter4 = FlagField.booleanAfter(booleanAfter3);
IS_EXPECT_CLASS = booleanAfter4;
BooleanFlagField booleanAfter5 = FlagField.booleanAfter(booleanAfter4);
IS_INLINE_CLASS = booleanAfter5;
IS_FUN_INTERFACE = FlagField.booleanAfter(booleanAfter5);
BooleanFlagField booleanAfter6 = FlagField.booleanAfter(after);
IS_SECONDARY = booleanAfter6;
IS_CONSTRUCTOR_WITH_NON_STABLE_PARAMETER_NAMES = FlagField.booleanAfter(booleanAfter6);
FlagField<ProtoBuf.MemberKind> after4 = FlagField.after(after2, ProtoBuf.MemberKind.values());
MEMBER_KIND = after4;
BooleanFlagField booleanAfter7 = FlagField.booleanAfter(after4);
IS_OPERATOR = booleanAfter7;
BooleanFlagField booleanAfter8 = FlagField.booleanAfter(booleanAfter7);
IS_INFIX = booleanAfter8;
BooleanFlagField booleanAfter9 = FlagField.booleanAfter(booleanAfter8);
IS_INLINE = booleanAfter9;
BooleanFlagField booleanAfter10 = FlagField.booleanAfter(booleanAfter9);
IS_TAILREC = booleanAfter10;
BooleanFlagField booleanAfter11 = FlagField.booleanAfter(booleanAfter10);
IS_EXTERNAL_FUNCTION = booleanAfter11;
BooleanFlagField booleanAfter12 = FlagField.booleanAfter(booleanAfter11);
IS_SUSPEND = booleanAfter12;
BooleanFlagField booleanAfter13 = FlagField.booleanAfter(booleanAfter12);
IS_EXPECT_FUNCTION = booleanAfter13;
IS_FUNCTION_WITH_NON_STABLE_PARAMETER_NAMES = FlagField.booleanAfter(booleanAfter13);
BooleanFlagField booleanAfter14 = FlagField.booleanAfter(after4);
IS_VAR = booleanAfter14;
BooleanFlagField booleanAfter15 = FlagField.booleanAfter(booleanAfter14);
HAS_GETTER = booleanAfter15;
BooleanFlagField booleanAfter16 = FlagField.booleanAfter(booleanAfter15);
HAS_SETTER = booleanAfter16;
BooleanFlagField booleanAfter17 = FlagField.booleanAfter(booleanAfter16);
IS_CONST = booleanAfter17;
BooleanFlagField booleanAfter18 = FlagField.booleanAfter(booleanAfter17);
IS_LATEINIT = booleanAfter18;
BooleanFlagField booleanAfter19 = FlagField.booleanAfter(booleanAfter18);
HAS_CONSTANT = booleanAfter19;
BooleanFlagField booleanAfter20 = FlagField.booleanAfter(booleanAfter19);
IS_EXTERNAL_PROPERTY = booleanAfter20;
BooleanFlagField booleanAfter21 = FlagField.booleanAfter(booleanAfter20);
IS_DELEGATED = booleanAfter21;
IS_EXPECT_PROPERTY = FlagField.booleanAfter(booleanAfter21);
BooleanFlagField booleanAfter22 = FlagField.booleanAfter(booleanFirst2);
DECLARES_DEFAULT_VALUE = booleanAfter22;
BooleanFlagField booleanAfter23 = FlagField.booleanAfter(booleanAfter22);
IS_CROSSINLINE = booleanAfter23;
IS_NOINLINE = FlagField.booleanAfter(booleanAfter23);
BooleanFlagField booleanAfter24 = FlagField.booleanAfter(after2);
IS_NOT_DEFAULT = booleanAfter24;
BooleanFlagField booleanAfter25 = FlagField.booleanAfter(booleanAfter24);
IS_EXTERNAL_ACCESSOR = booleanAfter25;
IS_INLINE_ACCESSOR = FlagField.booleanAfter(booleanAfter25);
BooleanFlagField booleanFirst3 = FlagField.booleanFirst();
IS_NEGATED = booleanFirst3;
IS_NULL_CHECK_PREDICATE = FlagField.booleanAfter(booleanFirst3);
}
public static int getAccessorFlags(boolean z, ProtoBuf.Visibility visibility, ProtoBuf.Modality modality, boolean z2, boolean z3, boolean z4) {
if (visibility == null) {
$$$reportNull$$$0(10);
}
if (modality == null) {
$$$reportNull$$$0(11);
}
return HAS_ANNOTATIONS.toFlags(Boolean.valueOf(z)) | MODALITY.toFlags(modality) | VISIBILITY.toFlags(visibility) | IS_NOT_DEFAULT.toFlags(Boolean.valueOf(z2)) | IS_EXTERNAL_ACCESSOR.toFlags(Boolean.valueOf(z3)) | IS_INLINE_ACCESSOR.toFlags(Boolean.valueOf(z4));
}
public static abstract class FlagField<E> {
public final int bitWidth;
public final int offset;
public abstract E get(int i);
public abstract int toFlags(E e);
public static <E extends Internal.EnumLite> FlagField<E> after(FlagField<?> flagField, E[] eArr) {
return new EnumLiteFlagField(flagField.offset + flagField.bitWidth, eArr);
}
public static BooleanFlagField booleanFirst() {
return new BooleanFlagField(0);
}
public static BooleanFlagField booleanAfter(FlagField<?> flagField) {
return new BooleanFlagField(flagField.offset + flagField.bitWidth);
}
private FlagField(int i, int i2) {
this.offset = i;
this.bitWidth = i2;
}
}
public static class BooleanFlagField extends FlagField<Boolean> {
private static /* synthetic */ void $$$reportNull$$$0(int i) {
throw new IllegalStateException(String.format("@NotNull method %s.%s must not return null", new Object[]{"kotlin/reflect/jvm/internal/impl/metadata/deserialization/Flags$BooleanFlagField", "get"}));
}
public BooleanFlagField(int i) {
super(i, 1);
}
public Boolean get(int i) {
boolean z = true;
if ((i & (1 << this.offset)) == 0) {
z = false;
}
Boolean valueOf = Boolean.valueOf(z);
if (valueOf == null) {
$$$reportNull$$$0(0);
}
return valueOf;
}
public int toFlags(Boolean bool) {
if (bool.booleanValue()) {
return 1 << this.offset;
}
return 0;
}
}
private static class EnumLiteFlagField<E extends Internal.EnumLite> extends FlagField<E> {
private final E[] values;
private static /* synthetic */ void $$$reportNull$$$0(int i) {
throw new IllegalArgumentException(String.format("Argument for @NotNull parameter '%s' of %s.%s must not be null", new Object[]{"enumEntries", "kotlin/reflect/jvm/internal/impl/metadata/deserialization/Flags$EnumLiteFlagField", "bitWidth"}));
}
public EnumLiteFlagField(int i, E[] eArr) {
super(i, bitWidth(eArr));
this.values = eArr;
}
private static <E> int bitWidth(E[] eArr) {
if (eArr == null) {
$$$reportNull$$$0(0);
}
int length = eArr.length - 1;
if (length == 0) {
return 1;
}
for (int i = 31; i >= 0; i--) {
if (((1 << i) & length) != 0) {
return i + 1;
}
}
throw new IllegalStateException("Empty enum: " + eArr.getClass());
}
public E get(int i) {
int i2 = (i & (((1 << this.bitWidth) - 1) << this.offset)) >> this.offset;
for (E e : this.values) {
if (e.getNumber() == i2) {
return e;
}
}
return null;
}
public int toFlags(E e) {
return e.getNumber() << this.offset;
}
}
}
Download file