r.smali

.class Lbsh/r;
.super Ljava/lang/Object;


# static fields
.field static a:Lbsh/Primitive;

.field static b:Lbsh/Primitive;

.field static c:Ljava/lang/Class;

.field static d:Ljava/lang/Class;

.field static e:Ljava/lang/Class;

.field static f:Ljava/lang/Class;


# direct methods
.method static constructor <clinit>()V
    .registers 2

    new-instance v0, Lbsh/Primitive;

    const/4 v1, 0x1

    invoke-direct {v0, v1}, Lbsh/Primitive;-><init>(I)V

    sput-object v0, Lbsh/r;->a:Lbsh/Primitive;

    new-instance v0, Lbsh/Primitive;

    const/4 v1, -0x1

    invoke-direct {v0, v1}, Lbsh/Primitive;-><init>(I)V

    sput-object v0, Lbsh/r;->b:Lbsh/Primitive;

    return-void
.end method

.method static a(Ljava/lang/Class;Ljava/lang/Class;I)Lbsh/UtilEvalError;
    .registers 5

    invoke-static {p0}, Lbsh/n;->a(Ljava/lang/Class;)Ljava/lang/String;

    move-result-object v0

    invoke-static {p1}, Lbsh/n;->a(Ljava/lang/Class;)Ljava/lang/String;

    move-result-object v1

    invoke-static {v0, v1, p2}, Lbsh/r;->a(Ljava/lang/String;Ljava/lang/String;I)Lbsh/UtilEvalError;

    move-result-object v0

    return-object v0
.end method

.method static a(Ljava/lang/String;Ljava/lang/String;I)Lbsh/UtilEvalError;
    .registers 6

    const/4 v0, 0x1

    if-ne p2, v0, :cond_28

    new-instance v0, Lbsh/UtilEvalError;

    new-instance v1, Ljava/lang/StringBuffer;

    invoke-direct {v1}, Ljava/lang/StringBuffer;-><init>()V

    const-string/jumbo v2, "Can\'t assign "

    invoke-virtual {v1, v2}, Ljava/lang/StringBuffer;->append(Ljava/lang/String;)Ljava/lang/StringBuffer;

    move-result-object v1

    invoke-virtual {v1, p1}, Ljava/lang/StringBuffer;->append(Ljava/lang/String;)Ljava/lang/StringBuffer;

    move-result-object v1

    const-string/jumbo v2, " to "

    invoke-virtual {v1, v2}, Ljava/lang/StringBuffer;->append(Ljava/lang/String;)Ljava/lang/StringBuffer;

    move-result-object v1

    invoke-virtual {v1, p0}, Ljava/lang/StringBuffer;->append(Ljava/lang/String;)Ljava/lang/StringBuffer;

    move-result-object v1

    invoke-virtual {v1}, Ljava/lang/StringBuffer;->toString()Ljava/lang/String;

    move-result-object v1

    invoke-direct {v0, v1}, Lbsh/UtilEvalError;-><init>(Ljava/lang/String;)V

    :goto_27
    return-object v0

    :cond_28
    new-instance v1, Ljava/lang/ClassCastException;

    new-instance v0, Ljava/lang/StringBuffer;

    invoke-direct {v0}, Ljava/lang/StringBuffer;-><init>()V

    const-string/jumbo v2, "Cannot cast "

    invoke-virtual {v0, v2}, Ljava/lang/StringBuffer;->append(Ljava/lang/String;)Ljava/lang/StringBuffer;

    move-result-object v0

    invoke-virtual {v0, p1}, Ljava/lang/StringBuffer;->append(Ljava/lang/String;)Ljava/lang/StringBuffer;

    move-result-object v0

    const-string/jumbo v2, " to "

    invoke-virtual {v0, v2}, Ljava/lang/StringBuffer;->append(Ljava/lang/String;)Ljava/lang/StringBuffer;

    move-result-object v0

    invoke-virtual {v0, p0}, Ljava/lang/StringBuffer;->append(Ljava/lang/String;)Ljava/lang/StringBuffer;

    move-result-object v0

    invoke-virtual {v0}, Ljava/lang/StringBuffer;->toString()Ljava/lang/String;

    move-result-object v0

    invoke-direct {v1, v0}, Ljava/lang/ClassCastException;-><init>(Ljava/lang/String;)V

    new-instance v0, Lbsh/UtilTargetError;

    invoke-direct {v0, v1}, Lbsh/UtilTargetError;-><init>(Ljava/lang/Throwable;)V

    goto :goto_27
