Script.smali

.class public Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/script/Script;
.super Ljava/lang/Object;
.source "Script.java"


# static fields
.field public static final ALL_VERIFY_FLAGS:Ljava/util/EnumSet;
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "Ljava/util/EnumSet",
            "<",
            "Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/script/Script$VerifyFlag;",
            ">;"
        }
    .end annotation
.end field

.field private static final QF:[Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/script/b;

.field private static final log:Lorg/slf4j/Logger;


# instance fields
.field public chunks:Ljava/util/List;
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "Ljava/util/List",
            "<",
            "Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/script/b;",
            ">;"
        }
    .end annotation
.end field

.field public creationTimeSeconds:J

.field private program:[B


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

    .prologue
    const/4 v4, 0x1

    const/4 v3, 0x0

    const/4 v5, 0x0

    .line 86
    const-class v0, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/script/Script$VerifyFlag;

    invoke-static {v0}, Ljava/util/EnumSet;->allOf(Ljava/lang/Class;)Ljava/util/EnumSet;

    move-result-object v0

    sput-object v0, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/script/Script;->ALL_VERIFY_FLAGS:Ljava/util/EnumSet;

    .line 88
    const-class v0, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/script/Script;

    invoke-static {v0}, Lorg/slf4j/LoggerFactory;->getLogger(Ljava/lang/Class;)Lorg/slf4j/Logger;

    move-result-object v0

    sput-object v0, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/script/Script;->log:Lorg/slf4j/Logger;

    .line 170
    const/4 v0, 0x4

    new-array v0, v0, [Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/script/b;

    new-instance v1, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/script/b;

    const/16 v2, 0x76

    invoke-direct {v1, v2, v5, v3}, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/script/b;-><init>(I[BI)V

    aput-object v1, v0, v3

    new-instance v1, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/script/b;

    const/16 v2, 0xa9

    invoke-direct {v1, v2, v5, v4}, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/script/b;-><init>(I[BI)V

    aput-object v1, v0, v4

    const/4 v1, 0x2

    new-instance v2, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/script/b;

    const/16 v3, 0x88

    const/16 v4, 0x17

    invoke-direct {v2, v3, v5, v4}, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/script/b;-><init>(I[BI)V

    aput-object v2, v0, v1

    const/4 v1, 0x3

    new-instance v2, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/script/b;

    const/16 v3, 0xac

    const/16 v4, 0x18

    invoke-direct {v2, v3, v5, v4}, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/script/b;-><init>(I[BI)V

    aput-object v2, v0, v1

    sput-object v0, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/script/Script;->QF:[Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/script/b;

    return-void
.end method

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

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

    .line 2088
    new-instance v0, Ljava/util/ArrayList;

    invoke-direct {v0}, Ljava/util/ArrayList;-><init>()V

    .line 106
    iput-object v0, p0, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/script/Script;->chunks:Ljava/util/List;

    .line 107
    return-void
.end method

.method constructor <init>(Ljava/util/List;)V
    .registers 4
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "(",
            "Ljava/util/List",
            "<",
            "Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/script/b;",
            ">;)V"
        }
    .end annotation

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

    .line 111
    new-instance v0, Ljava/util/ArrayList;

    invoke-direct {v0, p1}, Ljava/util/ArrayList;-><init>(Ljava/util/Collection;)V

    invoke-static {v0}, Ljava/util/Collections;->unmodifiableList(Ljava/util/List;)Ljava/util/List;

    move-result-object v0

    iput-object v0, p0, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/script/Script;->chunks:Ljava/util/List;

    .line 112
    invoke-static {}, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/core/aq;->currentTimeSeconds()J

    move-result-wide v0

    iput-wide v0, p0, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/script/Script;->creationTimeSeconds:J

    .line 113
    return-void
.end method

.method public constructor <init>([B)V
    .registers 4

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

    .line 121
    iput-object p1, p0, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/script/Script;->program:[B

    .line 122
    invoke-direct {p0, p1}, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/script/Script;->parse([B)V

    .line 123
    const-wide/16 v0, 0x0

    iput-wide v0, p0, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/script/Script;->creationTimeSeconds:J

    .line 124
    return-void
.end method

.method private static a(Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/core/Transaction;ILcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/script/Script;Ljava/util/LinkedList;IIILcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/core/Coin;Ljava/util/Set;)I
    .registers 23
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "(",
            "Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/core/Transaction;",
            "I",
            "Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/script/Script;",
            "Ljava/util/LinkedList",
            "<[B>;III",
            "Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/core/Coin;",
            "Ljava/util/Set",
            "<",
            "Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/script/Script$VerifyFlag;",
            ">;)I"
        }
    .end annotation

    .prologue
    .line 1763
    sget-object v1, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/script/Script$VerifyFlag;->STRICTENC:Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/script/Script$VerifyFlag;

    move-object/from16 v0, p8

    invoke-interface {v0, v1}, Ljava/util/Set;->contains(Ljava/lang/Object;)Z

    move-result v1

    if-nez v1, :cond_1e

    sget-object v1, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/script/Script$VerifyFlag;->DERSIG:Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/script/Script$VerifyFlag;

    .line 1764
    move-object/from16 v0, p8

    invoke-interface {v0, v1}, Ljava/util/Set;->contains(Ljava/lang/Object;)Z

    move-result v1

    if-nez v1, :cond_1e

    sget-object v1, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/script/Script$VerifyFlag;->LOW_S:Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/script/Script$VerifyFlag;

    .line 1765
    move-object/from16 v0, p8

    invoke-interface {v0, v1}, Ljava/util/Set;->contains(Ljava/lang/Object;)Z

    move-result v1

    if-eqz v1, :cond_37

    :cond_1e
    const/4 v1, 0x1

    move v8, v1

    .line 1766
    :goto_20
    sget-object v1, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/script/Script$VerifyFlag;->MINIMALDATA:Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/script/Script$VerifyFlag;

    move-object/from16 v0, p8

    invoke-interface {v0, v1}, Ljava/util/Set;->contains(Ljava/lang/Object;)Z

    move-result v3

    .line 1767
    invoke-virtual/range {p3 .. p3}, Ljava/util/LinkedList;->size()I

    move-result v1

    const/4 v2, 0x2

    if-ge v1, v2, :cond_3a

    .line 1768
    new-instance v1, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/core/ScriptException;

    const-string v2, "Attempted OP_CHECKMULTISIG(VERIFY) on a stack with size < 2"

    invoke-direct {v1, v2}, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/core/ScriptException;-><init>(Ljava/lang/String;)V

    throw v1

    .line 1765
    :cond_37
    const/4 v1, 0x0

    move v8, v1

    goto :goto_20

    .line 1769
    :cond_3a
    invoke-virtual/range {p3 .. p3}, Ljava/util/LinkedList;->pollLast()Ljava/lang/Object;

    move-result-object v1

    check-cast v1, [B

    invoke-static {v1, v3}, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/script/Script;->a([BZ)Ljava/math/BigInteger;

    move-result-object v1

    invoke-virtual {v1}, Ljava/math/BigInteger;->intValue()I

    move-result v4

    .line 1770
    if-ltz v4, :cond_4e

    const/16 v1, 0x14

    if-le v4, v1, :cond_56

    .line 1771
    :cond_4e
    new-instance v1, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/core/ScriptException;

    const-string v2, "OP_CHECKMULTISIG(VERIFY) with pubkey count out of range"

    invoke-direct {v1, v2}, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/core/ScriptException;-><init>(Ljava/lang/String;)V

    throw v1

    .line 1772
    :cond_56
    add-int v10, p4, v4

    .line 1773
    const/16 v1, 0xc9

    if-le v10, v1, :cond_64

    .line 1774
    new-instance v1, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/core/ScriptException;

    const-string v2, "Total op count > 201 during OP_CHECKMULTISIG(VERIFY)"

    invoke-direct {v1, v2}, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/core/ScriptException;-><init>(Ljava/lang/String;)V

    throw v1

    .line 1775
    :cond_64
    invoke-virtual/range {p3 .. p3}, Ljava/util/LinkedList;->size()I

    move-result v1

    add-int/lit8 v2, v4, 0x1

    if-ge v1, v2, :cond_74

    .line 1776
    new-instance v1, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/core/ScriptException;

    const-string v2, "Attempted OP_CHECKMULTISIG(VERIFY) on a stack with size < num_of_pubkeys + 2"

    invoke-direct {v1, v2}, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/core/ScriptException;-><init>(Ljava/lang/String;)V

    throw v1

    .line 1778
    :cond_74
    new-instance v11, Ljava/util/LinkedList;

    invoke-direct {v11}, Ljava/util/LinkedList;-><init>()V

    .line 1779
    const/4 v1, 0x0

    move v2, v1

    :goto_7b
    if-ge v2, v4, :cond_8a

    .line 1780
    invoke-virtual/range {p3 .. p3}, Ljava/util/LinkedList;->pollLast()Ljava/lang/Object;

    move-result-object v1

    check-cast v1, [B

    .line 1781
    invoke-virtual {v11, v1}, Ljava/util/LinkedList;->add(Ljava/lang/Object;)Z

    .line 1779
    add-int/lit8 v1, v2, 0x1

    move v2, v1

    goto :goto_7b

    .line 1784
    :cond_8a
    invoke-virtual/range {p3 .. p3}, Ljava/util/LinkedList;->pollLast()Ljava/lang/Object;

    move-result-object v1

    check-cast v1, [B

    invoke-static {v1, v3}, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/script/Script;->a([BZ)Ljava/math/BigInteger;

    move-result-object v1

    invoke-virtual {v1}, Ljava/math/BigInteger;->intValue()I

    move-result v3

    .line 1785
    if-ltz v3, :cond_9c

    if-le v3, v4, :cond_a4

    .line 1786
    :cond_9c
    new-instance v1, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/core/ScriptException;

    const-string v2, "OP_CHECKMULTISIG(VERIFY) with sig count out of range"

    invoke-direct {v1, v2}, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/core/ScriptException;-><init>(Ljava/lang/String;)V

    throw v1

    .line 1787
    :cond_a4
    invoke-virtual/range {p3 .. p3}, Ljava/util/LinkedList;->size()I

    move-result v1

    add-int/lit8 v2, v3, 0x1

    if-ge v1, v2, :cond_b4

    .line 1788
    new-instance v1, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/core/ScriptException;

    const-string v2, "Attempted OP_CHECKMULTISIG(VERIFY) on a stack with size < num_of_pubkeys + num_of_signatures + 3"

    invoke-direct {v1, v2}, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/core/ScriptException;-><init>(Ljava/lang/String;)V

    throw v1

    .line 1790
    :cond_b4
    new-instance v12, Ljava/util/LinkedList;

    invoke-direct {v12}, Ljava/util/LinkedList;-><init>()V

    .line 1791
    const/4 v1, 0x0

    move v2, v1

    :goto_bb
    if-ge v2, v3, :cond_ca

    .line 1792
    invoke-virtual/range {p3 .. p3}, Ljava/util/LinkedList;->pollLast()Ljava/lang/Object;

    move-result-object v1

    check-cast v1, [B

    .line 1793
    invoke-virtual {v12, v1}, Ljava/util/LinkedList;->add(Ljava/lang/Object;)Z

    .line 1791
    add-int/lit8 v1, v2, 0x1

    move v2, v1

    goto :goto_bb

    .line 1796
    :cond_ca
    invoke-virtual/range {p2 .. p2}, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/script/Script;->getProgram()[B

    move-result-object v1

    .line 1797
    array-length v2, v1

    move/from16 v0, p5

    invoke-static {v1, v0, v2}, Ljava/util/Arrays;->copyOfRange([BII)[B

    move-result-object v3

    .line 1799
    invoke-virtual {v12}, Ljava/util/LinkedList;->iterator()Ljava/util/Iterator;

    move-result-object v2

    :goto_d9
    invoke-interface {v2}, Ljava/util/Iterator;->hasNext()Z

    move-result v1

    if-eqz v1, :cond_100

    invoke-interface {v2}, Ljava/util/Iterator;->next()Ljava/lang/Object;

    move-result-object v1

    check-cast v1, [B

    .line 1800
    new-instance v4, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/core/ap;

    array-length v5, v1

    add-int/lit8 v5, v5, 0x1

    invoke-direct {v4, v5}, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/core/ap;-><init>(I)V

    .line 1802
    :try_start_ed
    invoke-static {v4, v1}, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/script/Script;->writeBytes(Ljava/io/OutputStream;[B)V
    :try_end_f0
    .catch Ljava/io/IOException; {:try_start_ed .. :try_end_f0} :catch_f9

    .line 1806
    invoke-virtual {v4}, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/core/ap;->toByteArray()[B

    move-result-object v1

    invoke-static {v3, v1}, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/script/Script;->removeAllInstancesOf([B[B)[B

    move-result-object v3

    goto :goto_d9

    .line 1803
    :catch_f9
    move-exception v1

    .line 1804
    new-instance v2, Ljava/lang/RuntimeException;

    invoke-direct {v2, v1}, Ljava/lang/RuntimeException;-><init>(Ljava/lang/Throwable;)V

    throw v2

    .line 1809
    :cond_100
    const/4 v9, 0x1

    .line 1810
    :cond_101
    invoke-virtual {v12}, Ljava/util/LinkedList;->size()I

    move-result v1

    if-lez v1, :cond_1a7

    .line 1811
    invoke-virtual {v11}, Ljava/util/LinkedList;->pollFirst()Ljava/lang/Object;

    move-result-object v1

    move-object v7, v1

    check-cast v7, [B

    .line 1815
    :try_start_10e
    invoke-virtual {v12}, Ljava/util/LinkedList;->getFirst()Ljava/lang/Object;

    move-result-object v1

    check-cast v1, [B

    .line 10194
    const/4 v2, 0x0

    invoke-static {v1, v8, v2}, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/crypto/j;->a([BZZ)Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/crypto/j;

    move-result-object v13

    .line 1816
    invoke-virtual {v13}, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/crypto/j;->gM()Z

    move-result v1

    if-eqz v1, :cond_174

    .line 1817
    invoke-virtual {v13}, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/crypto/j;->gN()Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/core/Transaction$SigHash;

    move-result-object v5

    invoke-virtual {v13}, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/crypto/j;->anyoneCanPay()Z

    move-result v6

    move-object v1, p0

    move v2, p1

    move-object/from16 v4, p7

    invoke-virtual/range {v1 .. v6}, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/core/Transaction;->a(I[BLcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/core/Coin;Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/core/Transaction$SigHash;Z)Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/core/Sha256Hash;

    move-result-object v1

    .line 1819
    :goto_12f
    invoke-virtual {v1}, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/core/Sha256Hash;->getBytes()[B

    move-result-object v1

    invoke-static {v1, v13, v7}, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/core/ECKey;->a([BLcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/core/l;[B)Z

    move-result v1

    if-eqz v1, :cond_13c

    .line 1820
    invoke-virtual {v12}, Ljava/util/LinkedList;->pollFirst()Ljava/lang/Object;
    :try_end_13c
    .catch Ljava/lang/Exception; {:try_start_10e .. :try_end_13c} :catch_1a5

    .line 1826
    :cond_13c
    :goto_13c
    invoke-virtual {v12}, Ljava/util/LinkedList;->size()I

    move-result v1

    invoke-virtual {v11}, Ljava/util/LinkedList;->size()I

    move-result v2

    if-le v1, v2, :cond_101

    .line 1827
    const/4 v1, 0x0

    move v2, v1

    .line 1833
    :goto_148
    invoke-virtual/range {p3 .. p3}, Ljava/util/LinkedList;->pollLast()Ljava/lang/Object;

    move-result-object v1

    check-cast v1, [B

    .line 1834
    sget-object v3, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/script/Script$VerifyFlag;->NULLDUMMY:Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/script/Script$VerifyFlag;

    move-object/from16 v0, p8

    invoke-interface {v0, v3}, Ljava/util/Set;->contains(Ljava/lang/Object;)Z

    move-result v3

    if-eqz v3, :cond_17c

    array-length v3, v1

    if-lez v3, :cond_17c

    .line 1835
    new-instance v2, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/core/ScriptException;

    new-instance v3, Ljava/lang/StringBuilder;

    const-string v4, "OP_CHECKMULTISIG(VERIFY) with non-null nulldummy: "

    invoke-direct {v3, v4}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V

    invoke-static {v1}, Ljava/util/Arrays;->toString([B)Ljava/lang/String;

    move-result-object v1

    invoke-virtual {v3, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    move-result-object v1

    invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;

    move-result-object v1

    invoke-direct {v2, v1}, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/core/ScriptException;-><init>(Ljava/lang/String;)V

    throw v2

    .line 1817
    :cond_174
    :try_start_174
    iget v1, v13, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/crypto/j;->sighashFlags:I

    int-to-byte v1, v1

    .line 1818
    invoke-virtual {p0, p1, v3, v1}, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/core/Transaction;->a(I[BB)Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/core/Sha256Hash;
    :try_end_17a
    .catch Ljava/lang/Exception; {:try_start_174 .. :try_end_17a} :catch_1a5

    move-result-object v1

    goto :goto_12f

    .line 1837
    :cond_17c
    const/16 v1, 0xae

    move/from16 v0, p6

    if-ne v0, v1, :cond_195

    .line 1838
    if-eqz v2, :cond_191

    const/4 v1, 0x1

    new-array v1, v1, [B

    const/4 v2, 0x0

    const/4 v3, 0x1

    aput-byte v3, v1, v2

    :goto_18b
    move-object/from16 v0, p3

    invoke-virtual {v0, v1}, Ljava/util/LinkedList;->add(Ljava/lang/Object;)Z

    .line 1843
    :cond_190
    return v10

    .line 1838
    :cond_191
    const/4 v1, 0x0

    new-array v1, v1, [B

    goto :goto_18b

    .line 1839
    :cond_195
    const/16 v1, 0xaf

    move/from16 v0, p6

    if-ne v0, v1, :cond_190

    .line 1840
    if-nez v2, :cond_190

    .line 1841
    new-instance v1, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/core/ScriptException;

    const-string v2, "Script failed OP_CHECKMULTISIGVERIFY"

    invoke-direct {v1, v2}, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/core/ScriptException;-><init>(Ljava/lang/String;)V

    throw v1

    :catch_1a5
    move-exception v1

    goto :goto_13c

    :cond_1a7
    move v2, v9

    goto :goto_148
.end method

.method private static a([BZ)Ljava/math/BigInteger;
    .registers 4

    .prologue
    const/4 v1, 0x4

    .line 818
    array-length v0, p0

    if-le v0, v1, :cond_c

    .line 819
    new-instance v0, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/core/ScriptException;

    const-string v1, "Script attempted to use an integer larger than 4 bytes"

    invoke-direct {v0, v1}, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/core/ScriptException;-><init>(Ljava/lang/String;)V

    throw v0

    .line 820
    :cond_c
    if-eqz p1, :cond_1c

    invoke-static {p0, v1}, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/core/aq;->e([BI)Z

    move-result v0

    if-nez v0, :cond_1c

    .line 821
    new-instance v0, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/core/ScriptException;

    const-string v1, "Number is not minimally encoded"

    invoke-direct {v0, v1}, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/core/ScriptException;-><init>(Ljava/lang/String;)V

    throw v0

    .line 823
    :cond_1c
    invoke-static {p0}, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/core/aq;->reverseBytes([B)[B

    move-result-object v0

    .line 824
    const/4 v1, 0x0

    invoke-static {v0, v1}, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/core/aq;->decodeMPI([BZ)Ljava/math/BigInteger;

    move-result-object v0

    return-object v0
.end method

.method private static a(Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/core/Transaction;JLcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/script/Script;Ljava/util/LinkedList;Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/core/Coin;Ljava/util/Set;)V
    .registers 28
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "(",
            "Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/core/Transaction;",
            "J",
            "Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/script/Script;",
            "Ljava/util/LinkedList",
            "<[B>;",
            "Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/core/Coin;",
            "Ljava/util/Set",
            "<",
            "Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/script/Script$VerifyFlag;",
            ">;)V"
        }
    .end annotation

    .prologue
    .line 920
    .line 3952
    const/4 v3, 0x0

    .line 3953
    const/4 v2, 0x0

    .line 3955
    new-instance v13, Ljava/util/LinkedList;

    invoke-direct {v13}, Ljava/util/LinkedList;-><init>()V

    .line 3956
    new-instance v14, Ljava/util/LinkedList;

    invoke-direct {v14}, Ljava/util/LinkedList;-><init>()V

    .line 3957
    sget-object v4, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/script/Script$VerifyFlag;->MINIMALDATA:Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/script/Script$VerifyFlag;

    move-object/from16 v0, p6

    invoke-interface {v0, v4}, Ljava/util/Set;->contains(Ljava/lang/Object;)Z

    move-result v15

    .line 3972
    move-object/from16 v0, p3

    iget-object v4, v0, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/script/Script;->chunks:Ljava/util/List;

    invoke-interface {v4}, Ljava/util/List;->iterator()Ljava/util/Iterator;

    move-result-object v16

    move v11, v2

    :cond_1d
    :goto_1d
    invoke-interface/range {v16 .. v16}, Ljava/util/Iterator;->hasNext()Z

    move-result v2

    if-eqz v2, :cond_c38

    invoke-interface/range {v16 .. v16}, Ljava/util/Iterator;->next()Ljava/lang/Object;

    move-result-object v2

    check-cast v2, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/script/b;

    .line 3973
    const/4 v4, 0x0

    invoke-static {v4}, Ljava/lang/Boolean;->valueOf(Z)Ljava/lang/Boolean;

    move-result-object v4

    invoke-virtual {v14, v4}, Ljava/util/LinkedList;->contains(Ljava/lang/Object;)Z

    move-result v4

    if-nez v4, :cond_64

    const/4 v4, 0x1

    .line 3979
    :goto_35
    iget v5, v2, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/script/b;->opcode:I

    if-nez v5, :cond_66

    .line 3980
    if-eqz v4, :cond_1d

    .line 3983
    const/4 v2, 0x0

    new-array v2, v2, [B

    move-object/from16 v0, p4

    invoke-virtual {v0, v2}, Ljava/util/LinkedList;->add(Ljava/lang/Object;)Z

    move v2, v11

    .line 4653
    :goto_44
    invoke-virtual/range {p4 .. p4}, Ljava/util/LinkedList;->size()I

    move-result v4

    invoke-virtual {v13}, Ljava/util/LinkedList;->size()I

    move-result v5

    add-int/2addr v4, v5

    const/16 v5, 0x3e8

    if-gt v4, v5, :cond_5c

    invoke-virtual/range {p4 .. p4}, Ljava/util/LinkedList;->size()I

    move-result v4

    invoke-virtual {v13}, Ljava/util/LinkedList;->size()I

    move-result v5

    add-int/2addr v4, v5

    if-gez v4, :cond_c35

    .line 4654
    :cond_5c
    new-instance v2, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/core/ScriptException;

    const-string v3, "Stack size exceeded range"

    invoke-direct {v2, v3}, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/core/ScriptException;-><init>(Ljava/lang/String;)V

    throw v2

    .line 3973
    :cond_64
    const/4 v4, 0x0

    goto :goto_35

    .line 3984
    :cond_66
    invoke-virtual {v2}, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/script/b;->isOpCode()Z

    move-result v5

    if-nez v5, :cond_89

    .line 3985
    iget-object v5, v2, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/script/b;->data:[B

    array-length v5, v5

    int-to-long v6, v5

    const-wide/16 v8, 0x208

    cmp-long v5, v6, v8

    if-lez v5, :cond_7e

    .line 3986
    new-instance v2, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/core/ScriptException;

    const-string v3, "Attempted to push a data string larger than 520 bytes"

    invoke-direct {v2, v3}, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/core/ScriptException;-><init>(Ljava/lang/String;)V

    throw v2

    .line 3988
    :cond_7e
    if-eqz v4, :cond_1d

    .line 3991
    iget-object v2, v2, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/script/b;->data:[B

    move-object/from16 v0, p4

    invoke-virtual {v0, v2}, Ljava/util/LinkedList;->add(Ljava/lang/Object;)Z

    move v2, v11

    goto :goto_44

    .line 3993
    :cond_89
    iget v8, v2, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/script/b;->opcode:I

    .line 3994
    const/16 v5, 0x60

    if-le v8, v5, :cond_9d

    .line 3995
    add-int/lit8 v10, v3, 0x1

    .line 3996
    const/16 v3, 0xc9

    if-le v10, v3, :cond_9e

    .line 3997
    new-instance v2, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/core/ScriptException;

    const-string v3, "More script operations than is allowed"

    invoke-direct {v2, v3}, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/core/ScriptException;-><init>(Ljava/lang/String;)V

    throw v2

    :cond_9d
    move v10, v3

    .line 4000
    :cond_9e
    const/16 v3, 0x65

    if-eq v8, v3, :cond_a6

    const/16 v3, 0x66

    if-ne v8, v3, :cond_ae

    .line 4001
    :cond_a6
    new-instance v2, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/core/ScriptException;

    const-string v3, "Script included OP_VERIF or OP_VERNOTIF"

    invoke-direct {v2, v3}, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/core/ScriptException;-><init>(Ljava/lang/String;)V

    throw v2

    .line 4877
    :cond_ae
    packed-switch v8, :pswitch_data_c4e

    .line 4907
    :pswitch_b1
    const/4 v3, 0x0

    .line 4004
    :goto_b2
    if-eqz v3, :cond_cc

    .line 4005
    new-instance v2, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/core/ScriptException;

    const-string v3, "Script included a disabled Script Op."

    invoke-direct {v2, v3}, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/core/ScriptException;-><init>(Ljava/lang/String;)V

    throw v2

    .line 4886
    :pswitch_bc
    const/4 v3, 0x1

    goto :goto_b2

    .line 4898
    :pswitch_be
    sget-object v3, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/script/Script$VerifyFlag;->MONOLITH_OPCODES:Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/script/Script$VerifyFlag;

    move-object/from16 v0, p6

    invoke-interface {v0, v3}, Ljava/util/Set;->contains(Ljava/lang/Object;)Z

    move-result v3

    if-nez v3, :cond_ca

    const/4 v3, 0x1

    goto :goto_b2

    :cond_ca
    const/4 v3, 0x0

    goto :goto_b2

    .line 4008
    :cond_cc
    packed-switch v8, :pswitch_data_c8a

    .line 4039
    :pswitch_cf
    if-eqz v4, :cond_c4b

    .line 4042
    packed-switch v8, :pswitch_data_c9a

    .line 4649
    :pswitch_d4
    new-instance v2, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/core/ScriptException;

    new-instance v3, Ljava/lang/StringBuilder;

    const-string v4, "Script used a reserved opcode "

    invoke-direct {v3, v4}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V

    invoke-virtual {v3, v8}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;

    move-result-object v3

    invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;

    move-result-object v3

    invoke-direct {v2, v3}, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/core/ScriptException;-><init>(Ljava/lang/String;)V

    throw v2

    .line 4010
    :pswitch_e9
    if-nez v4, :cond_f6

    .line 4011
    const/4 v2, 0x0

    invoke-static {v2}, Ljava/lang/Boolean;->valueOf(Z)Ljava/lang/Boolean;

    move-result-object v2

    invoke-virtual {v14, v2}, Ljava/util/LinkedList;->add(Ljava/lang/Object;)Z

    move v3, v10

    .line 4012
    goto/16 :goto_1d

    .line 4014
    :cond_f6
    invoke-virtual/range {p4 .. p4}, Ljava/util/LinkedList;->size()I

    move-result v2

    if-gtz v2, :cond_104

    .line 4015
    new-instance v2, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/core/ScriptException;

    const-string v3, "Attempted OP_IF on an empty stack"

    invoke-direct {v2, v3}, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/core/ScriptException;-><init>(Ljava/lang/String;)V

    throw v2

    .line 4016
    :cond_104
    invoke-virtual/range {p4 .. p4}, Ljava/util/LinkedList;->pollLast()Ljava/lang/Object;

    move-result-object v2

    check-cast v2, [B

    invoke-static {v2}, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/script/Script;->castToBool([B)Z

    move-result v2

    invoke-static {v2}, Ljava/lang/Boolean;->valueOf(Z)Ljava/lang/Boolean;

    move-result-object v2

    invoke-virtual {v14, v2}, Ljava/util/LinkedList;->add(Ljava/lang/Object;)Z

    move v3, v10

    .line 4017
    goto/16 :goto_1d

    .line 4019
    :pswitch_118
    if-nez v4, :cond_125

    .line 4020
    const/4 v2, 0x0

    invoke-static {v2}, Ljava/lang/Boolean;->valueOf(Z)Ljava/lang/Boolean;

    move-result-object v2

    invoke-virtual {v14, v2}, Ljava/util/LinkedList;->add(Ljava/lang/Object;)Z

    move v3, v10

    .line 4021
    goto/16 :goto_1d

    .line 4023
    :cond_125
    invoke-virtual/range {p4 .. p4}, Ljava/util/LinkedList;->size()I

    move-result v2

    if-gtz v2, :cond_133

    .line 4024
    new-instance v2, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/core/ScriptException;

    const-string v3, "Attempted OP_NOTIF on an empty stack"

    invoke-direct {v2, v3}, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/core/ScriptException;-><init>(Ljava/lang/String;)V

    throw v2

    .line 4025
    :cond_133
    invoke-virtual/range {p4 .. p4}, Ljava/util/LinkedList;->pollLast()Ljava/lang/Object;

    move-result-object v2

    check-cast v2, [B

    invoke-static {v2}, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/script/Script;->castToBool([B)Z

    move-result v2

    if-nez v2, :cond_14a

    const/4 v2, 0x1

    :goto_140
    invoke-static {v2}, Ljava/lang/Boolean;->valueOf(Z)Ljava/lang/Boolean;

    move-result-object v2

    invoke-virtual {v14, v2}, Ljava/util/LinkedList;->add(Ljava/lang/Object;)Z

    move v3, v10

    .line 4026
    goto/16 :goto_1d

    .line 4025
    :cond_14a
    const/4 v2, 0x0

    goto :goto_140

    .line 4028
    :pswitch_14c
    invoke-virtual {v14}, Ljava/util/LinkedList;->isEmpty()Z

    move-result v2

    if-eqz v2, :cond_15a

    .line 4029
    new-instance v2, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/core/ScriptException;

    const-string v3, "Attempted OP_ELSE without OP_IF/NOTIF"

    invoke-direct {v2, v3}, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/core/ScriptException;-><init>(Ljava/lang/String;)V

    throw v2

    .line 4030
    :cond_15a
    invoke-virtual {v14}, Ljava/util/LinkedList;->pollLast()Ljava/lang/Object;

    move-result-object v2

    check-cast v2, Ljava/lang/Boolean;

    invoke-virtual {v2}, Ljava/lang/Boolean;->booleanValue()Z

    move-result v2

    if-nez v2, :cond_171

    const/4 v2, 0x1

    :goto_167
    invoke-static {v2}, Ljava/lang/Boolean;->valueOf(Z)Ljava/lang/Boolean;

    move-result-object v2

    invoke-virtual {v14, v2}, Ljava/util/LinkedList;->add(Ljava/lang/Object;)Z

    move v3, v10

    .line 4031
    goto/16 :goto_1d

    .line 4030
    :cond_171
    const/4 v2, 0x0

    goto :goto_167

    .line 4033
    :pswitch_173
    invoke-virtual {v14}, Ljava/util/LinkedList;->isEmpty()Z

    move-result v2

    if-eqz v2, :cond_181

    .line 4034
    new-instance v2, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/core/ScriptException;

    const-string v3, "Attempted OP_ENDIF without OP_IF/NOTIF"

    invoke-direct {v2, v3}, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/core/ScriptException;-><init>(Ljava/lang/String;)V

    throw v2

    .line 4035
    :cond_181
    invoke-virtual {v14}, Ljava/util/LinkedList;->pollLast()Ljava/lang/Object;

    move v3, v10

    .line 4036
    goto/16 :goto_1d

    .line 4045
    :pswitch_187
    sget-object v2, Ljava/math/BigInteger;->ONE:Ljava/math/BigInteger;

    invoke-virtual {v2}, Ljava/math/BigInteger;->negate()Ljava/math/BigInteger;

    move-result-object v2

    invoke-static {v2}, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/core/aq;->d(Ljava/math/BigInteger;)[B

    move-result-object v2

    invoke-static {v2}, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/core/aq;->reverseBytes([B)[B

    move-result-object v2

    move-object/from16 v0, p4

    invoke-virtual {v0, v2}, Ljava/util/LinkedList;->add(Ljava/lang/Object;)Z

    move v2, v11

    move v3, v10

    .line 4046
    goto/16 :goto_44

    .line 4063
    :pswitch_19e
    invoke-static {v8}, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/script/Script;->decodeFromOpN(I)I

    move-result v2

    int-to-long v2, v2

    invoke-static {v2, v3}, Ljava/math/BigInteger;->valueOf(J)Ljava/math/BigInteger;

    move-result-object v2

    invoke-static {v2}, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/core/aq;->d(Ljava/math/BigInteger;)[B

    move-result-object v2

    invoke-static {v2}, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/core/aq;->reverseBytes([B)[B

    move-result-object v2

    move-object/from16 v0, p4

    invoke-virtual {v0, v2}, Ljava/util/LinkedList;->add(Ljava/lang/Object;)Z

    move v2, v11

    move v3, v10

    .line 4064
    goto/16 :goto_44

    :pswitch_1b8
    move v2, v11

    move v3, v10

    .line 4066
    goto/16 :goto_44

    .line 4068
    :pswitch_1bc
    invoke-virtual/range {p4 .. p4}, Ljava/util/LinkedList;->size()I

    move-result v2

    if-gtz v2, :cond_1ca

    .line 4069
    new-instance v2, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/core/ScriptException;

    const-string v3, "Attempted OP_VERIFY on an empty stack"

    invoke-direct {v2, v3}, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/core/ScriptException;-><init>(Ljava/lang/String;)V

    throw v2

    .line 4070
    :cond_1ca
    invoke-virtual/range {p4 .. p4}, Ljava/util/LinkedList;->pollLast()Ljava/lang/Object;

    move-result-object v2

    check-cast v2, [B

    invoke-static {v2}, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/script/Script;->castToBool([B)Z

    move-result v2

    if-nez v2, :cond_c47

    .line 4071
    new-instance v2, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/core/ScriptException;

    const-string v3, "OP_VERIFY failed"

    invoke-direct {v2, v3}, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/core/ScriptException;-><init>(Ljava/lang/String;)V

    throw v2

    .line 4074
    :pswitch_1de
    new-instance v2, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/core/ScriptException;

    const-string v3, "Script called OP_RETURN"

    invoke-direct {v2, v3}, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/core/ScriptException;-><init>(Ljava/lang/String;)V

    throw v2

    .line 4076
    :pswitch_1e6
    invoke-virtual/range {p4 .. p4}, Ljava/util/LinkedList;->size()I

    move-result v2

    if-gtz v2, :cond_1f4

    .line 4077
    new-instance v2, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/core/ScriptException;

    const-string v3, "Attempted OP_TOALTSTACK on an empty stack"

    invoke-direct {v2, v3}, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/core/ScriptException;-><init>(Ljava/lang/String;)V

    throw v2

    .line 4078
    :cond_1f4
    invoke-virtual/range {p4 .. p4}, Ljava/util/LinkedList;->pollLast()Ljava/lang/Object;

    move-result-object v2

    invoke-virtual {v13, v2}, Ljava/util/LinkedList;->add(Ljava/lang/Object;)Z

    move v2, v11

    move v3, v10

    .line 4079
    goto/16 :goto_44

    .line 4081
    :pswitch_1ff
    invoke-virtual {v13}, Ljava/util/LinkedList;->size()I

    move-result v2

    if-gtz v2, :cond_20d

    .line 4082
    new-instance v2, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/core/ScriptException;

    const-string v3, "Attempted OP_FROMALTSTACK on an empty altstack"

    invoke-direct {v2, v3}, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/core/ScriptException;-><init>(Ljava/lang/String;)V

    throw v2

    .line 4083
    :cond_20d
    invoke-virtual {v13}, Ljava/util/LinkedList;->pollLast()Ljava/lang/Object;

    move-result-object v2

    move-object/from16 v0, p4

    invoke-virtual {v0, v2}, Ljava/util/LinkedList;->add(Ljava/lang/Object;)Z

    move v2, v11

    move v3, v10

    .line 4084
    goto/16 :goto_44

    .line 4086
    :pswitch_21a
    invoke-virtual/range {p4 .. p4}, Ljava/util/LinkedList;->size()I

    move-result v2

    const/4 v3, 0x2

    if-ge v2, v3, :cond_229

    .line 4087
    new-instance v2, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/core/ScriptException;

    const-string v3, "Attempted OP_2DROP on a stack with size < 2"

    invoke-direct {v2, v3}, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/core/ScriptException;-><init>(Ljava/lang/String;)V

    throw v2

    .line 4088
    :cond_229
    invoke-virtual/range {p4 .. p4}, Ljava/util/LinkedList;->pollLast()Ljava/lang/Object;

    .line 4089
    invoke-virtual/range {p4 .. p4}, Ljava/util/LinkedList;->pollLast()Ljava/lang/Object;

    move v2, v11

    move v3, v10

    .line 4090
    goto/16 :goto_44

    .line 4092
    :pswitch_233
    invoke-virtual/range {p4 .. p4}, Ljava/util/LinkedList;->size()I

    move-result v2

    const/4 v3, 0x2

    if-ge v2, v3, :cond_242

    .line 4093
    new-instance v2, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/core/ScriptException;

    const-string v3, "Attempted OP_2DUP on a stack with size < 2"

    invoke-direct {v2, v3}, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/core/ScriptException;-><init>(Ljava/lang/String;)V

    throw v2

    .line 4094
    :cond_242
    invoke-virtual/range {p4 .. p4}, Ljava/util/LinkedList;->descendingIterator()Ljava/util/Iterator;

    move-result-object v3

    .line 4095
    invoke-interface {v3}, Ljava/util/Iterator;->next()Ljava/lang/Object;

    move-result-object v2

    check-cast v2, [B

    .line 4096
    invoke-interface {v3}, Ljava/util/Iterator;->next()Ljava/lang/Object;

    move-result-object v3

    move-object/from16 v0, p4

    invoke-virtual {v0, v3}, Ljava/util/LinkedList;->add(Ljava/lang/Object;)Z

    .line 4097
    move-object/from16 v0, p4

    invoke-virtual {v0, v2}, Ljava/util/LinkedList;->add(Ljava/lang/Object;)Z

    move v2, v11

    move v3, v10

    .line 4098
    goto/16 :goto_44

    .line 4100
    :pswitch_25e
    invoke-virtual/range {p4 .. p4}, Ljava/util/LinkedList;->size()I

    move-result v2

    const/4 v3, 0x3

    if-ge v2, v3, :cond_26d

    .line 4101
    new-instance v2, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/core/ScriptException;

    const-string v3, "Attempted OP_3DUP on a stack with size < 3"

    invoke-direct {v2, v3}, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/core/ScriptException;-><init>(Ljava/lang/String;)V

    throw v2

    .line 4102
    :cond_26d
    invoke-virtual/range {p4 .. p4}, Ljava/util/LinkedList;->descendingIterator()Ljava/util/Iterator;

    move-result-object v4

    .line 4103
    invoke-interface {v4}, Ljava/util/Iterator;->next()Ljava/lang/Object;

    move-result-object v2

    check-cast v2, [B

    .line 4104
    invoke-interface {v4}, Ljava/util/Iterator;->next()Ljava/lang/Object;

    move-result-object v3

    check-cast v3, [B

    .line 4105
    invoke-interface {v4}, Ljava/util/Iterator;->next()Ljava/lang/Object;

    move-result-object v4

    move-object/from16 v0, p4

    invoke-virtual {v0, v4}, Ljava/util/LinkedList;->add(Ljava/lang/Object;)Z

    .line 4106
    move-object/from16 v0, p4

    invoke-virtual {v0, v3}, Ljava/util/LinkedList;->add(Ljava/lang/Object;)Z

    .line 4107
    move-object/from16 v0, p4

    invoke-virtual {v0, v2}, Ljava/util/LinkedList;->add(Ljava/lang/Object;)Z

    move v2, v11

    move v3, v10

    .line 4108
    goto/16 :goto_44

    .line 4110
    :pswitch_294
    invoke-virtual/range {p4 .. p4}, Ljava/util/LinkedList;->size()I

    move-result v2

    const/4 v3, 0x4

    if-ge v2, v3, :cond_2a3

    .line 4111
    new-instance v2, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/core/ScriptException;

    const-string v3, "Attempted OP_2OVER on a stack with size < 4"

    invoke-direct {v2, v3}, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/core/ScriptException;-><init>(Ljava/lang/String;)V

    throw v2

    .line 4112
    :cond_2a3
    invoke-virtual/range {p4 .. p4}, Ljava/util/LinkedList;->descendingIterator()Ljava/util/Iterator;

    move-result-object v3

    .line 4113
    invoke-interface {v3}, Ljava/util/Iterator;->next()Ljava/lang/Object;

    .line 4114
    invoke-interface {v3}, Ljava/util/Iterator;->next()Ljava/lang/Object;

    .line 4115
    invoke-interface {v3}, Ljava/util/Iterator;->next()Ljava/lang/Object;

    move-result-object v2

    check-cast v2, [B

    .line 4116
    invoke-interface {v3}, Ljava/util/Iterator;->next()Ljava/lang/Object;

    move-result-object v3

    move-object/from16 v0, p4

    invoke-virtual {v0, v3}, Ljava/util/LinkedList;->add(Ljava/lang/Object;)Z

    .line 4117
    move-object/from16 v0, p4

    invoke-virtual {v0, v2}, Ljava/util/LinkedList;->add(Ljava/lang/Object;)Z

    move v2, v11

    move v3, v10

    .line 4118
    goto/16 :goto_44

    .line 4120
    :pswitch_2c5
    invoke-virtual/range {p4 .. p4}, Ljava/util/LinkedList;->size()I

    move-result v2

    const/4 v3, 0x6

    if-ge v2, v3, :cond_2d4

    .line 4121
    new-instance v2, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/core/ScriptException;

    const-string v3, "Attempted OP_2ROT on a stack with size < 6"

    invoke-direct {v2, v3}, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/core/ScriptException;-><init>(Ljava/lang/String;)V

    throw v2

    .line 4122
    :cond_2d4
    invoke-virtual/range {p4 .. p4}, Ljava/util/LinkedList;->pollLast()Ljava/lang/Object;

    move-result-object v2

    check-cast v2, [B

    .line 4123
    invoke-virtual/range {p4 .. p4}, Ljava/util/LinkedList;->pollLast()Ljava/lang/Object;

    move-result-object v3

    check-cast v3, [B

    .line 4124
    invoke-virtual/range {p4 .. p4}, Ljava/util/LinkedList;->pollLast()Ljava/lang/Object;

    move-result-object v4

    check-cast v4, [B

    .line 4125
    invoke-virtual/range {p4 .. p4}, Ljava/util/LinkedList;->pollLast()Ljava/lang/Object;

    move-result-object v5

    check-cast v5, [B

    .line 4126
    invoke-virtual/range {p4 .. p4}, Ljava/util/LinkedList;->pollLast()Ljava/lang/Object;

    move-result-object v6

    check-cast v6, [B

    .line 4127
    invoke-virtual/range {p4 .. p4}, Ljava/util/LinkedList;->pollLast()Ljava/lang/Object;

    move-result-object v7

    check-cast v7, [B

    .line 4128
    move-object/from16 v0, p4

    invoke-virtual {v0, v5}, Ljava/util/LinkedList;->add(Ljava/lang/Object;)Z

    .line 4129
    move-object/from16 v0, p4

    invoke-virtual {v0, v4}, Ljava/util/LinkedList;->add(Ljava/lang/Object;)Z

    .line 4130
    move-object/from16 v0, p4

    invoke-virtual {v0, v3}, Ljava/util/LinkedList;->add(Ljava/lang/Object;)Z

    .line 4131
    move-object/from16 v0, p4

    invoke-virtual {v0, v2}, Ljava/util/LinkedList;->add(Ljava/lang/Object;)Z

    .line 4132
    move-object/from16 v0, p4

    invoke-virtual {v0, v7}, Ljava/util/LinkedList;->add(Ljava/lang/Object;)Z

    .line 4133
    move-object/from16 v0, p4

    invoke-virtual {v0, v6}, Ljava/util/LinkedList;->add(Ljava/lang/Object;)Z

    move v2, v11

    move v3, v10

    .line 4134
    goto/16 :goto_44

    .line 4136
    :pswitch_31a
    invoke-virtual/range {p4 .. p4}, Ljava/util/LinkedList;->size()I

    move-result v2

    const/4 v3, 0x4

    if-ge v2, v3, :cond_329

    .line 4137
    new-instance v2, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/core/ScriptException;

    const-string v3, "Attempted OP_2SWAP on a stack with size < 4"

    invoke-direct {v2, v3}, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/core/ScriptException;-><init>(Ljava/lang/String;)V

    throw v2

    .line 4138
    :cond_329
    invoke-virtual/range {p4 .. p4}, Ljava/util/LinkedList;->pollLast()Ljava/lang/Object;

    move-result-object v2

    check-cast v2, [B

    .line 4139
    invoke-virtual/range {p4 .. p4}, Ljava/util/LinkedList;->pollLast()Ljava/lang/Object;

    move-result-object v3

    check-cast v3, [B

    .line 4140
    invoke-virtual/range {p4 .. p4}, Ljava/util/LinkedList;->pollLast()Ljava/lang/Object;

    move-result-object v4

    check-cast v4, [B

    .line 4141
    invoke-virtual/range {p4 .. p4}, Ljava/util/LinkedList;->pollLast()Ljava/lang/Object;

    move-result-object v5

    check-cast v5, [B

    .line 4142
    move-object/from16 v0, p4

    invoke-virtual {v0, v3}, Ljava/util/LinkedList;->add(Ljava/lang/Object;)Z

    .line 4143
    move-object/from16 v0, p4

    invoke-virtual {v0, v2}, Ljava/util/LinkedList;->add(Ljava/lang/Object;)Z

    .line 4144
    move-object/from16 v0, p4

    invoke-virtual {v0, v5}, Ljava/util/LinkedList;->add(Ljava/lang/Object;)Z

    .line 4145
    move-object/from16 v0, p4

    invoke-virtual {v0, v4}, Ljava/util/LinkedList;->add(Ljava/lang/Object;)Z

    move v2, v11

    move v3, v10

    .line 4146
    goto/16 :goto_44

    .line 4148
    :pswitch_359
    invoke-virtual/range {p4 .. p4}, Ljava/util/LinkedList;->size()I

    move-result v2

    if-gtz v2, :cond_367

    .line 4149
    new-instance v2, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/core/ScriptException;

    const-string v3, "Attempted OP_IFDUP on an empty stack"

    invoke-direct {v2, v3}, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/core/ScriptException;-><init>(Ljava/lang/String;)V

    throw v2

    .line 4150
    :cond_367
    invoke-virtual/range {p4 .. p4}, Ljava/util/LinkedList;->getLast()Ljava/lang/Object;

    move-result-object v2

    check-cast v2, [B

    invoke-static {v2}, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/script/Script;->castToBool([B)Z

    move-result v2

    if-eqz v2, :cond_c47

    .line 4151
    invoke-virtual/range {p4 .. p4}, Ljava/util/LinkedList;->getLast()Ljava/lang/Object;

    move-result-object v2

    move-object/from16 v0, p4

    invoke-virtual {v0, v2}, Ljava/util/LinkedList;->add(Ljava/lang/Object;)Z

    move v2, v11

    move v3, v10

    goto/16 :goto_44

    .line 4154
    :pswitch_380
    invoke-virtual/range {p4 .. p4}, Ljava/util/LinkedList;->size()I

    move-result v2

    int-to-long v2, v2

    invoke-static {v2, v3}, Ljava/math/BigInteger;->valueOf(J)Ljava/math/BigInteger;

    move-result-object v2

    invoke-static {v2}, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/core/aq;->d(Ljava/math/BigInteger;)[B

    move-result-object v2

    invoke-static {v2}, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/core/aq;->reverseBytes([B)[B

    move-result-object v2

    move-object/from16 v0, p4

    invoke-virtual {v0, v2}, Ljava/util/LinkedList;->add(Ljava/lang/Object;)Z

    move v2, v11

    move v3, v10

    .line 4155
    goto/16 :goto_44

    .line 4157
    :pswitch_39a
    invoke-virtual/range {p4 .. p4}, Ljava/util/LinkedList;->size()I

    move-result v2

    if-gtz v2, :cond_3a8

    .line 4158
    new-instance v2, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/core/ScriptException;

    const-string v3, "Attempted OP_DROP on an empty stack"

    invoke-direct {v2, v3}, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/core/ScriptException;-><init>(Ljava/lang/String;)V

    throw v2

    .line 4159
    :cond_3a8
    invoke-virtual/range {p4 .. p4}, Ljava/util/LinkedList;->pollLast()Ljava/lang/Object;

    move v2, v11

    move v3, v10

    .line 4160
    goto/16 :goto_44

    .line 4162
    :pswitch_3af
    invoke-virtual/range {p4 .. p4}, Ljava/util/LinkedList;->size()I

    move-result v2

    if-gtz v2, :cond_3bd

    .line 4163
    new-instance v2, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/core/ScriptException;

    const-string v3, "Attempted OP_DUP on an empty stack"

    invoke-direct {v2, v3}, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/core/ScriptException;-><init>(Ljava/lang/String;)V

    throw v2

    .line 4164
    :cond_3bd
    invoke-virtual/range {p4 .. p4}, Ljava/util/LinkedList;->getLast()Ljava/lang/Object;

    move-result-object v2

    move-object/from16 v0, p4

    invoke-virtual {v0, v2}, Ljava/util/LinkedList;->add(Ljava/lang/Object;)Z

    move v2, v11

    move v3, v10

    .line 4165
    goto/16 :goto_44

    .line 4167
    :pswitch_3ca
    invoke-virtual/range {p4 .. p4}, Ljava/util/LinkedList;->size()I

    move-result v2

    const/4 v3, 0x2

    if-ge v2, v3, :cond_3d9

    .line 4168
    new-instance v2, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/core/ScriptException;

    const-string v3, "Attempted OP_NIP on a stack with size < 2"

    invoke-direct {v2, v3}, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/core/ScriptException;-><init>(Ljava/lang/String;)V

    throw v2

    .line 4169
    :cond_3d9
    invoke-virtual/range {p4 .. p4}, Ljava/util/LinkedList;->pollLast()Ljava/lang/Object;

    move-result-object v2

    check-cast v2, [B

    .line 4170
    invoke-virtual/range {p4 .. p4}, Ljava/util/LinkedList;->pollLast()Ljava/lang/Object;

    .line 4171
    move-object/from16 v0, p4

    invoke-virtual {v0, v2}, Ljava/util/LinkedList;->add(Ljava/lang/Object;)Z

    move v2, v11

    move v3, v10

    .line 4172
    goto/16 :goto_44

    .line 4174
    :pswitch_3eb
    invoke-virtual/range {p4 .. p4}, Ljava/util/LinkedList;->size()I

    move-result v2

    const/4 v3, 0x2

    if-ge v2, v3, :cond_3fa

    .line 4175
    new-instance v2, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/core/ScriptException;

    const-string v3, "Attempted OP_OVER on a stack with size < 2"

    invoke-direct {v2, v3}, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/core/ScriptException;-><init>(Ljava/lang/String;)V

    throw v2

    .line 4176
    :cond_3fa
    invoke-virtual/range {p4 .. p4}, Ljava/util/LinkedList;->descendingIterator()Ljava/util/Iterator;

    move-result-object v2

    .line 4177
    invoke-interface {v2}, Ljava/util/Iterator;->next()Ljava/lang/Object;

    .line 4178
    invoke-interface {v2}, Ljava/util/Iterator;->next()Ljava/lang/Object;

    move-result-object v2

    move-object/from16 v0, p4

    invoke-virtual {v0, v2}, Ljava/util/LinkedList;->add(Ljava/lang/Object;)Z

    move v2, v11

    move v3, v10

    .line 4179
    goto/16 :goto_44

    .line 4182
    :pswitch_40e
    invoke-virtual/range {p4 .. p4}, Ljava/util/LinkedList;->size()I

    move-result v2

    if-gtz v2, :cond_41c

    .line 4183
    new-instance v2, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/core/ScriptException;

    const-string v3, "Attempted OP_PICK/OP_ROLL on an empty stack"

    invoke-direct {v2, v3}, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/core/ScriptException;-><init>(Ljava/lang/String;)V

    throw v2

    .line 4184
    :cond_41c
    invoke-virtual/range {p4 .. p4}, Ljava/util/LinkedList;->pollLast()Ljava/lang/Object;

    move-result-object v2

    check-cast v2, [B

    invoke-static {v2, v15}, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/script/Script;->a([BZ)Ljava/math/BigInteger;

    move-result-object v2

    invoke-virtual {v2}, Ljava/math/BigInteger;->longValue()J

    move-result-wide v4

    .line 4185
    const-wide/16 v2, 0x0

    cmp-long v2, v4, v2

    if-ltz v2, :cond_439

    invoke-virtual/range {p4 .. p4}, Ljava/util/LinkedList;->size()I

    move-result v2

    int-to-long v2, v2

    cmp-long v2, v4, v2

    if-ltz v2, :cond_441

    .line 4186
    :cond_439
    new-instance v2, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/core/ScriptException;

    const-string v3, "OP_PICK/OP_ROLL attempted to get data deeper than stack size"

    invoke-direct {v2, v3}, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/core/ScriptException;-><init>(Ljava/lang/String;)V

    throw v2

    .line 4187
    :cond_441
    invoke-virtual/range {p4 .. p4}, Ljava/util/LinkedList;->descendingIterator()Ljava/util/Iterator;

    move-result-object v6

    .line 4188
    const-wide/16 v2, 0x0

    :goto_447
    cmp-long v7, v2, v4

    if-gez v7, :cond_453

    .line 4189
    invoke-interface {v6}, Ljava/util/Iterator;->next()Ljava/lang/Object;

    .line 4188
    const-wide/16 v18, 0x1

    add-long v2, v2, v18

    goto :goto_447

    .line 4190
    :cond_453
    invoke-interface {v6}, Ljava/util/Iterator;->next()Ljava/lang/Object;

    move-result-object v2

    check-cast v2, [B

    .line 4191
    const/16 v3, 0x7a

    if-ne v8, v3, :cond_460

    .line 4192
    invoke-interface {v6}, Ljava/util/Iterator;->remove()V

    .line 4193
    :cond_460
    move-object/from16 v0, p4

    invoke-virtual {v0, v2}, Ljava/util/LinkedList;->add(Ljava/lang/Object;)Z

    move v2, v11

    move v3, v10

    .line 4194
    goto/16 :goto_44

    .line 4196
    :pswitch_469
    invoke-virtual/range {p4 .. p4}, Ljava/util/LinkedList;->size()I

    move-result v2

    const/4 v3, 0x3

    if-ge v2, v3, :cond_478

    .line 4197
    new-instance v2, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/core/ScriptException;

    const-string v3, "Attempted OP_ROT on a stack with size < 3"

    invoke-direct {v2, v3}, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/core/ScriptException;-><init>(Ljava/lang/String;)V

    throw v2

    .line 4198
    :cond_478
    invoke-virtual/range {p4 .. p4}, Ljava/util/LinkedList;->pollLast()Ljava/lang/Object;

    move-result-object v2

    check-cast v2, [B

    .line 4199
    invoke-virtual/range {p4 .. p4}, Ljava/util/LinkedList;->pollLast()Ljava/lang/Object;

    move-result-object v3

    check-cast v3, [B

    .line 4200
    invoke-virtual/range {p4 .. p4}, Ljava/util/LinkedList;->pollLast()Ljava/lang/Object;

    move-result-object v4

    check-cast v4, [B

    .line 4201
    move-object/from16 v0, p4

    invoke-virtual {v0, v3}, Ljava/util/LinkedList;->add(Ljava/lang/Object;)Z

    .line 4202
    move-object/from16 v0, p4

    invoke-virtual {v0, v2}, Ljava/util/LinkedList;->add(Ljava/lang/Object;)Z

    .line 4203
    move-object/from16 v0, p4

    invoke-virtual {v0, v4}, Ljava/util/LinkedList;->add(Ljava/lang/Object;)Z

    move v2, v11

    move v3, v10

    .line 4204
    goto/16 :goto_44

    .line 4207
    :pswitch_49d
    invoke-virtual/range {p4 .. p4}, Ljava/util/LinkedList;->size()I

    move-result v2

    const/4 v3, 0x2

    if-ge v2, v3, :cond_4ac

    .line 4208
    new-instance v2, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/core/ScriptException;

    const-string v3, "Attempted OP_SWAP on a stack with size < 2"

    invoke-direct {v2, v3}, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/core/ScriptException;-><init>(Ljava/lang/String;)V

    throw v2

    .line 4209
    :cond_4ac
    invoke-virtual/range {p4 .. p4}, Ljava/util/LinkedList;->pollLast()Ljava/lang/Object;

    move-result-object v2

    check-cast v2, [B

    .line 4210
    invoke-virtual/range {p4 .. p4}, Ljava/util/LinkedList;->pollLast()Ljava/lang/Object;

    move-result-object v3

    check-cast v3, [B

    .line 4211
    move-object/from16 v0, p4

    invoke-virtual {v0, v2}, Ljava/util/LinkedList;->add(Ljava/lang/Object;)Z

    .line 4212
    move-object/from16 v0, p4

    invoke-virtual {v0, v3}, Ljava/util/LinkedList;->add(Ljava/lang/Object;)Z

    .line 4213
    const/16 v3, 0x7d

    if-ne v8, v3, :cond_c47

    .line 4214
    move-object/from16 v0, p4

    invoke-virtual {v0, v2}, Ljava/util/LinkedList;->add(Ljava/lang/Object;)Z

    move v2, v11

    move v3, v10

    goto/16 :goto_44

    .line 4218
    :pswitch_4cf
    invoke-virtual/range {p4 .. p4}, Ljava/util/LinkedList;->size()I

    move-result v2

    const/4 v3, 0x2

    if-ge v2, v3, :cond_4de

    .line 4219
    new-instance v2, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/core/ScriptException;

    const-string v3, "Invalid stack operation."

    invoke-direct {v2, v3}, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/core/ScriptException;-><init>(Ljava/lang/String;)V

    throw v2

    .line 4220
    :cond_4de
    invoke-virtual/range {p4 .. p4}, Ljava/util/LinkedList;->pollLast()Ljava/lang/Object;

    move-result-object v2

    check-cast v2, [B

    .line 4221
    invoke-virtual/range {p4 .. p4}, Ljava/util/LinkedList;->pollLast()Ljava/lang/Object;

    move-result-object v3

    check-cast v3, [B

    .line 4223
    array-length v4, v3

    array-length v5, v2

    add-int/2addr v4, v5

    .line 4224
    int-to-long v6, v4

    const-wide/16 v8, 0x208

    cmp-long v5, v6, v8

    if-lez v5, :cond_4fc

    .line 4225
    new-instance v2, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/core/ScriptException;

    const-string v3, "Push value size limit exceeded."

    invoke-direct {v2, v3}, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/core/ScriptException;-><init>(Ljava/lang/String;)V

    throw v2

    .line 4227
    :cond_4fc
    new-array v4, v4, [B

    .line 4228
    const/4 v5, 0x0

    const/4 v6, 0x0

    array-length v7, v3

    invoke-static {v3, v5, v4, v6, v7}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V

    .line 4229
    const/4 v5, 0x0

    array-length v3, v3

    array-length v6, v2

    invoke-static {v2, v5, v4, v3, v6}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V

    .line 4230
    move-object/from16 v0, p4

    invoke-virtual {v0, v4}, Ljava/util/LinkedList;->addLast(Ljava/lang/Object;)V

    move v2, v11

    move v3, v10

    .line 4232
    goto/16 :goto_44

    .line 4235
    :pswitch_513
    invoke-virtual/range {p4 .. p4}, Ljava/util/LinkedList;->size()I

    move-result v2

    const/4 v3, 0x2

    if-ge v2, v3, :cond_522

    .line 4236
    new-instance v2, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/core/ScriptException;

    const-string v3, "Invalid stack operation."

    invoke-direct {v2, v3}, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/core/ScriptException;-><init>(Ljava/lang/String;)V

    throw v2

    .line 4238
    :cond_522
    invoke-virtual/range {p4 .. p4}, Ljava/util/LinkedList;->pollLast()Ljava/lang/Object;

    move-result-object v2

    check-cast v2, [B

    invoke-static {v2, v15}, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/script/Script;->a([BZ)Ljava/math/BigInteger;

    move-result-object v2

    .line 4244
    const-wide/32 v4, 0x7fffffff

    invoke-static {v4, v5}, Ljava/math/BigInteger;->valueOf(J)Ljava/math/BigInteger;

    move-result-object v3

    .line 4245
    invoke-virtual {v2, v3}, Ljava/math/BigInteger;->compareTo(Ljava/math/BigInteger;)I

    move-result v3

    if-ltz v3, :cond_541

    .line 4246
    new-instance v2, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/core/ScriptException;

    const-string v3, "Invalid OP_SPLIT range."

    invoke-direct {v2, v3}, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/core/ScriptException;-><init>(Ljava/lang/String;)V

    throw v2

    .line 4248
    :cond_541
    invoke-virtual {v2}, Ljava/math/BigInteger;->intValue()I

    move-result v3

    .line 4249
    invoke-virtual/range {p4 .. p4}, Ljava/util/LinkedList;->pollLast()Ljava/lang/Object;

    move-result-object v2

    check-cast v2, [B

    .line 4251
    array-length v4, v2

    if-gt v3, v4, :cond_550

    if-gez v3, :cond_558

    .line 4252
    :cond_550
    new-instance v2, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/core/ScriptException;

    const-string v3, "Invalid OP_SPLIT range."

    invoke-direct {v2, v3}, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/core/ScriptException;-><init>(Ljava/lang/String;)V

    throw v2

    .line 4254
    :cond_558
    new-array v4, v3, [B

    .line 4255
    array-length v5, v2

    sub-int/2addr v5, v3

    new-array v5, v5, [B

    .line 4257
    const/4 v6, 0x0

    const/4 v7, 0x0

    invoke-static {v2, v6, v4, v7, v3}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V

    .line 4258
    const/4 v6, 0x0

    array-length v7, v5

    invoke-static {v2, v3, v5, v6, v7}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V

    .line 4260
    move-object/from16 v0, p4

    invoke-virtual {v0, v4}, Ljava/util/LinkedList;->addLast(Ljava/lang/Object;)V

    .line 4261
    move-object/from16 v0, p4

    invoke-virtual {v0, v5}, Ljava/util/LinkedList;->addLast(Ljava/lang/Object;)V

    move v2, v11

    move v3, v10

    .line 4262
    goto/16 :goto_44

    .line 4265
    :pswitch_576
    invoke-virtual/range {p4 .. p4}, Ljava/util/LinkedList;->size()I

    move-result v2

    const/4 v3, 0x2

    if-ge v2, v3, :cond_585

    .line 4266
    new-instance v2, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/core/ScriptException;

    const-string v3, "Invalid stack operation."

    invoke-direct {v2, v3}, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/core/ScriptException;-><init>(Ljava/lang/String;)V

    throw v2

    .line 4268
    :cond_585
    invoke-virtual/range {p4 .. p4}, Ljava/util/LinkedList;->pollLast()Ljava/lang/Object;

    move-result-object v2

    check-cast v2, [B

    invoke-static {v2, v15}, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/script/Script;->a([BZ)Ljava/math/BigInteger;

    move-result-object v2

    invoke-virtual {v2}, Ljava/math/BigInteger;->intValue()I

    move-result v4

    .line 4270
    int-to-long v2, v4

    const-wide/16 v6, 0x208

    cmp-long v2, v2, v6

    if-lez v2, :cond_5a2

    .line 4271
    new-instance v2, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/core/ScriptException;

    const-string v3, "Push value size limit exceeded."

    invoke-direct {v2, v3}, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/core/ScriptException;-><init>(Ljava/lang/String;)V

    throw v2

    .line 4273
    :cond_5a2
    invoke-virtual/range {p4 .. p4}, Ljava/util/LinkedList;->pollLast()Ljava/lang/Object;

    move-result-object v2

    check-cast v2, [B

    .line 4277
    invoke-static {v2}, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/core/aq;->j([B)[B

    move-result-object v5

    .line 4278
    array-length v2, v5

    if-le v2, v4, :cond_5b7

    .line 4280
    new-instance v2, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/core/ScriptException;

    const-string v3, "The requested encoding is impossible to satisfy."

    invoke-direct {v2, v3}, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/core/ScriptException;-><init>(Ljava/lang/String;)V

    throw v2

    .line 4283
    :cond_5b7
    array-length v2, v5

    if-ne v2, v4, :cond_5c3

    .line 4285
    move-object/from16 v0, p4

    invoke-virtual {v0, v5}, Ljava/util/LinkedList;->addLast(Ljava/lang/Object;)V

    move v2, v11

    move v3, v10

    goto/16 :goto_44

    .line 4286
    :cond_5c3
    if-nez v4, :cond_5d0

    .line 4287
    sget-object v2, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/core/aq;->EMPTY_BYTE_ARRAY:[B

    move-object/from16 v0, p4

    invoke-virtual {v0, v2}, Ljava/util/LinkedList;->addLast(Ljava/lang/Object;)V

    move v2, v11

    move v3, v10

    goto/16 :goto_44

    .line 4289
    :cond_5d0
    const/4 v2, 0x0

    .line 4290
    array-length v3, v5

    if-lez v3, :cond_5e5

    .line 4291
    array-length v2, v5

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

    aget-byte v2, v5, v2

    and-int/lit16 v2, v2, 0x80

    .line 4292
    array-length v3, v5

    add-int/lit8 v3, v3, -0x1

    aget-byte v6, v5, v3

    and-int/lit8 v6, v6, 0x7f

    int-to-byte v6, v6

    aput-byte v6, v5, v3

    .line 4294
    :cond_5e5
    array-length v3, v5

    if-le v3, v4, :cond_5fe

    move v3, v4

    .line 4295
    :goto_5e9
    new-array v6, v4, [B

    .line 4296
    const/4 v7, 0x0

    const/4 v8, 0x0

    invoke-static {v5, v7, v6, v8, v3}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V

    .line 4297
    add-int/lit8 v3, v4, -0x1

    int-to-byte v2, v2

    aput-byte v2, v6, v3

    .line 4298
    move-object/from16 v0, p4

    invoke-virtual {v0, v6}, Ljava/util/LinkedList;->addLast(Ljava/lang/Object;)V

    move v2, v11

    move v3, v10

    .line 4300
    goto/16 :goto_44

    .line 4294
    :cond_5fe
    array-length v3, v5

    goto :goto_5e9

    .line 4303
    :pswitch_600
    invoke-virtual/range {p4 .. p4}, Ljava/util/LinkedList;->size()I

    move-result v2

    if-gtz v2, :cond_60e

    .line 4304
    new-instance v2, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/core/ScriptException;

    const-string v3, "Invalid stack operation."

    invoke-direct {v2, v3}, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/core/ScriptException;-><init>(Ljava/lang/String;)V

    throw v2

    .line 4306
    :cond_60e
    invoke-virtual/range {p4 .. p4}, Ljava/util/LinkedList;->pollLast()Ljava/lang/Object;

    move-result-object v2

    check-cast v2, [B

    .line 4307
    invoke-static {v2}, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/core/aq;->j([B)[B

    move-result-object v2

    .line 4309
    const/4 v3, 0x4

    invoke-static {v2, v3}, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/core/aq;->e([BI)Z

    move-result v3

    if-nez v3, :cond_627

    .line 4310
    new-instance v2, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/core/ScriptException;

    const-string v3, "Given operand is not a number within the valid range [-2^31...2^31]"

    invoke-direct {v2, v3}, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/core/ScriptException;-><init>(Ljava/lang/String;)V

    throw v2

    .line 4312
    :cond_627
    move-object/from16 v0, p4

    invoke-virtual {v0, v2}, Ljava/util/LinkedList;->addLast(Ljava/lang/Object;)V

    move v2, v11

    move v3, v10

    .line 4314
    goto/16 :goto_44

    .line 4316
    :pswitch_630
    invoke-virtual/range {p4 .. p4}, Ljava/util/LinkedList;->size()I

    move-result v2

    if-gtz v2, :cond_63e

    .line 4317
    new-instance v2, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/core/ScriptException;

    const-string v3, "Attempted OP_SIZE on an empty stack"

    invoke-direct {v2, v3}, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/core/ScriptException;-><init>(Ljava/lang/String;)V

    throw v2

    .line 4318
    :cond_63e
    invoke-virtual/range {p4 .. p4}, Ljava/util/LinkedList;->getLast()Ljava/lang/Object;

    move-result-object v2

    check-cast v2, [B

    array-length v2, v2

    int-to-long v2, v2

    invoke-static {v2, v3}, Ljava/math/BigInteger;->valueOf(J)Ljava/math/BigInteger;

    move-result-object v2

    invoke-static {v2}, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/core/aq;->d(Ljava/math/BigInteger;)[B

    move-result-object v2

    invoke-static {v2}, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/core/aq;->reverseBytes([B)[B

    move-result-object v2

    move-object/from16 v0, p4

    invoke-virtual {v0, v2}, Ljava/util/LinkedList;->add(Ljava/lang/Object;)Z

    move v2, v11

    move v3, v10

    .line 4319
    goto/16 :goto_44

    .line 4321
    :pswitch_65b
    new-instance v2, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/core/ScriptException;

    const-string v3, "Attempted to use disabled Script Op."

    invoke-direct {v2, v3}, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/core/ScriptException;-><init>(Ljava/lang/String;)V

    throw v2

    .line 4326
    :pswitch_663
    invoke-virtual/range {p4 .. p4}, Ljava/util/LinkedList;->size()I

    move-result v2

    const/4 v3, 0x2

    if-ge v2, v3, :cond_672

    .line 4327
    new-instance v2, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/core/ScriptException;

    const-string v3, "Invalid stack operation."

    invoke-direct {v2, v3}, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/core/ScriptException;-><init>(Ljava/lang/String;)V

    throw v2

    .line 4332
    :cond_672
    invoke-virtual/range {p4 .. p4}, Ljava/util/LinkedList;->pollLast()Ljava/lang/Object;

    move-result-object v2

    check-cast v2, [B

    .line 4333
    invoke-virtual/range {p4 .. p4}, Ljava/util/LinkedList;->pollLast()Ljava/lang/Object;

    move-result-object v3

    check-cast v3, [B

    .line 4336
    array-length v4, v3

    array-length v5, v2

    if-eq v4, v5, :cond_68a

    .line 4337
    new-instance v2, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/core/ScriptException;

    const-string v3, "Invalid operand size."

    invoke-direct {v2, v3}, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/core/ScriptException;-><init>(Ljava/lang/String;)V

    throw v2

    .line 4341
    :cond_68a
    packed-switch v8, :pswitch_data_d74

    .line 4365
    :cond_68d
    move-object/from16 v0, p4

    invoke-virtual {v0, v3}, Ljava/util/LinkedList;->addLast(Ljava/lang/Object;)V

    move v2, v11

    move v3, v10

    .line 4367
    goto/16 :goto_44

    .line 4343
    :pswitch_696
    const/4 v4, 0x0

    :goto_697
    array-length v5, v3

    if-ge v4, v5, :cond_68d

    .line 4344
    aget-byte v5, v3, v4

    aget-byte v6, v2, v4

    and-int/2addr v5, v6

    int-to-byte v5, v5

    aput-byte v5, v3, v4

    .line 4343
    add-int/lit8 v4, v4, 0x1

    goto :goto_697

    .line 4348
    :pswitch_6a5
    const/4 v4, 0x0

    :goto_6a6
    array-length v5, v3

    if-ge v4, v5, :cond_68d

    .line 4349
    aget-byte v5, v3, v4

    aget-byte v6, v2, v4

    or-int/2addr v5, v6

    int-to-byte v5, v5

    aput-byte v5, v3, v4

    .line 4348
    add-int/lit8 v4, v4, 0x1

    goto :goto_6a6

    .line 4353
    :pswitch_6b4
    const/4 v4, 0x0

    :goto_6b5
    array-length v5, v3

    if-ge v4, v5, :cond_68d

    .line 4354
    aget-byte v5, v3, v4

    aget-byte v6, v2, v4

    xor-int/2addr v5, v6

    int-to-byte v5, v5

    aput-byte v5, v3, v4

    .line 4353
    add-int/lit8 v4, v4, 0x1

    goto :goto_6b5

    .line 4370
    :pswitch_6c3
    invoke-virtual/range {p4 .. p4}, Ljava/util/LinkedList;->size()I

    move-result v2

    const/4 v3, 0x2

    if-ge v2, v3, :cond_6d2

    .line 4371
    new-instance v2, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/core/ScriptException;

    const-string v3, "Attempted OP_EQUAL on a stack with size < 2"

    invoke-direct {v2, v3}, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/core/ScriptException;-><init>(Ljava/lang/String;)V

    throw v2

    .line 4372
    :cond_6d2
    invoke-virtual/range {p4 .. p4}, Ljava/util/LinkedList;->pollLast()Ljava/lang/Object;

    move-result-object v2

    check-cast v2, [B

    invoke-virtual/range {p4 .. p4}, Ljava/util/LinkedList;->pollLast()Ljava/lang/Object;

    move-result-object v3

    check-cast v3, [B

    invoke-static {v2, v3}, Ljava/util/Arrays;->equals([B[B)Z

    move-result v2

    if-eqz v2, :cond_6f4

    const/4 v2, 0x1

    new-array v2, v2, [B

    const/4 v3, 0x0

    const/4 v4, 0x1

    aput-byte v4, v2, v3

    :goto_6eb
    move-object/from16 v0, p4

    invoke-virtual {v0, v2}, Ljava/util/LinkedList;->add(Ljava/lang/Object;)Z

    move v2, v11

    move v3, v10

    .line 4373
    goto/16 :goto_44

    .line 4372
    :cond_6f4
    const/4 v2, 0x0

    new-array v2, v2, [B

    goto :goto_6eb

    .line 4375
    :pswitch_6f8
    invoke-virtual/range {p4 .. p4}, Ljava/util/LinkedList;->size()I

    move-result v2

    const/4 v3, 0x2

    if-ge v2, v3, :cond_707

    .line 4376
    new-instance v2, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/core/ScriptException;

    const-string v3, "Attempted OP_EQUALVERIFY on a stack with size < 2"

    invoke-direct {v2, v3}, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/core/ScriptException;-><init>(Ljava/lang/String;)V

    throw v2

    .line 4377
    :cond_707
    invoke-virtual/range {p4 .. p4}, Ljava/util/LinkedList;->pollLast()Ljava/lang/Object;

    move-result-object v2

    check-cast v2, [B

    invoke-virtual/range {p4 .. p4}, Ljava/util/LinkedList;->pollLast()Ljava/lang/Object;

    move-result-object v3

    check-cast v3, [B

    invoke-static {v2, v3}, Ljava/util/Arrays;->equals([B[B)Z

    move-result v2

    if-nez v2, :cond_c47

    .line 4378
    new-instance v2, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/core/ScriptException;

    const-string v3, "OP_EQUALVERIFY: non-equal data"

    invoke-direct {v2, v3}, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/core/ScriptException;-><init>(Ljava/lang/String;)V

    throw v2

    .line 4386
    :pswitch_721
    invoke-virtual/range {p4 .. p4}, Ljava/util/LinkedList;->size()I

    move-result v2

    if-gtz v2, :cond_72f

    .line 4387
    new-instance v2, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/core/ScriptException;

    const-string v3, "Attempted a numeric op on an empty stack"

    invoke-direct {v2, v3}, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/core/ScriptException;-><init>(Ljava/lang/String;)V

    throw v2

    .line 4388
    :cond_72f
    invoke-virtual/range {p4 .. p4}, Ljava/util/LinkedList;->pollLast()Ljava/lang/Object;

    move-result-object v2

    check-cast v2, [B

    invoke-static {v2, v15}, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/script/Script;->a([BZ)Ljava/math/BigInteger;

    move-result-object v2

    .line 4390
    packed-switch v8, :pswitch_data_d7e

    .line 4417
    :pswitch_73c
    new-instance v2, Ljava/lang/AssertionError;

    const-string v3, "Unreachable"

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

    throw v2

    .line 4392
    :pswitch_744
    sget-object v3, Ljava/math/BigInteger;->ONE:Ljava/math/BigInteger;

    invoke-virtual {v2, v3}, Ljava/math/BigInteger;->add(Ljava/math/BigInteger;)Ljava/math/BigInteger;

    move-result-object v2

    .line 4420
    :cond_74a
    :goto_74a
    invoke-static {v2}, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/core/aq;->d(Ljava/math/BigInteger;)[B

    move-result-object v2

    invoke-static {v2}, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/core/aq;->reverseBytes([B)[B

    move-result-object v2

    move-object/from16 v0, p4

    invoke-virtual {v0, v2}, Ljava/util/LinkedList;->add(Ljava/lang/Object;)Z

    move v2, v11

    move v3, v10

    .line 4421
    goto/16 :goto_44

    .line 4395
    :pswitch_75b
    sget-object v3, Ljava/math/BigInteger;->ONE:Ljava/math/BigInteger;

    invoke-virtual {v2, v3}, Ljava/math/BigInteger;->subtract(Ljava/math/BigInteger;)Ljava/math/BigInteger;

    move-result-object v2

    goto :goto_74a

    .line 4398
    :pswitch_762
    invoke-virtual {v2}, Ljava/math/BigInteger;->negate()Ljava/math/BigInteger;

    move-result-object v2

    goto :goto_74a

    .line 4401
    :pswitch_767
    invoke-virtual {v2}, Ljava/math/BigInteger;->signum()I

    move-result v3

    if-gez v3, :cond_74a

    .line 4402
    invoke-virtual {v2}, Ljava/math/BigInteger;->negate()Ljava/math/BigInteger;

    move-result-object v2

    goto :goto_74a

    .line 4405
    :pswitch_772
    sget-object v3, Ljava/math/BigInteger;->ZERO:Ljava/math/BigInteger;

    invoke-virtual {v2, v3}, Ljava/math/BigInteger;->equals(Ljava/lang/Object;)Z

    move-result v2

    if-eqz v2, :cond_77d

    .line 4406
    sget-object v2, Ljava/math/BigInteger;->ONE:Ljava/math/BigInteger;

    goto :goto_74a

    .line 4408
    :cond_77d
    sget-object v2, Ljava/math/BigInteger;->ZERO:Ljava/math/BigInteger;

    goto :goto_74a

    .line 4411
    :pswitch_780
    sget-object v3, Ljava/math/BigInteger;->ZERO:Ljava/math/BigInteger;

    invoke-virtual {v2, v3}, Ljava/math/BigInteger;->equals(Ljava/lang/Object;)Z

    move-result v2

    if-eqz v2, :cond_78b

    .line 4412
    sget-object v2, Ljava/math/BigInteger;->ZERO:Ljava/math/BigInteger;

    goto :goto_74a

    .line 4414
    :cond_78b
    sget-object v2, Ljava/math/BigInteger;->ONE:Ljava/math/BigInteger;

    goto :goto_74a

    .line 4424
    :pswitch_78e
    new-instance v2, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/core/ScriptException;

    const-string v3, "Attempted to use disabled Script Op."

    invoke-direct {v2, v3}, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/core/ScriptException;-><init>(Ljava/lang/String;)V

    throw v2

    .line 4439
    :pswitch_796
    invoke-virtual/range {p4 .. p4}, Ljava/util/LinkedList;->size()I

    move-result v2

    const/4 v3, 0x2

    if-ge v2, v3, :cond_7a5

    .line 4440
    new-instance v2, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/core/ScriptException;

    const-string v3, "Attempted a numeric op on a stack with size < 2"

    invoke-direct {v2, v3}, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/core/ScriptException;-><init>(Ljava/lang/String;)V

    throw v2

    .line 4441
    :cond_7a5
    invoke-virtual/range {p4 .. p4}, Ljava/util/LinkedList;->pollLast()Ljava/lang/Object;

    move-result-object v2

    check-cast v2, [B

    invoke-static {v2, v15}, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/script/Script;->a([BZ)Ljava/math/BigInteger;

    move-result-object v3

    .line 4442
    invoke-virtual/range {p4 .. p4}, Ljava/util/LinkedList;->pollLast()Ljava/lang/Object;

    move-result-object v2

    check-cast v2, [B

    invoke-static {v2, v15}, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/script/Script;->a([BZ)Ljava/math/BigInteger;

    move-result-object v2

    .line 4445
    packed-switch v8, :pswitch_data_d92

    .line 4546
    :pswitch_7bc
    new-instance v2, Ljava/lang/RuntimeException;

    const-string v3, "Opcode switched at runtime?"

    invoke-direct {v2, v3}, Ljava/lang/RuntimeException;-><init>(Ljava/lang/String;)V

    throw v2

    .line 4447
    :pswitch_7c4
    invoke-virtual {v2, v3}, Ljava/math/BigInteger;->add(Ljava/math/BigInteger;)Ljava/math/BigInteger;

    move-result-object v2

    .line 4549
    :cond_7c8
    :goto_7c8
    invoke-static {v2}, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/core/aq;->d(Ljava/math/BigInteger;)[B

    move-result-object v2

    invoke-static {v2}, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/core/aq;->reverseBytes([B)[B

    move-result-object v2

    move-object/from16 v0, p4

    invoke-virtual {v0, v2}, Ljava/util/LinkedList;->add(Ljava/lang/Object;)Z

    move v2, v11

    move v3, v10

    .line 4550
    goto/16 :goto_44

    .line 4450
    :pswitch_7d9
    invoke-virtual {v2, v3}, Ljava/math/BigInteger;->subtract(Ljava/math/BigInteger;)Ljava/math/BigInteger;

    move-result-object v2

    goto :goto_7c8

    .line 4454
    :pswitch_7de
    invoke-virtual {v3}, Ljava/math/BigInteger;->intValue()I

    move-result v4

    if-nez v4, :cond_7ec

    .line 4455
    new-instance v2, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/core/ScriptException;

    const-string v3, "Division by zero error"

    invoke-direct {v2, v3}, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/core/ScriptException;-><init>(Ljava/lang/String;)V

    throw v2

    .line 4456
    :cond_7ec
    invoke-virtual {v2, v3}, Ljava/math/BigInteger;->divide(Ljava/math/BigInteger;)Ljava/math/BigInteger;

    move-result-object v2

    goto :goto_7c8

    .line 4460
    :pswitch_7f1
    invoke-virtual {v3}, Ljava/math/BigInteger;->intValue()I

    move-result v4

    if-nez v4, :cond_7ff

    .line 4461
    new-instance v2, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/core/ScriptException;

    const-string v3, "Modulo by zero error"

    invoke-direct {v2, v3}, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/core/ScriptException;-><init>(Ljava/lang/String;)V

    throw v2

    .line 4470
    :cond_7ff
    invoke-virtual {v2}, Ljava/math/BigInteger;->longValue()J

    move-result-wide v4

    .line 4471
    invoke-static {v4, v5}, Ljava/math/BigInteger;->valueOf(J)Ljava/math/BigInteger;

    move-result-object v6

    invoke-virtual {v6, v2}, Ljava/math/BigInteger;->equals(Ljava/lang/Object;)Z

    move-result v2

    if-nez v2, :cond_815

    .line 4473
    new-instance v2, Ljava/lang/RuntimeException;

    const-string v3, "Cannot handle large negative operand for modulo operation"

    invoke-direct {v2, v3}, Ljava/lang/RuntimeException;-><init>(Ljava/lang/String;)V

    throw v2

    .line 4475
    :cond_815
    invoke-virtual {v3}, Ljava/math/BigInteger;->longValue()J

    move-result-wide v6

    .line 4476
    invoke-static {v6, v7}, Ljava/math/BigInteger;->valueOf(J)Ljava/math/BigInteger;

    move-result-object v2

    invoke-virtual {v2, v3}, Ljava/math/BigInteger;->equals(Ljava/lang/Object;)Z

    move-result v2

    if-nez v2, :cond_82b

    .line 4478
    new-instance v2, Ljava/lang/RuntimeException;

    const-string v3, "Cannot handle large negative operand for modulo operation"

    invoke-direct {v2, v3}, Ljava/lang/RuntimeException;-><init>(Ljava/lang/String;)V

    throw v2

    .line 4480
    :cond_82b
    rem-long v2, v4, v6

    .line 4481
    invoke-static {v2, v3}, Ljava/math/BigInteger;->valueOf(J)Ljava/math/BigInteger;

    move-result-object v2

    goto :goto_7c8

    .line 4486
    :pswitch_832
    sget-object v4, Ljava/math/BigInteger;->ZERO:Ljava/math/BigInteger;

    invoke-virtual {v2, v4}, Ljava/math/BigInteger;->equals(Ljava/lang/Object;)Z

    move-result v2

    if-nez v2, :cond_845

    sget-object v2, Ljava/math/BigInteger;->ZERO:Ljava/math/BigInteger;

    invoke-virtual {v3, v2}, Ljava/math/BigInteger;->equals(Ljava/lang/Object;)Z

    move-result v2

    if-nez v2, :cond_845

    .line 4487
    sget-object v2, Ljava/math/BigInteger;->ONE:Ljava/math/BigInteger;

    goto :goto_7c8

    .line 4489
    :cond_845
    sget-object v2, Ljava/math/BigInteger;->ZERO:Ljava/math/BigInteger;

    goto :goto_7c8

    .line 4492
    :pswitch_848
    sget-object v4, Ljava/math/BigInteger;->ZERO:Ljava/math/BigInteger;

    invoke-virtual {v2, v4}, Ljava/math/BigInteger;->equals(Ljava/lang/Object;)Z

    move-result v2

    if-eqz v2, :cond_858

    sget-object v2, Ljava/math/BigInteger;->ZERO:Ljava/math/BigInteger;

    invoke-virtual {v3, v2}, Ljava/math/BigInteger;->equals(Ljava/lang/Object;)Z

    move-result v2

    if-nez v2, :cond_85c

    .line 4493
    :cond_858
    sget-object v2, Ljava/math/BigInteger;->ONE:Ljava/math/BigInteger;

    goto/16 :goto_7c8

    .line 4495
    :cond_85c
    sget-object v2, Ljava/math/BigInteger;->ZERO:Ljava/math/BigInteger;

    goto/16 :goto_7c8

    .line 4498
    :pswitch_860
    invoke-virtual {v2, v3}, Ljava/math/BigInteger;->equals(Ljava/lang/Object;)Z

    move-result v2

    if-eqz v2, :cond_86a

    .line 4499
    sget-object v2, Ljava/math/BigInteger;->ONE:Ljava/math/BigInteger;

    goto/16 :goto_7c8

    .line 4501
    :cond_86a
    sget-object v2, Ljava/math/BigInteger;->ZERO:Ljava/math/BigInteger;

    goto/16 :goto_7c8

    .line 4504
    :pswitch_86e
    invoke-virtual {v2, v3}, Ljava/math/BigInteger;->equals(Ljava/lang/Object;)Z

    move-result v2

    if-nez v2, :cond_878

    .line 4505
    sget-object v2, Ljava/math/BigInteger;->ONE:Ljava/math/BigInteger;

    goto/16 :goto_7c8

    .line 4507
    :cond_878
    sget-object v2, Ljava/math/BigInteger;->ZERO:Ljava/math/BigInteger;

    goto/16 :goto_7c8

    .line 4510
    :pswitch_87c
    invoke-virtual {v2, v3}, Ljava/math/BigInteger;->compareTo(Ljava/math/BigInteger;)I

    move-result v2

    if-gez v2, :cond_886

    .line 4511
    sget-object v2, Ljava/math/BigInteger;->ONE:Ljava/math/BigInteger;

    goto/16 :goto_7c8

    .line 4513
    :cond_886
    sget-object v2, Ljava/math/BigInteger;->ZERO:Ljava/math/BigInteger;

    goto/16 :goto_7c8

    .line 4516
    :pswitch_88a
    invoke-virtual {v2, v3}, Ljava/math/BigInteger;->compareTo(Ljava/math/BigInteger;)I

    move-result v2

    if-lez v2, :cond_894

    .line 4517
    sget-object v2, Ljava/math/BigInteger;->ONE:Ljava/math/BigInteger;

    goto/16 :goto_7c8

    .line 4519
    :cond_894
    sget-object v2, Ljava/math/BigInteger;->ZERO:Ljava/math/BigInteger;

    goto/16 :goto_7c8

    .line 4522
    :pswitch_898
    invoke-virtual {v2, v3}, Ljava/math/BigInteger;->compareTo(Ljava/math/BigInteger;)I

    move-result v2

    if-gtz v2, :cond_8a2

    .line 4523
    sget-object v2, Ljava/math/BigInteger;->ONE:Ljava/math/BigInteger;

    goto/16 :goto_7c8

    .line 4525
    :cond_8a2
    sget-object v2, Ljava/math/BigInteger;->ZERO:Ljava/math/BigInteger;

    goto/16 :goto_7c8

    .line 4528
    :pswitch_8a6
    invoke-virtual {v2, v3}, Ljava/math/BigInteger;->compareTo(Ljava/math/BigInteger;)I

    move-result v2

    if-ltz v2, :cond_8b0

    .line 4529
    sget-object v2, Ljava/math/BigInteger;->ONE:Ljava/math/BigInteger;

    goto/16 :goto_7c8

    .line 4531
    :cond_8b0
    sget-object v2, Ljava/math/BigInteger;->ZERO:Ljava/math/BigInteger;

    goto/16 :goto_7c8

    .line 4534
    :pswitch_8b4
    invoke-virtual {v2, v3}, Ljava/math/BigInteger;->compareTo(Ljava/math/BigInteger;)I

    move-result v4

    if-ltz v4, :cond_7c8

    move-object v2, v3

    .line 4538
    goto/16 :goto_7c8

    .line 4540
    :pswitch_8bd
    invoke-virtual {v2, v3}, Ljava/math/BigInteger;->compareTo(Ljava/math/BigInteger;)I

    move-result v4

    if-gtz v4, :cond_7c8

    move-object v2, v3

    .line 4544
    goto/16 :goto_7c8

    .line 4554
    :pswitch_8c6
    new-instance v2, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/core/ScriptException;

    const-string v3, "Attempted to use disabled Script Op."

    invoke-direct {v2, v3}, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/core/ScriptException;-><init>(Ljava/lang/String;)V

    throw v2

    .line 4556
    :pswitch_8ce
    invoke-virtual/range {p4 .. p4}, Ljava/util/LinkedList;->size()I

    move-result v2

    const/4 v3, 0x2

    if-ge v2, v3, :cond_8dd

    .line 4557
    new-instance v2, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/core/ScriptException;

    const-string v3, "Attempted OP_NUMEQUALVERIFY on a stack with size < 2"

    invoke-direct {v2, v3}, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/core/ScriptException;-><init>(Ljava/lang/String;)V

    throw v2

    .line 4558
    :cond_8dd
    invoke-virtual/range {p4 .. p4}, Ljava/util/LinkedList;->pollLast()Ljava/lang/Object;

    move-result-object v2

    check-cast v2, [B

    invoke-static {v2, v15}, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/script/Script;->a([BZ)Ljava/math/BigInteger;

    move-result-object v3

    .line 4559
    invoke-virtual/range {p4 .. p4}, Ljava/util/LinkedList;->pollLast()Ljava/lang/Object;

    move-result-object v2

    check-cast v2, [B

    invoke-static {v2, v15}, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/script/Script;->a([BZ)Ljava/math/BigInteger;

    move-result-object v2

    .line 4561
    invoke-virtual {v2, v3}, Ljava/math/BigInteger;->equals(Ljava/lang/Object;)Z

    move-result v2

    if-nez v2, :cond_c47

    .line 4562
    new-instance v2, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/core/ScriptException;

    const-string v3, "OP_NUMEQUALVERIFY failed"

    invoke-direct {v2, v3}, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/core/ScriptException;-><init>(Ljava/lang/String;)V

    throw v2

    .line 4565
    :pswitch_8ff
    invoke-virtual/range {p4 .. p4}, Ljava/util/LinkedList;->size()I

    move-result v2

    const/4 v3, 0x3

    if-ge v2, v3, :cond_90e

    .line 4566
    new-instance v2, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/core/ScriptException;

    const-string v3, "Attempted OP_WITHIN on a stack with size < 3"

    invoke-direct {v2, v3}, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/core/ScriptException;-><init>(Ljava/lang/String;)V

    throw v2

    .line 4567
    :cond_90e
    invoke-virtual/range {p4 .. p4}, Ljava/util/LinkedList;->pollLast()Ljava/lang/Object;

    move-result-object v2

    check-cast v2, [B

    invoke-static {v2, v15}, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/script/Script;->a([BZ)Ljava/math/BigInteger;

    move-result-object v3

    .line 4568
    invoke-virtual/range {p4 .. p4}, Ljava/util/LinkedList;->pollLast()Ljava/lang/Object;

    move-result-object v2

    check-cast v2, [B

    invoke-static {v2, v15}, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/script/Script;->a([BZ)Ljava/math/BigInteger;

    move-result-object v4

    .line 4569
    invoke-virtual/range {p4 .. p4}, Ljava/util/LinkedList;->pollLast()Ljava/lang/Object;

    move-result-object v2

    check-cast v2, [B

    invoke-static {v2, v15}, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/script/Script;->a([BZ)Ljava/math/BigInteger;

    move-result-object v2

    .line 4570
    invoke-virtual {v4, v2}, Ljava/math/BigInteger;->compareTo(Ljava/math/BigInteger;)I

    move-result v4

    if-gtz v4, :cond_94b

    invoke-virtual {v2, v3}, Ljava/math/BigInteger;->compareTo(Ljava/math/BigInteger;)I

    move-result v2

    if-gez v2, :cond_94b

    .line 4571
    sget-object v2, Ljava/math/BigInteger;->ONE:Ljava/math/BigInteger;

    invoke-static {v2}, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/core/aq;->d(Ljava/math/BigInteger;)[B

    move-result-object v2

    invoke-static {v2}, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/core/aq;->reverseBytes([B)[B

    move-result-object v2

    move-object/from16 v0, p4

    invoke-virtual {v0, v2}, Ljava/util/LinkedList;->add(Ljava/lang/Object;)Z

    move v2, v11

    move v3, v10

    goto/16 :goto_44

    .line 4573
    :cond_94b
    sget-object v2, Ljava/math/BigInteger;->ZERO:Ljava/math/BigInteger;

    invoke-static {v2}, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/core/aq;->d(Ljava/math/BigInteger;)[B

    move-result-object v2

    invoke-static {v2}, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/core/aq;->reverseBytes([B)[B

    move-result-object v2

    move-object/from16 v0, p4

    invoke-virtual {v0, v2}, Ljava/util/LinkedList;->add(Ljava/lang/Object;)Z

    move v2, v11

    move v3, v10

    .line 4574
    goto/16 :goto_44

    .line 4576
    :pswitch_95e
    invoke-virtual/range {p4 .. p4}, Ljava/util/LinkedList;->size()I

    move-result v2

    if-gtz v2, :cond_96c

    .line 4577
    new-instance v2, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/core/ScriptException;

    const-string v3, "Attempted OP_RIPEMD160 on an empty stack"

    invoke-direct {v2, v3}, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/core/ScriptException;-><init>(Ljava/lang/String;)V

    throw v2

    .line 4578
    :cond_96c
    new-instance v3, Lorg/spongycastle/crypto/digests/RIPEMD160Digest;

    invoke-direct {v3}, Lorg/spongycastle/crypto/digests/RIPEMD160Digest;-><init>()V

    .line 4579
    invoke-virtual/range {p4 .. p4}, Ljava/util/LinkedList;->pollLast()Ljava/lang/Object;

    move-result-object v2

    check-cast v2, [B

    .line 4580
    const/4 v4, 0x0

    array-length v5, v2

    invoke-virtual {v3, v2, v4, v5}, Lorg/spongycastle/crypto/digests/RIPEMD160Digest;->update([BII)V

    .line 4581
    const/16 v2, 0x14

    new-array v2, v2, [B

    .line 4582
    const/4 v4, 0x0

    invoke-virtual {v3, v2, v4}, Lorg/spongycastle/crypto/digests/RIPEMD160Digest;->doFinal([BI)I

    .line 4583
    move-object/from16 v0, p4

    invoke-virtual {v0, v2}, Ljava/util/LinkedList;->add(Ljava/lang/Object;)Z

    move v2, v11

    move v3, v10

    .line 4584
    goto/16 :goto_44

    .line 4586
    :pswitch_98d
    invoke-virtual/range {p4 .. p4}, Ljava/util/LinkedList;->size()I

    move-result v2

    if-gtz v2, :cond_99b

    .line 4587
    new-instance v2, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/core/ScriptException;

    const-string v3, "Attempted OP_SHA1 on an empty stack"

    invoke-direct {v2, v3}, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/core/ScriptException;-><init>(Ljava/lang/String;)V

    throw v2

    .line 4589
    :cond_99b
    :try_start_99b
    const-string v2, "SHA-1"

    invoke-static {v2}, Ljava/security/MessageDigest;->getInstance(Ljava/lang/String;)Ljava/security/MessageDigest;

    move-result-object v3

    invoke-virtual/range {p4 .. p4}, Ljava/util/LinkedList;->pollLast()Ljava/lang/Object;

    move-result-object v2

    check-cast v2, [B

    invoke-virtual {v3, v2}, Ljava/security/MessageDigest;->digest([B)[B

    move-result-object v2

    move-object/from16 v0, p4

    invoke-virtual {v0, v2}, Ljava/util/LinkedList;->add(Ljava/lang/Object;)Z
    :try_end_9b0
    .catch Ljava/security/NoSuchAlgorithmException; {:try_start_99b .. :try_end_9b0} :catch_9b4

    move v2, v11

    move v3, v10

    .line 4592
    goto/16 :goto_44

    .line 4590
    :catch_9b4
    move-exception v2

    .line 4591
    new-instance v3, Ljava/lang/RuntimeException;

    invoke-direct {v3, v2}, Ljava/lang/RuntimeException;-><init>(Ljava/lang/Throwable;)V

    throw v3

    .line 4595
    :pswitch_9bb
    invoke-virtual/range {p4 .. p4}, Ljava/util/LinkedList;->size()I

    move-result v2

    if-gtz v2, :cond_9c9

    .line 4596
    new-instance v2, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/core/ScriptException;

    const-string v3, "Attempted OP_SHA256 on an empty stack"

    invoke-direct {v2, v3}, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/core/ScriptException;-><init>(Ljava/lang/String;)V

    throw v2

    .line 4597
    :cond_9c9
    invoke-virtual/range {p4 .. p4}, Ljava/util/LinkedList;->pollLast()Ljava/lang/Object;

    move-result-object v2

    check-cast v2, [B

    invoke-static {v2}, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/core/Sha256Hash;->hash([B)[B

    move-result-object v2

    move-object/from16 v0, p4

    invoke-virtual {v0, v2}, Ljava/util/LinkedList;->add(Ljava/lang/Object;)Z

    move v2, v11

    move v3, v10

    .line 4598
    goto/16 :goto_44

    .line 4600
    :pswitch_9dc
    invoke-virtual/range {p4 .. p4}, Ljava/util/LinkedList;->size()I

    move-result v2

    if-gtz v2, :cond_9ea

    .line 4601
    new-instance v2, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/core/ScriptException;

    const-string v3, "Attempted OP_HASH160 on an empty stack"

    invoke-direct {v2, v3}, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/core/ScriptException;-><init>(Ljava/lang/String;)V

    throw v2

    .line 4602
    :cond_9ea
    invoke-virtual/range {p4 .. p4}, Ljava/util/LinkedList;->pollLast()Ljava/lang/Object;

    move-result-object v2

    check-cast v2, [B

    invoke-static {v2}, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/core/aq;->sha256hash160([B)[B

    move-result-object v2

    move-object/from16 v0, p4

    invoke-virtual {v0, v2}, Ljava/util/LinkedList;->add(Ljava/lang/Object;)Z

    move v2, v11

    move v3, v10

    .line 4603
    goto/16 :goto_44

    .line 4605
    :pswitch_9fd
    invoke-virtual/range {p4 .. p4}, Ljava/util/LinkedList;->size()I

    move-result v2

    if-gtz v2, :cond_a0b

    .line 4606
    new-instance v2, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/core/ScriptException;

    const-string v3, "Attempted OP_SHA256 on an empty stack"

    invoke-direct {v2, v3}, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/core/ScriptException;-><init>(Ljava/lang/String;)V

    throw v2

    .line 4607
    :cond_a0b
    invoke-virtual/range {p4 .. p4}, Ljava/util/LinkedList;->pollLast()Ljava/lang/Object;

    move-result-object v2

    check-cast v2, [B

    invoke-static {v2}, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/core/Sha256Hash;->hashTwice([B)[B

    move-result-object v2

    move-object/from16 v0, p4

    invoke-virtual {v0, v2}, Ljava/util/LinkedList;->add(Ljava/lang/Object;)Z

    move v2, v11

    move v3, v10

    .line 4608
    goto/16 :goto_44

    .line 5074
    :pswitch_a1e
    iget v3, v2, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/script/b;->startLocationInProgram:I

    if-ltz v3, :cond_a2e

    const/4 v3, 0x1

    :goto_a23
    invoke-static {v3}, Lcom/google/common/base/n;->checkState(Z)V

    .line 5075
    iget v2, v2, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/script/b;->startLocationInProgram:I

    .line 4610
    add-int/lit8 v11, v2, 0x1

    move v2, v11

    move v3, v10

    .line 4611
    goto/16 :goto_44

    .line 5074
    :cond_a2e
    const/4 v3, 0x0

    goto :goto_a23

    .line 4614
    :pswitch_a30
    if-nez p0, :cond_a3a

    .line 4615
    new-instance v2, Ljava/lang/IllegalStateException;

    const-string v3, "Script attempted signature check but no tx was provided"

    invoke-direct {v2, v3}, Ljava/lang/IllegalStateException;-><init>(Ljava/lang/String;)V

    throw v2

    .line 4616
    :cond_a3a
    move-wide/from16 v0, p1

    long-to-int v3, v0

    .line 5713
    sget-object v2, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/script/Script$VerifyFlag;->STRICTENC:Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/script/Script$VerifyFlag;

    move-object/from16 v0, p6

    invoke-interface {v0, v2}, Ljava/util/Set;->contains(Ljava/lang/Object;)Z

    move-result v2

    if-nez v2, :cond_a5b

    sget-object v2, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/script/Script$VerifyFlag;->DERSIG:Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/script/Script$VerifyFlag;

    .line 5714
    move-object/from16 v0, p6

    invoke-interface {v0, v2}, Ljava/util/Set;->contains(Ljava/lang/Object;)Z

    move-result v2

    if-nez v2, :cond_a5b

    sget-object v2, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/script/Script$VerifyFlag;->LOW_S:Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/script/Script$VerifyFlag;

    .line 5715
    move-object/from16 v0, p6

    invoke-interface {v0, v2}, Ljava/util/Set;->contains(Ljava/lang/Object;)Z

    move-result v2

    if-eqz v2, :cond_a6c

    :cond_a5b
    const/4 v2, 0x1

    move v5, v2

    .line 5716
    :goto_a5d
    invoke-virtual/range {p4 .. p4}, Ljava/util/LinkedList;->size()I

    move-result v2

    const/4 v4, 0x2

    if-ge v2, v4, :cond_a6f

    .line 5717
    new-instance v2, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/core/ScriptException;

    const-string v3, "Attempted OP_CHECKSIG(VERIFY) on a stack with size < 2"

    invoke-direct {v2, v3}, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/core/ScriptException;-><init>(Ljava/lang/String;)V

    throw v2

    .line 5715
    :cond_a6c
    const/4 v2, 0x0

    move v5, v2

    goto :goto_a5d

    .line 5718
    :cond_a6f
    invoke-virtual/range {p4 .. p4}, Ljava/util/LinkedList;->pollLast()Ljava/lang/Object;

    move-result-object v2

    move-object v9, v2

    check-cast v9, [B

    .line 5719
    invoke-virtual/range {p4 .. p4}, Ljava/util/LinkedList;->pollLast()Ljava/lang/Object;

    move-result-object v2

    check-cast v2, [B

    .line 5721
    invoke-virtual/range {p3 .. p3}, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/script/Script;->getProgram()[B

    move-result-object v4

    .line 5722
    array-length v6, v4

    invoke-static {v4, v11, v6}, Ljava/util/Arrays;->copyOfRange([BII)[B

    move-result-object v4

    .line 5724
    new-instance v6, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/core/ap;

    array-length v7, v2

    add-int/lit8 v7, v7, 0x1

    invoke-direct {v6, v7}, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/core/ap;-><init>(I)V

    .line 5726
    :try_start_a8d
    invoke-static {v6, v2}, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/script/Script;->writeBytes(Ljava/io/OutputStream;[B)V
    :try_end_a90
    .catch Ljava/io/IOException; {:try_start_a8d .. :try_end_a90} :catch_adb

    .line 5730
    invoke-virtual {v6}, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/core/ap;->toByteArray()[B

    move-result-object v6

    invoke-static {v4, v6}, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/script/Script;->removeAllInstancesOf([B[B)[B

    move-result-object v4

    .line 5733
    const/4 v12, 0x0

    .line 5735
    :try_start_a99
    sget-object v6, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/script/Script$VerifyFlag;->LOW_S:Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/script/Script$VerifyFlag;

    .line 5736
    move-object/from16 v0, p6

    invoke-interface {v0, v6}, Ljava/util/Set;->contains(Ljava/lang/Object;)Z

    move-result v6

    .line 5735
    invoke-static {v2, v5, v6}, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/crypto/j;->a([BZZ)Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/crypto/j;

    move-result-object v17

    .line 5739
    invoke-virtual/range {v17 .. v17}, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/crypto/j;->gM()Z

    move-result v2

    if-eqz v2, :cond_ae2

    .line 5740
    invoke-virtual/range {v17 .. v17}, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/crypto/j;->gN()Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/core/Transaction$SigHash;

    move-result-object v6

    invoke-virtual/range {v17 .. v17}, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/crypto/j;->anyoneCanPay()Z

    move-result v7

    move-object/from16 v2, p0

    move-object/from16 v5, p5

    invoke-virtual/range {v2 .. v7}, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/core/Transaction;->a(I[BLcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/core/Coin;Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/core/Transaction$SigHash;Z)Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/core/Sha256Hash;

    move-result-object v2

    .line 5742
    :goto_abb
    invoke-virtual {v2}, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/core/Sha256Hash;->getBytes()[B

    move-result-object v2

    move-object/from16 v0, v17

    invoke-static {v2, v0, v9}, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/core/ECKey;->a([BLcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/core/l;[B)Z
    :try_end_ac4
    .catch Ljava/lang/Exception; {:try_start_a99 .. :try_end_ac4} :catch_aee

    move-result v2

    .line 5753
    :goto_ac5
    const/16 v3, 0xac

    if-ne v8, v3, :cond_b08

    .line 5754
    if-eqz v2, :cond_b04

    const/4 v2, 0x1

    new-array v2, v2, [B

    const/4 v3, 0x0

    const/4 v4, 0x1

    aput-byte v4, v2, v3

    :goto_ad2
    move-object/from16 v0, p4

    invoke-virtual {v0, v2}, Ljava/util/LinkedList;->add(Ljava/lang/Object;)Z

    move v2, v11

    move v3, v10

    goto/16 :goto_44

    .line 5727
    :catch_adb
    move-exception v2

    .line 5728
    new-instance v3, Ljava/lang/RuntimeException;

    invoke-direct {v3, v2}, Ljava/lang/RuntimeException;-><init>(Ljava/lang/Throwable;)V

    throw v3

    .line 5740
    :cond_ae2
    :try_start_ae2
    move-object/from16 v0, v17

    iget v2, v0, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/crypto/j;->sighashFlags:I

    int-to-byte v2, v2

    .line 5741
    move-object/from16 v0, p0

    invoke-virtual {v0, v3, v4, v2}, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/core/Transaction;->a(I[BB)Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/core/Sha256Hash;
    :try_end_aec
    .catch Ljava/lang/Exception; {:try_start_ae2 .. :try_end_aec} :catch_aee

    move-result-object v2

    goto :goto_abb

    .line 5743
    :catch_aee
    move-exception v2

    .line 5749
    invoke-virtual {v2}, Ljava/lang/Exception;->getMessage()Ljava/lang/String;

    move-result-object v3

    const-string v4, "Reached past end of ASN.1 stream"

    invoke-virtual {v3, v4}, Ljava/lang/String;->contains(Ljava/lang/CharSequence;)Z

    move-result v3

    if-nez v3, :cond_b02

    .line 5750
    sget-object v3, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/script/Script;->log:Lorg/slf4j/Logger;

    const-string v4, "Signature checking failed!"

    invoke-interface {v3, v4, v2}, Lorg/slf4j/Logger;->warn(Ljava/lang/String;Ljava/lang/Throwable;)V

    :cond_b02
    move v2, v12

    goto :goto_ac5

    .line 5754
    :cond_b04
    const/4 v2, 0x0

    new-array v2, v2, [B

    goto :goto_ad2

    .line 5755
    :cond_b08
    const/16 v3, 0xad

    if-ne v8, v3, :cond_b16

    .line 5756
    if-nez v2, :cond_b16

    .line 5757
    new-instance v2, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/core/ScriptException;

    const-string v3, "Script failed OP_CHECKSIGVERIFY"

    invoke-direct {v2, v3}, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/core/ScriptException;-><init>(Ljava/lang/String;)V

    throw v2

    :cond_b16
    move v2, v11

    move v3, v10

    .line 4617
    goto/16 :goto_44

    .line 4620
    :pswitch_b1a
    if-nez p0, :cond_b24

    .line 4621
    new-instance v2, Ljava/lang/IllegalStateException;

    const-string v3, "Script attempted signature check but no tx was provided"

    invoke-direct {v2, v3}, Ljava/lang/IllegalStateException;-><init>(Ljava/lang/String;)V

    throw v2

    .line 4622
    :cond_b24
    move-wide/from16 v0, p1

    long-to-int v3, v0

    move-object/from16 v2, p0

    move-object/from16 v4, p3

    move-object/from16 v5, p4

    move v6, v10

    move v7, v11

    move-object/from16 v9, p5

    move-object/from16 v10, p6

    invoke-static/range {v2 .. v10}, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/script/Script;->a(Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/core/Transaction;ILcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/script/Script;Ljava/util/LinkedList;IIILcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/core/Coin;Ljava/util/Set;)I

    move-result v10

    move v2, v11

    move v3, v10

    .line 4623
    goto/16 :goto_44

    .line 4625
    :pswitch_b3b
    sget-object v2, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/script/Script$VerifyFlag;->CHECKLOCKTIMEVERIFY:Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/script/Script$VerifyFlag;

    move-object/from16 v0, p6

    invoke-interface {v0, v2}, Ljava/util/Set;->contains(Ljava/lang/Object;)Z

    move-result v2

    if-nez v2, :cond_b64

    .line 4627
    sget-object v2, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/script/Script$VerifyFlag;->DISCOURAGE_UPGRADABLE_NOPS:Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/script/Script$VerifyFlag;

    move-object/from16 v0, p6

    invoke-interface {v0, v2}, Ljava/util/Set;->contains(Ljava/lang/Object;)Z

    move-result v2

    if-eqz v2, :cond_c47

    .line 4628
    new-instance v2, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/core/ScriptException;

    new-instance v3, Ljava/lang/StringBuilder;

    const-string v4, "Script used a reserved opcode "

    invoke-direct {v3, v4}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V

    invoke-virtual {v3, v8}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;

    move-result-object v3

    invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;

    move-result-object v3

    invoke-direct {v2, v3}, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/core/ScriptException;-><init>(Ljava/lang/String;)V

    throw v2

    .line 4632
    :cond_b64
    move-wide/from16 v0, p1

    long-to-int v3, v0

    .line 6674
    invoke-virtual/range {p4 .. p4}, Ljava/util/LinkedList;->size()I

    move-result v2

    if-gtz v2, :cond_b75

    .line 6675
    new-instance v2, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/core/ScriptException;

    const-string v3, "Attempted OP_CHECKLOCKTIMEVERIFY on a stack with size < 1"

    invoke-direct {v2, v3}, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/core/ScriptException;-><init>(Ljava/lang/String;)V

    throw v2

    .line 6679
    :cond_b75
    invoke-virtual/range {p4 .. p4}, Ljava/util/LinkedList;->getLast()Ljava/lang/Object;

    move-result-object v2

    check-cast v2, [B

    sget-object v4, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/script/Script$VerifyFlag;->MINIMALDATA:Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/script/Script$VerifyFlag;

    move-object/from16 v0, p6

    invoke-interface {v0, v4}, Ljava/util/Set;->contains(Ljava/lang/Object;)Z

    move-result v4

    .line 6836
    array-length v5, v2

    const/4 v6, 0x5

    if-le v5, v6, :cond_b8f

    .line 6837
    new-instance v2, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/core/ScriptException;

    const-string v3, "Script attempted to use an integer larger than 5 bytes"

    invoke-direct {v2, v3}, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/core/ScriptException;-><init>(Ljava/lang/String;)V

    throw v2

    .line 6839
    :cond_b8f
    if-eqz v4, :cond_ba0

    const/4 v4, 0x5

    invoke-static {v2, v4}, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/core/aq;->e([BI)Z

    move-result v4

    if-nez v4, :cond_ba0

    .line 6840
    new-instance v2, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/core/ScriptException;

    const-string v3, "Number is not minimally encoded"

    invoke-direct {v2, v3}, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/core/ScriptException;-><init>(Ljava/lang/String;)V

    throw v2

    .line 6841
    :cond_ba0
    invoke-static {v2}, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/core/aq;->reverseBytes([B)[B

    move-result-object v2

    const/4 v4, 0x0

    invoke-static {v2, v4}, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/core/aq;->decodeMPI([BZ)Ljava/math/BigInteger;

    move-result-object v2

    .line 6681
    sget-object v4, Ljava/math/BigInteger;->ZERO:Ljava/math/BigInteger;

    invoke-virtual {v2, v4}, Ljava/math/BigInteger;->compareTo(Ljava/math/BigInteger;)I

    move-result v4

    if-gez v4, :cond_bb9

    .line 6682
    new-instance v2, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/core/ScriptException;

    const-string v3, "Negative locktime"

    invoke-direct {v2, v3}, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/core/ScriptException;-><init>(Ljava/lang/String;)V

    throw v2

    .line 7357
    :cond_bb9
    move-object/from16 v0, p0

    iget-wide v4, v0, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/core/Transaction;->lockTime:J

    .line 6686
    const-wide/32 v6, 0x1dcd6500

    cmp-long v4, v4, v6

    if-gez v4, :cond_bcc

    sget-object v4, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/core/Transaction;->LOCKTIME_THRESHOLD_BIG:Ljava/math/BigInteger;

    invoke-virtual {v2, v4}, Ljava/math/BigInteger;->compareTo(Ljava/math/BigInteger;)I

    move-result v4

    if-ltz v4, :cond_be7

    .line 8357
    :cond_bcc
    move-object/from16 v0, p0

    iget-wide v4, v0, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/core/Transaction;->lockTime:J

    .line 6687
    const-wide/32 v6, 0x1dcd6500

    cmp-long v4, v4, v6

    if-ltz v4, :cond_bdf

    sget-object v4, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/core/Transaction;->LOCKTIME_THRESHOLD_BIG:Ljava/math/BigInteger;

    invoke-virtual {v2, v4}, Ljava/math/BigInteger;->compareTo(Ljava/math/BigInteger;)I

    move-result v4

    if-gez v4, :cond_be7

    .line 6689
    :cond_bdf
    new-instance v2, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/core/ScriptException;

    const-string v3, "Locktime requirement type mismatch"

    invoke-direct {v2, v3}, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/core/ScriptException;-><init>(Ljava/lang/String;)V

    throw v2

    .line 9357
    :cond_be7
    move-object/from16 v0, p0

    iget-wide v4, v0, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/core/Transaction;->lockTime:J

    .line 6693
    invoke-static {v4, v5}, Ljava/math/BigInteger;->valueOf(J)Ljava/math/BigInteger;

    move-result-object v4

    invoke-virtual {v2, v4}, Ljava/math/BigInteger;->compareTo(Ljava/math/BigInteger;)I

    move-result v2

    if-lez v2, :cond_bfd

    .line 6694
    new-instance v2, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/core/ScriptException;

    const-string v3, "Locktime requirement not satisfied"

    invoke-direct {v2, v3}, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/core/ScriptException;-><init>(Ljava/lang/String;)V

    throw v2

    .line 6706
    :cond_bfd
    int-to-long v2, v3

    move-object/from16 v0, p0

    invoke-virtual {v0, v2, v3}, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/core/Transaction;->i(J)Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/core/ai;

    move-result-object v2

    invoke-virtual {v2}, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/core/ai;->hasSequence()Z

    move-result v2

    if-nez v2, :cond_c12

    .line 6707
    new-instance v2, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/core/ScriptException;

    const-string v3, "Transaction contains a final transaction input for a CHECKLOCKTIMEVERIFY script."

    invoke-direct {v2, v3}, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/core/ScriptException;-><init>(Ljava/lang/String;)V

    throw v2

    :cond_c12
    move v2, v11

    move v3, v10

    .line 4633
    goto/16 :goto_44

    .line 4643
    :pswitch_c16
    sget-object v2, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/script/Script$VerifyFlag;->DISCOURAGE_UPGRADABLE_NOPS:Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/script/Script$VerifyFlag;

    move-object/from16 v0, p6

    invoke-interface {v0, v2}, Ljava/util/Set;->contains(Ljava/lang/Object;)Z

    move-result v2

    if-eqz v2, :cond_c47

    .line 4644
    new-instance v2, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/core/ScriptException;

    new-instance v3, Ljava/lang/StringBuilder;

    const-string v4, "Script used a reserved opcode "

    invoke-direct {v3, v4}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V

    invoke-virtual {v3, v8}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;

    move-result-object v3

    invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;

    move-result-object v3

    invoke-direct {v2, v3}, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/core/ScriptException;-><init>(Ljava/lang/String;)V

    throw v2

    :cond_c35
    move v11, v2

    .line 4659
    goto/16 :goto_1d

    .line 4661
    :cond_c38
    invoke-virtual {v14}, Ljava/util/LinkedList;->isEmpty()Z

    move-result v2

    if-nez v2, :cond_c46

    .line 4662
    new-instance v2, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/core/ScriptException;

    const-string v3, "OP_IF/OP_NOTIF without OP_ENDIF"

    invoke-direct {v2, v3}, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/core/ScriptException;-><init>(Ljava/lang/String;)V

    throw v2

    .line 921
    :cond_c46
    return-void

    :cond_c47
    move v2, v11

    move v3, v10

    goto/16 :goto_44

    :cond_c4b
    move v3, v10

    goto/16 :goto_1d

    .line 4877
    :pswitch_data_c4e
    .packed-switch 0x7e
        :pswitch_be
        :pswitch_be
        :pswitch_be
        :pswitch_be
        :pswitch_b1
        :pswitch_bc
        :pswitch_be
        :pswitch_be
        :pswitch_be
        :pswitch_b1
        :pswitch_b1
        :pswitch_b1
        :pswitch_b1
        :pswitch_b1
        :pswitch_b1
        :pswitch_bc
        :pswitch_bc
        :pswitch_b1
        :pswitch_b1
        :pswitch_b1
        :pswitch_b1
        :pswitch_b1
        :pswitch_b1
        :pswitch_bc
        :pswitch_be
        :pswitch_be
        :pswitch_bc
        :pswitch_bc
    .end packed-switch

    .line 4008
    :pswitch_data_c8a
    .packed-switch 0x63
        :pswitch_e9
        :pswitch_118
        :pswitch_cf
        :pswitch_cf
        :pswitch_14c
        :pswitch_173
    .end packed-switch

    .line 4042
    :pswitch_data_c9a
    .packed-switch 0x4f
        :pswitch_187
        :pswitch_d4
        :pswitch_19e
        :pswitch_19e
        :pswitch_19e
        :pswitch_19e
        :pswitch_19e
        :pswitch_19e
        :pswitch_19e
        :pswitch_19e
        :pswitch_19e
        :pswitch_19e
        :pswitch_19e
        :pswitch_19e
        :pswitch_19e
        :pswitch_19e
        :pswitch_19e
        :pswitch_19e
        :pswitch_1b8
        :pswitch_d4
        :pswitch_d4
        :pswitch_d4
        :pswitch_d4
        :pswitch_d4
        :pswitch_d4
        :pswitch_d4
        :pswitch_1bc
        :pswitch_1de
        :pswitch_1e6
        :pswitch_1ff
        :pswitch_21a
        :pswitch_233
        :pswitch_25e
        :pswitch_294
        :pswitch_2c5
        :pswitch_31a
        :pswitch_359
        :pswitch_380
        :pswitch_39a
        :pswitch_3af
        :pswitch_3ca
        :pswitch_3eb
        :pswitch_40e
        :pswitch_40e
        :pswitch_469
        :pswitch_49d
        :pswitch_49d
        :pswitch_4cf
        :pswitch_513
        :pswitch_576
        :pswitch_600
        :pswitch_630
        :pswitch_65b
        :pswitch_663
        :pswitch_663
        :pswitch_663
        :pswitch_6c3
        :pswitch_6f8
        :pswitch_d4
        :pswitch_d4
        :pswitch_721
        :pswitch_721
        :pswitch_78e
        :pswitch_78e
        :pswitch_721
        :pswitch_721
        :pswitch_721
        :pswitch_721
        :pswitch_796
        :pswitch_796
        :pswitch_8c6
        :pswitch_796
        :pswitch_796
        :pswitch_8c6
        :pswitch_8c6
        :pswitch_796
        :pswitch_796
        :pswitch_796
        :pswitch_8ce
        :pswitch_796
        :pswitch_796
        :pswitch_796
        :pswitch_796
        :pswitch_796
        :pswitch_796
        :pswitch_796
        :pswitch_8ff
        :pswitch_95e
        :pswitch_98d
        :pswitch_9bb
        :pswitch_9dc
        :pswitch_9fd
        :pswitch_a1e
        :pswitch_a30
        :pswitch_a30
        :pswitch_b1a
        :pswitch_b1a
        :pswitch_c16
        :pswitch_b3b
        :pswitch_c16
        :pswitch_c16
        :pswitch_c16
        :pswitch_c16
        :pswitch_c16
        :pswitch_c16
        :pswitch_c16
        :pswitch_c16
    .end packed-switch

    .line 4341
    :pswitch_data_d74
    .packed-switch 0x84
        :pswitch_696
        :pswitch_6a5
        :pswitch_6b4
    .end packed-switch

    .line 4390
    :pswitch_data_d7e
    .packed-switch 0x8b
        :pswitch_744
        :pswitch_75b
        :pswitch_73c
        :pswitch_73c
        :pswitch_762
        :pswitch_767
        :pswitch_772
        :pswitch_780
    .end packed-switch

    .line 4445
    :pswitch_data_d92
    .packed-switch 0x93
        :pswitch_7c4
        :pswitch_7d9
        :pswitch_7bc
        :pswitch_7de
        :pswitch_7f1
        :pswitch_7bc
        :pswitch_7bc
        :pswitch_832
        :pswitch_848
        :pswitch_860
        :pswitch_7bc
        :pswitch_86e
        :pswitch_87c
        :pswitch_88a
        :pswitch_898
        :pswitch_8a6
        :pswitch_8b4
        :pswitch_8bd
    .end packed-switch
.end method

.method private static castToBool([B)Z
    .registers 4

    .prologue
    const/4 v1, 0x0

    .line 801
    move v0, v1

    :goto_2
    array-length v2, p0

    if-ge v0, v2, :cond_17

    .line 804
    aget-byte v2, p0, v0

    if-eqz v2, :cond_18

    .line 805
    array-length v2, p0

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

    if-ne v0, v2, :cond_16

    aget-byte v0, p0, v0

    and-int/lit16 v0, v0, 0xff

    const/16 v2, 0x80

    if-eq v0, v2, :cond_17

    :cond_16
    const/4 v1, 0x1

    .line 807
    :cond_17
    return v1

    .line 801
    :cond_18
    add-int/lit8 v0, v0, 0x1

    goto :goto_2
.end method

.method public static decodeFromOpN(I)I
    .registers 5

    .prologue
    const/16 v3, 0x4f

    const/4 v1, 0x0

    .line 584
    if-eqz p0, :cond_f

    if-eq p0, v3, :cond_f

    const/16 v0, 0x51

    if-lt p0, v0, :cond_18

    const/16 v0, 0x60

    if-gt p0, v0, :cond_18

    :cond_f
    const/4 v0, 0x1

    :goto_10
    const-string v2, "decodeFromOpN called on non OP_N opcode"

    invoke-static {v0, v2}, Lcom/google/common/base/n;->checkArgument(ZLjava/lang/Object;)V

    .line 585
    if-nez p0, :cond_1a

    .line 590
    :goto_17
    return v1

    :cond_18
    move v0, v1

    .line 584
    goto :goto_10

    .line 587
    :cond_1a
    if-ne p0, v3, :cond_1e

    .line 588
    const/4 v1, -0x1

    goto :goto_17

    .line 590
    :cond_1e
    add-int/lit8 v0, p0, 0x1

    add-int/lit8 v1, v0, -0x51

    goto :goto_17
.end method

.method static encodeToOpN(I)I
    .registers 6

    .prologue
    const/4 v1, 0x0

    const/4 v4, -0x1

    .line 594
    if-lt p0, v4, :cond_24

    const/16 v0, 0x10

    if-gt p0, v0, :cond_24

    const/4 v0, 0x1

    :goto_9
    new-instance v2, Ljava/lang/StringBuilder;

    const-string v3, "encodeToOpN called for "

    invoke-direct {v2, v3}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V

    invoke-virtual {v2, p0}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;

    move-result-object v2

    const-string v3, " which we cannot encode in an opcode."

    invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    move-result-object v2

    invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;

    move-result-object v2

    invoke-static {v0, v2}, Lcom/google/common/base/n;->checkArgument(ZLjava/lang/Object;)V

    .line 595
    if-nez p0, :cond_26

    .line 600
    :goto_23
    return v1

    :cond_24
    move v0, v1

    .line 594
    goto :goto_9

    .line 597
    :cond_26
    if-ne p0, v4, :cond_2b

    .line 598
    const/16 v1, 0x4f

    goto :goto_23

    .line 600
    :cond_2b
    add-int/lit8 v0, p0, -0x1

    add-int/lit8 v1, v0, 0x51

    goto :goto_23
.end method

.method private getQuickProgram()[B
    .registers 2

    .prologue
    .line 1937
    iget-object v0, p0, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/script/Script;->program:[B

    if-eqz v0, :cond_7

    .line 1938
    iget-object v0, p0, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/script/Script;->program:[B

    .line 1939
    :goto_6
    return-object v0

    :cond_7
    invoke-virtual {p0}, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/script/Script;->getProgram()[B

    move-result-object v0

    goto :goto_6
.end method

.method public static l([B)[B
    .registers 4

    .prologue
    .line 795
    const/4 v0, 0x1

    new-array v0, v0, [B

    const/4 v1, 0x0

    const/16 v2, -0x55

    aput-byte v2, v0, v1

    invoke-static {p0, v0}, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/script/Script;->removeAllInstancesOf([B[B)[B

    move-result-object v0

    return-object v0
.end method

.method private parse([B)V
    .registers 12

    .prologue
    .line 187
    new-instance v0, Ljava/util/ArrayList;

    const/4 v1, 0x5

    invoke-direct {v0, v1}, Ljava/util/ArrayList;-><init>(I)V

    iput-object v0, p0, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/script/Script;->chunks:Ljava/util/List;

    .line 188
    new-instance v3, Ljava/io/ByteArrayInputStream;

    invoke-direct {v3, p1}, Ljava/io/ByteArrayInputStream;-><init>([B)V

    .line 189
    invoke-virtual {v3}, Ljava/io/ByteArrayInputStream;->available()I

    move-result v4

    .line 190
    :goto_11
    invoke-virtual {v3}, Ljava/io/ByteArrayInputStream;->available()I

    move-result v0

    if-lez v0, :cond_f1

    .line 191
    invoke-virtual {v3}, Ljava/io/ByteArrayInputStream;->available()I

    move-result v0

    sub-int v2, v4, v0

    .line 192
    invoke-virtual {v3}, Ljava/io/ByteArrayInputStream;->read()I

    move-result v5

    .line 194
    const-wide/16 v0, -0x1

    .line 195
    if-ltz v5, :cond_4b

    const/16 v6, 0x4c

    if-ge v5, v6, :cond_4b

    .line 197
    int-to-long v0, v5

    .line 213
    :cond_2a
    :goto_2a
    const-wide/16 v6, -0x1

    cmp-long v6, v0, v6

    if-nez v6, :cond_b8

    .line 214
    new-instance v0, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/script/b;

    const/4 v1, 0x0

    invoke-direct {v0, v5, v1, v2}, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/script/b;-><init>(I[BI)V

    .line 223
    :goto_36
    sget-object v5, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/script/Script;->QF:[Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/script/b;

    const/4 v1, 0x0

    move v2, v1

    move-object v1, v0

    :goto_3b
    const/4 v0, 0x4

    if-ge v2, v0, :cond_ea

    aget-object v0, v5, v2

    .line 224
    invoke-virtual {v0, v1}, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/script/b;->equals(Ljava/lang/Object;)Z

    move-result v6

    if-eqz v6, :cond_f2

    .line 223
    :goto_46
    add-int/lit8 v1, v2, 0x1

    move v2, v1

    move-object v1, v0

    goto :goto_3b

    .line 198
    :cond_4b
    const/16 v6, 0x4c

    if-ne v5, v6, :cond_63

    .line 199
    invoke-virtual {v3}, Ljava/io/ByteArrayInputStream;->available()I

    move-result v0

    if-gtz v0, :cond_5d

    new-instance v0, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/core/ScriptException;

    const-string v1, "Unexpected end of script"

    invoke-direct {v0, v1}, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/core/ScriptException;-><init>(Ljava/lang/String;)V

    throw v0

    .line 200
    :cond_5d
    invoke-virtual {v3}, Ljava/io/ByteArrayInputStream;->read()I

    move-result v0

    int-to-long v0, v0

    goto :goto_2a

    .line 201
    :cond_63
    const/16 v6, 0x4d

    if-ne v5, v6, :cond_83

    .line 203
    invoke-virtual {v3}, Ljava/io/ByteArrayInputStream;->available()I

    move-result v0

    const/4 v1, 0x2

    if-ge v0, v1, :cond_76

    new-instance v0, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/core/ScriptException;

    const-string v1, "Unexpected end of script"

    invoke-direct {v0, v1}, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/core/ScriptException;-><init>(Ljava/lang/String;)V

    throw v0

    .line 204
    :cond_76
    invoke-virtual {v3}, Ljava/io/ByteArrayInputStream;->read()I

    move-result v0

    invoke-virtual {v3}, Ljava/io/ByteArrayInputStream;->read()I

    move-result v1

    shl-int/lit8 v1, v1, 0x8

    or-int/2addr v0, v1

    int-to-long v0, v0

    goto :goto_2a

    .line 205
    :cond_83
    const/16 v6, 0x4e

    if-ne v5, v6, :cond_2a

    .line 208
    invoke-virtual {v3}, Ljava/io/ByteArrayInputStream;->available()I

    move-result v0

    const/4 v1, 0x4

    if-ge v0, v1, :cond_96

    new-instance v0, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/core/ScriptException;

    const-string v1, "Unexpected end of script"

    invoke-direct {v0, v1}, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/core/ScriptException;-><init>(Ljava/lang/String;)V

    throw v0

    .line 209
    :cond_96
    invoke-virtual {v3}, Ljava/io/ByteArrayInputStream;->read()I

    move-result v0

    int-to-long v0, v0

    invoke-virtual {v3}, Ljava/io/ByteArrayInputStream;->read()I

    move-result v6

    int-to-long v6, v6

    const/16 v8, 0x8

    shl-long/2addr v6, v8

    or-long/2addr v0, v6

    invoke-virtual {v3}, Ljava/io/ByteArrayInputStream;->read()I

    move-result v6

    int-to-long v6, v6

    const/16 v8, 0x10

    shl-long/2addr v6, v8

    or-long/2addr v0, v6

    invoke-virtual {v3}, Ljava/io/ByteArrayInputStream;->read()I

    move-result v6

    int-to-long v6, v6

    const/16 v8, 0x18

    shl-long/2addr v6, v8

    or-long/2addr v0, v6

    goto/16 :goto_2a

    .line 216
    :cond_b8
    invoke-virtual {v3}, Ljava/io/ByteArrayInputStream;->available()I

    move-result v6

    int-to-long v6, v6

    cmp-long v6, v0, v6

    if-lez v6, :cond_c9

    .line 217
    new-instance v0, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/core/ScriptException;

    const-string v1, "Push of data element that is larger than remaining data"

    invoke-direct {v0, v1}, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/core/ScriptException;-><init>(Ljava/lang/String;)V

    throw v0

    .line 218
    :cond_c9
    long-to-int v6, v0

    new-array v6, v6, [B

    .line 219
    const-wide/16 v8, 0x0

    cmp-long v7, v0, v8

    if-eqz v7, :cond_dd

    const/4 v7, 0x0

    long-to-int v8, v0

    invoke-virtual {v3, v6, v7, v8}, Ljava/io/ByteArrayInputStream;->read([BII)I

    move-result v7

    int-to-long v8, v7

    cmp-long v0, v8, v0

    if-nez v0, :cond_e8

    :cond_dd
    const/4 v0, 0x1

    :goto_de
    invoke-static {v0}, Lcom/google/common/base/n;->checkState(Z)V

    .line 220
    new-instance v0, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/script/b;

    invoke-direct {v0, v5, v6, v2}, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/script/b;-><init>(I[BI)V

    goto/16 :goto_36

    .line 219
    :cond_e8
    const/4 v0, 0x0

    goto :goto_de

    .line 226
    :cond_ea
    iget-object v0, p0, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/script/Script;->chunks:Ljava/util/List;

    invoke-interface {v0, v1}, Ljava/util/List;->add(Ljava/lang/Object;)Z

    goto/16 :goto_11

    .line 228
    :cond_f1
    return-void

    :cond_f2
    move-object v0, v1

    goto/16 :goto_46
.end method

.method private static removeAllInstancesOf([B[B)[B
    .registers 10

    .prologue
    const/16 v7, 0x4c

    const/4 v1, 0x0

    .line 757
    new-instance v4, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/core/ap;

    array-length v0, p0

    invoke-direct {v4, v0}, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/core/ap;-><init>(I)V

    move v0, v1

    .line 760
    :goto_a
    array-length v2, p0

    if-ge v0, v2, :cond_8b

    .line 3744
    array-length v2, p1

    add-int/2addr v2, v0

    array-length v3, p0

    if-le v2, v3, :cond_2e

    move v2, v1

    .line 763
    :goto_13
    add-int/lit8 v5, v0, 0x1

    aget-byte v0, p0, v0

    and-int/lit16 v3, v0, 0xff

    .line 765
    if-ltz v3, :cond_41

    if-ge v3, v7, :cond_41

    move v0, v3

    .line 778
    :goto_1e
    if-nez v2, :cond_2c

    .line 780
    :try_start_20
    invoke-virtual {v4, v3}, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/core/ap;->write(I)V

    .line 781
    add-int v2, v5, v0

    invoke-static {p0, v5, v2}, Ljava/util/Arrays;->copyOfRange([BII)[B

    move-result-object v2

    invoke-virtual {v4, v2}, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/core/ap;->write([B)V
    :try_end_2c
    .catch Ljava/io/IOException; {:try_start_20 .. :try_end_2c} :catch_84

    .line 786
    :cond_2c
    add-int/2addr v0, v5

    .line 787
    goto :goto_a

    :cond_2e
    move v2, v1

    .line 3746
    :goto_2f
    array-length v3, p1

    if-ge v2, v3, :cond_3f

    .line 3747
    add-int v3, v2, v0

    aget-byte v3, p0, v3

    aget-byte v5, p1, v2

    if-eq v3, v5, :cond_3c

    move v2, v1

    .line 3748
    goto :goto_13

    .line 3746
    :cond_3c
    add-int/lit8 v2, v2, 0x1

    goto :goto_2f

    .line 3749
    :cond_3f
    const/4 v2, 0x1

    goto :goto_13

    .line 767
    :cond_41
    if-ne v3, v7, :cond_4a

    .line 768
    aget-byte v0, p0, v5

    and-int/lit16 v0, v0, 0xff

    add-int/lit8 v0, v0, 0x1

    goto :goto_1e

    .line 769
    :cond_4a
    const/16 v0, 0x4d

    if-ne v3, v0, :cond_5e

    .line 770
    aget-byte v0, p0, v5

    and-int/lit16 v0, v0, 0xff

    add-int/lit8 v6, v5, 0x1

    aget-byte v6, p0, v6

    and-int/lit16 v6, v6, 0xff

    shl-int/lit8 v6, v6, 0x8

    or-int/2addr v0, v6

    add-int/lit8 v0, v0, 0x2

    goto :goto_1e

    .line 772
    :cond_5e
    const/16 v0, 0x4e

    if-ne v3, v0, :cond_90

    .line 773
    aget-byte v0, p0, v5

    and-int/lit16 v0, v0, 0xff

    add-int/lit8 v6, v5, 0x1

    aget-byte v6, p0, v6

    and-int/lit16 v6, v6, 0xff

    shl-int/lit8 v6, v6, 0x8

    or-int/2addr v0, v6

    add-int/lit8 v6, v5, 0x1

    aget-byte v6, p0, v6

    and-int/lit16 v6, v6, 0xff

    shl-int/lit8 v6, v6, 0x10

    or-int/2addr v0, v6

    add-int/lit8 v6, v5, 0x1

    aget-byte v6, p0, v6

    and-int/lit16 v6, v6, 0xff

    shl-int/lit8 v6, v6, 0x18

    or-int/2addr v0, v6

    add-int/lit8 v0, v0, 0x4

    goto :goto_1e

    .line 782
    :catch_84
    move-exception v0

    .line 783
    new-instance v1, Ljava/lang/RuntimeException;

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

    throw v1

    .line 788
    :cond_8b
    invoke-virtual {v4}, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/core/ap;->toByteArray()[B

    move-result-object v0

    return-object v0

    :cond_90
    move v0, v1

    goto :goto_1e
.end method

.method public static writeBytes(Ljava/io/OutputStream;[B)V
    .registers 5

    .prologue
    const/16 v2, 0x4c

    .line 385
    array-length v0, p1

    if-ge v0, v2, :cond_d

    .line 386
    array-length v0, p1

    invoke-virtual {p0, v0}, Ljava/io/OutputStream;->write(I)V

    .line 387
    invoke-virtual {p0, p1}, Ljava/io/OutputStream;->write([B)V

    .line 396
    :goto_c
    return-void

    .line 388
    :cond_d
    array-length v0, p1

    const/16 v1, 0x100

    if-ge v0, v1, :cond_1d

    .line 389
    invoke-virtual {p0, v2}, Ljava/io/OutputStream;->write(I)V

    .line 390
    array-length v0, p1

    invoke-virtual {p0, v0}, Ljava/io/OutputStream;->write(I)V

    .line 391
    invoke-virtual {p0, p1}, Ljava/io/OutputStream;->write([B)V

    goto :goto_c

    .line 392
    :cond_1d
    array-length v0, p1

    const/high16 v1, 0x10000

    if-ge v0, v1, :cond_39

    .line 393
    const/16 v0, 0x4d

    invoke-virtual {p0, v0}, Ljava/io/OutputStream;->write(I)V

    .line 394
    array-length v0, p1

    and-int/lit16 v0, v0, 0xff

    invoke-virtual {p0, v0}, Ljava/io/OutputStream;->write(I)V

    .line 395
    array-length v0, p1

    shr-int/lit8 v0, v0, 0x8

    and-int/lit16 v0, v0, 0xff

    invoke-virtual {p0, v0}, Ljava/io/OutputStream;->write(I)V

    .line 396
    invoke-virtual {p0, p1}, Ljava/io/OutputStream;->write([B)V

    goto :goto_c

    .line 398
    :cond_39
    new-instance v0, Ljava/lang/RuntimeException;

    const-string v1, "Unimplemented"

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

    throw v0
.end method


# virtual methods
.method public final a(Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/script/Script;[BI)Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/script/Script;
    .registers 16

    .prologue
    const/4 v2, 0x1

    const/4 v3, 0x0

    .line 471
    .line 473
    invoke-virtual {p0}, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/script/Script;->isPayToScriptHash()Z

    move-result v0

    if-eqz v0, :cond_44

    move v1, v2

    move v4, v2

    .line 2344
    :goto_a
    new-instance v7, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/script/a;

    invoke-direct {v7}, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/script/a;-><init>()V

    .line 3167
    iget-object v0, p1, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/script/Script;->chunks:Ljava/util/List;

    invoke-static {v0}, Ljava/util/Collections;->unmodifiableList(Ljava/util/List;)Ljava/util/List;

    move-result-object v8

    .line 2346
    invoke-interface {v8}, Ljava/util/List;->size()I

    move-result v9

    .line 2351
    sub-int v0, v9, v1

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

    invoke-interface {v8, v0}, Ljava/util/List;->get(I)Ljava/lang/Object;

    move-result-object v0

    check-cast v0, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/script/b;

    invoke-virtual {v0, v3}, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/script/b;->equalsOpCode(I)Z

    move-result v0

    .line 2352
    const-string v5, "ScriptSig is already filled with signatures"

    invoke-static {v0, v5}, Lcom/google/common/base/n;->checkArgument(ZLjava/lang/Object;)V

    .line 2355
    invoke-interface {v8, v3, v4}, Ljava/util/List;->subList(II)Ljava/util/List;

    move-result-object v0

    invoke-interface {v0}, Ljava/util/List;->iterator()Ljava/util/Iterator;

    move-result-object v5

    :goto_34
    invoke-interface {v5}, Ljava/util/Iterator;->hasNext()Z

    move-result v0

    if-eqz v0, :cond_56

    invoke-interface {v5}, Ljava/util/Iterator;->next()Ljava/lang/Object;

    move-result-object v0

    check-cast v0, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/script/b;

    .line 2356
    invoke-virtual {v7, v0}, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/script/a;->a(Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/script/b;)Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/script/a;

    goto :goto_34

    .line 476
    :cond_44
    invoke-virtual {p0}, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/script/Script;->isSentToMultiSig()Z

    move-result v0

    if-eqz v0, :cond_4d

    move v1, v3

    move v4, v2

    .line 477
    goto :goto_a

    .line 478
    :cond_4d
    invoke-virtual {p0}, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/script/Script;->isSentToAddress()Z

    move-result v0

    if-eqz v0, :cond_c1

    move v1, v2

    move v4, v3

    .line 479
    goto :goto_a

    .line 2361
    :cond_56
    sub-int v0, v9, v1

    invoke-interface {v8, v4, v0}, Ljava/util/List;->subList(II)Ljava/util/List;

    move-result-object v0

    invoke-interface {v0}, Ljava/util/List;->iterator()Ljava/util/Iterator;

    move-result-object v10

    move v5, v3

    move v6, v3

    :goto_62
    invoke-interface {v10}, Ljava/util/Iterator;->hasNext()Z

    move-result v0

    if-eqz v0, :cond_83

    invoke-interface {v10}, Ljava/util/Iterator;->next()Ljava/lang/Object;

    move-result-object v0

    check-cast v0, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/script/b;

    .line 2362
    if-ne v6, p3, :cond_76

    .line 2364
    invoke-virtual {v7, p2}, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/script/a;->m([B)Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/script/a;

    .line 2365
    add-int/lit8 v6, v6, 0x1

    move v5, v2

    .line 2367
    :cond_76
    invoke-virtual {v0, v3}, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/script/b;->equalsOpCode(I)Z

    move-result v11

    if-nez v11, :cond_bf

    .line 2368
    invoke-virtual {v7, v0}, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/script/a;->a(Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/script/b;)Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/script/a;

    .line 2369
    add-int/lit8 v0, v6, 0x1

    :goto_81
    move v6, v0

    .line 2371
    goto :goto_62

    .line 2374
    :cond_83
    :goto_83
    sub-int v0, v9, v4

    sub-int/2addr v0, v1

    if-ge v6, v0, :cond_9d

    .line 2375
    if-ne v6, p3, :cond_92

    .line 2377
    invoke-virtual {v7, p2}, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/script/a;->m([B)Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/script/a;

    move v0, v2

    .line 2382
    :goto_8e
    add-int/lit8 v6, v6, 0x1

    move v5, v0

    goto :goto_83

    .line 2380
    :cond_92
    new-instance v0, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/script/b;

    const/4 v10, 0x0

    invoke-direct {v0, v3, v10}, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/script/b;-><init>(I[B)V

    invoke-virtual {v7, v0}, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/script/a;->a(Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/script/b;)Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/script/a;

    move v0, v5

    goto :goto_8e

    .line 2386
    :cond_9d
    sub-int v0, v9, v1

    invoke-interface {v8, v0, v9}, Ljava/util/List;->subList(II)Ljava/util/List;

    move-result-object v0

    invoke-interface {v0}, Ljava/util/List;->iterator()Ljava/util/Iterator;

    move-result-object v1

    :goto_a7
    invoke-interface {v1}, Ljava/util/Iterator;->hasNext()Z

    move-result v0

    if-eqz v0, :cond_b7

    invoke-interface {v1}, Ljava/util/Iterator;->next()Ljava/lang/Object;

    move-result-object v0

    check-cast v0, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/script/b;

    .line 2387
    invoke-virtual {v7, v0}, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/script/a;->a(Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/script/b;)Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/script/a;

    goto :goto_a7

    .line 2389
    :cond_b7
    invoke-static {v5}, Lcom/google/common/base/n;->checkState(Z)V

    .line 2390
    invoke-virtual {v7}, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/script/a;->gT()Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/script/Script;

    move-result-object v0

    .line 481
    return-object v0

    :cond_bf
    move v0, v6

    goto :goto_81

    :cond_c1
    move v1, v3

    move v4, v3

    goto/16 :goto_a
.end method

.method public final a(Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/core/Transaction;JLcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/script/Script;Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/core/Coin;Ljava/util/Set;)V
    .registers 19
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "(",
            "Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/core/Transaction;",
            "J",
            "Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/script/Script;",
            "Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/core/Coin;",
            "Ljava/util/Set",
            "<",
            "Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/script/Script$VerifyFlag;",
            ">;)V"
        }
    .end annotation

    .prologue
    const/16 v5, 0x2710

    .line 1883
    :try_start_2
    invoke-virtual {p1}, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/core/Transaction;->gs()Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/core/NetworkParameters;

    move-result-object v2

    invoke-virtual {v2}, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/core/NetworkParameters;->gu()Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/core/y;

    move-result-object v2

    invoke-virtual {p1}, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/core/Transaction;->bitcoinSerialize()[B

    move-result-object v3

    .line 11142
    array-length v4, v3

    invoke-virtual {v2, v3, v4}, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/core/y;->d([BI)Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/core/Transaction;
    :try_end_12
    .catch Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/core/ProtocolException; {:try_start_2 .. :try_end_12} :catch_29

    move-result-object v3

    .line 1887
    invoke-virtual {p0}, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/script/Script;->getProgram()[B

    move-result-object v2

    array-length v2, v2

    if-gt v2, v5, :cond_21

    invoke-virtual/range {p4 .. p4}, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/script/Script;->getProgram()[B

    move-result-object v2

    array-length v2, v2

    if-le v2, v5, :cond_30

    .line 1888
    :cond_21
    new-instance v2, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/core/ScriptException;

    const-string v3, "Script larger than 10,000 bytes"

    invoke-direct {v2, v3}, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/core/ScriptException;-><init>(Ljava/lang/String;)V

    throw v2

    .line 1884
    :catch_29
    move-exception v2

    .line 1885
    new-instance v3, Ljava/lang/RuntimeException;

    invoke-direct {v3, v2}, Ljava/lang/RuntimeException;-><init>(Ljava/lang/Throwable;)V

    throw v3

    .line 1890
    :cond_30
    new-instance v7, Ljava/util/LinkedList;

    invoke-direct {v7}, Ljava/util/LinkedList;-><init>()V

    .line 1891
    const/4 v2, 0x0

    move-wide v4, p2

    move-object v6, p0

    move-object/from16 v8, p5

    move-object/from16 v9, p6

    .line 1893
    invoke-static/range {v3 .. v9}, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/script/Script;->a(Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/core/Transaction;JLcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/script/Script;Ljava/util/LinkedList;Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/core/Coin;Ljava/util/Set;)V

    .line 1894
    sget-object v4, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/script/Script$VerifyFlag;->P2SH:Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/script/Script$VerifyFlag;

    move-object/from16 v0, p6

    invoke-interface {v0, v4}, Ljava/util/Set;->contains(Ljava/lang/Object;)Z

    move-result v4

    if-eqz v4, :cond_f5

    .line 1895
    new-instance v2, Ljava/util/LinkedList;

    invoke-direct {v2, v7}, Ljava/util/LinkedList;-><init>(Ljava/util/Collection;)V

    move-object v10, v2

    :goto_4f
    move-wide v4, p2

    move-object/from16 v6, p4

    move-object/from16 v8, p5

    move-object/from16 v9, p6

    .line 1896
    invoke-static/range {v3 .. v9}, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/script/Script;->a(Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/core/Transaction;JLcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/script/Script;Ljava/util/LinkedList;Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/core/Coin;Ljava/util/Set;)V

    .line 1898
    invoke-virtual {v7}, Ljava/util/LinkedList;->size()I

    move-result v2

    if-nez v2, :cond_67

    .line 1899
    new-instance v2, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/core/ScriptException;

    const-string v3, "Stack empty at end of script execution."

    invoke-direct {v2, v3}, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/core/ScriptException;-><init>(Ljava/lang/String;)V

    throw v2

    .line 1901
    :cond_67
    invoke-virtual {v7}, Ljava/util/LinkedList;->pollLast()Ljava/lang/Object;

    move-result-object v2

    check-cast v2, [B

    invoke-static {v2}, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/script/Script;->castToBool([B)Z

    move-result v2

    if-nez v2, :cond_88

    .line 1902
    new-instance v2, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/core/ScriptException;

    new-instance v3, Ljava/lang/StringBuilder;

    const-string v4, "Script resulted in a non-true stack: "

    invoke-direct {v3, v4}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V

    invoke-virtual {v3, v7}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;

    move-result-object v3

    invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;

    move-result-object v3

    invoke-direct {v2, v3}, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/core/ScriptException;-><init>(Ljava/lang/String;)V

    throw v2

    .line 1917
    :cond_88
    sget-object v2, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/script/Script$VerifyFlag;->P2SH:Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/script/Script$VerifyFlag;

    move-object/from16 v0, p6

    invoke-interface {v0, v2}, Ljava/util/Set;->contains(Ljava/lang/Object;)Z

    move-result v2

    if-eqz v2, :cond_f4

    invoke-virtual/range {p4 .. p4}, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/script/Script;->isPayToScriptHash()Z

    move-result v2

    if-eqz v2, :cond_f4

    .line 1918
    iget-object v2, p0, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/script/Script;->chunks:Ljava/util/List;

    invoke-interface {v2}, Ljava/util/List;->iterator()Ljava/util/Iterator;

    move-result-object v4

    :cond_9e
    invoke-interface {v4}, Ljava/util/Iterator;->hasNext()Z

    move-result v2

    if-eqz v2, :cond_be

    invoke-interface {v4}, Ljava/util/Iterator;->next()Ljava/lang/Object;

    move-result-object v2

    check-cast v2, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/script/b;

    .line 1919
    invoke-virtual {v2}, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/script/b;->isOpCode()Z

    move-result v5

    if-eqz v5, :cond_9e

    iget v2, v2, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/script/b;->opcode:I

    const/16 v5, 0x60

    if-le v2, v5, :cond_9e

    .line 1920
    new-instance v2, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/core/ScriptException;

    const-string v3, "Attempted to spend a P2SH scriptPubKey with a script that contained script ops"

    invoke-direct {v2, v3}, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/core/ScriptException;-><init>(Ljava/lang/String;)V

    throw v2

    .line 1922
    :cond_be
    invoke-virtual {v10}, Ljava/util/LinkedList;->pollLast()Ljava/lang/Object;

    move-result-object v2

    check-cast v2, [B

    .line 1923
    new-instance v6, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/script/Script;

    invoke-direct {v6, v2}, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/script/Script;-><init>([B)V

    move-wide v4, p2

    move-object v7, v10

    move-object/from16 v8, p5

    move-object/from16 v9, p6

    .line 1925
    invoke-static/range {v3 .. v9}, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/script/Script;->a(Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/core/Transaction;JLcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/script/Script;Ljava/util/LinkedList;Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/core/Coin;Ljava/util/Set;)V

    .line 1927
    invoke-virtual {v10}, Ljava/util/LinkedList;->size()I

    move-result v2

    if-nez v2, :cond_e0

    .line 1928
    new-instance v2, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/core/ScriptException;

    const-string v3, "P2SH stack empty at end of script execution."

    invoke-direct {v2, v3}, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/core/ScriptException;-><init>(Ljava/lang/String;)V

    throw v2

    .line 1930
    :cond_e0
    invoke-virtual {v10}, Ljava/util/LinkedList;->pollLast()Ljava/lang/Object;

    move-result-object v2

    check-cast v2, [B

    invoke-static {v2}, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/script/Script;->castToBool([B)Z

    move-result v2

    if-nez v2, :cond_f4

    .line 1931
    new-instance v2, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/core/ScriptException;

    const-string v3, "P2SH script execution resulted in a non-true stack"

    invoke-direct {v2, v3}, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/core/ScriptException;-><init>(Ljava/lang/String;)V

    throw v2

    .line 1933
    :cond_f4
    return-void

    :cond_f5
    move-object v10, v2

    goto/16 :goto_4f
.end method

.method public equals(Ljava/lang/Object;)Z
    .registers 4

    .prologue
    .line 1960
    if-ne p0, p1, :cond_4

    const/4 v0, 0x1

    .line 1962
    :goto_3
    return v0

    .line 1961
    :cond_4
    if-eqz p1, :cond_10

    invoke-virtual {p0}, Ljava/lang/Object;->getClass()Ljava/lang/Class;

    move-result-object v0

    invoke-virtual {p1}, Ljava/lang/Object;->getClass()Ljava/lang/Class;

    move-result-object v1

    if-eq v0, v1, :cond_12

    :cond_10
    const/4 v0, 0x0

    goto :goto_3

    .line 1962
    :cond_12
    invoke-direct {p0}, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/script/Script;->getQuickProgram()[B

    move-result-object v0

    check-cast p1, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/script/Script;

    invoke-direct {p1}, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/script/Script;->getQuickProgram()[B

    move-result-object v1

    invoke-static {v0, v1}, Ljava/util/Arrays;->equals([B[B)Z

    move-result v0

    goto :goto_3
.end method

.method public final getNumberOfSignaturesRequiredToSpend()I
    .registers 3

    .prologue
    .line 639
    invoke-virtual {p0}, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/script/Script;->isSentToMultiSig()Z

    move-result v0

    if-eqz v0, :cond_16

    .line 641
    iget-object v0, p0, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/script/Script;->chunks:Ljava/util/List;

    const/4 v1, 0x0

    invoke-interface {v0, v1}, Ljava/util/List;->get(I)Ljava/lang/Object;

    move-result-object v0

    check-cast v0, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/script/b;

    .line 642
    iget v0, v0, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/script/b;->opcode:I

    invoke-static {v0}, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/script/Script;->decodeFromOpN(I)I

    move-result v0

    .line 645
    :goto_15
    return v0

    .line 643
    :cond_16
    invoke-virtual {p0}, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/script/Script;->isSentToAddress()Z

    move-result v0

    if-nez v0, :cond_22

    invoke-virtual {p0}, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/script/Script;->isSentToRawPubKey()Z

    move-result v0

    if-eqz v0, :cond_24

    .line 645
    :cond_22
    const/4 v0, 0x1

    goto :goto_15

    .line 646
    :cond_24
    invoke-virtual {p0}, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/script/Script;->isPayToScriptHash()Z

    move-result v0

    if-eqz v0, :cond_32

    .line 647
    new-instance v0, Ljava/lang/IllegalStateException;

    const-string v1, "For P2SH number of signatures depends on redeem script"

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

    throw v0

    .line 649
    :cond_32
    new-instance v0, Ljava/lang/IllegalStateException;

    const-string v1, "Unsupported script type"

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

    throw v0
.end method

.method public final getProgram()[B
    .registers 14

    .prologue
    const/16 v12, 0x4e

    const/16 v11, 0x4d

    const/16 v10, 0x4c

    const/4 v2, 0x1

    const/4 v3, 0x0

    .line 152
    :try_start_8
    iget-object v0, p0, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/script/Script;->program:[B

    if-eqz v0, :cond_16

    .line 153
    iget-object v0, p0, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/script/Script;->program:[B

    iget-object v1, p0, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/script/Script;->program:[B

    array-length v1, v1

    invoke-static {v0, v1}, Ljava/util/Arrays;->copyOf([BI)[B

    move-result-object v0

    .line 159
    :goto_15
    return-object v0

    .line 154
    :cond_16
    new-instance v4, Ljava/io/ByteArrayOutputStream;

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

    .line 155
    iget-object v0, p0, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/script/Script;->chunks:Ljava/util/List;

    invoke-interface {v0}, Ljava/util/List;->iterator()Ljava/util/Iterator;

    move-result-object v5

    :goto_21
    invoke-interface {v5}, Ljava/util/Iterator;->hasNext()Z

    move-result v0

    if-eqz v0, :cond_da

    invoke-interface {v5}, Ljava/util/Iterator;->next()Ljava/lang/Object;

    move-result-object v0

    check-cast v0, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/script/b;

    .line 2112
    invoke-virtual {v0}, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/script/b;->isOpCode()Z

    move-result v1

    if-eqz v1, :cond_4a

    .line 2113
    iget-object v1, v0, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/script/b;->data:[B

    if-nez v1, :cond_48

    move v1, v2

    :goto_38
    invoke-static {v1}, Lcom/google/common/base/n;->checkState(Z)V

    .line 2137
    :cond_3b
    iget v0, v0, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/script/b;->opcode:I

    invoke-virtual {v4, v0}, Ljava/io/OutputStream;->write(I)V
    :try_end_40
    .catch Ljava/io/IOException; {:try_start_8 .. :try_end_40} :catch_41

    goto :goto_21

    .line 160
    :catch_41
    move-exception v0

    .line 161
    new-instance v1, Ljava/lang/RuntimeException;

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

    throw v1

    :cond_48
    move v1, v3

    .line 2113
    goto :goto_38

    .line 2115
    :cond_4a
    :try_start_4a
    iget-object v1, v0, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/script/b;->data:[B

    if-eqz v1, :cond_3b

    .line 2116
    iget v1, v0, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/script/b;->opcode:I

    if-ge v1, v10, :cond_6a

    .line 2117
    iget-object v1, v0, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/script/b;->data:[B

    array-length v1, v1

    iget v6, v0, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/script/b;->opcode:I

    if-ne v1, v6, :cond_68

    move v1, v2

    :goto_5a
    invoke-static {v1}, Lcom/google/common/base/n;->checkState(Z)V

    .line 2118
    iget v1, v0, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/script/b;->opcode:I

    invoke-virtual {v4, v1}, Ljava/io/OutputStream;->write(I)V

    .line 2135
    :goto_62
    iget-object v0, v0, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/script/b;->data:[B

    invoke-virtual {v4, v0}, Ljava/io/OutputStream;->write([B)V

    goto :goto_21

    :cond_68
    move v1, v3

    .line 2117
    goto :goto_5a

    .line 2119
    :cond_6a
    iget v1, v0, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/script/b;->opcode:I

    if-ne v1, v10, :cond_87

    .line 2120
    iget-object v1, v0, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/script/b;->data:[B

    array-length v1, v1

    const/16 v6, 0xff

    if-gt v1, v6, :cond_85

    move v1, v2

    :goto_76
    invoke-static {v1}, Lcom/google/common/base/n;->checkState(Z)V

    .line 2121
    const/16 v1, 0x4c

    invoke-virtual {v4, v1}, Ljava/io/OutputStream;->write(I)V

    .line 2122
    iget-object v1, v0, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/script/b;->data:[B

    array-length v1, v1

    invoke-virtual {v4, v1}, Ljava/io/OutputStream;->write(I)V

    goto :goto_62

    :cond_85
    move v1, v3

    .line 2120
    goto :goto_76

    .line 2123
    :cond_87
    iget v1, v0, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/script/b;->opcode:I

    if-ne v1, v11, :cond_b1

    .line 2124
    iget-object v1, v0, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/script/b;->data:[B

    array-length v1, v1

    const v6, 0xffff

    if-gt v1, v6, :cond_af

    move v1, v2

    :goto_94
    invoke-static {v1}, Lcom/google/common/base/n;->checkState(Z)V

    .line 2125
    const/16 v1, 0x4d

    invoke-virtual {v4, v1}, Ljava/io/OutputStream;->write(I)V

    .line 2126
    iget-object v1, v0, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/script/b;->data:[B

    array-length v1, v1

    and-int/lit16 v1, v1, 0xff

    invoke-virtual {v4, v1}, Ljava/io/OutputStream;->write(I)V

    .line 2127
    iget-object v1, v0, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/script/b;->data:[B

    array-length v1, v1

    shr-int/lit8 v1, v1, 0x8

    and-int/lit16 v1, v1, 0xff

    invoke-virtual {v4, v1}, Ljava/io/OutputStream;->write(I)V

    goto :goto_62

    :cond_af
    move v1, v3

    .line 2124
    goto :goto_94

    .line 2128
    :cond_b1
    iget v1, v0, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/script/b;->opcode:I

    if-ne v1, v12, :cond_d2

    .line 2129
    iget-object v1, v0, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/script/b;->data:[B

    array-length v1, v1

    int-to-long v6, v1

    const-wide/16 v8, 0x208

    cmp-long v1, v6, v8

    if-gtz v1, :cond_d0

    move v1, v2

    :goto_c0
    invoke-static {v1}, Lcom/google/common/base/n;->checkState(Z)V

    .line 2130
    const/16 v1, 0x4e

    invoke-virtual {v4, v1}, Ljava/io/OutputStream;->write(I)V

    .line 2131
    iget-object v1, v0, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/script/b;->data:[B

    array-length v1, v1

    int-to-long v6, v1

    invoke-static {v6, v7, v4}, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/core/aq;->uint32ToByteStreamLE(JLjava/io/OutputStream;)V

    goto :goto_62

    :cond_d0
    move v1, v3

    .line 2129
    goto :goto_c0

    .line 2133
    :cond_d2
    new-instance v0, Ljava/lang/RuntimeException;

    const-string v1, "Unimplemented"

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

    throw v0

    .line 158
    :cond_da
    invoke-virtual {v4}, Ljava/io/ByteArrayOutputStream;->toByteArray()[B

    move-result-object v0

    iput-object v0, p0, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/script/Script;->program:[B

    .line 159
    iget-object v0, p0, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/script/Script;->program:[B
    :try_end_e2
    .catch Ljava/io/IOException; {:try_start_4a .. :try_end_e2} :catch_41

    goto/16 :goto_15
.end method

.method public final getPubKey()[B
    .registers 6

    .prologue
    const/4 v4, 0x2

    .line 294
    iget-object v0, p0, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/script/Script;->chunks:Ljava/util/List;

    invoke-interface {v0}, Ljava/util/List;->size()I

    move-result v0

    if-eq v0, v4, :cond_24

    .line 295
    new-instance v0, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/core/ScriptException;

    new-instance v1, Ljava/lang/StringBuilder;

    const-string v2, "Script not of right size, expecting 2 but got "

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

    iget-object v2, p0, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/script/Script;->chunks:Ljava/util/List;

    invoke-interface {v2}, Ljava/util/List;->size()I

    move-result v2

    invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;

    move-result-object v1

    invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;

    move-result-object v1

    invoke-direct {v0, v1}, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/core/ScriptException;-><init>(Ljava/lang/String;)V

    throw v0

    .line 297
    :cond_24
    iget-object v0, p0, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/script/Script;->chunks:Ljava/util/List;

    const/4 v1, 0x0

    invoke-interface {v0, v1}, Ljava/util/List;->get(I)Ljava/lang/Object;

    move-result-object v0

    check-cast v0, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/script/b;

    .line 298
    iget-object v2, v0, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/script/b;->data:[B

    .line 299
    iget-object v0, p0, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/script/Script;->chunks:Ljava/util/List;

    const/4 v1, 0x1

    invoke-interface {v0, v1}, Ljava/util/List;->get(I)Ljava/lang/Object;

    move-result-object v0

    check-cast v0, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/script/b;

    .line 300
    iget-object v1, v0, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/script/b;->data:[B

    .line 301
    if-eqz v2, :cond_46

    array-length v3, v2

    if-le v3, v4, :cond_46

    if-eqz v1, :cond_46

    array-length v3, v1

    if-le v3, v4, :cond_46

    move-object v0, v1

    .line 306
    :goto_45
    return-object v0

    .line 304
    :cond_46
    const/16 v1, 0xac

    invoke-virtual {v0, v1}, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/script/b;->equalsOpCode(I)Z

    move-result v0

    if-eqz v0, :cond_55

    if-eqz v2, :cond_55

    array-length v0, v2

    if-le v0, v4, :cond_55

    move-object v0, v2

    .line 306
    goto :goto_45

    .line 308
    :cond_55
    new-instance v0, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/core/ScriptException;

    new-instance v1, Ljava/lang/StringBuilder;

    const-string v2, "Script did not match expected form: "

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

    invoke-virtual {v1, p0}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;

    move-result-object v1

    invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;

    move-result-object v1

    invoke-direct {v0, v1}, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/core/ScriptException;-><init>(Ljava/lang/String;)V

    throw v0
.end method

.method public final getPubKeyHash()[B
    .registers 3

    .prologue
    .line 277
    invoke-virtual {p0}, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/script/Script;->isSentToAddress()Z

    move-result v0

    if-eqz v0, :cond_12

    .line 278
    iget-object v0, p0, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/script/Script;->chunks:Ljava/util/List;

    const/4 v1, 0x2

    invoke-interface {v0, v1}, Ljava/util/List;->get(I)Ljava/lang/Object;

    move-result-object v0

    check-cast v0, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/script/b;

    iget-object v0, v0, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/script/b;->data:[B

    .line 280
    :goto_11
    return-object v0

    .line 279
    :cond_12
    invoke-virtual {p0}, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/script/Script;->isPayToScriptHash()Z

    move-result v0

    if-eqz v0, :cond_24

    .line 280
    iget-object v0, p0, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/script/Script;->chunks:Ljava/util/List;

    const/4 v1, 0x1

    invoke-interface {v0, v1}, Ljava/util/List;->get(I)Ljava/lang/Object;

    move-result-object v0

    check-cast v0, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/script/b;

    iget-object v0, v0, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/script/b;->data:[B

    goto :goto_11

    .line 282
    :cond_24
    new-instance v0, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/core/ScriptException;

    const-string v1, "Script not in the standard scriptPubKey form"

    invoke-direct {v0, v1}, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/core/ScriptException;-><init>(Ljava/lang/String;)V

    throw v0
.end method

.method public hashCode()I
    .registers 2

    .prologue
    .line 1967
    invoke-direct {p0}, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/script/Script;->getQuickProgram()[B

    move-result-object v0

    invoke-static {v0}, Ljava/util/Arrays;->hashCode([B)I

    move-result v0

    return v0
.end method

.method public final isOpReturn()Z
    .registers 4

    .prologue
    const/4 v1, 0x0

    .line 845
    iget-object v0, p0, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/script/Script;->chunks:Ljava/util/List;

    invoke-interface {v0}, Ljava/util/List;->size()I

    move-result v0

    if-lez v0, :cond_1b

    iget-object v0, p0, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/script/Script;->chunks:Ljava/util/List;

    invoke-interface {v0, v1}, Ljava/util/List;->get(I)Ljava/lang/Object;

    move-result-object v0

    check-cast v0, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/script/b;

    const/16 v2, 0x6a

    invoke-virtual {v0, v2}, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/script/b;->equalsOpCode(I)Z

    move-result v0

    if-eqz v0, :cond_1b

    const/4 v0, 0x1

    :goto_1a
    return v0

    :cond_1b
    move v0, v1

    goto :goto_1a
.end method

.method public final isPayToScriptHash()Z
    .registers 6

    .prologue
    const/4 v0, 0x1

    const/4 v1, 0x0

    .line 694
    invoke-virtual {p0}, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/script/Script;->getProgram()[B

    move-result-object v2

    .line 695
    array-length v3, v2

    const/16 v4, 0x17

    if-ne v3, v4, :cond_26

    aget-byte v3, v2, v1

    and-int/lit16 v3, v3, 0xff

    const/16 v4, 0xa9

    if-ne v3, v4, :cond_26

    aget-byte v3, v2, v0

    and-int/lit16 v3, v3, 0xff

    const/16 v4, 0x14

    if-ne v3, v4, :cond_26

    const/16 v3, 0x16

    aget-byte v2, v2, v3

    and-int/lit16 v2, v2, 0xff

    const/16 v3, 0x87

    if-ne v2, v3, :cond_26

    :goto_25
    return v0

    :cond_26
    move v0, v1

    goto :goto_25
.end method

.method public final isSentToAddress()Z
    .registers 5

    .prologue
    const/4 v1, 0x1

    const/4 v2, 0x0

    .line 248
    iget-object v0, p0, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/script/Script;->chunks:Ljava/util/List;

    invoke-interface {v0}, Ljava/util/List;->size()I

    move-result v0

    const/4 v3, 0x5

    if-ne v0, v3, :cond_5f

    iget-object v0, p0, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/script/Script;->chunks:Ljava/util/List;

    .line 249
    invoke-interface {v0, v2}, Ljava/util/List;->get(I)Ljava/lang/Object;

    move-result-object v0

    check-cast v0, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/script/b;

    const/16 v3, 0x76

    invoke-virtual {v0, v3}, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/script/b;->equalsOpCode(I)Z

    move-result v0

    if-eqz v0, :cond_5f

    iget-object v0, p0, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/script/Script;->chunks:Ljava/util/List;

    .line 250
    invoke-interface {v0, v1}, Ljava/util/List;->get(I)Ljava/lang/Object;

    move-result-object v0

    check-cast v0, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/script/b;

    const/16 v3, 0xa9

    invoke-virtual {v0, v3}, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/script/b;->equalsOpCode(I)Z

    move-result v0

    if-eqz v0, :cond_5f

    iget-object v0, p0, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/script/Script;->chunks:Ljava/util/List;

    const/4 v3, 0x2

    .line 251
    invoke-interface {v0, v3}, Ljava/util/List;->get(I)Ljava/lang/Object;

    move-result-object v0

    check-cast v0, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/script/b;

    iget-object v0, v0, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/script/b;->data:[B

    array-length v0, v0

    const/16 v3, 0x14

    if-ne v0, v3, :cond_5f

    iget-object v0, p0, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/script/Script;->chunks:Ljava/util/List;

    const/4 v3, 0x3

    .line 252
    invoke-interface {v0, v3}, Ljava/util/List;->get(I)Ljava/lang/Object;

    move-result-object v0

    check-cast v0, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/script/b;

    const/16 v3, 0x88

    invoke-virtual {v0, v3}, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/script/b;->equalsOpCode(I)Z

    move-result v0

    if-eqz v0, :cond_5f

    iget-object v0, p0, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/script/Script;->chunks:Ljava/util/List;

    const/4 v3, 0x4

    .line 253
    invoke-interface {v0, v3}, Ljava/util/List;->get(I)Ljava/lang/Object;

    move-result-object v0

    check-cast v0, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/script/b;

    const/16 v3, 0xac

    invoke-virtual {v0, v3}, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/script/b;->equalsOpCode(I)Z

    move-result v0

    if-eqz v0, :cond_5f

    move v0, v1

    :goto_5e
    return v0

    :cond_5f
    move v0, v2

    .line 248
    goto :goto_5e
.end method

.method public final isSentToCLTVPaymentChannel()Z
    .registers 4

    .prologue
    const/4 v1, 0x0

    .line 728
    iget-object v0, p0, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/script/Script;->chunks:Ljava/util/List;

    invoke-interface {v0}, Ljava/util/List;->size()I

    move-result v0

    const/16 v2, 0xa

    if-eq v0, v2, :cond_d

    move v0, v1

    .line 740
    :goto_c
    return v0

    .line 730
    :cond_d
    iget-object v0, p0, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/script/Script;->chunks:Ljava/util/List;

    invoke-interface {v0, v1}, Ljava/util/List;->get(I)Ljava/lang/Object;

    move-result-object v0

    check-cast v0, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/script/b;

    const/16 v2, 0x63

    invoke-virtual {v0, v2}, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/script/b;->equalsOpCode(I)Z

    move-result v0

    if-nez v0, :cond_1f

    move v0, v1

    goto :goto_c

    .line 732
    :cond_1f
    iget-object v0, p0, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/script/Script;->chunks:Ljava/util/List;

    const/4 v2, 0x2

    invoke-interface {v0, v2}, Ljava/util/List;->get(I)Ljava/lang/Object;

    move-result-object v0

    check-cast v0, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/script/b;

    const/16 v2, 0xad

    invoke-virtual {v0, v2}, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/script/b;->equalsOpCode(I)Z

    move-result v0

    if-nez v0, :cond_32

    move v0, v1

    goto :goto_c

    .line 733
    :cond_32
    iget-object v0, p0, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/script/Script;->chunks:Ljava/util/List;

    const/4 v2, 0x3

    invoke-interface {v0, v2}, Ljava/util/List;->get(I)Ljava/lang/Object;

    move-result-object v0

    check-cast v0, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/script/b;

    const/16 v2, 0x67

    invoke-virtual {v0, v2}, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/script/b;->equalsOpCode(I)Z

    move-result v0

    if-nez v0, :cond_45

    move v0, v1

    goto :goto_c

    .line 735
    :cond_45
    iget-object v0, p0, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/script/Script;->chunks:Ljava/util/List;

    const/4 v2, 0x5

    invoke-interface {v0, v2}, Ljava/util/List;->get(I)Ljava/lang/Object;

    move-result-object v0

    check-cast v0, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/script/b;

    const/16 v2, 0xb1

    invoke-virtual {v0, v2}, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/script/b;->equalsOpCode(I)Z

    move-result v0

    if-nez v0, :cond_58

    move v0, v1

    goto :goto_c

    .line 736
    :cond_58
    iget-object v0, p0, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/script/Script;->chunks:Ljava/util/List;

    const/4 v2, 0x6

    invoke-interface {v0, v2}, Ljava/util/List;->get(I)Ljava/lang/Object;

    move-result-object v0

    check-cast v0, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/script/b;

    const/16 v2, 0x75

    invoke-virtual {v0, v2}, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/script/b;->equalsOpCode(I)Z

    move-result v0

    if-nez v0, :cond_6b

    move v0, v1

    goto :goto_c

    .line 737
    :cond_6b
    iget-object v0, p0, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/script/Script;->chunks:Ljava/util/List;

    const/4 v2, 0x7

    invoke-interface {v0, v2}, Ljava/util/List;->get(I)Ljava/lang/Object;

    move-result-object v0

    check-cast v0, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/script/b;

    const/16 v2, 0x68

    invoke-virtual {v0, v2}, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/script/b;->equalsOpCode(I)Z

    move-result v0

    if-nez v0, :cond_7e

    move v0, v1

    goto :goto_c

    .line 739
    :cond_7e
    iget-object v0, p0, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/script/Script;->chunks:Ljava/util/List;

    const/16 v2, 0x9

    invoke-interface {v0, v2}, Ljava/util/List;->get(I)Ljava/lang/Object;

    move-result-object v0

    check-cast v0, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/script/b;

    const/16 v2, 0xac

    invoke-virtual {v0, v2}, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/script/b;->equalsOpCode(I)Z

    move-result v0

    if-nez v0, :cond_93

    move v0, v1

    goto/16 :goto_c

    .line 740
    :cond_93
    const/4 v0, 0x1

    goto/16 :goto_c
.end method

.method public final isSentToMultiSig()Z
    .registers 5

    .prologue
    const/4 v2, 0x1

    const/4 v1, 0x0

    .line 705
    iget-object v0, p0, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/script/Script;->chunks:Ljava/util/List;

    invoke-interface {v0}, Ljava/util/List;->size()I

    move-result v0

    const/4 v3, 0x4

    if-ge v0, v3, :cond_d

    move v0, v1

    .line 724
    :goto_c
    return v0

    .line 706
    :cond_d
    iget-object v0, p0, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/script/Script;->chunks:Ljava/util/List;

    iget-object v3, p0, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/script/Script;->chunks:Ljava/util/List;

    invoke-interface {v3}, Ljava/util/List;->size()I

    move-result v3

    add-int/lit8 v3, v3, -0x1

    invoke-interface {v0, v3}, Ljava/util/List;->get(I)Ljava/lang/Object;

    move-result-object v0

    check-cast v0, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/script/b;

    .line 708
    invoke-virtual {v0}, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/script/b;->isOpCode()Z

    move-result v3

    if-nez v3, :cond_25

    move v0, v1

    goto :goto_c

    .line 709
    :cond_25
    const/16 v3, 0xae

    invoke-virtual {v0, v3}, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/script/b;->equalsOpCode(I)Z

    move-result v3

    if-nez v3, :cond_37

    const/16 v3, 0xaf

    invoke-virtual {v0, v3}, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/script/b;->equalsOpCode(I)Z

    move-result v0

    if-nez v0, :cond_37

    move v0, v1

    goto :goto_c

    .line 712
    :cond_37
    :try_start_37
    iget-object v0, p0, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/script/Script;->chunks:Ljava/util/List;

    iget-object v3, p0, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/script/Script;->chunks:Ljava/util/List;

    invoke-interface {v3}, Ljava/util/List;->size()I

    move-result v3

    add-int/lit8 v3, v3, -0x2

    invoke-interface {v0, v3}, Ljava/util/List;->get(I)Ljava/lang/Object;

    move-result-object v0

    check-cast v0, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/script/b;

    .line 713
    invoke-virtual {v0}, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/script/b;->isOpCode()Z

    move-result v3

    if-nez v3, :cond_4f

    move v0, v1

    goto :goto_c

    .line 714
    :cond_4f
    iget v0, v0, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/script/b;->opcode:I

    invoke-static {v0}, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/script/Script;->decodeFromOpN(I)I

    move-result v0

    .line 715
    if-lez v0, :cond_61

    iget-object v3, p0, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/script/Script;->chunks:Ljava/util/List;

    invoke-interface {v3}, Ljava/util/List;->size()I

    move-result v3

    add-int/lit8 v0, v0, 0x3

    if-eq v3, v0, :cond_63

    :cond_61
    move v0, v1

    goto :goto_c

    :cond_63
    move v3, v2

    .line 716
    :goto_64
    iget-object v0, p0, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/script/Script;->chunks:Ljava/util/List;

    invoke-interface {v0}, Ljava/util/List;->size()I

    move-result v0

    add-int/lit8 v0, v0, -0x2

    if-ge v3, v0, :cond_82

    .line 717
    iget-object v0, p0, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/script/Script;->chunks:Ljava/util/List;

    invoke-interface {v0, v3}, Ljava/util/List;->get(I)Ljava/lang/Object;

    move-result-object v0

    check-cast v0, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/script/b;

    invoke-virtual {v0}, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/script/b;->isOpCode()Z

    move-result v0

    if-eqz v0, :cond_7e

    move v0, v1

    goto :goto_c

    .line 716
    :cond_7e
    add-int/lit8 v0, v3, 0x1

    move v3, v0

    goto :goto_64

    .line 720
    :cond_82
    iget-object v0, p0, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/script/Script;->chunks:Ljava/util/List;

    const/4 v3, 0x0

    invoke-interface {v0, v3}, Ljava/util/List;->get(I)Ljava/lang/Object;

    move-result-object v0

    check-cast v0, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/script/b;

    iget v0, v0, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/script/b;->opcode:I

    invoke-static {v0}, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/script/Script;->decodeFromOpN(I)I
    :try_end_90
    .catch Ljava/lang/IllegalArgumentException; {:try_start_37 .. :try_end_90} :catch_96

    move-result v0

    if-gtz v0, :cond_9a

    move v0, v1

    goto/16 :goto_c

    .line 722
    :catch_96
    move-exception v0

    move v0, v1

    goto/16 :goto_c

    :cond_9a
    move v0, v2

    .line 724
    goto/16 :goto_c
.end method

.method public final isSentToRawPubKey()Z
    .registers 5

    .prologue
    const/4 v1, 0x1

    const/4 v2, 0x0

    .line 237
    iget-object v0, p0, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/script/Script;->chunks:Ljava/util/List;

    invoke-interface {v0}, Ljava/util/List;->size()I

    move-result v0

    const/4 v3, 0x2

    if-ne v0, v3, :cond_38

    iget-object v0, p0, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/script/Script;->chunks:Ljava/util/List;

    invoke-interface {v0, v1}, Ljava/util/List;->get(I)Ljava/lang/Object;

    move-result-object v0

    check-cast v0, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/script/b;

    const/16 v3, 0xac

    invoke-virtual {v0, v3}, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/script/b;->equalsOpCode(I)Z

    move-result v0

    if-eqz v0, :cond_38

    iget-object v0, p0, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/script/Script;->chunks:Ljava/util/List;

    .line 238
    invoke-interface {v0, v2}, Ljava/util/List;->get(I)Ljava/lang/Object;

    move-result-object v0

    check-cast v0, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/script/b;

    invoke-virtual {v0}, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/script/b;->isOpCode()Z

    move-result v0

    if-nez v0, :cond_38

    iget-object v0, p0, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/script/Script;->chunks:Ljava/util/List;

    invoke-interface {v0, v2}, Ljava/util/List;->get(I)Ljava/lang/Object;

    move-result-object v0

    check-cast v0, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/script/b;

    iget-object v0, v0, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/script/b;->data:[B

    array-length v0, v0

    if-le v0, v1, :cond_38

    move v0, v1

    :goto_37
    return v0

    :cond_38
    move v0, v2

    .line 237
    goto :goto_37
.end method

.method public toString()Ljava/lang/String;
    .registers 2

    .prologue
    .line 145
    iget-object v0, p0, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/script/Script;->chunks:Ljava/util/List;

    invoke-static {v0}, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/core/aq;->join(Ljava/lang/Iterable;)Ljava/lang/String;

    move-result-object v0

    return-object v0
.end method