Random.smali

.class public abstract Lkotlin/random/Random;
.super Ljava/lang/Object;


# annotations
.annotation system Ldalvik/annotation/MemberClasses;
    value = {
        Lkotlin/random/Random$Companion;,
        Lkotlin/random/Random$Default;
    }
.end annotation


# static fields
.field private static final a:Lkotlin/random/Random;

.field public static final b:Lkotlin/random/Random$Default;


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

    new-instance v0, Lkotlin/random/Random$Default;

    const/4 v1, 0x0

    invoke-direct {v0, v1}, Lkotlin/random/Random$Default;-><init>(Lkotlin/jvm/internal/DefaultConstructorMarker;)V

    sput-object v0, Lkotlin/random/Random;->b:Lkotlin/random/Random$Default;

    sget-object v0, Lkotlin/internal/PlatformImplementationsKt;->a:Lkotlin/internal/PlatformImplementations;

    invoke-virtual {v0}, Lkotlin/internal/PlatformImplementations;->b()Lkotlin/random/Random;

    move-result-object v0

    sput-object v0, Lkotlin/random/Random;->a:Lkotlin/random/Random;

    sget-object v0, Lkotlin/random/Random$Companion;->c:Lkotlin/random/Random$Companion;

    return-void
.end method

.method public constructor <init>()V
    .registers 1

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

    return-void
.end method

.method public static final synthetic a()Lkotlin/random/Random;
    .registers 1

    sget-object v0, Lkotlin/random/Random;->a:Lkotlin/random/Random;

    return-object v0
.end method


# virtual methods
.method public abstract b(I)I
.end method

.method public c()I
    .registers 2

    const/16 v0, 0x20

    invoke-virtual {p0, v0}, Lkotlin/random/Random;->b(I)I

    move-result v0

    return v0
.end method

.method public d(I)I
    .registers 3

    const/4 v0, 0x0

    invoke-virtual {p0, v0, p1}, Lkotlin/random/Random;->e(II)I

    move-result p1

    return p1
.end method

.method public e(II)I
    .registers 6

    invoke-static {p1, p2}, Lkotlin/random/RandomKt;->b(II)V

    sub-int v0, p2, p1

    if-gtz v0, :cond_16

    const/high16 v1, -0x80000000

    if-ne v0, v1, :cond_c

    goto :goto_16

    :cond_c
    :goto_c
    invoke-virtual {p0}, Lkotlin/random/Random;->c()I

    move-result v0

    if-le p1, v0, :cond_13

    goto :goto_c

    :cond_13
    if-le p2, v0, :cond_c

    return v0

    :cond_16
    :goto_16
    neg-int p2, v0

    and-int/2addr p2, v0

    if-ne p2, v0, :cond_23

    invoke-static {v0}, Lkotlin/random/RandomKt;->c(I)I

    move-result p2

    invoke-virtual {p0, p2}, Lkotlin/random/Random;->b(I)I

    move-result p2

    goto :goto_32

    :cond_23
    invoke-virtual {p0}, Lkotlin/random/Random;->c()I

    move-result p2

    ushr-int/lit8 p2, p2, 0x1

    rem-int v1, p2, v0

    sub-int/2addr p2, v1

    add-int/lit8 v2, v0, -0x1

    add-int/2addr p2, v2

    if-ltz p2, :cond_23

    move p2, v1

    :goto_32
    add-int/2addr p1, p2

    return p1
.end method