method private a([CS)Ljava/lang/String;
.locals 6 # 6个寄存器
.parameter # 参数1字符数组
.parameter # 参数2长度
.prologue
const/4 v1, 0x0 #定义常量0
.line 473
array-length v0, p1 # 参数1字符数组长度(438)
div-int/lit8 v0, v0, 0x2 # 参数1长度除2(219)
new-array v2, v0, [C #创建一个新数组,长度为一半(219)
move v0, v1 # 设置变量为0
.line 475
:goto_0
array-length v3, p1 # 长度438
div-int/lit8 v3, v3, 0x2 #长度219
if-lt v0, v3, :cond_0 变量v0<219跳到cond_0
.line 484
new-instance v3, Ljava/lang/StringBuffer;
invoke-direct {v3}, Ljava/lang/StringBuffer;-><init>()V
.line 485
:goto_1
array-length v0, v2 # 新数据长度(219)
if-lt v1, v0, :cond_1 # 变量v1<219跳到cond_1
.line 497
invoke-virtual {v3}, Ljava/lang/StringBuffer;->toString()Ljava/lang/String;
move-result-object v0
return-object v0
.line 478
:cond_0
mul-int/lit8 v3, v0, 0x2 # 当前位置记录到v3
aget-char v3, p1, v3 # 获取字符串数组中的v3位置的值
sget v4, Lcom/chinapost/publiclibrary/g;->h:I #获取变量h
sub-int/2addr v3, v4 # 当前值减去变量h存放到v3
mul-int/lit8 v3, v3, 0x1a # v3乘以0x1a存放到v3
.line 479
mul-int/lit8 v4, v0, 0x2 # 索引v0成2位当前字符串位置(偶数)
add-int/lit8 v4, v4, 0x1 # 当前字符串位置(奇数)
aget-char v4, p1, v4 # 获取当前字符串位置的值(奇数)
sget v5, Lcom/chinapost/publiclibrary/g;->h:I # 获取变量h
sub-int/2addr v4, v5 # 当前位置的值减去变量h存放回v4
add-int/2addr v3, v4 # 偶数位计算的值+奇数为计算的值=v3
.line 480
int-to-char v3, v3 # 将v3转成char
aput-char v3, v2, v0 # 将v3存入到新创建的数组中
.line 475
add-int/lit8 v0, v0, 0x1 #索引加1
goto :goto_0
.line 487
:cond_1
shr-int/lit8 v0, p2, 0x8 # v0=p2>>0x8;获取参数2高8位
int-to-short v0, v0 # v0转成short
.line 488
aget-char v4, v2, v1 # 获取新数组v2的索引v1的值到v4 v4=v2[v1];
int-to-short v4, v4 # v4=(short)v4
.line 489
xor-int/2addr v0, v4 # 与参数2高8位异或,异或结果放入v0
int-to-short v0, v0 # v0=(short)v0;
.line 490
add-int/2addr v4, p2# v4 = 当前数组元素v4+参数2p2
int-to-short v4, v4
sget v5, Lcom/chinapost/publiclibrary/g;->f:I #获取变量f
mul-int/2addr v4, v5 # v4=v4*f;
sget v5, Lcom/chinapost/publiclibrary/g;->g:I#变量g
add-int/2addr v4, v5# v4 = v4+g;
int-to-short p2, v4 #改变参数2
.line 492
if-gez v0, :cond_2 # 如果异或结果大于等于0
.line 493
add-int/lit16 v0, v0, 0x100 # 异或结果v0=v10+0x100;
int-to-short v0, v0 # v0=(short)v0;
.line 495
:cond_2
int-to-char v0, v0 # v0=(char)v0;
invoke-virtual {v3, v0}, Ljava/lang/StringBuffer;->append(C)Ljava/lang/StringBuffer; #添加到StringBuffer中
.line 485
add-int/lit8 v1, v1, 0x1 # 索引+1
goto :goto_1
.end method