.end method

.method static a(Ljava/lang/String;)Ljava/lang/Class;
    .registers 3

    :try_start_0
    invoke-static {p0}, Ljava/lang/Class;->forName(Ljava/lang/String;)Ljava/lang/Class;
    :try_end_3
    .catch Ljava/lang/ClassNotFoundException; {:try_start_0 .. :try_end_3} :catch_5

    move-result-object v0

    return-object v0

    :catch_5
    move-exception v0

    new-instance v1, Ljava/lang/NoClassDefFoundError;

    invoke-virtual {v0}, Ljava/lang/ClassNotFoundException;->getMessage()Ljava/lang/String;

    move-result-object v0

    invoke-direct {v1, v0}, Ljava/lang/NoClassDefFoundError;-><init>(Ljava/lang/String;)V

    throw v1
.end method

.method private static a(Ljava/lang/Class;Ljava/lang/Class;Ljava/lang/Object;IZ)Ljava/lang/Object;
    .registers 7

    if-eqz p4, :cond_d

    if-eqz p2, :cond_d

    new-instance v0, Lbsh/InterpreterError;

    const-string/jumbo v1, "bad cast params 1"

    invoke-direct {v0, v1}, Lbsh/InterpreterError;-><init>(Ljava/lang/String;)V

    throw v0

    :cond_d
    if-nez p4, :cond_1a

    if-nez p2, :cond_1a

    new-instance v0, Lbsh/InterpreterError;

    const-string/jumbo v1, "bad cast params 2"

    invoke-direct {v0, v1}, Lbsh/InterpreterError;-><init>(Ljava/lang/String;)V

    throw v0

    :cond_1a
    sget-object v0, Lbsh/r;->e:Ljava/lang/Class;

    if-nez v0, :cond_32

    const-string/jumbo v0, "bsh.Primitive"

    invoke-static {v0}, Lbsh/r;->a(Ljava/lang/String;)Ljava/lang/Class;

    move-result-object v0

    sput-object v0, Lbsh/r;->e:Ljava/lang/Class;

    :goto_27
    if-ne p1, v0, :cond_35

    new-instance v0, Lbsh/InterpreterError;

    const-string/jumbo v1, "bad from Type, need to unwrap"

    invoke-direct {v0, v1}, Lbsh/InterpreterError;-><init>(Ljava/lang/String;)V

    throw v0

    :cond_32
    sget-object v0, Lbsh/r;->e:Ljava/lang/Class;

    goto :goto_27

    :cond_35
    sget-object v0, Lbsh/Primitive;->b:Lbsh/Primitive;

    if-ne p2, v0, :cond_44

    if-eqz p1, :cond_44

    new-instance v0, Lbsh/InterpreterError;

    const-string/jumbo v1, "inconsistent args 1"

    invoke-direct {v0, v1}, Lbsh/InterpreterError;-><init>(Ljava/lang/String;)V

    throw v0

    :cond_44
    sget-object v0, Lbsh/Primitive;->c:Lbsh/Primitive;

    if-ne p2, v0, :cond_55

    sget-object v0, Ljava/lang/Void;->TYPE:Ljava/lang/Class;

    if-eq p1, v0, :cond_55

    new-instance v0, Lbsh/InterpreterError;

    const-string/jumbo v1, "inconsistent args 2"

    invoke-direct {v0, v1}, Lbsh/InterpreterError;-><init>(Ljava/lang/String;)V

    throw v0

    :cond_55
    sget-object v0, Ljava/lang/Void;->TYPE:Ljava/lang/Class;

    if-ne p0, v0, :cond_62

    new-instance v0, Lbsh/InterpreterError;

    const-string/jumbo v1, "loose toType should be null"

    invoke-direct {v0, v1}, Lbsh/InterpreterError;-><init>(Ljava/lang/String;)V

    throw v0

    :cond_62
    if-eqz p0, :cond_66

    if-ne p0, p1, :cond_6c

    :cond_66
    if-eqz p4, :cond_6a

    sget-object p2, Lbsh/r;->a:Lbsh/Primitive;

    :cond_6a
    move-object v0, p2

    :goto_6b
    return-object v0

    :cond_6c
    invoke-virtual {p0}, Ljava/lang/Class;->isPrimitive()Z

    move-result v0

    if-eqz v0, :cond_a8

    sget-object v0, Ljava/lang/Void;->TYPE:Ljava/lang/Class;

    if-eq p1, v0, :cond_7e

    if-eqz p1, :cond_7e

    invoke-virtual {p1}, Ljava/lang/Class;->isPrimitive()Z

    move-result v0

    if-eqz v0, :cond_85

    :cond_7e
    check-cast p2, Lbsh/Primitive;

    invoke-static {p0, p1, p2, p4, p3}, Lbsh/Primitive;->a(Ljava/lang/Class;Ljava/lang/Class;Lbsh/Primitive;ZI)Lbsh/Primitive;

    move-result-object v0

    goto :goto_6b

    :cond_85
    invoke-static {p1}, Lbsh/Primitive;->c(Ljava/lang/Class;)Z

    move-result v0

    if-eqz v0, :cond_9e

    invoke-static {p1}, Lbsh/Primitive;->b(Ljava/lang/Class;)Ljava/lang/Class;

    move-result-object v1

    if-eqz p4, :cond_97

    const/4 v0, 0x0

    :goto_92
    invoke-static {p0, v1, v0, p4, p3}, Lbsh/Primitive;->a(Ljava/lang/Class;Ljava/lang/Class;Lbsh/Primitive;ZI)Lbsh/Primitive;

    move-result-object v0

    goto :goto_6b

    :cond_97
    invoke-static {p2, v1}, Lbsh/Primitive;->a(Ljava/lang/Object;Ljava/lang/Class;)Ljava/lang/Object;

    move-result-object v0

    check-cast v0, Lbsh/Primitive;

    goto :goto_92

    :cond_9e
    if-eqz p4, :cond_a3

    sget-object v0, Lbsh/r;->b:Lbsh/Primitive;

    goto :goto_6b

    :cond_a3
    invoke-static {p0, p1, p3}, Lbsh/r;->a(Ljava/lang/Class;Ljava/lang/Class;I)Lbsh/UtilEvalError;

    move-result-object v0

    throw v0

    :cond_a8
    sget-object v0, Ljava/lang/Void;->TYPE:Ljava/lang/Class;

    if-eq p1, v0, :cond_b4

    if-eqz p1, :cond_b4

    invoke-virtual {p1}, Ljava/lang/Class;->isPrimitive()Z

    move-result v0

    if-eqz v0, :cond_102

    :cond_b4
    invoke-static {p0}, Lbsh/Primitive;->c(Ljava/lang/Class;)Z

    move-result v0

    if-eqz v0, :cond_d4

    sget-object v0, Ljava/lang/Void;->TYPE:Ljava/lang/Class;

    if-eq p1, v0, :cond_d4

    if-eqz p1, :cond_d4

    if-eqz p4, :cond_c5

    sget-object v0, Lbsh/r;->a:Lbsh/Primitive;

    goto :goto_6b

    :cond_c5
    invoke-static {p0}, Lbsh/Primitive;->b(Ljava/lang/Class;)Ljava/lang/Class;

    move-result-object v0

    check-cast p2, Lbsh/Primitive;

    invoke-virtual {p2}, Lbsh/Primitive;->a()Ljava/lang/Object;

    move-result-object v1

    invoke-static {v0, v1}, Lbsh/Primitive;->a(Ljava/lang/Class;Ljava/lang/Object;)Ljava/lang/Object;

    move-result-object v0

    goto :goto_6b

    :cond_d4
    sget-object v0, Lbsh/r;->c:Ljava/lang/Class;

    if-nez v0, :cond_ef

    const-string/jumbo v0, "java.lang.Object"

    invoke-static {v0}, Lbsh/r;->a(Ljava/lang/String;)Ljava/lang/Class;

    move-result-object v0

    sput-object v0, Lbsh/r;->c:Ljava/lang/Class;

    :goto_e1
    if-ne p0, v0, :cond_fa

    sget-object v0, Ljava/lang/Void;->TYPE:Ljava/lang/Class;

    if-eq p1, v0, :cond_fa

    if-eqz p1, :cond_fa

    if-eqz p4, :cond_f2

    sget-object v0, Lbsh/r;->a:Lbsh/Primitive;

    goto/16 :goto_6b

    :cond_ef
    sget-object v0, Lbsh/r;->c:Ljava/lang/Class;

    goto :goto_e1

    :cond_f2
    check-cast p2, Lbsh/Primitive;

    invoke-virtual {p2}, Lbsh/Primitive;->a()Ljava/lang/Object;

    move-result-object v0

    goto/16 :goto_6b

    :cond_fa
    check-cast p2, Lbsh/Primitive;

    invoke-static {p0, p1, p2, p4, p3}, Lbsh/Primitive;->a(Ljava/lang/Class;Ljava/lang/Class;Lbsh/Primitive;ZI)Lbsh/Primitive;

    move-result-object v0

    goto/16 :goto_6b

    :cond_102
    invoke-virtual {p0, p1}, Ljava/lang/Class;->isAssignableFrom(Ljava/lang/Class;)Z

    move-result v0

    if-eqz v0, :cond_10f

    if-eqz p4, :cond_10c

    sget-object p2, Lbsh/r;->a:Lbsh/Primitive;

    :cond_10c
    move-object v0, p2

    goto/16 :goto_6b

    :cond_10f
    invoke-virtual {p0}, Ljava/lang/Class;->isInterface()Z

    move-result v0

    if-eqz v0, :cond_13f

    sget-object v0, Lbsh/r;->f:Ljava/lang/Class;

    if-nez v0, :cond_134

    const-string/jumbo v0, "bsh.This"

    invoke-static {v0}, Lbsh/r;->a(Ljava/lang/String;)Ljava/lang/Class;

    move-result-object v0

    sput-object v0, Lbsh/r;->f:Ljava/lang/Class;

    :goto_122
    invoke-virtual {v0, p1}, Ljava/lang/Class;->isAssignableFrom(Ljava/lang/Class;)Z

    move-result v0

    if-eqz v0, :cond_13f

    invoke-static {}, Lbsh/Capabilities;->b()Z

    move-result v0

    if-eqz v0, :cond_13f

    if-eqz p4, :cond_137

    sget-object v0, Lbsh/r;->a:Lbsh/Primitive;

    goto/16 :goto_6b

    :cond_134
    sget-object v0, Lbsh/r;->f:Ljava/lang/Class;

    goto :goto_122

    :cond_137
    check-cast p2, Lbsh/This;

    invoke-virtual {p2, p0}, Lbsh/This;->a(Ljava/lang/Class;)Ljava/lang/Object;

    move-result-object v0

    goto/16 :goto_6b

    :cond_13f
    invoke-static {p0}, Lbsh/Primitive;->c(Ljava/lang/Class;)Z

    move-result v0

    if-eqz v0, :cond_157

    invoke-static {p1}, Lbsh/Primitive;->c(Ljava/lang/Class;)Z

    move-result v0

    if-eqz v0, :cond_157

    if-eqz p4, :cond_151

    sget-object v0, Lbsh/r;->a:Lbsh/Primitive;

    goto/16 :goto_6b

    :cond_151
    invoke-static {p0, p2}, Lbsh/Primitive;->a(Ljava/lang/Class;Ljava/lang/Object;)Ljava/lang/Object;

    move-result-object v0

    goto/16 :goto_6b

    :cond_157
    if-eqz p4, :cond_15d

    sget-object v0, Lbsh/r;->b:Lbsh/Primitive;

    goto/16 :goto_6b

    :cond_15d
    invoke-static {p0, p1, p3}, Lbsh/r;->a(Ljava/lang/Class;Ljava/lang/Class;I)Lbsh/UtilEvalError;

    move-result-object v0

    throw v0
