.版本 2
.子程序 若水加密
.参数 加密地址, 整数型
.参数 加密数值, 整数型
.局部变量 edi, 整数型
.局部变量 ecx, 整数型
.局部变量 ebx, 整数型
.局部变量 eax, 整数型
.局部变量 esi, 整数型
.局部变量 edx, 整数型
.局部变量 ss, 整数型
ecx = 加密地址
eax = 读内存整数型 (进程ID, 十六到十 (#加密基址))
eax = eax + 1
读内存整数型 (进程ID, 十六到十 (#加密基址), eax)
edx = eax
edx = 右移 (edx, 8)
edx = 左移 (edx, 24)
edx = 右移 (edx, 24)
edx = 读内存整数型 (进程ID, edx × 2 + 十六到十 (#加密参数1))
edx = 若水取双字节 (edx)
eax = 左移 (eax, 24)
eax = 右移 (eax, 24)
ss = 读内存整数型 (进程ID, eax × 2 + 十六到十 (#加密参数2))
ss = 若水取双字节 (ss)
edx = 位异或 (edx, ss)
eax = edx
eax = 若水取双字节 (eax)
esi = 加密数值
edx = 右移 (esi, 16)
超级延时 (10)
ss = 若水取双字节 (esi)
edx = edx + ss
edx = 位异或 (edx, eax)
edi = edx
edx = eax
eax = 左移 (eax, 16)
eax = eax + edx
esi = 加密数值
eax = 位异或 (eax, esi)
esi = 加密地址 + 8
写内存整数型 (进程ID, esi, eax)
eax = 读内存整数型 (进程ID, 加密地址)
esi = 读内存整数型 (进程ID, 十六到十 (#解密基址))
ecx = edi
ecx = 左移 (ecx, 16)
ecx = ecx + edx
edx = eax
edx = 右移 (edx, 16)
edx = 读内存整数型 (进程ID, esi + edx × 4 + 36)
eax = 若水取双字节 (eax)
写内存整数型 (进程ID, edx + eax × 4 + 8468, ecx)
.子程序 若水解密, 整数型
.参数 地址, 整数型
.局部变量 edi, 整数型
.局部变量 ecx, 整数型
.局部变量 ebx, 整数型
.局部变量 eax, 整数型
.局部变量 esi, 整数型
.局部变量 edx, 整数型
.局部变量 ss, 整数型
eax = 读内存整数型 (进程ID, 地址)
esi = 读内存整数型 (进程ID, 十六到十 (#解密基址))
edx = eax
edx = 右移 (edx, 16)
edx = 读内存整数型 (进程ID, esi + edx × 4 + 36)
eax = 若水取双字节 (eax)
eax = 读内存整数型 (进程ID, edx + eax × 4 + 8468)
eax = 若水取双字节 (eax)
edx = eax
esi = edx
esi = 左移 (esi, 16)
esi = esi + edx
edx = 读内存整数型 (进程ID, 地址 + 8)
eax = 位异或 (esi, edx)
返回 (eax)
.子程序 若水取双字节, 整数型
.参数 数值, 整数型
.局部变量 取舍, 整数型
取舍 = 十六到十 (取文本右边 (十到十六 (数值), 4))
返回 (取舍)
.子程序 若水加密
.参数 加密地址, 整数型
.参数 加密数值, 整数型
.局部变量 edi, 整数型
.局部变量 ecx, 整数型
.局部变量 ebx, 整数型
.局部变量 eax, 整数型
.局部变量 esi, 整数型
.局部变量 edx, 整数型
.局部变量 ss, 整数型
ecx = 加密地址
eax = 读内存整数型 (进程ID, 十六到十 (#加密基址))
eax = eax + 1
读内存整数型 (进程ID, 十六到十 (#加密基址), eax)
edx = eax
edx = 右移 (edx, 8)
edx = 左移 (edx, 24)
edx = 右移 (edx, 24)
edx = 读内存整数型 (进程ID, edx × 2 + 十六到十 (#加密参数1))
edx = 若水取双字节 (edx)
eax = 左移 (eax, 24)
eax = 右移 (eax, 24)
ss = 读内存整数型 (进程ID, eax × 2 + 十六到十 (#加密参数2))
ss = 若水取双字节 (ss)
edx = 位异或 (edx, ss)
eax = edx
eax = 若水取双字节 (eax)
esi = 加密数值
edx = 右移 (esi, 16)
超级延时 (10)
ss = 若水取双字节 (esi)
edx = edx + ss
edx = 位异或 (edx, eax)
edi = edx
edx = eax
eax = 左移 (eax, 16)
eax = eax + edx
esi = 加密数值
eax = 位异或 (eax, esi)
esi = 加密地址 + 8
写内存整数型 (进程ID, esi, eax)
eax = 读内存整数型 (进程ID, 加密地址)
esi = 读内存整数型 (进程ID, 十六到十 (#解密基址))
ecx = edi
ecx = 左移 (ecx, 16)
ecx = ecx + edx
edx = eax
edx = 右移 (edx, 16)
edx = 读内存整数型 (进程ID, esi + edx × 4 + 36)
eax = 若水取双字节 (eax)
写内存整数型 (进程ID, edx + eax × 4 + 8468, ecx)
.子程序 若水解密, 整数型
.参数 地址, 整数型
.局部变量 edi, 整数型
.局部变量 ecx, 整数型
.局部变量 ebx, 整数型
.局部变量 eax, 整数型
.局部变量 esi, 整数型
.局部变量 edx, 整数型
.局部变量 ss, 整数型
eax = 读内存整数型 (进程ID, 地址)
esi = 读内存整数型 (进程ID, 十六到十 (#解密基址))
edx = eax
edx = 右移 (edx, 16)
edx = 读内存整数型 (进程ID, esi + edx × 4 + 36)
eax = 若水取双字节 (eax)
eax = 读内存整数型 (进程ID, edx + eax × 4 + 8468)
eax = 若水取双字节 (eax)
edx = eax
esi = edx
esi = 左移 (esi, 16)
esi = esi + edx
edx = 读内存整数型 (进程ID, 地址 + 8)
eax = 位异或 (esi, edx)
返回 (eax)
.子程序 若水取双字节, 整数型
.参数 数值, 整数型
.局部变量 取舍, 整数型
取舍 = 十六到十 (取文本右边 (十到十六 (数值), 4))
返回 (取舍)