bs.smali

.class final Lcom/google/obf/bs;
.super Ljava/lang/Object;
.source "IMASDK"


# annotations
.annotation system Ldalvik/annotation/MemberClasses;
    value = {
        Lcom/google/obf/bs$a;,
        Lcom/google/obf/bs$b;
    }
.end annotation


# static fields
.field private static final a:I


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

    const-string v0, "OggS"

    .line 56
    invoke-static {v0}, Lcom/google/obf/ea;->c(Ljava/lang/String;)I

    move-result v0

    sput v0, Lcom/google/obf/bs;->a:I

    return-void
.end method

.method public static a(BII)I
    .registers 3

    shr-int/2addr p0, p2

    rsub-int/lit8 p1, p1, 0x8

    const/16 p2, 0xff

    ushr-int p1, p2, p1

    and-int/2addr p0, p1

    return p0
.end method

.method public static a(Lcom/google/obf/ak;)V
    .registers 8
    .annotation system Ldalvik/annotation/Throws;
        value = {
            Ljava/io/IOException;,
            Ljava/lang/InterruptedException;
        }
    .end annotation

    const/16 v0, 0x800

    new-array v1, v0, [B

    .line 4
    :goto_4
    invoke-interface {p0}, Lcom/google/obf/ak;->d()J

    move-result-wide v2

    const-wide/16 v4, -0x1

    cmp-long v6, v2, v4

    if-eqz v6, :cond_30

    .line 5
    invoke-interface {p0}, Lcom/google/obf/ak;->c()J

    move-result-wide v2

    int-to-long v4, v0

    add-long/2addr v2, v4

    invoke-interface {p0}, Lcom/google/obf/ak;->d()J

    move-result-wide v4

    cmp-long v6, v2, v4

    if-lez v6, :cond_30

    .line 6
    invoke-interface {p0}, Lcom/google/obf/ak;->d()J

    move-result-wide v2

    invoke-interface {p0}, Lcom/google/obf/ak;->c()J

    move-result-wide v4

    sub-long/2addr v2, v4

    long-to-int v0, v2

    const/4 v2, 0x4

    if-lt v0, v2, :cond_2a

    goto :goto_30

    .line 8
    :cond_2a
    new-instance p0, Ljava/io/EOFException;

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

    throw p0

    :cond_30
    :goto_30
    const/4 v2, 0x0

    .line 9
    invoke-interface {p0, v1, v2, v0, v2}, Lcom/google/obf/ak;->b([BIIZ)Z

    :goto_34
    add-int/lit8 v3, v0, -0x3

    if-ge v2, v3, :cond_5b

    .line 11
    aget-byte v3, v1, v2

    const/16 v4, 0x4f

    if-ne v3, v4, :cond_58

    add-int/lit8 v3, v2, 0x1

    aget-byte v3, v1, v3

    const/16 v4, 0x67

    if-ne v3, v4, :cond_58

    add-int/lit8 v3, v2, 0x2

    aget-byte v3, v1, v3

    if-ne v3, v4, :cond_58

    add-int/lit8 v3, v2, 0x3

    aget-byte v3, v1, v3

    const/16 v4, 0x53

    if-ne v3, v4, :cond_58

    .line 12
    invoke-interface {p0, v2}, Lcom/google/obf/ak;->b(I)V

    return-void

    :cond_58
    add-int/lit8 v2, v2, 0x1

    goto :goto_34

    .line 15
    :cond_5b
    invoke-interface {p0, v3}, Lcom/google/obf/ak;->b(I)V

    goto :goto_4
.end method

.method public static a(Lcom/google/obf/bs$b;ILcom/google/obf/bs$a;)V
    .registers 6

    const/4 v0, 0x0

    .line 47
    iput v0, p2, Lcom/google/obf/bs$a;->b:I

    .line 48
    iput v0, p2, Lcom/google/obf/bs$a;->a:I

    .line 49
    :cond_5
    iget v0, p2, Lcom/google/obf/bs$a;->b:I

    add-int/2addr v0, p1

    iget v1, p0, Lcom/google/obf/bs$b;->g:I

    if-ge v0, v1, :cond_20

    .line 50
    iget-object v0, p0, Lcom/google/obf/bs$b;->j:[I

    iget v1, p2, Lcom/google/obf/bs$a;->b:I

    add-int/lit8 v2, v1, 0x1

    iput v2, p2, Lcom/google/obf/bs$a;->b:I

    add-int/2addr v1, p1

    aget v0, v0, v1

    .line 51
    iget v1, p2, Lcom/google/obf/bs$a;->a:I

    add-int/2addr v1, v0

    iput v1, p2, Lcom/google/obf/bs$a;->a:I

    const/16 v1, 0xff

    if-eq v0, v1, :cond_5

    :cond_20
    return-void
.end method

.method public static a(Lcom/google/obf/ak;Lcom/google/obf/bs$b;Lcom/google/obf/dw;Z)Z
    .registers 12
    .annotation system Ldalvik/annotation/Throws;
        value = {
            Ljava/io/IOException;,
            Ljava/lang/InterruptedException;
        }
    .end annotation

    .line 16
    invoke-virtual {p2}, Lcom/google/obf/dw;->a()V

    .line 17
    invoke-virtual {p1}, Lcom/google/obf/bs$b;->a()V

    .line 18
    invoke-interface {p0}, Lcom/google/obf/ak;->d()J

    move-result-wide v0

    const/4 v2, 0x1

    const/4 v3, 0x0

    const-wide/16 v4, -0x1

    cmp-long v6, v0, v4

    if-eqz v6, :cond_24

    .line 19
    invoke-interface {p0}, Lcom/google/obf/ak;->d()J

    move-result-wide v0

    invoke-interface {p0}, Lcom/google/obf/ak;->b()J

    move-result-wide v4

    sub-long/2addr v0, v4

    const-wide/16 v4, 0x1b

    cmp-long v6, v0, v4

    if-ltz v6, :cond_22

    goto :goto_24

    :cond_22
    const/4 v0, 0x0

    goto :goto_25

    :cond_24
    :goto_24
    const/4 v0, 0x1

    :goto_25
    if-eqz v0, :cond_aa

    .line 20
    iget-object v0, p2, Lcom/google/obf/dw;->a:[B

    const/16 v1, 0x1b

    invoke-interface {p0, v0, v3, v1, v2}, Lcom/google/obf/ak;->b([BIIZ)Z

    move-result v0

    if-nez v0, :cond_33

    goto/16 :goto_aa

    .line 24
    :cond_33
    invoke-virtual {p2}, Lcom/google/obf/dw;->k()J

    move-result-wide v4

    sget v0, Lcom/google/obf/bs;->a:I

    int-to-long v6, v0

    cmp-long v0, v4, v6

    if-eqz v0, :cond_49

    if-eqz p3, :cond_41

    return v3

    .line 27
    :cond_41
    new-instance p0, Lcom/google/obf/s;

    const-string p1, "expected OggS capture pattern at begin of page"

    invoke-direct {p0, p1}, Lcom/google/obf/s;-><init>(Ljava/lang/String;)V

    throw p0

    .line 28
    :cond_49
    invoke-virtual {p2}, Lcom/google/obf/dw;->f()I

    move-result v0

    iput v0, p1, Lcom/google/obf/bs$b;->a:I

    .line 29
    iget v0, p1, Lcom/google/obf/bs$b;->a:I

    if-eqz v0, :cond_5e

    if-eqz p3, :cond_56

    return v3

    .line 32
    :cond_56
    new-instance p0, Lcom/google/obf/s;

    const-string p1, "unsupported bit stream revision"

    invoke-direct {p0, p1}, Lcom/google/obf/s;-><init>(Ljava/lang/String;)V

    throw p0

    .line 33
    :cond_5e
    invoke-virtual {p2}, Lcom/google/obf/dw;->f()I

    move-result p3

    iput p3, p1, Lcom/google/obf/bs$b;->b:I

    .line 34
    invoke-virtual {p2}, Lcom/google/obf/dw;->p()J

    move-result-wide v4

    iput-wide v4, p1, Lcom/google/obf/bs$b;->c:J

    .line 35
    invoke-virtual {p2}, Lcom/google/obf/dw;->l()J

    move-result-wide v4

    iput-wide v4, p1, Lcom/google/obf/bs$b;->d:J

    .line 36
    invoke-virtual {p2}, Lcom/google/obf/dw;->l()J

    move-result-wide v4

    iput-wide v4, p1, Lcom/google/obf/bs$b;->e:J

    .line 37
    invoke-virtual {p2}, Lcom/google/obf/dw;->l()J

    move-result-wide v4

    iput-wide v4, p1, Lcom/google/obf/bs$b;->f:J

    .line 38
    invoke-virtual {p2}, Lcom/google/obf/dw;->f()I

    move-result p3

    iput p3, p1, Lcom/google/obf/bs$b;->g:I

    .line 39
    invoke-virtual {p2}, Lcom/google/obf/dw;->a()V

    .line 40
    iget p3, p1, Lcom/google/obf/bs$b;->g:I

    add-int/2addr p3, v1

    iput p3, p1, Lcom/google/obf/bs$b;->h:I

    .line 41
    iget-object p3, p2, Lcom/google/obf/dw;->a:[B

    iget v0, p1, Lcom/google/obf/bs$b;->g:I

    invoke-interface {p0, p3, v3, v0}, Lcom/google/obf/ak;->c([BII)V

    .line 42
    :goto_91
    iget p0, p1, Lcom/google/obf/bs$b;->g:I

    if-ge v3, p0, :cond_a9

    .line 43
    iget-object p0, p1, Lcom/google/obf/bs$b;->j:[I

    invoke-virtual {p2}, Lcom/google/obf/dw;->f()I

    move-result p3

    aput p3, p0, v3

    .line 44
    iget p0, p1, Lcom/google/obf/bs$b;->i:I

    iget-object p3, p1, Lcom/google/obf/bs$b;->j:[I

    aget p3, p3, v3

    add-int/2addr p0, p3

    iput p0, p1, Lcom/google/obf/bs$b;->i:I

    add-int/lit8 v3, v3, 0x1

    goto :goto_91

    :cond_a9
    return v2

    :cond_aa
    :goto_aa
    if-eqz p3, :cond_ad

    return v3

    .line 23
    :cond_ad
    new-instance p0, Ljava/io/EOFException;

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

    throw p0
.end method