.end method

.method public static a(Ljava/lang/Object;Ljava/lang/Class;I)Ljava/lang/Object;
    .registers 5

    if-nez p0, :cond_b

    new-instance v0, Lbsh/InterpreterError;

    const-string/jumbo v1, "null fromValue"

    invoke-direct {v0, v1}, Lbsh/InterpreterError;-><init>(Ljava/lang/String;)V

    throw v0

    :cond_b
    instance-of v0, p0, Lbsh/Primitive;

    if-eqz v0, :cond_1c

    move-object v0, p0

    check-cast v0, Lbsh/Primitive;

    invoke-virtual {v0}, Lbsh/Primitive;->b()Ljava/lang/Class;

    move-result-object v0

    :goto_16
    const/4 v1, 0x0

    invoke-static {p1, v0, p0, p2, v1}, Lbsh/r;->a(Ljava/lang/Class;Ljava/lang/Class;Ljava/lang/Object;IZ)Ljava/lang/Object;

    move-result-object v0

    return-object v0

    :cond_1c
    invoke-virtual {p0}, Ljava/lang/Object;->getClass()Ljava/lang/Class;

    move-result-object v0

    goto :goto_16
.end method

.method static a(Ljava/lang/Class;Ljava/lang/Class;)Z
    .registers 3

    invoke-static {p0, p1}, Lbsh/r;->b(Ljava/lang/Class;Ljava/lang/Class;)Z

    move-result v0

    if-nez v0, :cond_c

    invoke-static {p0, p1}, Lbsh/r;->c(Ljava/lang/Class;Ljava/lang/Class;)Z

    move-result v0

    if-eqz v0, :cond_e

    :cond_c
    const/4 v0, 0x1

    :goto_d
    return v0

    :cond_e
    const/4 v0, 0x0

    goto :goto_d
