MP3Frame$CRC16.smali

.class final Lim/tpelyyftgw/messenger/audioinfo/mp3/MP3Frame$CRC16;
.super Ljava/lang/Object;
.source "MP3Frame.java"


# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
    value = Lim/tpelyyftgw/messenger/audioinfo/mp3/MP3Frame;
.end annotation

.annotation system Ldalvik/annotation/InnerClass;
    accessFlags = 0x18
    name = "CRC16"
.end annotation


# instance fields
.field private crc:S


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

    return-void
.end method

.method constructor <init>()V
    .registers 2

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

    .line 21
    const/4 v0, -0x1

    iput-short v0, p0, Lim/tpelyyftgw/messenger/audioinfo/mp3/MP3Frame$CRC16;->crc:S

    return-void
.end method


# virtual methods
.method public getValue()S
    .registers 2

    .line 40
    iget-short v0, p0, Lim/tpelyyftgw/messenger/audioinfo/mp3/MP3Frame$CRC16;->crc:S

    return v0
.end method

.method public reset()V
    .registers 2

    .line 44
    const/4 v0, -0x1

    iput-short v0, p0, Lim/tpelyyftgw/messenger/audioinfo/mp3/MP3Frame$CRC16;->crc:S

    .line 45
    return-void
.end method

.method public update(B)V
    .registers 3
    .param p1, "value"    # B

    .line 36
    const/16 v0, 0x8

    invoke-virtual {p0, p1, v0}, Lim/tpelyyftgw/messenger/audioinfo/mp3/MP3Frame$CRC16;->update(II)V

    .line 37
    return-void
.end method

.method public update(II)V
    .registers 8
    .param p1, "value"    # I
    .param p2, "length"    # I

    .line 24
    add-int/lit8 v0, p2, -0x1

    const/4 v1, 0x1

    shl-int v0, v1, v0

    .line 26
    .local v0, "mask":I
    :goto_5
    iget-short v2, p0, Lim/tpelyyftgw/messenger/audioinfo/mp3/MP3Frame$CRC16;->crc:S

    const v3, 0x8000

    and-int/2addr v2, v3

    const/4 v3, 0x0

    if-nez v2, :cond_10

    const/4 v2, 0x1

    goto :goto_11

    :cond_10
    const/4 v2, 0x0

    :goto_11
    and-int v4, p1, v0

    if-nez v4, :cond_16

    const/4 v3, 0x1

    :cond_16
    xor-int/2addr v2, v3

    if-eqz v2, :cond_27

    .line 27
    iget-short v2, p0, Lim/tpelyyftgw/messenger/audioinfo/mp3/MP3Frame$CRC16;->crc:S

    shl-int/2addr v2, v1

    int-to-short v2, v2

    iput-short v2, p0, Lim/tpelyyftgw/messenger/audioinfo/mp3/MP3Frame$CRC16;->crc:S

    .line 28
    const v3, 0x8005

    xor-int/2addr v2, v3

    int-to-short v2, v2

    iput-short v2, p0, Lim/tpelyyftgw/messenger/audioinfo/mp3/MP3Frame$CRC16;->crc:S

    goto :goto_2d

    .line 30
    :cond_27
    iget-short v2, p0, Lim/tpelyyftgw/messenger/audioinfo/mp3/MP3Frame$CRC16;->crc:S

    shl-int/2addr v2, v1

    int-to-short v2, v2

    iput-short v2, p0, Lim/tpelyyftgw/messenger/audioinfo/mp3/MP3Frame$CRC16;->crc:S

    .line 32
    :goto_2d
    ushr-int/lit8 v2, v0, 0x1

    move v0, v2

    if-nez v2, :cond_33

    .line 33
    return-void

    .line 32
    :cond_33
    goto :goto_5
.end method