RC4.smali
.class Lcom/baidu/netdisk/sdk/RC4;
.super Ljava/lang/Object;
# static fields
.field private static a:Ljava/lang/String;
# direct methods
.method static constructor <clinit>()V
.registers 1
const-string v0, ""
sput-object v0, Lcom/baidu/netdisk/sdk/RC4;->a:Ljava/lang/String;
const-string v0, "BDRC4_V1_1"
invoke-static {v0}, Ljava/lang/System;->loadLibrary(Ljava/lang/String;)V
return-void
.end method
.method constructor <init>()V
.registers 1
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method
.method private a()Ljava/lang/String;
.registers 2
sget-object v0, Lcom/baidu/netdisk/sdk/RC4;->a:Ljava/lang/String;
invoke-static {v0}, Landroid/text/TextUtils;->isEmpty(Ljava/lang/CharSequence;)Z
move-result v0
if-eqz v0, :cond_e
invoke-direct {p0}, Lcom/baidu/netdisk/sdk/RC4;->convertToRC4Key()Ljava/lang/String;
move-result-object v0
sput-object v0, Lcom/baidu/netdisk/sdk/RC4;->a:Ljava/lang/String;
:cond_e
sget-object v0, Lcom/baidu/netdisk/sdk/RC4;->a:Ljava/lang/String;
return-object v0
.end method
.method private native convertToRC4Key()Ljava/lang/String;
.end method
# virtual methods
.method final a(Ljava/lang/String;)[B
.registers 10
const/16 v7, 0x100
const/4 v0, 0x0
invoke-direct {p0}, Lcom/baidu/netdisk/sdk/RC4;->a()Ljava/lang/String;
move-result-object v2
new-array v3, v7, [I
new-array v4, v7, [B
move v1, v0
:goto_c
if-ge v1, v7, :cond_13
aput v1, v3, v1
add-int/lit8 v1, v1, 0x1
goto :goto_c
:cond_13
move v1, v0
:goto_14
if-ge v1, v7, :cond_27
invoke-virtual {v2}, Ljava/lang/String;->length()I
move-result v5
rem-int v5, v1, v5
invoke-virtual {v2, v5}, Ljava/lang/String;->charAt(I)C
move-result v5
int-to-byte v5, v5
aput-byte v5, v4, v1
add-int/lit8 v1, v1, 0x1
int-to-short v1, v1
goto :goto_14
:cond_27
move v1, v0
move v2, v0
:goto_29
if-ge v1, v7, :cond_3e
aget v5, v3, v1
add-int/2addr v2, v5
aget-byte v5, v4, v1
add-int/2addr v2, v5
rem-int/lit16 v2, v2, 0x100
aget v5, v3, v1
aget v6, v3, v2
aput v6, v3, v1
aput v5, v3, v2
add-int/lit8 v1, v1, 0x1
goto :goto_29
:cond_3e
invoke-virtual {p1}, Ljava/lang/String;->toCharArray()[C
move-result-object v4
array-length v1, v4
new-array v5, v1, [B
move v1, v0
move v2, v0
:goto_47
array-length v6, v4
if-ge v2, v6, :cond_70
add-int/lit8 v0, v0, 0x1
rem-int/lit16 v0, v0, 0x100
aget v6, v3, v0
add-int/2addr v1, v6
rem-int/lit16 v1, v1, 0x100
aget v6, v3, v0
aget v7, v3, v1
aput v7, v3, v0
aput v6, v3, v1
aget v6, v3, v0
aget v7, v3, v1
rem-int/lit16 v7, v7, 0x100
add-int/2addr v6, v7
rem-int/lit16 v6, v6, 0x100
aget v6, v3, v6
int-to-char v6, v6
aget-char v7, v4, v2
xor-int/2addr v6, v7
int-to-byte v6, v6
aput-byte v6, v5, v2
add-int/lit8 v2, v2, 0x1
goto :goto_47
:cond_70
return-object v5
.end method
.method public final a([B)[B
.registers 10
const/16 v7, 0x100
const/4 v0, 0x0
invoke-direct {p0}, Lcom/baidu/netdisk/sdk/RC4;->a()Ljava/lang/String;
move-result-object v2
new-array v3, v7, [I
new-array v4, v7, [B
move v1, v0
:goto_c
if-ge v1, v7, :cond_13
aput v1, v3, v1
add-int/lit8 v1, v1, 0x1
goto :goto_c
:cond_13
move v1, v0
:goto_14
if-ge v1, v7, :cond_27
invoke-virtual {v2}, Ljava/lang/String;->length()I
move-result v5
rem-int v5, v1, v5
invoke-virtual {v2, v5}, Ljava/lang/String;->charAt(I)C
move-result v5
int-to-byte v5, v5
aput-byte v5, v4, v1
add-int/lit8 v1, v1, 0x1
int-to-short v1, v1
goto :goto_14
:cond_27
move v1, v0
move v2, v0
:goto_29
if-ge v1, v7, :cond_3e
aget v5, v3, v1
add-int/2addr v2, v5
aget-byte v5, v4, v1
add-int/2addr v2, v5
rem-int/lit16 v2, v2, 0x100
aget v5, v3, v1
aget v6, v3, v2
aput v6, v3, v1
aput v5, v3, v2
add-int/lit8 v1, v1, 0x1
goto :goto_29
:cond_3e
array-length v1, p1
new-array v4, v1, [B
move v1, v0
move v2, v0
:goto_43
array-length v5, p1
if-ge v2, v5, :cond_6c
add-int/lit8 v0, v0, 0x1
rem-int/lit16 v0, v0, 0x100
aget v5, v3, v0
add-int/2addr v1, v5
rem-int/lit16 v1, v1, 0x100
aget v5, v3, v0
aget v6, v3, v1
aput v6, v3, v0
aput v5, v3, v1
aget v5, v3, v0
aget v6, v3, v1
rem-int/lit16 v6, v6, 0x100
add-int/2addr v5, v6
rem-int/lit16 v5, v5, 0x100
aget v5, v3, v5
int-to-char v5, v5
aget-byte v6, p1, v2
xor-int/2addr v5, v6
int-to-byte v5, v5
aput-byte v5, v4, v2
add-int/lit8 v2, v2, 0x1
goto :goto_43
:cond_6c
return-object v4
.end method