eu.smali

.class public final Lcom/imo/android/imoim/util/eu;
.super Ljava/lang/Object;
.source "SourceFile"


# static fields
.field static a:[B

.field public static b:[B


# instance fields
.field final c:Ljava/util/zip/Inflater;

.field public final d:Ljava/util/zip/Deflater;


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

    const-string v0, "UTF-8"

    :try_start_2
    const-string v1, "{\"headers\":{\"http_headers\":{}},\"data\":{\"ack\":7,\"messages\":[{\"to\":{\"system\":\"client\",\"ssid\":\"2MdbftmOBo8bpV8sk\"},\"seq\":4,\"data\":{\"uid\":\"1007494312522139\",\"name\":\"chat_opened\",\"edata\":{\"buid\":\"1007494312522139\"},\"type\":\"conv\",\"proto\":\"imo\"},\"from\":{\"system\":\"im\"}}]},\"method\":null}{\"headers\":{\"http_headers\":{}},\"data\":{\"ack\":2,\"messages\":[{\"to\":{\"system\":\"client\",\"ssid\":\"2MdbftmOBo8bpV8sk\"},\"seq\":1,\"data\":{\"uid\":\"1007494312522139\",\"name\":\"recv_unread_msgs\",\"edata\":{},\"type\":\"conv\",\"proto\":\"imo\"},\"from\":{\"system\":\"im\"}}]},\"method\":null}{\"headers\":{\"http_headers\":{}},\"data\":{\"ack\":1,\"messages\":[{\"to\":{\"system\":\"client\",\"ssid\":\"2MdbftmOBo8bpV8sk\"},\"seq\":0,\"data\":{\"uid\":\"1007494312522139\",\"name\":\"signed_on\",\"edata\":{\"signup_date\":1424741225,\"alias\":\"Bbb\",\"is_email_verified\":false,\"premium\":false,\"profile_created\":true,\"inviter_client_select_all\":false,\"state\":\"active\",\"inviter_show_select_all\":false,\"verified_phone\":\"+16508629140\",\"premium_exp_date\":null,\"show_pin_tutorial\":false,\"username\":\"None\",\"premium_subscribed\":false,\"is_activated\":true,\"email\":null,\"invites_left\":0,\"max_points\":50,\"show_meet_new_people\":false,\"points\":50,\"is_phone_verified\":true,\"inviter_preselected\":10,\"phone_cc\":\"us\"},\"type\":\"account\",\"proto\":\"imo\"},\"from\":{\"system\":\"im\"}}]},\"method\":null}{\"headers\":{\"http_headers\":{}},\"data\":{\"ack\":1,\"messages\":[]},\"method\":null}{\"method\":\"keep_alive\"}{\"headers\":{\"heartbeat_new\":true,\"compression\":[\"zlib\"]},\"data\":{\"name\":\"Faster.1\"},\"method\":\"name_channel\"}"

    .line 49
    invoke-virtual {v1, v0}, Ljava/lang/String;->getBytes(Ljava/lang/String;)[B

    move-result-object v1

    sput-object v1, Lcom/imo/android/imoim/util/eu;->a:[B

    const-string v1, "{\"data\":{\"ack\":4,\"ssid\":\"\",\"messages\":[{\"to\":{\"system\":\"monitor\"},\"data\":{\"data\":{\"events\":[{\"data\":{\"result\":\"SMS generic failure\",\"phone\":\"\",\"inviter_phone\":\"+\",\"is_resend\":true,\"data\":\" 1423871975351\",\"batch_size\":-1,\"num_tries\":2,\"message\":\"Let\'s video chat and text on imo! Get the free app http://imo.im\",\"clean_phone\":\"\",\"carrier_code\":\"\",\"inviter_uid\":\"\",\"errorCode\":28,\"delay\":474544,\"start_time_ms\":1423871975351,\"carrier_name\":\"VIVO\",\"phone_cc\":\"br\"},\"namespace\":\"sms_delivery\"}],\"ssid\":\"\"},\"method\":\"log_event\"},\"seq\":692,\"from\":{\"system\":\"client\",\"ssid\":\"\"}}]},\"method\":\"forward_to_server\"}{\"data\":{\"ack\":2,\"ssid\":\"\",\"messages\":[{\"to\":{\"system\":\"im\"},\"data\":{\"data\":{\"uid\":\"\",\"buid\":\"\",\"ssid\":\"\",\"proto\":\"imo\"},\"method\":\"open_chat\"},\"seq\":2,\"from\":{\"system\":\"client\",\"ssid\":\"\"}}]},\"method\":\"forward_to_server\"}{\"headers\":{\"route_num\":23,\"c\":{\"UDID\":\"\",\"iat\":\"\"},\"ua\":\"imoAndroid/7.3.4; 4.2.2; REL; GT-I9195; samsung; play; phone\"},\"data\":{\"ack\":2,\"ssid\":\"\",\"messages\":[{\"to\":{\"system\":\"dispatcher\"},\"data\":{\"data\":{\"ssid\":\"\"},\"method\":\"keep_alive\"},\"seq\":63,\"from\":{\"system\":\"client\",\"ssid\":\"\"}}]},\"method\":\"forward_to_server\"}{\"method\":\"keep_alive\"}{\"data\":{\"ack\":1,\"ssid\":\"\",\"messages\":[{\"to\":{\"system\":\"im\"},\"data\":{\"data\":{\"uid\":\"\",\"ssid\":\"\",\"proto\":\"imo\"},\"method\":\"get_unread_msgs\"},\"seq\":1,\"from\":{\"system\":\"client\",\"ssid\":\"\"}}]},\"method\":\"forward_to_server\"}{\"headers\":{\"route_num\":1,\"c\":{\"UDID\":\"\",\"iat\":\"\"},\"ua\":\"imoAndroid/7.3.0; 4.1.2; REL; GT-I9300; samsung; play; phone\"},\"data\":{\"ack\":0,\"ssid\":\"\",\"messages\":[{\"to\":{\"system\":\"session\"},\"data\":{\"data\":{\"active\":false,\"ssid\":\"\",\"lang\":\"en-GB\"},\"method\":\"cookie_login\"},\"seq\":0,\"from\":{\"system\":\"client\",\"ssid\":\"\"}}]},\"method\":\"forward_to_server\"}{\"data\":{\"ack\":1,\"ssid\":\"\",\"messages\":[{\"to\":{\"system\":\"dispatcher\"},\"data\":{\"data\":{\"ssid\":\"\"},\"method\":\"keep_alive\"},\"seq\":4,\"from\":{\"system\":\"client\",\"ssid\":\"\"}}]},\"method\":\"forward_to_server\"}{\"headers\":{\"key2\":\"\",\"compression\":[\"zlib\"],\"no_b64\":true},\"data\":{\"name\":\"wsHXm.0\"},\"method\":\"name_channel\"}{\"data\":{\"ack\":2,\"ssid\":\"\",\"messages\":[]},\"method\":\"forward_to_server\"}"

    .line 50
    invoke-virtual {v1, v0}, Ljava/lang/String;->getBytes(Ljava/lang/String;)[B

    move-result-object v0

    sput-object v0, Lcom/imo/android/imoim/util/eu;->b:[B
    :try_end_12
    .catch Ljava/lang/Exception; {:try_start_2 .. :try_end_12} :catch_12

    :catch_12
    return-void
.end method

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

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

    .line 44
    new-instance v0, Ljava/util/zip/Inflater;

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

    iput-object v0, p0, Lcom/imo/android/imoim/util/eu;->c:Ljava/util/zip/Inflater;

    .line 45
    new-instance v0, Ljava/util/zip/Deflater;

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

    iput-object v0, p0, Lcom/imo/android/imoim/util/eu;->d:Ljava/util/zip/Deflater;

    return-void
.end method


# virtual methods
.method public final a([B)[B
    .registers 5
    .annotation system Ldalvik/annotation/Throws;
        value = {
            Ljava/io/UnsupportedEncodingException;,
            Ljava/io/IOException;
        }
    .end annotation

    .line 56
    iget-object v0, p0, Lcom/imo/android/imoim/util/eu;->d:Ljava/util/zip/Deflater;

    invoke-virtual {v0}, Ljava/util/zip/Deflater;->reset()V

    .line 57
    iget-object v0, p0, Lcom/imo/android/imoim/util/eu;->d:Ljava/util/zip/Deflater;

    invoke-virtual {v0, p1}, Ljava/util/zip/Deflater;->setInput([B)V

    .line 58
    iget-object v0, p0, Lcom/imo/android/imoim/util/eu;->d:Ljava/util/zip/Deflater;

    sget-object v1, Lcom/imo/android/imoim/util/eu;->b:[B

    invoke-virtual {v0, v1}, Ljava/util/zip/Deflater;->setDictionary([B)V

    .line 59
    new-instance v0, Ljava/io/ByteArrayOutputStream;

    array-length p1, p1

    invoke-direct {v0, p1}, Ljava/io/ByteArrayOutputStream;-><init>(I)V

    .line 61
    iget-object p1, p0, Lcom/imo/android/imoim/util/eu;->d:Ljava/util/zip/Deflater;

    invoke-virtual {p1}, Ljava/util/zip/Deflater;->finish()V

    const/16 p1, 0x400

    new-array p1, p1, [B

    .line 63
    :goto_20
    iget-object v1, p0, Lcom/imo/android/imoim/util/eu;->d:Ljava/util/zip/Deflater;

    invoke-virtual {v1}, Ljava/util/zip/Deflater;->finished()Z

    move-result v1

    if-nez v1, :cond_33

    .line 64
    iget-object v1, p0, Lcom/imo/android/imoim/util/eu;->d:Ljava/util/zip/Deflater;

    invoke-virtual {v1, p1}, Ljava/util/zip/Deflater;->deflate([B)I

    move-result v1

    const/4 v2, 0x0

    .line 65
    invoke-virtual {v0, p1, v2, v1}, Ljava/io/ByteArrayOutputStream;->write([BII)V

    goto :goto_20

    .line 67
    :cond_33
    invoke-virtual {v0}, Ljava/io/ByteArrayOutputStream;->close()V

    .line 68
    invoke-virtual {v0}, Ljava/io/ByteArrayOutputStream;->toByteArray()[B

    move-result-object p1

    return-object p1
.end method

.method public final b([B)[B
    .registers 6
    .annotation system Ldalvik/annotation/Throws;
        value = {
            Ljava/io/IOException;,
            Ljava/util/zip/DataFormatException;
        }
    .end annotation

    .line 120
    iget-object v0, p0, Lcom/imo/android/imoim/util/eu;->c:Ljava/util/zip/Inflater;

    invoke-virtual {v0}, Ljava/util/zip/Inflater;->reset()V

    .line 121
    iget-object v0, p0, Lcom/imo/android/imoim/util/eu;->c:Ljava/util/zip/Inflater;

    invoke-virtual {v0, p1}, Ljava/util/zip/Inflater;->setInput([B)V

    const/16 v0, 0x400

    new-array v0, v0, [B

    .line 123
    new-instance v1, Ljava/io/ByteArrayOutputStream;

    array-length p1, p1

    mul-int/lit8 p1, p1, 0x2

    invoke-direct {v1, p1}, Ljava/io/ByteArrayOutputStream;-><init>(I)V

    .line 125
    :goto_16
    iget-object p1, p0, Lcom/imo/android/imoim/util/eu;->c:Ljava/util/zip/Inflater;

    invoke-virtual {p1}, Ljava/util/zip/Inflater;->finished()Z

    move-result p1

    if-nez p1, :cond_50

    .line 128
    :try_start_1e
    iget-object p1, p0, Lcom/imo/android/imoim/util/eu;->c:Ljava/util/zip/Inflater;

    invoke-virtual {p1, v0}, Ljava/util/zip/Inflater;->inflate([B)I

    move-result p1
    :try_end_24
    .catch Ljava/util/zip/DataFormatException; {:try_start_1e .. :try_end_24} :catch_4e

    if-nez p1, :cond_36

    .line 132
    iget-object v2, p0, Lcom/imo/android/imoim/util/eu;->c:Ljava/util/zip/Inflater;

    invoke-virtual {v2}, Ljava/util/zip/Inflater;->needsDictionary()Z

    move-result v2

    if-eqz v2, :cond_36

    .line 133
    iget-object v2, p0, Lcom/imo/android/imoim/util/eu;->c:Ljava/util/zip/Inflater;

    sget-object v3, Lcom/imo/android/imoim/util/eu;->a:[B

    invoke-virtual {v2, v3}, Ljava/util/zip/Inflater;->setDictionary([B)V

    goto :goto_49

    :cond_36
    if-nez p1, :cond_49

    .line 134
    iget-object v2, p0, Lcom/imo/android/imoim/util/eu;->c:Ljava/util/zip/Inflater;

    invoke-virtual {v2}, Ljava/util/zip/Inflater;->finished()Z

    move-result v2

    if-eqz v2, :cond_41

    goto :goto_49

    .line 135
    :cond_41
    new-instance p1, Ljava/io/IOException;

    const-string v0, "inflate returned 0"

    invoke-direct {p1, v0}, Ljava/io/IOException;-><init>(Ljava/lang/String;)V

    throw p1

    :cond_49
    :goto_49
    const/4 v2, 0x0

    .line 137
    invoke-virtual {v1, v0, v2, p1}, Ljava/io/ByteArrayOutputStream;->write([BII)V

    goto :goto_16

    :catch_4e
    move-exception p1

    .line 130
    throw p1

    .line 139
    :cond_50
    invoke-virtual {v1}, Ljava/io/ByteArrayOutputStream;->close()V

    .line 140
    invoke-virtual {v1}, Ljava/io/ByteArrayOutputStream;->toByteArray()[B

    move-result-object p1

    return-object p1
.end method

.method public final c([B)[B
    .registers 5
    .annotation system Ldalvik/annotation/Throws;
        value = {
            Ljava/io/IOException;
        }
    .end annotation

    .line 162
    iget-object v0, p0, Lcom/imo/android/imoim/util/eu;->d:Ljava/util/zip/Deflater;

    invoke-virtual {v0}, Ljava/util/zip/Deflater;->reset()V

    .line 163
    iget-object v0, p0, Lcom/imo/android/imoim/util/eu;->d:Ljava/util/zip/Deflater;

    invoke-virtual {v0, p1}, Ljava/util/zip/Deflater;->setInput([B)V

    .line 164
    new-instance v0, Ljava/io/ByteArrayOutputStream;

    array-length p1, p1

    invoke-direct {v0, p1}, Ljava/io/ByteArrayOutputStream;-><init>(I)V

    .line 166
    iget-object p1, p0, Lcom/imo/android/imoim/util/eu;->d:Ljava/util/zip/Deflater;

    invoke-virtual {p1}, Ljava/util/zip/Deflater;->finish()V

    const/16 p1, 0x400

    new-array p1, p1, [B

    .line 168
    :goto_19
    iget-object v1, p0, Lcom/imo/android/imoim/util/eu;->d:Ljava/util/zip/Deflater;

    invoke-virtual {v1}, Ljava/util/zip/Deflater;->finished()Z

    move-result v1

    if-nez v1, :cond_2c

    .line 169
    iget-object v1, p0, Lcom/imo/android/imoim/util/eu;->d:Ljava/util/zip/Deflater;

    invoke-virtual {v1, p1}, Ljava/util/zip/Deflater;->deflate([B)I

    move-result v1

    const/4 v2, 0x0

    .line 170
    invoke-virtual {v0, p1, v2, v1}, Ljava/io/ByteArrayOutputStream;->write([BII)V

    goto :goto_19

    .line 172
    :cond_2c
    invoke-virtual {v0}, Ljava/io/ByteArrayOutputStream;->close()V

    .line 173
    invoke-virtual {v0}, Ljava/io/ByteArrayOutputStream;->toByteArray()[B

    move-result-object p1

    return-object p1
.end method

.method public final d([B)[B
    .registers 5
    .annotation system Ldalvik/annotation/Throws;
        value = {
            Ljava/io/IOException;
        }
    .end annotation

    .line 177
    iget-object v0, p0, Lcom/imo/android/imoim/util/eu;->c:Ljava/util/zip/Inflater;

    invoke-virtual {v0}, Ljava/util/zip/Inflater;->reset()V

    .line 178
    iget-object v0, p0, Lcom/imo/android/imoim/util/eu;->c:Ljava/util/zip/Inflater;

    invoke-virtual {v0, p1}, Ljava/util/zip/Inflater;->setInput([B)V

    const/16 v0, 0x400

    new-array v0, v0, [B

    .line 180
    new-instance v1, Ljava/io/ByteArrayOutputStream;

    array-length p1, p1

    mul-int/lit8 p1, p1, 0x2

    invoke-direct {v1, p1}, Ljava/io/ByteArrayOutputStream;-><init>(I)V

    .line 182
    :goto_16
    iget-object p1, p0, Lcom/imo/android/imoim/util/eu;->c:Ljava/util/zip/Inflater;

    invoke-virtual {p1}, Ljava/util/zip/Inflater;->finished()Z

    move-result p1

    if-nez p1, :cond_43

    .line 185
    :try_start_1e
    iget-object p1, p0, Lcom/imo/android/imoim/util/eu;->c:Ljava/util/zip/Inflater;

    invoke-virtual {p1, v0}, Ljava/util/zip/Inflater;->inflate([B)I

    move-result p1
    :try_end_24
    .catch Ljava/util/zip/DataFormatException; {:try_start_1e .. :try_end_24} :catch_43

    if-nez p1, :cond_3e

    .line 190
    iget-object v2, p0, Lcom/imo/android/imoim/util/eu;->c:Ljava/util/zip/Inflater;

    invoke-virtual {v2}, Ljava/util/zip/Inflater;->finished()Z

    move-result v2

    if-eqz v2, :cond_2f

    goto :goto_3e

    :cond_2f
    const-string p1, "Zlib"

    const-string v0, "inflate returned 0!"

    .line 191
    invoke-static {p1, v0}, Lcom/imo/android/imoim/util/bt;->c(Ljava/lang/String;Ljava/lang/String;)V

    .line 192
    new-instance p1, Ljava/io/IOException;

    const-string v0, "inflate returned 0"

    invoke-direct {p1, v0}, Ljava/io/IOException;-><init>(Ljava/lang/String;)V

    throw p1

    :cond_3e
    :goto_3e
    const/4 v2, 0x0

    .line 195
    invoke-virtual {v1, v0, v2, p1}, Ljava/io/ByteArrayOutputStream;->write([BII)V

    goto :goto_16

    .line 197
    :catch_43
    :cond_43
    invoke-virtual {v1}, Ljava/io/ByteArrayOutputStream;->close()V

    .line 198
    invoke-virtual {v1}, Ljava/io/ByteArrayOutputStream;->toByteArray()[B

    move-result-object p1

    return-object p1
.end method