IOUtils.smali

.class public Lcom/tradplus/ads/common/serialization/util/IOUtils;
.super Ljava/lang/Object;


# static fields
.field public static final ASCII_CHARS:[C

.field public static final CA:[C

.field public static final DEFAULT_PROPERTIES:Ljava/util/Properties;

.field public static final DIGITS:[C

.field public static final FASTJSON_COMPATIBLEWITHFIELDNAME:Ljava/lang/String; = "fastjson.compatibleWithFieldName"

.field public static final FASTJSON_COMPATIBLEWITHJAVABEAN:Ljava/lang/String; = "fastjson.compatibleWithJavaBean"

.field public static final FASTJSON_PROPERTIES:Ljava/lang/String; = "fastjson.properties"

.field public static final IA:[I

.field public static final UTF8:Ljava/nio/charset/Charset;

.field static final a:[C

.field static final b:[C

.field static final c:[C

.field static final d:[I

.field public static final firstIdentifierFlags:[Z

.field public static final identifierFlags:[Z

.field public static final replaceChars:[C

.field public static final specicalFlags_doubleQuotes:[B

.field public static final specicalFlags_doubleQuotesFlags:[Z

.field public static final specicalFlags_singleQuotes:[B

.field public static final specicalFlags_singleQuotesFlags:[Z


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

    new-instance v0, Ljava/util/Properties;

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

    sput-object v0, Lcom/tradplus/ads/common/serialization/util/IOUtils;->DEFAULT_PROPERTIES:Ljava/util/Properties;

    const-string v0, "UTF-8"

    invoke-static {v0}, Ljava/nio/charset/Charset;->forName(Ljava/lang/String;)Ljava/nio/charset/Charset;

    move-result-object v0

    sput-object v0, Lcom/tradplus/ads/common/serialization/util/IOUtils;->UTF8:Ljava/nio/charset/Charset;

    const/16 v0, 0x10

    new-array v0, v0, [C

    fill-array-data v0, :array_1f4

    sput-object v0, Lcom/tradplus/ads/common/serialization/util/IOUtils;->DIGITS:[C

    const/16 v0, 0x100

    new-array v1, v0, [Z

    sput-object v1, Lcom/tradplus/ads/common/serialization/util/IOUtils;->firstIdentifierFlags:[Z

    new-array v1, v0, [Z

    sput-object v1, Lcom/tradplus/ads/common/serialization/util/IOUtils;->identifierFlags:[Z

    const/4 v1, 0x0

    const/4 v2, 0x0

    :goto_24
    sget-object v3, Lcom/tradplus/ads/common/serialization/util/IOUtils;->firstIdentifierFlags:[Z

    array-length v4, v3

    const/4 v5, 0x1

    if-ge v2, v4, :cond_52

    const/16 v4, 0x41

    if-lt v2, v4, :cond_35

    const/16 v4, 0x5a

    if-gt v2, v4, :cond_35

    aput-boolean v5, v3, v2

    goto :goto_4e

    :cond_35
    const/16 v3, 0x61

    if-lt v2, v3, :cond_42

    const/16 v3, 0x7a

    if-gt v2, v3, :cond_42

    sget-object v3, Lcom/tradplus/ads/common/serialization/util/IOUtils;->firstIdentifierFlags:[Z

    aput-boolean v5, v3, v2

    goto :goto_4e

    :cond_42
    const/16 v3, 0x5f

    if-eq v2, v3, :cond_4a

    const/16 v3, 0x24

    if-ne v2, v3, :cond_4e

    :cond_4a
    sget-object v3, Lcom/tradplus/ads/common/serialization/util/IOUtils;->firstIdentifierFlags:[Z

    aput-boolean v5, v3, v2

    :cond_4e
    :goto_4e
    add-int/lit8 v2, v2, 0x1

    int-to-char v2, v2

    goto :goto_24

    :cond_52
    const/4 v2, 0x0

    :goto_53
    sget-object v3, Lcom/tradplus/ads/common/serialization/util/IOUtils;->identifierFlags:[Z

    array-length v4, v3

    if-ge v2, v4, :cond_89

    const/16 v4, 0x41

    if-lt v2, v4, :cond_63

    const/16 v4, 0x5a

    if-gt v2, v4, :cond_63

    aput-boolean v5, v3, v2

    goto :goto_85

    :cond_63
    const/16 v3, 0x61

    if-lt v2, v3, :cond_70

    const/16 v3, 0x7a

    if-gt v2, v3, :cond_70

    sget-object v3, Lcom/tradplus/ads/common/serialization/util/IOUtils;->identifierFlags:[Z

    aput-boolean v5, v3, v2

    goto :goto_85

    :cond_70
    const/16 v3, 0x5f

    if-ne v2, v3, :cond_79

    sget-object v3, Lcom/tradplus/ads/common/serialization/util/IOUtils;->identifierFlags:[Z

    aput-boolean v5, v3, v2

    goto :goto_85

    :cond_79
    const/16 v3, 0x30

    if-lt v2, v3, :cond_85

    const/16 v3, 0x39

    if-gt v2, v3, :cond_85

    sget-object v3, Lcom/tradplus/ads/common/serialization/util/IOUtils;->identifierFlags:[Z

    aput-boolean v5, v3, v2

    :cond_85
    :goto_85
    add-int/lit8 v2, v2, 0x1

    int-to-char v2, v2

    goto :goto_53

    :cond_89
    :try_start_89
    invoke-static {}, Lcom/tradplus/ads/common/serialization/util/IOUtils;->loadPropertiesFromFile()V
    :try_end_8c
    .catch Ljava/lang/Throwable; {:try_start_89 .. :try_end_8c} :catch_8c

    :catch_8c
    const/16 v2, 0xa1

    new-array v3, v2, [B

    sput-object v3, Lcom/tradplus/ads/common/serialization/util/IOUtils;->specicalFlags_doubleQuotes:[B

    new-array v3, v2, [B

    sput-object v3, Lcom/tradplus/ads/common/serialization/util/IOUtils;->specicalFlags_singleQuotes:[B

    new-array v3, v2, [Z

    sput-object v3, Lcom/tradplus/ads/common/serialization/util/IOUtils;->specicalFlags_doubleQuotesFlags:[Z

    new-array v3, v2, [Z

    sput-object v3, Lcom/tradplus/ads/common/serialization/util/IOUtils;->specicalFlags_singleQuotesFlags:[Z

    const/16 v3, 0x5d

    new-array v3, v3, [C

    sput-object v3, Lcom/tradplus/ads/common/serialization/util/IOUtils;->replaceChars:[C

    sget-object v3, Lcom/tradplus/ads/common/serialization/util/IOUtils;->specicalFlags_doubleQuotes:[B

    const/4 v4, 0x4

    aput-byte v4, v3, v1

    aput-byte v4, v3, v5

    const/4 v6, 0x2

    aput-byte v4, v3, v6

    const/4 v7, 0x3

    aput-byte v4, v3, v7

    aput-byte v4, v3, v4

    const/4 v8, 0x5

    aput-byte v4, v3, v8

    const/4 v9, 0x6

    aput-byte v4, v3, v9

    const/4 v10, 0x7

    aput-byte v4, v3, v10

    const/16 v11, 0x8

    aput-byte v5, v3, v11

    const/16 v12, 0x9

    aput-byte v5, v3, v12

    const/16 v13, 0xa

    aput-byte v5, v3, v13

    const/16 v14, 0xb

    aput-byte v4, v3, v14

    const/16 v15, 0xc

    aput-byte v5, v3, v15

    const/16 v15, 0xd

    aput-byte v5, v3, v15

    const/16 v15, 0x22

    aput-byte v5, v3, v15

    const/16 v15, 0x5c

    aput-byte v5, v3, v15

    sget-object v3, Lcom/tradplus/ads/common/serialization/util/IOUtils;->specicalFlags_singleQuotes:[B

    aput-byte v4, v3, v1

    aput-byte v4, v3, v5

    aput-byte v4, v3, v6

    aput-byte v4, v3, v7

    aput-byte v4, v3, v4

    aput-byte v4, v3, v8

    aput-byte v4, v3, v9

    aput-byte v4, v3, v10

    aput-byte v5, v3, v11

    aput-byte v5, v3, v12

    aput-byte v5, v3, v13

    aput-byte v4, v3, v14

    const/16 v16, 0xc

    aput-byte v5, v3, v16

    const/16 v16, 0xd

    aput-byte v5, v3, v16

    aput-byte v5, v3, v15

    const/16 v16, 0x27

    aput-byte v5, v3, v16

    const/16 v3, 0xe

    :goto_106
    const/16 v0, 0x1f

    if-gt v3, v0, :cond_115

    sget-object v0, Lcom/tradplus/ads/common/serialization/util/IOUtils;->specicalFlags_doubleQuotes:[B

    aput-byte v4, v0, v3

    sget-object v0, Lcom/tradplus/ads/common/serialization/util/IOUtils;->specicalFlags_singleQuotes:[B

    aput-byte v4, v0, v3

    add-int/lit8 v3, v3, 0x1

    goto :goto_106

    :cond_115
    const/16 v0, 0x7f

    :goto_117
    const/16 v3, 0xa0

    if-ge v0, v3, :cond_126

    sget-object v3, Lcom/tradplus/ads/common/serialization/util/IOUtils;->specicalFlags_doubleQuotes:[B

    aput-byte v4, v3, v0

    sget-object v3, Lcom/tradplus/ads/common/serialization/util/IOUtils;->specicalFlags_singleQuotes:[B

    aput-byte v4, v3, v0

    add-int/lit8 v0, v0, 0x1

    goto :goto_117

    :cond_126
    const/4 v0, 0x0

    :goto_127
    if-ge v0, v2, :cond_14a

    sget-object v3, Lcom/tradplus/ads/common/serialization/util/IOUtils;->specicalFlags_doubleQuotesFlags:[Z

    sget-object v17, Lcom/tradplus/ads/common/serialization/util/IOUtils;->specicalFlags_doubleQuotes:[B

    aget-byte v17, v17, v0

    if-eqz v17, :cond_134

    const/16 v17, 0x1

    goto :goto_136

    :cond_134
    const/16 v17, 0x0

    :goto_136
    aput-boolean v17, v3, v0

    sget-object v3, Lcom/tradplus/ads/common/serialization/util/IOUtils;->specicalFlags_singleQuotesFlags:[Z

    sget-object v17, Lcom/tradplus/ads/common/serialization/util/IOUtils;->specicalFlags_singleQuotes:[B

    aget-byte v17, v17, v0

    if-eqz v17, :cond_143

    const/16 v17, 0x1

    goto :goto_145

    :cond_143
    const/16 v17, 0x0

    :goto_145
    aput-boolean v17, v3, v0

    add-int/lit8 v0, v0, 0x1

    goto :goto_127

    :cond_14a
    sget-object v0, Lcom/tradplus/ads/common/serialization/util/IOUtils;->replaceChars:[C

    const/16 v2, 0x30

    aput-char v2, v0, v1

    const/16 v2, 0x31

    aput-char v2, v0, v5

    const/16 v2, 0x32

    aput-char v2, v0, v6

    const/16 v2, 0x33

    aput-char v2, v0, v7

    const/16 v2, 0x34

    aput-char v2, v0, v4

    const/16 v2, 0x35

    aput-char v2, v0, v8

    const/16 v2, 0x36

    aput-char v2, v0, v9

    const/16 v2, 0x37

    aput-char v2, v0, v10

    const/16 v2, 0x62

    aput-char v2, v0, v11

    const/16 v2, 0x74

    aput-char v2, v0, v12

    const/16 v2, 0x6e

    aput-char v2, v0, v13

    const/16 v2, 0x76

    aput-char v2, v0, v14

    const/16 v2, 0xc

    const/16 v3, 0x66

    aput-char v3, v0, v2

    const/16 v2, 0xd

    const/16 v3, 0x72

    aput-char v3, v0, v2

    const/16 v2, 0x22

    const/16 v3, 0x22

    aput-char v3, v0, v2

    const/16 v2, 0x27

    const/16 v3, 0x27

    aput-char v3, v0, v2

    const/16 v2, 0x2f

    const/16 v3, 0x2f

    aput-char v3, v0, v2

    aput-char v15, v0, v15

    const/16 v0, 0x60

    new-array v0, v0, [C

    fill-array-data v0, :array_208

    sput-object v0, Lcom/tradplus/ads/common/serialization/util/IOUtils;->ASCII_CHARS:[C

    const/16 v0, 0x24

    new-array v0, v0, [C

    fill-array-data v0, :array_26c

    sput-object v0, Lcom/tradplus/ads/common/serialization/util/IOUtils;->a:[C

    const/16 v0, 0x64

    new-array v0, v0, [C

    fill-array-data v0, :array_294

    sput-object v0, Lcom/tradplus/ads/common/serialization/util/IOUtils;->b:[C

    const/16 v0, 0x64

    new-array v0, v0, [C

    fill-array-data v0, :array_2fc

    sput-object v0, Lcom/tradplus/ads/common/serialization/util/IOUtils;->c:[C

    new-array v0, v13, [I

    fill-array-data v0, :array_364

    sput-object v0, Lcom/tradplus/ads/common/serialization/util/IOUtils;->d:[I

    const-string v0, "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"

    invoke-virtual {v0}, Ljava/lang/String;->toCharArray()[C

    move-result-object v0

    sput-object v0, Lcom/tradplus/ads/common/serialization/util/IOUtils;->CA:[C

    const/16 v0, 0x100

    new-array v0, v0, [I

    sput-object v0, Lcom/tradplus/ads/common/serialization/util/IOUtils;->IA:[I

    sget-object v0, Lcom/tradplus/ads/common/serialization/util/IOUtils;->IA:[I

    const/4 v2, -0x1

    invoke-static {v0, v2}, Ljava/util/Arrays;->fill([II)V

    sget-object v0, Lcom/tradplus/ads/common/serialization/util/IOUtils;->CA:[C

    array-length v0, v0

    const/4 v2, 0x0

    :goto_1df
    if-ge v2, v0, :cond_1ec

    sget-object v3, Lcom/tradplus/ads/common/serialization/util/IOUtils;->IA:[I

    sget-object v4, Lcom/tradplus/ads/common/serialization/util/IOUtils;->CA:[C

    aget-char v4, v4, v2

    aput v2, v3, v4

    add-int/lit8 v2, v2, 0x1

    goto :goto_1df

    :cond_1ec
    sget-object v0, Lcom/tradplus/ads/common/serialization/util/IOUtils;->IA:[I

    const/16 v2, 0x3d

    aput v1, v0, v2

    return-void

    nop

    :array_1f4
    .array-data 2
        0x30s
        0x31s
        0x32s
        0x33s
        0x34s
        0x35s
        0x36s
        0x37s
        0x38s
        0x39s
        0x41s
        0x42s
        0x43s
        0x44s
        0x45s
        0x46s
    .end array-data

    :array_208
    .array-data 2
        0x30s
        0x30s
        0x30s
        0x31s
        0x30s
        0x32s
        0x30s
        0x33s
        0x30s
        0x34s
        0x30s
        0x35s
        0x30s
        0x36s
        0x30s
        0x37s
        0x30s
        0x38s
        0x30s
        0x39s
        0x30s
        0x41s
        0x30s
        0x42s
        0x30s
        0x43s
        0x30s
        0x44s
        0x30s
        0x45s
        0x30s
        0x46s
        0x31s
        0x30s
        0x31s
        0x31s
        0x31s
        0x32s
        0x31s
        0x33s
        0x31s
        0x34s
        0x31s
        0x35s
        0x31s
        0x36s
        0x31s
        0x37s
        0x31s
        0x38s
        0x31s
        0x39s
        0x31s
        0x41s
        0x31s
        0x42s
        0x31s
        0x43s
        0x31s
        0x44s
        0x31s
        0x45s
        0x31s
        0x46s
        0x32s
        0x30s
        0x32s
        0x31s
        0x32s
        0x32s
        0x32s
        0x33s
        0x32s
        0x34s
        0x32s
        0x35s
        0x32s
        0x36s
        0x32s
        0x37s
        0x32s
        0x38s
        0x32s
        0x39s
        0x32s
        0x41s
        0x32s
        0x42s
        0x32s
        0x43s
        0x32s
        0x44s
        0x32s
        0x45s
        0x32s
        0x46s
    .end array-data

    :array_26c
    .array-data 2
        0x30s
        0x31s
        0x32s
        0x33s
        0x34s
        0x35s
        0x36s
        0x37s
        0x38s
        0x39s
        0x61s
        0x62s
        0x63s
        0x64s
        0x65s
        0x66s
        0x67s
        0x68s
        0x69s
        0x6as
        0x6bs
        0x6cs
        0x6ds
        0x6es
        0x6fs
        0x70s
        0x71s
        0x72s
        0x73s
        0x74s
        0x75s
        0x76s
        0x77s
        0x78s
        0x79s
        0x7as
    .end array-data

    :array_294
    .array-data 2
        0x30s
        0x30s
        0x30s
        0x30s
        0x30s
        0x30s
        0x30s
        0x30s
        0x30s
        0x30s
        0x31s
        0x31s
        0x31s
        0x31s
        0x31s
        0x31s
        0x31s
        0x31s
        0x31s
        0x31s
        0x32s
        0x32s
        0x32s
        0x32s
        0x32s
        0x32s
        0x32s
        0x32s
        0x32s
        0x32s
        0x33s
        0x33s
        0x33s
        0x33s
        0x33s
        0x33s
        0x33s
        0x33s
        0x33s
        0x33s
        0x34s
        0x34s
        0x34s
        0x34s
        0x34s
        0x34s
        0x34s
        0x34s
        0x34s
        0x34s
        0x35s
        0x35s
        0x35s
        0x35s
        0x35s
        0x35s
        0x35s
        0x35s
        0x35s
        0x35s
        0x36s
        0x36s
        0x36s
        0x36s
        0x36s
        0x36s
        0x36s
        0x36s
        0x36s
        0x36s
        0x37s
        0x37s
        0x37s
        0x37s
        0x37s
        0x37s
        0x37s
        0x37s
        0x37s
        0x37s
        0x38s
        0x38s
        0x38s
        0x38s
        0x38s
        0x38s
        0x38s
        0x38s
        0x38s
        0x38s
        0x39s
        0x39s
        0x39s
        0x39s
        0x39s
        0x39s
        0x39s
        0x39s
        0x39s
        0x39s
    .end array-data

    :array_2fc
    .array-data 2
        0x30s
        0x31s
        0x32s
        0x33s
        0x34s
        0x35s
        0x36s
        0x37s
        0x38s
        0x39s
        0x30s
        0x31s
        0x32s
        0x33s
        0x34s
        0x35s
        0x36s
        0x37s
        0x38s
        0x39s
        0x30s
        0x31s
        0x32s
        0x33s
        0x34s
        0x35s
        0x36s
        0x37s
        0x38s
        0x39s
        0x30s
        0x31s
        0x32s
        0x33s
        0x34s
        0x35s
        0x36s
        0x37s
        0x38s
        0x39s
        0x30s
        0x31s
        0x32s
        0x33s
        0x34s
        0x35s
        0x36s
        0x37s
        0x38s
        0x39s
        0x30s
        0x31s
        0x32s
        0x33s
        0x34s
        0x35s
        0x36s
        0x37s
        0x38s
        0x39s
        0x30s
        0x31s
        0x32s
        0x33s
        0x34s
        0x35s
        0x36s
        0x37s
        0x38s
        0x39s
        0x30s
        0x31s
        0x32s
        0x33s
        0x34s
        0x35s
        0x36s
        0x37s
        0x38s
        0x39s
        0x30s
        0x31s
        0x32s
        0x33s
        0x34s
        0x35s
        0x36s
        0x37s
        0x38s
        0x39s
        0x30s
        0x31s
        0x32s
        0x33s
        0x34s
        0x35s
        0x36s
        0x37s
        0x38s
        0x39s
    .end array-data

    :array_364
    .array-data 4
        0x9
        0x63
        0x3e7
        0x270f
        0x1869f
        0xf423f
        0x98967f
        0x5f5e0ff
        0x3b9ac9ff
        0x7fffffff
    .end array-data
.end method

.method public constructor <init>()V
    .registers 1

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

    return-void
.end method

.method public static close(Ljava/io/Closeable;)V
    .registers 1

    if-eqz p0, :cond_5

    :try_start_2
    invoke-interface {p0}, Ljava/io/Closeable;->close()V
    :try_end_5
    .catch Ljava/lang/Exception; {:try_start_2 .. :try_end_5} :catch_5

    :catch_5
    :cond_5
    return-void
.end method

.method public static decode(Ljava/nio/charset/CharsetDecoder;Ljava/nio/ByteBuffer;Ljava/nio/CharBuffer;)V
    .registers 4

    const/4 v0, 0x1

    :try_start_1
    invoke-virtual {p0, p1, p2, v0}, Ljava/nio/charset/CharsetDecoder;->decode(Ljava/nio/ByteBuffer;Ljava/nio/CharBuffer;Z)Ljava/nio/charset/CoderResult;

    move-result-object p1

    invoke-virtual {p1}, Ljava/nio/charset/CoderResult;->isUnderflow()Z

    move-result v0

    if-nez v0, :cond_e

    invoke-virtual {p1}, Ljava/nio/charset/CoderResult;->throwException()V

    :cond_e
    invoke-virtual {p0, p2}, Ljava/nio/charset/CharsetDecoder;->flush(Ljava/nio/CharBuffer;)Ljava/nio/charset/CoderResult;

    move-result-object p0

    invoke-virtual {p0}, Ljava/nio/charset/CoderResult;->isUnderflow()Z

    move-result p1

    if-nez p1, :cond_1b

    invoke-virtual {p0}, Ljava/nio/charset/CoderResult;->throwException()V
    :try_end_1b
    .catch Ljava/nio/charset/CharacterCodingException; {:try_start_1 .. :try_end_1b} :catch_1c

    :cond_1b
    return-void

    :catch_1c
    move-exception p0

    new-instance p1, Lcom/tradplus/ads/common/serialization/JSONException;

    new-instance p2, Ljava/lang/StringBuilder;

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

    const-string v0, "utf8 decode error, "

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

    invoke-virtual {p0}, Ljava/nio/charset/CharacterCodingException;->getMessage()Ljava/lang/String;

    move-result-object v0

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

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

    move-result-object p2

    invoke-direct {p1, p2, p0}, Lcom/tradplus/ads/common/serialization/JSONException;-><init>(Ljava/lang/String;Ljava/lang/Throwable;)V

    throw p1
.end method

.method public static decodeBase64(Ljava/lang/String;)[B
    .registers 15

    invoke-virtual {p0}, Ljava/lang/String;->length()I

    move-result v0

    const/4 v1, 0x0

    if-nez v0, :cond_a

    new-array p0, v1, [B

    return-object p0

    :cond_a
    add-int/lit8 v2, v0, -0x1

    const/4 v3, 0x0

    :goto_d
    if-ge v3, v2, :cond_1e

    sget-object v4, Lcom/tradplus/ads/common/serialization/util/IOUtils;->IA:[I

    invoke-virtual {p0, v3}, Ljava/lang/String;->charAt(I)C

    move-result v5

    and-int/lit16 v5, v5, 0xff

    aget v4, v4, v5

    if-gez v4, :cond_1e

    add-int/lit8 v3, v3, 0x1

    goto :goto_d

    :cond_1e
    :goto_1e
    if-lez v2, :cond_2f

    sget-object v4, Lcom/tradplus/ads/common/serialization/util/IOUtils;->IA:[I

    invoke-virtual {p0, v2}, Ljava/lang/String;->charAt(I)C

    move-result v5

    and-int/lit16 v5, v5, 0xff

    aget v4, v4, v5

    if-gez v4, :cond_2f

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

    goto :goto_1e

    :cond_2f
    invoke-virtual {p0, v2}, Ljava/lang/String;->charAt(I)C

    move-result v4

    const/16 v5, 0x3d

    const/4 v6, 0x1

    if-ne v4, v5, :cond_44

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

    invoke-virtual {p0, v4}, Ljava/lang/String;->charAt(I)C

    move-result v4

    if-ne v4, v5, :cond_42

    const/4 v4, 0x2

    goto :goto_45

    :cond_42
    const/4 v4, 0x1

    goto :goto_45

    :cond_44
    const/4 v4, 0x0

    :goto_45
    sub-int v5, v2, v3

    add-int/2addr v5, v6

    const/16 v7, 0x4c

    if-le v0, v7, :cond_5a

    invoke-virtual {p0, v7}, Ljava/lang/String;->charAt(I)C

    move-result v0

    const/16 v7, 0xd

    if-ne v0, v7, :cond_57

    div-int/lit8 v0, v5, 0x4e

    goto :goto_58

    :cond_57
    const/4 v0, 0x0

    :goto_58
    shl-int/2addr v0, v6

    goto :goto_5b

    :cond_5a
    const/4 v0, 0x0

    :goto_5b
    sub-int/2addr v5, v0

    mul-int/lit8 v5, v5, 0x6

    shr-int/lit8 v5, v5, 0x3

    sub-int/2addr v5, v4

    new-array v7, v5, [B

    div-int/lit8 v8, v5, 0x3

    mul-int/lit8 v8, v8, 0x3

    move v9, v3

    const/4 v3, 0x0

    const/4 v10, 0x0

    :goto_6a
    if-ge v3, v8, :cond_c0

    sget-object v11, Lcom/tradplus/ads/common/serialization/util/IOUtils;->IA:[I

    add-int/lit8 v12, v9, 0x1

    invoke-virtual {p0, v9}, Ljava/lang/String;->charAt(I)C

    move-result v9

    aget v9, v11, v9

    shl-int/lit8 v9, v9, 0x12

    sget-object v11, Lcom/tradplus/ads/common/serialization/util/IOUtils;->IA:[I

    add-int/lit8 v13, v12, 0x1

    invoke-virtual {p0, v12}, Ljava/lang/String;->charAt(I)C

    move-result v12

    aget v11, v11, v12

    shl-int/lit8 v11, v11, 0xc

    or-int/2addr v9, v11

    sget-object v11, Lcom/tradplus/ads/common/serialization/util/IOUtils;->IA:[I

    add-int/lit8 v12, v13, 0x1

    invoke-virtual {p0, v13}, Ljava/lang/String;->charAt(I)C

    move-result v13

    aget v11, v11, v13

    shl-int/lit8 v11, v11, 0x6

    or-int/2addr v9, v11

    sget-object v11, Lcom/tradplus/ads/common/serialization/util/IOUtils;->IA:[I

    add-int/lit8 v13, v12, 0x1

    invoke-virtual {p0, v12}, Ljava/lang/String;->charAt(I)C

    move-result v12

    aget v11, v11, v12

    or-int/2addr v9, v11

    add-int/lit8 v11, v3, 0x1

    shr-int/lit8 v12, v9, 0x10

    int-to-byte v12, v12

    aput-byte v12, v7, v3

    add-int/lit8 v3, v11, 0x1

    shr-int/lit8 v12, v9, 0x8

    int-to-byte v12, v12

    aput-byte v12, v7, v11

    add-int/lit8 v11, v3, 0x1

    int-to-byte v9, v9

    aput-byte v9, v7, v3

    if-lez v0, :cond_bd

    add-int/lit8 v10, v10, 0x1

    const/16 v3, 0x13

    if-ne v10, v3, :cond_bd

    add-int/lit8 v13, v13, 0x2

    move v9, v13

    const/4 v10, 0x0

    goto :goto_be

    :cond_bd
    move v9, v13

    :goto_be
    move v3, v11

    goto :goto_6a

    :cond_c0
    if-ge v3, v5, :cond_e9

    const/4 v0, 0x0

    :goto_c3
    sub-int v8, v2, v4

    if-gt v9, v8, :cond_da

    sget-object v8, Lcom/tradplus/ads/common/serialization/util/IOUtils;->IA:[I

    add-int/lit8 v10, v9, 0x1

    invoke-virtual {p0, v9}, Ljava/lang/String;->charAt(I)C

    move-result v9

    aget v8, v8, v9

    mul-int/lit8 v9, v0, 0x6

    rsub-int/lit8 v9, v9, 0x12

    shl-int/2addr v8, v9

    or-int/2addr v1, v8

    add-int/2addr v0, v6

    move v9, v10

    goto :goto_c3

    :cond_da
    const/16 p0, 0x10

    :goto_dc
    if-ge v3, v5, :cond_e9

    add-int/lit8 v0, v3, 0x1

    shr-int v2, v1, p0

    int-to-byte v2, v2

    aput-byte v2, v7, v3

    add-int/lit8 p0, p0, -0x8

    move v3, v0

    goto :goto_dc

    :cond_e9
    return-object v7
.end method

.method public static decodeBase64(Ljava/lang/String;II)[B
    .registers 15

    const/4 v0, 0x0

    if-nez p2, :cond_6

    new-array p0, v0, [B

    return-object p0

    :cond_6
    add-int v1, p1, p2

    const/4 v2, 0x1

    sub-int/2addr v1, v2

    :goto_a
    if-ge p1, v1, :cond_19

    sget-object v3, Lcom/tradplus/ads/common/serialization/util/IOUtils;->IA:[I

    invoke-virtual {p0, p1}, Ljava/lang/String;->charAt(I)C

    move-result v4

    aget v3, v3, v4

    if-gez v3, :cond_19

    add-int/lit8 p1, p1, 0x1

    goto :goto_a

    :cond_19
    :goto_19
    if-lez v1, :cond_28

    sget-object v3, Lcom/tradplus/ads/common/serialization/util/IOUtils;->IA:[I

    invoke-virtual {p0, v1}, Ljava/lang/String;->charAt(I)C

    move-result v4

    aget v3, v3, v4

    if-gez v3, :cond_28

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

    goto :goto_19

    :cond_28
    invoke-virtual {p0, v1}, Ljava/lang/String;->charAt(I)C

    move-result v3

    const/16 v4, 0x3d

    if-ne v3, v4, :cond_3c

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

    invoke-virtual {p0, v3}, Ljava/lang/String;->charAt(I)C

    move-result v3

    if-ne v3, v4, :cond_3a

    const/4 v3, 0x2

    goto :goto_3d

    :cond_3a
    const/4 v3, 0x1

    goto :goto_3d

    :cond_3c
    const/4 v3, 0x0

    :goto_3d
    sub-int v4, v1, p1

    add-int/2addr v4, v2

    const/16 v5, 0x4c

    if-le p2, v5, :cond_52

    invoke-virtual {p0, v5}, Ljava/lang/String;->charAt(I)C

    move-result p2

    const/16 v5, 0xd

    if-ne p2, v5, :cond_4f

    div-int/lit8 p2, v4, 0x4e

    goto :goto_50

    :cond_4f
    const/4 p2, 0x0

    :goto_50
    shl-int/2addr p2, v2

    goto :goto_53

    :cond_52
    const/4 p2, 0x0

    :goto_53
    sub-int/2addr v4, p2

    mul-int/lit8 v4, v4, 0x6

    shr-int/lit8 v4, v4, 0x3

    sub-int/2addr v4, v3

    new-array v5, v4, [B

    div-int/lit8 v6, v4, 0x3

    mul-int/lit8 v6, v6, 0x3

    move v7, p1

    const/4 p1, 0x0

    const/4 v8, 0x0

    :goto_62
    if-ge p1, v6, :cond_b8

    sget-object v9, Lcom/tradplus/ads/common/serialization/util/IOUtils;->IA:[I

    add-int/lit8 v10, v7, 0x1

    invoke-virtual {p0, v7}, Ljava/lang/String;->charAt(I)C

    move-result v7

    aget v7, v9, v7

    shl-int/lit8 v7, v7, 0x12

    sget-object v9, Lcom/tradplus/ads/common/serialization/util/IOUtils;->IA:[I

    add-int/lit8 v11, v10, 0x1

    invoke-virtual {p0, v10}, Ljava/lang/String;->charAt(I)C

    move-result v10

    aget v9, v9, v10

    shl-int/lit8 v9, v9, 0xc

    or-int/2addr v7, v9

    sget-object v9, Lcom/tradplus/ads/common/serialization/util/IOUtils;->IA:[I

    add-int/lit8 v10, v11, 0x1

    invoke-virtual {p0, v11}, Ljava/lang/String;->charAt(I)C

    move-result v11

    aget v9, v9, v11

    shl-int/lit8 v9, v9, 0x6

    or-int/2addr v7, v9

    sget-object v9, Lcom/tradplus/ads/common/serialization/util/IOUtils;->IA:[I

    add-int/lit8 v11, v10, 0x1

    invoke-virtual {p0, v10}, Ljava/lang/String;->charAt(I)C

    move-result v10

    aget v9, v9, v10

    or-int/2addr v7, v9

    add-int/lit8 v9, p1, 0x1

    shr-int/lit8 v10, v7, 0x10

    int-to-byte v10, v10

    aput-byte v10, v5, p1

    add-int/lit8 p1, v9, 0x1

    shr-int/lit8 v10, v7, 0x8

    int-to-byte v10, v10

    aput-byte v10, v5, v9

    add-int/lit8 v9, p1, 0x1

    int-to-byte v7, v7

    aput-byte v7, v5, p1

    if-lez p2, :cond_b5

    add-int/lit8 v8, v8, 0x1

    const/16 p1, 0x13

    if-ne v8, p1, :cond_b5

    add-int/lit8 v11, v11, 0x2

    move v7, v11

    const/4 v8, 0x0

    goto :goto_b6

    :cond_b5
    move v7, v11

    :goto_b6
    move p1, v9

    goto :goto_62

    :cond_b8
    if-ge p1, v4, :cond_e1

    const/4 p2, 0x0

    :goto_bb
    sub-int v6, v1, v3

    if-gt v7, v6, :cond_d2

    sget-object v6, Lcom/tradplus/ads/common/serialization/util/IOUtils;->IA:[I

    add-int/lit8 v8, v7, 0x1

    invoke-virtual {p0, v7}, Ljava/lang/String;->charAt(I)C

    move-result v7

    aget v6, v6, v7

    mul-int/lit8 v7, p2, 0x6

    rsub-int/lit8 v7, v7, 0x12

    shl-int/2addr v6, v7

    or-int/2addr v0, v6

    add-int/2addr p2, v2

    move v7, v8

    goto :goto_bb

    :cond_d2
    const/16 p0, 0x10

    :goto_d4
    if-ge p1, v4, :cond_e1

    add-int/lit8 p2, p1, 0x1

    shr-int v1, v0, p0

    int-to-byte v1, v1

    aput-byte v1, v5, p1

    add-int/lit8 p0, p0, -0x8

    move p1, p2

    goto :goto_d4

    :cond_e1
    return-object v5
.end method

.method public static decodeBase64([CII)[B
    .registers 15

    const/4 v0, 0x0

    if-nez p2, :cond_6

    new-array p0, v0, [B

    return-object p0

    :cond_6
    add-int v1, p1, p2

    const/4 v2, 0x1

    sub-int/2addr v1, v2

    :goto_a
    if-ge p1, v1, :cond_17

    sget-object v3, Lcom/tradplus/ads/common/serialization/util/IOUtils;->IA:[I

    aget-char v4, p0, p1

    aget v3, v3, v4

    if-gez v3, :cond_17

    add-int/lit8 p1, p1, 0x1

    goto :goto_a

    :cond_17
    :goto_17
    if-lez v1, :cond_24

    sget-object v3, Lcom/tradplus/ads/common/serialization/util/IOUtils;->IA:[I

    aget-char v4, p0, v1

    aget v3, v3, v4

    if-gez v3, :cond_24

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

    goto :goto_17

    :cond_24
    aget-char v3, p0, v1

    const/16 v4, 0x3d

    if-ne v3, v4, :cond_34

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

    aget-char v3, p0, v3

    if-ne v3, v4, :cond_32

    const/4 v3, 0x2

    goto :goto_35

    :cond_32
    const/4 v3, 0x1

    goto :goto_35

    :cond_34
    const/4 v3, 0x0

    :goto_35
    sub-int v4, v1, p1

    add-int/2addr v4, v2

    const/16 v5, 0x4c

    if-le p2, v5, :cond_48

    aget-char p2, p0, v5

    const/16 v5, 0xd

    if-ne p2, v5, :cond_45

    div-int/lit8 p2, v4, 0x4e

    goto :goto_46

    :cond_45
    const/4 p2, 0x0

    :goto_46
    shl-int/2addr p2, v2

    goto :goto_49

    :cond_48
    const/4 p2, 0x0

    :goto_49
    sub-int/2addr v4, p2

    mul-int/lit8 v4, v4, 0x6

    shr-int/lit8 v4, v4, 0x3

    sub-int/2addr v4, v3

    new-array v5, v4, [B

    div-int/lit8 v6, v4, 0x3

    mul-int/lit8 v6, v6, 0x3

    move v7, p1

    const/4 p1, 0x0

    const/4 v8, 0x0

    :goto_58
    if-ge p1, v6, :cond_a0

    sget-object v9, Lcom/tradplus/ads/common/serialization/util/IOUtils;->IA:[I

    add-int/lit8 v10, v7, 0x1

    aget-char v7, p0, v7

    aget v7, v9, v7

    shl-int/lit8 v7, v7, 0x12

    add-int/lit8 v11, v10, 0x1

    aget-char v10, p0, v10

    aget v10, v9, v10

    shl-int/lit8 v10, v10, 0xc

    or-int/2addr v7, v10

    add-int/lit8 v10, v11, 0x1

    aget-char v11, p0, v11

    aget v11, v9, v11

    shl-int/lit8 v11, v11, 0x6

    or-int/2addr v7, v11

    add-int/lit8 v11, v10, 0x1

    aget-char v10, p0, v10

    aget v9, v9, v10

    or-int/2addr v7, v9

    add-int/lit8 v9, p1, 0x1

    shr-int/lit8 v10, v7, 0x10

    int-to-byte v10, v10

    aput-byte v10, v5, p1

    add-int/lit8 p1, v9, 0x1

    shr-int/lit8 v10, v7, 0x8

    int-to-byte v10, v10

    aput-byte v10, v5, v9

    add-int/lit8 v9, p1, 0x1

    int-to-byte v7, v7

    aput-byte v7, v5, p1

    if-lez p2, :cond_9d

    add-int/lit8 v8, v8, 0x1

    const/16 p1, 0x13

    if-ne v8, p1, :cond_9d

    add-int/lit8 v11, v11, 0x2

    move v7, v11

    const/4 v8, 0x0

    goto :goto_9e

    :cond_9d
    move v7, v11

    :goto_9e
    move p1, v9

    goto :goto_58

    :cond_a0
    if-ge p1, v4, :cond_c7

    const/4 p2, 0x0

    :goto_a3
    sub-int v6, v1, v3

    if-gt v7, v6, :cond_b8

    sget-object v6, Lcom/tradplus/ads/common/serialization/util/IOUtils;->IA:[I

    add-int/lit8 v8, v7, 0x1

    aget-char v7, p0, v7

    aget v6, v6, v7

    mul-int/lit8 v7, p2, 0x6

    rsub-int/lit8 v7, v7, 0x12

    shl-int/2addr v6, v7

    or-int/2addr v0, v6

    add-int/2addr p2, v2

    move v7, v8

    goto :goto_a3

    :cond_b8
    const/16 p0, 0x10

    :goto_ba
    if-ge p1, v4, :cond_c7

    add-int/lit8 p2, p1, 0x1

    shr-int v1, v0, p0

    int-to-byte v1, v1

    aput-byte v1, v5, p1

    add-int/lit8 p0, p0, -0x8

    move p1, p2

    goto :goto_ba

    :cond_c7
    return-object v5
.end method

.method public static decodeUTF8([BII[C)I
    .registers 13

    add-int v0, p1, p2

    array-length v1, p3

    invoke-static {p2, v1}, Ljava/lang/Math;->min(II)I

    move-result p2

    const/4 v1, 0x0

    move v2, p1

    const/4 p1, 0x0

    :goto_a
    if-ge p1, p2, :cond_1c

    aget-byte v3, p0, v2

    if-ltz v3, :cond_1c

    add-int/lit8 v3, p1, 0x1

    add-int/lit8 v4, v2, 0x1

    aget-byte v2, p0, v2

    int-to-char v2, v2

    aput-char v2, p3, p1

    move p1, v3

    move v2, v4

    goto :goto_a

    :cond_1c
    :goto_1c
    if-ge v2, v0, :cond_e3

    add-int/lit8 p2, v2, 0x1

    aget-byte v2, p0, v2

    if-ltz v2, :cond_2c

    add-int/lit8 v3, p1, 0x1

    int-to-char v2, v2

    aput-char v2, p3, p1

    move v2, p2

    move p1, v3

    goto :goto_1c

    :cond_2c
    shr-int/lit8 v3, v2, 0x5

    const/4 v4, -0x2

    const/16 v5, 0x80

    const/4 v6, -0x1

    if-ne v3, v4, :cond_51

    and-int/lit8 v3, v2, 0x1e

    if-eqz v3, :cond_51

    if-ge p2, v0, :cond_50

    add-int/lit8 v3, p2, 0x1

    aget-byte p2, p0, p2

    and-int/lit16 v4, p2, 0xc0

    if-eq v4, v5, :cond_43

    return v6

    :cond_43
    add-int/lit8 v4, p1, 0x1

    shl-int/lit8 v2, v2, 0x6

    xor-int/2addr p2, v2

    xor-int/lit16 p2, p2, 0xf80

    int-to-char p2, p2

    aput-char p2, p3, p1

    move v2, v3

    move p1, v4

    goto :goto_1c

    :cond_50
    return v6

    :cond_51
    shr-int/lit8 v3, v2, 0x4

    if-ne v3, v4, :cond_93

    add-int/lit8 v3, p2, 0x1

    if-ge v3, v0, :cond_92

    aget-byte p2, p0, p2

    add-int/lit8 v4, v3, 0x1

    aget-byte v3, p0, v3

    const/16 v7, -0x20

    if-ne v2, v7, :cond_67

    and-int/lit16 v7, p2, 0xe0

    if-eq v7, v5, :cond_92

    :cond_67
    and-int/lit16 v7, p2, 0xc0

    if-ne v7, v5, :cond_92

    and-int/lit16 v7, v3, 0xc0

    if-eq v7, v5, :cond_70

    goto :goto_92

    :cond_70
    shl-int/lit8 v2, v2, 0xc

    shl-int/lit8 p2, p2, 0x6

    xor-int/2addr p2, v2

    const v2, -0x1e080

    xor-int/2addr v2, v3

    xor-int/2addr p2, v2

    int-to-char p2, p2

    const v2, 0xd800

    if-lt p2, v2, :cond_87

    const v2, 0xe000

    if-ge p2, v2, :cond_87

    const/4 v2, 0x1

    goto :goto_88

    :cond_87
    const/4 v2, 0x0

    :goto_88
    if-eqz v2, :cond_8b

    return v6

    :cond_8b
    add-int/lit8 v2, p1, 0x1

    aput-char p2, p3, p1

    move p1, v2

    move v2, v4

    goto :goto_1c

    :cond_92
    :goto_92
    return v6

    :cond_93
    shr-int/lit8 v3, v2, 0x3

    if-ne v3, v4, :cond_e2

    add-int/lit8 v3, p2, 0x2

    if-ge v3, v0, :cond_e2

    add-int/lit8 v3, p2, 0x1

    aget-byte p2, p0, p2

    add-int/lit8 v4, v3, 0x1

    aget-byte v3, p0, v3

    add-int/lit8 v7, v4, 0x1

    aget-byte v4, p0, v4

    shl-int/lit8 v2, v2, 0x12

    shl-int/lit8 v8, p2, 0xc

    xor-int/2addr v2, v8

    shl-int/lit8 v8, v3, 0x6

    xor-int/2addr v2, v8

    const v8, 0x381f80

    xor-int/2addr v8, v4

    xor-int/2addr v2, v8

    and-int/lit16 p2, p2, 0xc0

    if-ne p2, v5, :cond_e2

    and-int/lit16 p2, v3, 0xc0

    if-ne p2, v5, :cond_e2

    and-int/lit16 p2, v4, 0xc0

    if-ne p2, v5, :cond_e2

    const/high16 p2, 0x10000

    if-lt v2, p2, :cond_e2

    const/high16 p2, 0x110000

    if-lt v2, p2, :cond_c9

    goto :goto_e2

    :cond_c9
    add-int/lit8 p2, p1, 0x1

    ushr-int/lit8 v3, v2, 0xa

    const v4, 0xd7c0

    add-int/2addr v3, v4

    int-to-char v3, v3

    aput-char v3, p3, p1

    add-int/lit8 p1, p2, 0x1

    and-int/lit16 v2, v2, 0x3ff

    const v3, 0xdc00

    add-int/2addr v2, v3

    int-to-char v2, v2

    aput-char v2, p3, p2

    move v2, v7

    goto/16 :goto_1c

    :cond_e2
    :goto_e2
    return v6

    :cond_e3
    return p1
.end method

.method public static encodeUTF8([CII[B)I
    .registers 13

    add-int v0, p1, p2

    array-length v1, p3

    invoke-static {p2, v1}, Ljava/lang/Math;->min(II)I

    move-result p2

    const/4 v1, 0x0

    add-int/2addr p2, v1

    :goto_9
    const/16 v2, 0x80

    if-ge v1, p2, :cond_1d

    aget-char v3, p0, p1

    if-ge v3, v2, :cond_1d

    add-int/lit8 v2, v1, 0x1

    add-int/lit8 v3, p1, 0x1

    aget-char p1, p0, p1

    int-to-byte p1, p1

    aput-byte p1, p3, v1

    move v1, v2

    move p1, v3

    goto :goto_9

    :cond_1d
    :goto_1d
    if-ge p1, v0, :cond_c9

    add-int/lit8 p2, p1, 0x1

    aget-char p1, p0, p1

    if-ge p1, v2, :cond_2d

    add-int/lit8 v3, v1, 0x1

    int-to-byte p1, p1

    aput-byte p1, p3, v1

    :goto_2a
    move p1, p2

    move v1, v3

    goto :goto_1d

    :cond_2d
    const/16 v3, 0x800

    if-ge p1, v3, :cond_43

    add-int/lit8 v3, v1, 0x1

    shr-int/lit8 v4, p1, 0x6

    or-int/lit16 v4, v4, 0xc0

    int-to-byte v4, v4

    aput-byte v4, p3, v1

    add-int/lit8 v1, v3, 0x1

    and-int/lit8 p1, p1, 0x3f

    or-int/2addr p1, v2

    int-to-byte p1, p1

    aput-byte p1, p3, v3

    goto :goto_7d

    :cond_43
    const v3, 0xd800

    const/16 v4, 0x3f

    if-lt p1, v3, :cond_ad

    const v5, 0xe000

    if-ge p1, v5, :cond_ad

    add-int/lit8 v6, p2, -0x1

    const v7, 0xdc00

    if-lt p1, v3, :cond_74

    if-ge p1, v7, :cond_74

    sub-int v3, v0, v6

    const/4 v8, 0x2

    if-ge v3, v8, :cond_5f

    const/4 p1, -0x1

    goto :goto_7f

    :cond_5f
    add-int/lit8 v6, v6, 0x1

    aget-char v3, p0, v6

    if-lt v3, v7, :cond_6f

    if-ge v3, v5, :cond_6f

    shl-int/lit8 p1, p1, 0xa

    add-int/2addr p1, v3

    const v3, -0x35fdc00

    add-int/2addr p1, v3

    goto :goto_7f

    :cond_6f
    add-int/lit8 p1, v1, 0x1

    aput-byte v4, p3, v1

    goto :goto_7c

    :cond_74
    if-lt p1, v7, :cond_7f

    if-ge p1, v5, :cond_7f

    add-int/lit8 p1, v1, 0x1

    aput-byte v4, p3, v1

    :goto_7c
    move v1, p1

    :goto_7d
    move p1, p2

    goto :goto_1d

    :cond_7f
    :goto_7f
    if-gez p1, :cond_86

    add-int/lit8 p1, v1, 0x1

    aput-byte v4, p3, v1

    goto :goto_7c

    :cond_86
    add-int/lit8 v3, v1, 0x1

    shr-int/lit8 v5, p1, 0x12

    or-int/lit16 v5, v5, 0xf0

    int-to-byte v5, v5

    aput-byte v5, p3, v1

    add-int/lit8 v1, v3, 0x1

    shr-int/lit8 v5, p1, 0xc

    and-int/2addr v5, v4

    or-int/2addr v5, v2

    int-to-byte v5, v5

    aput-byte v5, p3, v3

    add-int/lit8 v3, v1, 0x1

    shr-int/lit8 v5, p1, 0x6

    and-int/2addr v4, v5

    or-int/2addr v4, v2

    int-to-byte v4, v4

    aput-byte v4, p3, v1

    add-int/lit8 v1, v3, 0x1

    and-int/lit8 p1, p1, 0x3f

    or-int/2addr p1, v2

    int-to-byte p1, p1

    aput-byte p1, p3, v3

    add-int/lit8 p2, p2, 0x1

    move p1, v1

    goto :goto_7c

    :cond_ad
    add-int/lit8 v3, v1, 0x1

    shr-int/lit8 v5, p1, 0xc

    or-int/lit16 v5, v5, 0xe0

    int-to-byte v5, v5

    aput-byte v5, p3, v1

    add-int/lit8 v1, v3, 0x1

    shr-int/lit8 v5, p1, 0x6

    and-int/2addr v4, v5

    or-int/2addr v4, v2

    int-to-byte v4, v4

    aput-byte v4, p3, v3

    add-int/lit8 v3, v1, 0x1

    and-int/lit8 p1, p1, 0x3f

    or-int/2addr p1, v2

    int-to-byte p1, p1

    aput-byte p1, p3, v1

    goto/16 :goto_2a

    :cond_c9
    return v1
.end method

.method public static firstIdentifier(C)Z
    .registers 3

    sget-object v0, Lcom/tradplus/ads/common/serialization/util/IOUtils;->firstIdentifierFlags:[Z

    array-length v1, v0

    if-ge p0, v1, :cond_b

    aget-boolean p0, v0, p0

    if-eqz p0, :cond_b

    const/4 p0, 0x1

    goto :goto_c

    :cond_b
    const/4 p0, 0x0

    :goto_c
    return p0
.end method

.method public static getChars(BI[C)V
    .registers 7

    if-gez p0, :cond_6

    const/16 v0, 0x2d

    neg-int p0, p0

    goto :goto_7

    :cond_6
    const/4 v0, 0x0

    :goto_7
    const v1, 0xcccd

    mul-int v1, v1, p0

    ushr-int/lit8 v1, v1, 0x13

    shl-int/lit8 v2, v1, 0x3

    shl-int/lit8 v3, v1, 0x1

    add-int/2addr v2, v3

    sub-int/2addr p0, v2

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

    sget-object v2, Lcom/tradplus/ads/common/serialization/util/IOUtils;->a:[C

    aget-char p0, v2, p0

    aput-char p0, p2, p1

    if-nez v1, :cond_25

    if-eqz v0, :cond_24

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

    aput-char v0, p2, p1

    :cond_24
    return-void

    :cond_25
    move p0, v1

    goto :goto_7
.end method

.method public static getChars(II[C)V
    .registers 7

    if-gez p0, :cond_6

    const/16 v0, 0x2d

    neg-int p0, p0

    goto :goto_7

    :cond_6
    const/4 v0, 0x0

    :goto_7
    const/high16 v1, 0x10000

    if-lt p0, v1, :cond_28

    div-int/lit8 v1, p0, 0x64

    shl-int/lit8 v2, v1, 0x6

    shl-int/lit8 v3, v1, 0x5

    add-int/2addr v2, v3

    shl-int/lit8 v3, v1, 0x2

    add-int/2addr v2, v3

    sub-int/2addr p0, v2

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

    sget-object v2, Lcom/tradplus/ads/common/serialization/util/IOUtils;->c:[C

    aget-char v2, v2, p0

    aput-char v2, p2, p1

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

    sget-object v2, Lcom/tradplus/ads/common/serialization/util/IOUtils;->b:[C

    aget-char p0, v2, p0

    aput-char p0, p2, p1

    move p0, v1

    goto :goto_7

    :cond_28
    :goto_28
    const v1, 0xcccd

    mul-int v1, v1, p0

    ushr-int/lit8 v1, v1, 0x13

    shl-int/lit8 v2, v1, 0x3

    shl-int/lit8 v3, v1, 0x1

    add-int/2addr v2, v3

    sub-int/2addr p0, v2

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

    sget-object v2, Lcom/tradplus/ads/common/serialization/util/IOUtils;->a:[C

    aget-char p0, v2, p0

    aput-char p0, p2, p1

    if-nez v1, :cond_46

    if-eqz v0, :cond_45

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

    aput-char v0, p2, p1

    :cond_45
    return-void

    :cond_46
    move p0, v1

    goto :goto_28
.end method

.method public static getChars(JI[C)V
    .registers 11

    const-wide/16 v0, 0x0

    cmp-long v2, p0, v0

    if-gez v2, :cond_a

    const/16 v0, 0x2d

    neg-long p0, p0

    goto :goto_b

    :cond_a
    const/4 v0, 0x0

    :goto_b
    const-wide/32 v1, 0x7fffffff

    cmp-long v3, p0, v1

    if-lez v3, :cond_35

    const-wide/16 v1, 0x64

    div-long v1, p0, v1

    const/4 v3, 0x6

    shl-long v3, v1, v3

    const/4 v5, 0x5

    shl-long v5, v1, v5

    add-long/2addr v3, v5

    const/4 v5, 0x2

    shl-long v5, v1, v5

    add-long/2addr v3, v5

    sub-long/2addr p0, v3

    long-to-int p1, p0

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

    sget-object p0, Lcom/tradplus/ads/common/serialization/util/IOUtils;->c:[C

    aget-char p0, p0, p1

    aput-char p0, p3, p2

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

    sget-object p0, Lcom/tradplus/ads/common/serialization/util/IOUtils;->b:[C

    aget-char p0, p0, p1

    aput-char p0, p3, p2

    move-wide p0, v1

    goto :goto_b

    :cond_35
    long-to-int p1, p0

    :goto_36
    const/high16 p0, 0x10000

    if-lt p1, p0, :cond_57

    div-int/lit8 p0, p1, 0x64

    shl-int/lit8 v1, p0, 0x6

    shl-int/lit8 v2, p0, 0x5

    add-int/2addr v1, v2

    shl-int/lit8 v2, p0, 0x2

    add-int/2addr v1, v2

    sub-int/2addr p1, v1

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

    sget-object v1, Lcom/tradplus/ads/common/serialization/util/IOUtils;->c:[C

    aget-char v1, v1, p1

    aput-char v1, p3, p2

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

    sget-object v1, Lcom/tradplus/ads/common/serialization/util/IOUtils;->b:[C

    aget-char p1, v1, p1

    aput-char p1, p3, p2

    move p1, p0

    goto :goto_36

    :cond_57
    :goto_57
    const p0, 0xcccd

    mul-int p0, p0, p1

    ushr-int/lit8 p0, p0, 0x13

    shl-int/lit8 v1, p0, 0x3

    shl-int/lit8 v2, p0, 0x1

    add-int/2addr v1, v2

    sub-int/2addr p1, v1

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

    sget-object v1, Lcom/tradplus/ads/common/serialization/util/IOUtils;->a:[C

    aget-char p1, v1, p1

    aput-char p1, p3, p2

    if-nez p0, :cond_75

    if-eqz v0, :cond_74

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

    aput-char v0, p3, p2

    :cond_74
    return-void

    :cond_75
    move p1, p0

    goto :goto_57
.end method

.method public static getStringProperty(Ljava/lang/String;)Ljava/lang/String;
    .registers 2

    :try_start_0
    invoke-static {p0}, Ljava/lang/System;->getProperty(Ljava/lang/String;)Ljava/lang/String;

    move-result-object v0
    :try_end_4
    .catch Ljava/lang/SecurityException; {:try_start_0 .. :try_end_4} :catch_5

    goto :goto_6

    :catch_5
    const/4 v0, 0x0

    :goto_6
    if-nez v0, :cond_e

    sget-object v0, Lcom/tradplus/ads/common/serialization/util/IOUtils;->DEFAULT_PROPERTIES:Ljava/util/Properties;

    invoke-virtual {v0, p0}, Ljava/util/Properties;->getProperty(Ljava/lang/String;)Ljava/lang/String;

    move-result-object v0

    :cond_e
    return-object v0
.end method

.method public static isIdent(C)Z
    .registers 3

    sget-object v0, Lcom/tradplus/ads/common/serialization/util/IOUtils;->identifierFlags:[Z

    array-length v1, v0

    if-ge p0, v1, :cond_b

    aget-boolean p0, v0, p0

    if-eqz p0, :cond_b

    const/4 p0, 0x1

    goto :goto_c

    :cond_b
    const/4 p0, 0x0

    :goto_c
    return p0
.end method

.method public static isValidJsonpQueryParam(Ljava/lang/String;)Z
    .registers 6

    const/4 v0, 0x0

    if-eqz p0, :cond_25

    invoke-virtual {p0}, Ljava/lang/String;->length()I

    move-result v1

    if-nez v1, :cond_a

    goto :goto_25

    :cond_a
    invoke-virtual {p0}, Ljava/lang/String;->length()I

    move-result v1

    const/4 v2, 0x0

    :goto_f
    if-ge v2, v1, :cond_23

    invoke-virtual {p0, v2}, Ljava/lang/String;->charAt(I)C

    move-result v3

    const/16 v4, 0x2e

    if-eq v3, v4, :cond_20

    invoke-static {v3}, Lcom/tradplus/ads/common/serialization/util/IOUtils;->isIdent(C)Z

    move-result v3

    if-nez v3, :cond_20

    return v0

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

    goto :goto_f

    :cond_23
    const/4 p0, 0x1

    return p0

    :cond_25
    :goto_25
    return v0
.end method

.method public static loadPropertiesFromFile()V
    .registers 2

    new-instance v0, Lcom/tradplus/ads/common/serialization/util/IOUtils$1;

    invoke-direct {v0}, Lcom/tradplus/ads/common/serialization/util/IOUtils$1;-><init>()V

    invoke-static {v0}, Ljava/security/AccessController;->doPrivileged(Ljava/security/PrivilegedAction;)Ljava/lang/Object;

    move-result-object v0

    check-cast v0, Ljava/io/InputStream;

    if-eqz v0, :cond_15

    :try_start_d
    sget-object v1, Lcom/tradplus/ads/common/serialization/util/IOUtils;->DEFAULT_PROPERTIES:Ljava/util/Properties;

    invoke-virtual {v1, v0}, Ljava/util/Properties;->load(Ljava/io/InputStream;)V

    invoke-virtual {v0}, Ljava/io/InputStream;->close()V
    :try_end_15
    .catch Ljava/io/IOException; {:try_start_d .. :try_end_15} :catch_15

    :catch_15
    :cond_15
    return-void
.end method

.method public static readAll(Ljava/io/Reader;)Ljava/lang/String;
    .registers 5

    new-instance v0, Ljava/lang/StringBuilder;

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

    const/16 v1, 0x800

    :try_start_7
    new-array v1, v1, [C

    :goto_9
    array-length v2, v1

    const/4 v3, 0x0

    invoke-virtual {p0, v1, v3, v2}, Ljava/io/Reader;->read([CII)I

    move-result v2
    :try_end_f
    .catch Ljava/lang/Exception; {:try_start_7 .. :try_end_f} :catch_1a

    if-gez v2, :cond_16

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

    move-result-object p0

    return-object p0

    :cond_16
    :try_start_16
    invoke-virtual {v0, v1, v3, v2}, Ljava/lang/StringBuilder;->append([CII)Ljava/lang/StringBuilder;
    :try_end_19
    .catch Ljava/lang/Exception; {:try_start_16 .. :try_end_19} :catch_1a

    goto :goto_9

    :catch_1a
    move-exception p0

    new-instance v0, Lcom/tradplus/ads/common/serialization/JSONException;

    const-string v1, "read string from reader error"

    invoke-direct {v0, v1, p0}, Lcom/tradplus/ads/common/serialization/JSONException;-><init>(Ljava/lang/String;Ljava/lang/Throwable;)V

    goto :goto_24

    :goto_23
    throw v0

    :goto_24
    goto :goto_23
.end method

.method public static stringSize(I)I
    .registers 3

    const/4 v0, 0x0

    :goto_1
    sget-object v1, Lcom/tradplus/ads/common/serialization/util/IOUtils;->d:[I

    aget v1, v1, v0

    if-gt p0, v1, :cond_a

    add-int/lit8 v0, v0, 0x1

    return v0

    :cond_a
    add-int/lit8 v0, v0, 0x1

    goto :goto_1
.end method

.method public static stringSize(J)I
    .registers 8

    const/4 v0, 0x1

    const-wide/16 v1, 0xa

    move-wide v3, v1

    :goto_4
    const/16 v5, 0x13

    if-ge v0, v5, :cond_12

    cmp-long v5, p0, v3

    if-gez v5, :cond_d

    return v0

    :cond_d
    mul-long v3, v3, v1

    add-int/lit8 v0, v0, 0x1

    goto :goto_4

    :cond_12
    return v5
.end method