請把smali逐行翻译成java或者c#代码,謝謝?

.method public md5(Ljava/lang/String;)Ljava/lang/String;
.locals 13
.param p1, "s" # Ljava/lang/String;

.prologue
.line 283
new-instance v11, Ljava/lang/StringBuilder;

const-string v12, "GDinfo"

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

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

move-result-object v11

const-string v12, "sjcj"

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

move-result-object v11

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

move-result-object p1

.line 284
const/16 v11, 0x10

new-array v2, v11, [C

fill-array-data v2, :array_0

.line 287
.local v2, "hexDigits":[C
:try_start_0
invoke-virtual {p1}, Ljava/lang/String;->getBytes()[B

move-result-object v10

.line 288
.local v10, "strTemp":[B
const-string v11, "MD5"

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

move-result-object v8

.line 289
.local v8, "mdTemp":Ljava/security/MessageDigest;
invoke-virtual {v8, v10}, Ljava/security/MessageDigest;->update([B)V

.line 290
invoke-virtual {v8}, Ljava/security/MessageDigest;->digest()[B

move-result-object v7

.line 291
.local v7, "md":[B
array-length v4, v7

.line 292
.local v4, "j":I
mul-int/lit8 v11, v4, 0x2

new-array v9, v11, [C

.line 293
.local v9, "str":[C
const/4 v5, 0x0

.line 294
.local v5, "k":I
const/4 v3, 0x0

.local v3, "i":I
move v6, v5

.end local v5    # "k":I
.local v6, "k":I
:goto_0
if-lt v3, v4, :cond_0

.line 299
new-instance v11, Ljava/lang/String;

invoke-direct {v11, v9}, Ljava/lang/String;-><init>([C)V

.line 302
.end local v3    # "i":I
.end local v4    # "j":I
.end local v6    # "k":I
.end local v7    # "md":[B
.end local v8    # "mdTemp":Ljava/security/MessageDigest;
.end local v9    # "str":[C
.end local v10    # "strTemp":[B
:goto_1
return-object v11

.line 295
.restart local v3    # "i":I
.restart local v4    # "j":I
.restart local v6    # "k":I
.restart local v7    # "md":[B
.restart local v8    # "mdTemp":Ljava/security/MessageDigest;
.restart local v9    # "str":[C
.restart local v10    # "strTemp":[B
:cond_0
aget-byte v0, v7, v3

.line 296
.local v0, "byte0":B
add-int/lit8 v5, v6, 0x1

.end local v6    # "k":I
.restart local v5    # "k":I
ushr-int/lit8 v11, v0, 0x4

and-int/lit8 v11, v11, 0xf

aget-char v11, v2, v11

aput-char v11, v9, v6

.line 297
add-int/lit8 v6, v5, 0x1

.end local v5    # "k":I
.restart local v6    # "k":I
and-int/lit8 v11, v0, 0xf

aget-char v11, v2, v11

aput-char v11, v9, v5
:try_end_0
.catch Ljava/lang/Exception; {:try_start_0 .. :try_end_0} :catch_0

.line 294
add-int/lit8 v3, v3, 0x1

goto :goto_0

.line 300
.end local v0    # "byte0":B
.end local v3    # "i":I
.end local v4    # "j":I
.end local v6    # "k":I
.end local v7    # "md":[B
.end local v8    # "mdTemp":Ljava/security/MessageDigest;
.end local v9    # "str":[C
.end local v10    # "strTemp":[B
:catch_0
move-exception v1

.line 301
.local v1, "e":Ljava/lang/Exception;
invoke-virtual {v1}, Ljava/lang/Exception;->printStackTrace()V

.line 302
const/4 v11, 0x0

goto :goto_1

.line 284
:array_0
.array-data 2
    0x30s
    0x31s
    0x32s
    0x33s
    0x34s
    0x35s
    0x36s
    0x37s
    0x38s
    0x39s
    0x61s
    0x62s
    0x63s
    0x64s
    0x65s
    0x66s
.end array-data

.end method

https://www.52pojie.cn/forum.php?mod=viewthread&tid=626502