Hash.smali
.class public Lcom/cmcm/safewallet/data/coinprovider/btc/bcimpl/depends/Hash;
.super Ljava/lang/Object;
.source "Hash.java"
# interfaces
.implements Ljava/io/Serializable;
# instance fields
.field private final hash:[B
# direct methods
.method public constructor <init>()V
.registers 2
.prologue
.line 12
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 13
const/4 v0, 0x0
iput-object v0, p0, Lcom/cmcm/safewallet/data/coinprovider/btc/bcimpl/depends/Hash;->hash:[B
.line 14
return-void
.end method
.method public constructor <init>(Ljava/lang/String;)V
.registers 3
.prologue
.line 16
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 17
invoke-static {p1}, Lorg/spongycastle/util/encoders/Hex;->decode(Ljava/lang/String;)[B
move-result-object v0
iput-object v0, p0, Lcom/cmcm/safewallet/data/coinprovider/btc/bcimpl/depends/Hash;->hash:[B
.line 18
return-void
.end method
.method public constructor <init>([B)V
.registers 2
.prologue
.line 20
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 21
iput-object p1, p0, Lcom/cmcm/safewallet/data/coinprovider/btc/bcimpl/depends/Hash;->hash:[B
.line 22
return-void
.end method
# virtual methods
.method public equals(Ljava/lang/Object;)Z
.registers 5
.prologue
const/4 v0, 0x0
.line 87
if-ne p0, p1, :cond_5
.line 88
const/4 v0, 0x1
.line 94
:cond_4
:goto_4
return v0
.line 89
:cond_5
if-eqz p1, :cond_4
.line 91
invoke-virtual {p0}, Ljava/lang/Object;->getClass()Ljava/lang/Class;
move-result-object v1
invoke-virtual {p1}, Ljava/lang/Object;->getClass()Ljava/lang/Class;
move-result-object v2
if-ne v1, v2, :cond_4
.line 93
check-cast p1, Lcom/cmcm/safewallet/data/coinprovider/btc/bcimpl/depends/Hash;
.line 94
iget-object v0, p0, Lcom/cmcm/safewallet/data/coinprovider/btc/bcimpl/depends/Hash;->hash:[B
iget-object v1, p1, Lcom/cmcm/safewallet/data/coinprovider/btc/bcimpl/depends/Hash;->hash:[B
invoke-static {v0, v1}, Ljava/util/Arrays;->equals([B[B)Z
move-result v0
goto :goto_4
.end method
.method public getBytes()[B
.registers 2
.prologue
.line 41
iget-object v0, p0, Lcom/cmcm/safewallet/data/coinprovider/btc/bcimpl/depends/Hash;->hash:[B
return-object v0
.end method
.method public hashCode()I
.registers 2
.prologue
.line 82
iget-object v0, p0, Lcom/cmcm/safewallet/data/coinprovider/btc/bcimpl/depends/Hash;->hash:[B
invoke-static {v0}, Ljava/util/Arrays;->hashCode([B)I
move-result v0
return v0
.end method
.method public isNull()Z
.registers 7
.prologue
const/4 v1, 0x1
const/4 v0, 0x0
.line 60
iget-object v2, p0, Lcom/cmcm/safewallet/data/coinprovider/btc/bcimpl/depends/Hash;->hash:[B
if-eqz v2, :cond_b
iget-object v2, p0, Lcom/cmcm/safewallet/data/coinprovider/btc/bcimpl/depends/Hash;->hash:[B
array-length v2, v2
if-nez v2, :cond_d
:cond_b
move v0, v1
.line 68
:cond_c
:goto_c
return v0
.line 63
:cond_d
iget-object v3, p0, Lcom/cmcm/safewallet/data/coinprovider/btc/bcimpl/depends/Hash;->hash:[B
array-length v4, v3
move v2, v0
:goto_11
if-ge v2, v4, :cond_1a
aget-byte v5, v3, v2
.line 64
if-nez v5, :cond_c
.line 63
add-int/lit8 v2, v2, 0x1
goto :goto_11
:cond_1a
move v0, v1
.line 68
goto :goto_c
.end method
.method public nLeadingZeros()I
.registers 7
.prologue
const/4 v2, 0x0
.line 45
.line 47
iget-object v4, p0, Lcom/cmcm/safewallet/data/coinprovider/btc/bcimpl/depends/Hash;->hash:[B
array-length v5, v4
move v1, v2
move v0, v2
:goto_6
if-ge v1, v5, :cond_1e
aget-byte v3, v4, v1
.line 48
if-nez v3, :cond_13
.line 49
add-int/lit8 v3, v0, 0x8
.line 47
add-int/lit8 v0, v1, 0x1
move v1, v0
move v0, v3
goto :goto_6
.line 51
:cond_13
invoke-static {v3}, Ljava/lang/Integer;->numberOfLeadingZeros(I)I
move-result v1
add-int/lit8 v1, v1, -0x18
invoke-static {v2, v1}, Ljava/lang/Math;->max(II)I
move-result v1
add-int/2addr v0, v1
.line 56
:cond_1e
return v0
.end method
.method public reverse()V
.registers 6
.prologue
.line 25
iget-object v0, p0, Lcom/cmcm/safewallet/data/coinprovider/btc/bcimpl/depends/Hash;->hash:[B
if-nez v0, :cond_5
.line 38
:cond_4
return-void
.line 28
:cond_5
const/4 v1, 0x0
.line 29
iget-object v0, p0, Lcom/cmcm/safewallet/data/coinprovider/btc/bcimpl/depends/Hash;->hash:[B
array-length v0, v0
add-int/lit8 v0, v0, -0x1
.line 31
:goto_b
if-le v0, v1, :cond_4
.line 32
iget-object v2, p0, Lcom/cmcm/safewallet/data/coinprovider/btc/bcimpl/depends/Hash;->hash:[B
aget-byte v2, v2, v0
.line 33
iget-object v3, p0, Lcom/cmcm/safewallet/data/coinprovider/btc/bcimpl/depends/Hash;->hash:[B
iget-object v4, p0, Lcom/cmcm/safewallet/data/coinprovider/btc/bcimpl/depends/Hash;->hash:[B
aget-byte v4, v4, v1
aput-byte v4, v3, v0
.line 34
iget-object v3, p0, Lcom/cmcm/safewallet/data/coinprovider/btc/bcimpl/depends/Hash;->hash:[B
aput-byte v2, v3, v1
.line 35
add-int/lit8 v0, v0, -0x1
.line 36
add-int/lit8 v1, v1, 0x1
goto :goto_b
.end method
.method public toString()Ljava/lang/String;
.registers 3
.prologue
.line 74
iget-object v0, p0, Lcom/cmcm/safewallet/data/coinprovider/btc/bcimpl/depends/Hash;->hash:[B
if-nez v0, :cond_6
.line 75
const/4 v0, 0x0
.line 77
:goto_5
return-object v0
:cond_6
new-instance v0, Ljava/lang/String;
iget-object v1, p0, Lcom/cmcm/safewallet/data/coinprovider/btc/bcimpl/depends/Hash;->hash:[B
invoke-static {v1}, Lorg/spongycastle/util/encoders/Hex;->encode([B)[B
move-result-object v1
invoke-direct {v0, v1}, Ljava/lang/String;-><init>([B)V
goto :goto_5
.end method