k.smali

.class abstract Lcom/google/protobuf/k;
.super Lcom/google/protobuf/CodedOutputStream;
.source "CodedOutputStream.java"


# instance fields
.field bip:I

.field final buffer:[B

.field final limit:I

.field position:I


# direct methods
.method constructor <init>(I)V
    .registers 4

    .prologue
    .line 1826
    const/4 v0, 0x0

    invoke-direct {p0, v0}, Lcom/google/protobuf/CodedOutputStream;-><init>(B)V

    .line 1827
    if-gez p1, :cond_e

    .line 1828
    new-instance v0, Ljava/lang/IllegalArgumentException;

    const-string v1, "bufferSize must be >= 0"

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

    throw v0

    .line 1834
    :cond_e
    const/16 v0, 0x14

    invoke-static {p1, v0}, Ljava/lang/Math;->max(II)I

    move-result v0

    new-array v0, v0, [B

    iput-object v0, p0, Lcom/google/protobuf/k;->buffer:[B

    .line 1835
    iget-object v0, p0, Lcom/google/protobuf/k;->buffer:[B

    array-length v0, v0

    iput v0, p0, Lcom/google/protobuf/k;->limit:I

    .line 1836
    return-void
.end method


# virtual methods
.method final B(J)V
    .registers 12

    .prologue
    .line 5057
    sget-boolean v0, Lcom/google/protobuf/CodedOutputStream;->bin:Z

    .line 1920
    if-eqz v0, :cond_56

    .line 6057
    sget-wide v0, Lcom/google/protobuf/CodedOutputStream;->bio:J

    .line 1921
    iget v2, p0, Lcom/google/protobuf/k;->position:I

    int-to-long v2, v2

    add-long/2addr v2, v0

    move-wide v0, v2

    .line 1924
    :goto_b
    const-wide/16 v4, -0x80

    and-long/2addr v4, p1

    const-wide/16 v6, 0x0

    cmp-long v4, v4, v6

    if-nez v4, :cond_2c

    .line 1925
    iget-object v4, p0, Lcom/google/protobuf/k;->buffer:[B

    const-wide/16 v6, 0x1

    add-long/2addr v6, v0

    long-to-int v5, p1

    int-to-byte v5, v5

    invoke-static {v4, v0, v1, v5}, Lcom/google/protobuf/ey;->a([BJB)V

    .line 1932
    sub-long v0, v6, v2

    long-to-int v0, v0

    .line 1933
    iget v1, p0, Lcom/google/protobuf/k;->position:I

    add-int/2addr v1, v0

    iput v1, p0, Lcom/google/protobuf/k;->position:I

    .line 1934
    iget v1, p0, Lcom/google/protobuf/k;->bip:I

    add-int/2addr v0, v1

    iput v0, p0, Lcom/google/protobuf/k;->bip:I

    .line 1940
    :goto_2b
    return-void

    .line 1928
    :cond_2c
    iget-object v6, p0, Lcom/google/protobuf/k;->buffer:[B

    const-wide/16 v4, 0x1

    add-long/2addr v4, v0

    long-to-int v7, p1

    and-int/lit8 v7, v7, 0x7f

    or-int/lit16 v7, v7, 0x80

    int-to-byte v7, v7

    invoke-static {v6, v0, v1, v7}, Lcom/google/protobuf/ey;->a([BJB)V

    .line 1929
    const/4 v0, 0x7

    ushr-long/2addr p1, v0

    move-wide v0, v4

    goto :goto_b

    .line 1942
    :cond_3e
    iget-object v0, p0, Lcom/google/protobuf/k;->buffer:[B

    iget v1, p0, Lcom/google/protobuf/k;->position:I

    add-int/lit8 v2, v1, 0x1

    iput v2, p0, Lcom/google/protobuf/k;->position:I

    long-to-int v2, p1

    and-int/lit8 v2, v2, 0x7f

    or-int/lit16 v2, v2, 0x80

    int-to-byte v2, v2

    aput-byte v2, v0, v1

    .line 1943
    iget v0, p0, Lcom/google/protobuf/k;->bip:I

    add-int/lit8 v0, v0, 0x1

    iput v0, p0, Lcom/google/protobuf/k;->bip:I

    .line 1944
    const/4 v0, 0x7

    ushr-long/2addr p1, v0

    .line 1937
    :cond_56
    const-wide/16 v0, -0x80

    and-long/2addr v0, p1

    const-wide/16 v2, 0x0

    cmp-long v0, v0, v2

    if-nez v0, :cond_3e

    .line 1938
    iget-object v0, p0, Lcom/google/protobuf/k;->buffer:[B

    iget v1, p0, Lcom/google/protobuf/k;->position:I

    add-int/lit8 v2, v1, 0x1

    iput v2, p0, Lcom/google/protobuf/k;->position:I

    long-to-int v2, p1

    int-to-byte v2, v2

    aput-byte v2, v0, v1

    .line 1939
    iget v0, p0, Lcom/google/protobuf/k;->bip:I

    add-int/lit8 v0, v0, 0x1

    iput v0, p0, Lcom/google/protobuf/k;->bip:I

    goto :goto_2b
.end method

.method public final Be()I
    .registers 3

    .prologue
    .line 1840
    new-instance v0, Ljava/lang/UnsupportedOperationException;

    const-string v1, "spaceLeft() can only be called on CodedOutputStreams that are writing to a flat array or ByteBuffer."

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

    throw v0
.end method

.method final C(J)V
    .registers 10

    .prologue
    const-wide/16 v4, 0xff

    .line 1967
    iget-object v0, p0, Lcom/google/protobuf/k;->buffer:[B

    iget v1, p0, Lcom/google/protobuf/k;->position:I

    add-int/lit8 v2, v1, 0x1

    iput v2, p0, Lcom/google/protobuf/k;->position:I

    and-long v2, p1, v4

    long-to-int v2, v2

    int-to-byte v2, v2

    aput-byte v2, v0, v1

    .line 1968
    iget-object v0, p0, Lcom/google/protobuf/k;->buffer:[B

    iget v1, p0, Lcom/google/protobuf/k;->position:I

    add-int/lit8 v2, v1, 0x1

    iput v2, p0, Lcom/google/protobuf/k;->position:I

    const/16 v2, 0x8

    shr-long v2, p1, v2

    and-long/2addr v2, v4

    long-to-int v2, v2

    int-to-byte v2, v2

    aput-byte v2, v0, v1

    .line 1969
    iget-object v0, p0, Lcom/google/protobuf/k;->buffer:[B

    iget v1, p0, Lcom/google/protobuf/k;->position:I

    add-int/lit8 v2, v1, 0x1

    iput v2, p0, Lcom/google/protobuf/k;->position:I

    const/16 v2, 0x10

    shr-long v2, p1, v2

    and-long/2addr v2, v4

    long-to-int v2, v2

    int-to-byte v2, v2

    aput-byte v2, v0, v1

    .line 1970
    iget-object v0, p0, Lcom/google/protobuf/k;->buffer:[B

    iget v1, p0, Lcom/google/protobuf/k;->position:I

    add-int/lit8 v2, v1, 0x1

    iput v2, p0, Lcom/google/protobuf/k;->position:I

    const/16 v2, 0x18

    shr-long v2, p1, v2

    and-long/2addr v2, v4

    long-to-int v2, v2

    int-to-byte v2, v2

    aput-byte v2, v0, v1

    .line 1971
    iget-object v0, p0, Lcom/google/protobuf/k;->buffer:[B

    iget v1, p0, Lcom/google/protobuf/k;->position:I

    add-int/lit8 v2, v1, 0x1

    iput v2, p0, Lcom/google/protobuf/k;->position:I

    const/16 v2, 0x20

    shr-long v2, p1, v2

    long-to-int v2, v2

    int-to-byte v2, v2

    aput-byte v2, v0, v1

    .line 1972
    iget-object v0, p0, Lcom/google/protobuf/k;->buffer:[B

    iget v1, p0, Lcom/google/protobuf/k;->position:I

    add-int/lit8 v2, v1, 0x1

    iput v2, p0, Lcom/google/protobuf/k;->position:I

    const/16 v2, 0x28

    shr-long v2, p1, v2

    long-to-int v2, v2

    int-to-byte v2, v2

    aput-byte v2, v0, v1

    .line 1973
    iget-object v0, p0, Lcom/google/protobuf/k;->buffer:[B

    iget v1, p0, Lcom/google/protobuf/k;->position:I

    add-int/lit8 v2, v1, 0x1

    iput v2, p0, Lcom/google/protobuf/k;->position:I

    const/16 v2, 0x30

    shr-long v2, p1, v2

    long-to-int v2, v2

    int-to-byte v2, v2

    aput-byte v2, v0, v1

    .line 1974
    iget-object v0, p0, Lcom/google/protobuf/k;->buffer:[B

    iget v1, p0, Lcom/google/protobuf/k;->position:I

    add-int/lit8 v2, v1, 0x1

    iput v2, p0, Lcom/google/protobuf/k;->position:I

    const/16 v2, 0x38

    shr-long v2, p1, v2

    long-to-int v2, v2

    int-to-byte v2, v2

    aput-byte v2, v0, v1

    .line 1975
    iget v0, p0, Lcom/google/protobuf/k;->bip:I

    add-int/lit8 v0, v0, 0x8

    iput v0, p0, Lcom/google/protobuf/k;->bip:I

    .line 1976
    return-void
.end method

.method final aq(II)V
    .registers 4

    .prologue
    .line 1864
    .line 2072
    shl-int/lit8 v0, p1, 0x3

    or-int/2addr v0, p2

    .line 1864
    invoke-virtual {p0, v0}, Lcom/google/protobuf/k;->dG(I)V

    .line 1865
    return-void
.end method

.method final c(B)V
    .registers 5

    .prologue
    .line 1855
    iget-object v0, p0, Lcom/google/protobuf/k;->buffer:[B

    iget v1, p0, Lcom/google/protobuf/k;->position:I

    add-int/lit8 v2, v1, 0x1

    iput v2, p0, Lcom/google/protobuf/k;->position:I

    aput-byte p1, v0, v1

    .line 1856
    iget v0, p0, Lcom/google/protobuf/k;->bip:I

    add-int/lit8 v0, v0, 0x1

    iput v0, p0, Lcom/google/protobuf/k;->bip:I

    .line 1857
    return-void
.end method

.method final dG(I)V
    .registers 12

    .prologue
    const-wide/16 v8, 0x1

    .line 3057
    sget-boolean v0, Lcom/google/protobuf/CodedOutputStream;->bin:Z

    .line 1885
    if-eqz v0, :cond_4e

    .line 4057
    sget-wide v0, Lcom/google/protobuf/CodedOutputStream;->bio:J

    .line 1886
    iget v2, p0, Lcom/google/protobuf/k;->position:I

    int-to-long v2, v2

    add-long/2addr v2, v0

    move-wide v0, v2

    .line 1889
    :goto_d
    and-int/lit8 v4, p1, -0x80

    if-nez v4, :cond_27

    .line 1890
    iget-object v4, p0, Lcom/google/protobuf/k;->buffer:[B

    add-long v6, v0, v8

    int-to-byte v5, p1

    invoke-static {v4, v0, v1, v5}, Lcom/google/protobuf/ey;->a([BJB)V

    .line 1897
    sub-long v0, v6, v2

    long-to-int v0, v0

    .line 1898
    iget v1, p0, Lcom/google/protobuf/k;->position:I

    add-int/2addr v1, v0

    iput v1, p0, Lcom/google/protobuf/k;->position:I

    .line 1899
    iget v1, p0, Lcom/google/protobuf/k;->bip:I

    add-int/2addr v0, v1

    iput v0, p0, Lcom/google/protobuf/k;->bip:I

    .line 1905
    :goto_26
    return-void

    .line 1893
    :cond_27
    iget-object v6, p0, Lcom/google/protobuf/k;->buffer:[B

    add-long v4, v0, v8

    and-int/lit8 v7, p1, 0x7f

    or-int/lit16 v7, v7, 0x80

    int-to-byte v7, v7

    invoke-static {v6, v0, v1, v7}, Lcom/google/protobuf/ey;->a([BJB)V

    .line 1894
    ushr-int/lit8 p1, p1, 0x7

    move-wide v0, v4

    goto :goto_d

    .line 1907
    :cond_37
    iget-object v0, p0, Lcom/google/protobuf/k;->buffer:[B

    iget v1, p0, Lcom/google/protobuf/k;->position:I

    add-int/lit8 v2, v1, 0x1

    iput v2, p0, Lcom/google/protobuf/k;->position:I

    and-int/lit8 v2, p1, 0x7f

    or-int/lit16 v2, v2, 0x80

    int-to-byte v2, v2

    aput-byte v2, v0, v1

    .line 1908
    iget v0, p0, Lcom/google/protobuf/k;->bip:I

    add-int/lit8 v0, v0, 0x1

    iput v0, p0, Lcom/google/protobuf/k;->bip:I

    .line 1909
    ushr-int/lit8 p1, p1, 0x7

    .line 1902
    :cond_4e
    and-int/lit8 v0, p1, -0x80

    if-nez v0, :cond_37

    .line 1903
    iget-object v0, p0, Lcom/google/protobuf/k;->buffer:[B

    iget v1, p0, Lcom/google/protobuf/k;->position:I

    add-int/lit8 v2, v1, 0x1

    iput v2, p0, Lcom/google/protobuf/k;->position:I

    int-to-byte v2, p1

    aput-byte v2, v0, v1

    .line 1904
    iget v0, p0, Lcom/google/protobuf/k;->bip:I

    add-int/lit8 v0, v0, 0x1

    iput v0, p0, Lcom/google/protobuf/k;->bip:I

    goto :goto_26
.end method

.method final dH(I)V
    .registers 5

    .prologue
    .line 1955
    iget-object v0, p0, Lcom/google/protobuf/k;->buffer:[B

    iget v1, p0, Lcom/google/protobuf/k;->position:I

    add-int/lit8 v2, v1, 0x1

    iput v2, p0, Lcom/google/protobuf/k;->position:I

    int-to-byte v2, p1

    aput-byte v2, v0, v1

    .line 1956
    iget-object v0, p0, Lcom/google/protobuf/k;->buffer:[B

    iget v1, p0, Lcom/google/protobuf/k;->position:I

    add-int/lit8 v2, v1, 0x1

    iput v2, p0, Lcom/google/protobuf/k;->position:I

    shr-int/lit8 v2, p1, 0x8

    int-to-byte v2, v2

    aput-byte v2, v0, v1

    .line 1957
    iget-object v0, p0, Lcom/google/protobuf/k;->buffer:[B

    iget v1, p0, Lcom/google/protobuf/k;->position:I

    add-int/lit8 v2, v1, 0x1

    iput v2, p0, Lcom/google/protobuf/k;->position:I

    shr-int/lit8 v2, p1, 0x10

    int-to-byte v2, v2

    aput-byte v2, v0, v1

    .line 1958
    iget-object v0, p0, Lcom/google/protobuf/k;->buffer:[B

    iget v1, p0, Lcom/google/protobuf/k;->position:I

    add-int/lit8 v2, v1, 0x1

    iput v2, p0, Lcom/google/protobuf/k;->position:I

    shr-int/lit8 v2, p1, 0x18

    aput-byte v2, v0, v1

    .line 1959
    iget v0, p0, Lcom/google/protobuf/k;->bip:I

    add-int/lit8 v0, v0, 0x4

    iput v0, p0, Lcom/google/protobuf/k;->bip:I

    .line 1960
    return-void
.end method