.end method

.method private static a([Ljava/lang/Class;[Ljava/lang/Class;)Z
    .registers 3

    const/4 v0, 0x0

    return v0
.end method

.method static a([Ljava/lang/Class;[Ljava/lang/Class;I)Z
    .registers 8

    const/4 v2, 0x1

    const/4 v1, 0x0

    const/4 v0, 0x3

    if-eq p2, v0, :cond_a

    array-length v0, p0

    array-length v3, p1

    if-eq v0, v3, :cond_a

    :cond_9
    :goto_9
    return v1

    :cond_a
    packed-switch p2, :pswitch_data_54

    new-instance v0, Lbsh/InterpreterError;

    const-string/jumbo v1, "bad case"

    invoke-direct {v0, v1}, Lbsh/InterpreterError;-><init>(Ljava/lang/String;)V

    throw v0

    :pswitch_16
    move v0, v1

    :goto_17
    array-length v3, p0

    if-lt v0, v3, :cond_1c

    move v1, v2

    goto :goto_9

    :cond_1c
    aget-object v3, p1, v0

    aget-object v4, p0, v0

    invoke-static {v3, v4}, Lbsh/r;->b(Ljava/lang/Class;Ljava/lang/Class;)Z

    move-result v3

    if-eqz v3, :cond_9

    add-int/lit8 v0, v0, 0x1

    goto :goto_17

    :pswitch_29
    move v0, v1

    :goto_2a
    array-length v3, p0

    if-lt v0, v3, :cond_2f

    move v1, v2

    goto :goto_9

    :cond_2f
    aget-object v3, p1, v0

    aget-object v4, p0, v0

    invoke-static {v3, v4}, Lbsh/r;->c(Ljava/lang/Class;Ljava/lang/Class;)Z

    move-result v3

    if-eqz v3, :cond_9

    add-int/lit8 v0, v0, 0x1

    goto :goto_2a

    :pswitch_3c
    invoke-static {p0, p1}, Lbsh/r;->a([Ljava/lang/Class;[Ljava/lang/Class;)Z

    move-result v1

    goto :goto_9

    :pswitch_41
    move v0, v1

    :goto_42
    array-length v3, p0

    if-lt v0, v3, :cond_47

    move v1, v2

    goto :goto_9

    :cond_47
    aget-object v3, p1, v0

    aget-object v4, p0, v0

    invoke-static {v3, v4}, Lbsh/r;->d(Ljava/lang/Class;Ljava/lang/Class;)Z

    move-result v3

    if-eqz v3, :cond_9

    add-int/lit8 v0, v0, 0x1

    goto :goto_42

    :pswitch_data_54
    .packed-switch 0x1
        :pswitch_16
        :pswitch_29
        :pswitch_3c
        :pswitch_41
    .end packed-switch
.end method

.method public static a([Ljava/lang/Object;)[Ljava/lang/Class;
    .registers 4

    const/4 v0, 0x0

    if-nez p0, :cond_6

    new-array v0, v0, [Ljava/lang/Class;

    :goto_5
    return-object v0

    :cond_6
    array-length v1, p0

    new-array v2, v1, [Ljava/lang/Class;

    move v1, v0

    :goto_a
    array-length v0, p0

    if-lt v1, v0, :cond_f

    move-object v0, v2

    goto :goto_5

    :cond_f
    aget-object v0, p0, v1

    if-nez v0, :cond_1a

    const/4 v0, 0x0

    aput-object v0, v2, v1

    :goto_16
    add-int/lit8 v0, v1, 0x1

    move v1, v0

    goto :goto_a

    :cond_1a
    aget-object v0, p0, v1

    instance-of v0, v0, Lbsh/Primitive;

    if-eqz v0, :cond_2b

    aget-object v0, p0, v1

    check-cast v0, Lbsh/Primitive;

    invoke-virtual {v0}, Lbsh/Primitive;->b()Ljava/lang/Class;

    move-result-object v0

    aput-object v0, v2, v1

    goto :goto_16

    :cond_2b
    aget-object v0, p0, v1

    invoke-virtual {v0}, Ljava/lang/Object;->getClass()Ljava/lang/Class;

    move-result-object v0

    aput-object v0, v2, v1

    goto :goto_16
.end method

.method static b(Ljava/lang/Class;Ljava/lang/Class;)Z
    .registers 5

    const/4 v1, 0x0

    const/4 v0, 0x1

    if-nez p0, :cond_6

    move v0, v1

    :cond_5
    :goto_5
    return v0

    :cond_6
    if-nez p1, :cond_10

    invoke-virtual {p0}, Ljava/lang/Class;->isPrimitive()Z

    move-result v2

    if-eqz v2, :cond_5

    move v0, v1

    goto :goto_5

    :cond_10
    invoke-virtual {p0}, Ljava/lang/Class;->isPrimitive()Z

    move-result v2

    if-eqz v2, :cond_84

    invoke-virtual {p1}, Ljava/lang/Class;->isPrimitive()Z

    move-result v2

    if-eqz v2, :cond_84

    if-eq p0, p1, :cond_5

    sget-object v2, Ljava/lang/Byte;->TYPE:Ljava/lang/Class;

    if-ne p1, v2, :cond_36

    sget-object v2, Ljava/lang/Short;->TYPE:Ljava/lang/Class;

    if-eq p0, v2, :cond_5

    sget-object v2, Ljava/lang/Integer;->TYPE:Ljava/lang/Class;

    if-eq p0, v2, :cond_5

    sget-object v2, Ljava/lang/Long;->TYPE:Ljava/lang/Class;

    if-eq p0, v2, :cond_5

    sget-object v2, Ljava/lang/Float;->TYPE:Ljava/lang/Class;

    if-eq p0, v2, :cond_5

    sget-object v2, Ljava/lang/Double;->TYPE:Ljava/lang/Class;

    if-eq p0, v2, :cond_5

    :cond_36
    sget-object v2, Ljava/lang/Short;->TYPE:Ljava/lang/Class;

    if-ne p1, v2, :cond_4a

    sget-object v2, Ljava/lang/Integer;->TYPE:Ljava/lang/Class;

    if-eq p0, v2, :cond_5

    sget-object v2, Ljava/lang/Long;->TYPE:Ljava/lang/Class;

    if-eq p0, v2, :cond_5

    sget-object v2, Ljava/lang/Float;->TYPE:Ljava/lang/Class;

    if-eq p0, v2, :cond_5

    sget-object v2, Ljava/lang/Double;->TYPE:Ljava/lang/Class;

    if-eq p0, v2, :cond_5

    :cond_4a
    sget-object v2, Ljava/lang/Character;->TYPE:Ljava/lang/Class;

    if-ne p1, v2, :cond_5e

    sget-object v2, Ljava/lang/Integer;->TYPE:Ljava/lang/Class;

    if-eq p0, v2, :cond_5

    sget-object v2, Ljava/lang/Long;->TYPE:Ljava/lang/Class;

    if-eq p0, v2, :cond_5

    sget-object v2, Ljava/lang/Float;->TYPE:Ljava/lang/Class;

    if-eq p0, v2, :cond_5

    sget-object v2, Ljava/lang/Double;->TYPE:Ljava/lang/Class;

    if-eq p0, v2, :cond_5

    :cond_5e
    sget-object v2, Ljava/lang/Integer;->TYPE:Ljava/lang/Class;

    if-ne p1, v2, :cond_6e

    sget-object v2, Ljava/lang/Long;->TYPE:Ljava/lang/Class;

    if-eq p0, v2, :cond_5

    sget-object v2, Ljava/lang/Float;->TYPE:Ljava/lang/Class;

    if-eq p0, v2, :cond_5

    sget-object v2, Ljava/lang/Double;->TYPE:Ljava/lang/Class;

    if-eq p0, v2, :cond_5

    :cond_6e
    sget-object v2, Ljava/lang/Long;->TYPE:Ljava/lang/Class;

    if-ne p1, v2, :cond_7a

    sget-object v2, Ljava/lang/Float;->TYPE:Ljava/lang/Class;

    if-eq p0, v2, :cond_5

    sget-object v2, Ljava/lang/Double;->TYPE:Ljava/lang/Class;

    if-eq p0, v2, :cond_5

    :cond_7a
    sget-object v2, Ljava/lang/Float;->TYPE:Ljava/lang/Class;

    if-ne p1, v2, :cond_82

    sget-object v2, Ljava/lang/Double;->TYPE:Ljava/lang/Class;

    if-eq p0, v2, :cond_5

    :cond_82
    move v0, v1

    goto :goto_5

    :cond_84
    invoke-virtual {p0, p1}, Ljava/lang/Class;->isAssignableFrom(Ljava/lang/Class;)Z

    move-result v2

    if-eqz v2, :cond_82

    goto/16 :goto_5
.end method

.method static c(Ljava/lang/Class;Ljava/lang/Class;)Z
    .registers 5

    const/4 v0, 0x0

    const/4 v1, 0x1

    if-nez p0, :cond_5

    :cond_4
    :goto_4
    return v0

    :cond_5
    sget-object v2, Lbsh/r;->c:Ljava/lang/Class;

    if-nez v2, :cond_16

    const-string/jumbo v2, "java.lang.Object"

    invoke-static {v2}, Lbsh/r;->a(Ljava/lang/String;)Ljava/lang/Class;

    move-result-object v2

    sput-object v2, Lbsh/r;->c:Ljava/lang/Class;

    :goto_12
    if-ne p0, v2, :cond_19

    move v0, v1

    goto :goto_4

    :cond_16
    sget-object v2, Lbsh/r;->c:Ljava/lang/Class;

    goto :goto_12

    :cond_19
    sget-object v2, Lbsh/r;->d:Ljava/lang/Class;

    if-nez v2, :cond_32

    const-string/jumbo v2, "java.lang.Number"

    invoke-static {v2}, Lbsh/r;->a(Ljava/lang/String;)Ljava/lang/Class;

    move-result-object v2

    sput-object v2, Lbsh/r;->d:Ljava/lang/Class;

    :goto_26
    if-ne p0, v2, :cond_35

    sget-object v2, Ljava/lang/Character;->TYPE:Ljava/lang/Class;

    if-eq p1, v2, :cond_35

    sget-object v2, Ljava/lang/Boolean;->TYPE:Ljava/lang/Class;

    if-eq p1, v2, :cond_35

    move v0, v1

    goto :goto_4

    :cond_32
    sget-object v2, Lbsh/r;->d:Ljava/lang/Class;

    goto :goto_26

    :cond_35
    sget-object v2, Lbsh/Primitive;->a:Ljava/util/Hashtable;

    invoke-virtual {v2, p0}, Ljava/util/Hashtable;->get(Ljava/lang/Object;)Ljava/lang/Object;

    move-result-object v2

    if-ne v2, p1, :cond_4

    move v0, v1

    goto :goto_4
.end method

.method static d(Ljava/lang/Class;Ljava/lang/Class;)Z
    .registers 6

    const/4 v0, 0x1

    const/4 v1, 0x0

    const/4 v2, 0x1

    const/4 v3, 0x1

    :try_start_4
    invoke-static {p0, p1, v1, v2, v3}, Lbsh/r;->a(Ljava/lang/Class;Ljava/lang/Class;Ljava/lang/Object;IZ)Ljava/lang/Object;

    move-result-object v1

    sget-object v2, Lbsh/r;->a:Lbsh/Primitive;
    :try_end_a
    .catch Lbsh/UtilEvalError; {:try_start_4 .. :try_end_a} :catch_f

    if-ne v1, v2, :cond_d

    :goto_c
    return v0

    :cond_d
    const/4 v0, 0x0

    goto :goto_c

    :catch_f
    move-exception v0

    new-instance v1, Lbsh/InterpreterError;

    new-instance v2, Ljava/lang/StringBuffer;

    invoke-direct {v2}, Ljava/lang/StringBuffer;-><init>()V

    const-string/jumbo v3, "err in cast check: "

    invoke-virtual {v2, v3}, Ljava/lang/StringBuffer;->append(Ljava/lang/String;)Ljava/lang/StringBuffer;

    move-result-object v2

    invoke-virtual {v2, v0}, Ljava/lang/StringBuffer;->append(Ljava/lang/Object;)Ljava/lang/StringBuffer;

    move-result-object v0

    invoke-virtual {v0}, Ljava/lang/StringBuffer;->toString()Ljava/lang/String;

    move-result-object v0

    invoke-direct {v1, v0}, Lbsh/InterpreterError;-><init>(Ljava/lang/String;)V

    throw v1
.end method