Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenHarmony
Third Party Openssl
提交
690ad20a
T
Third Party Openssl
项目概览
OpenHarmony
/
Third Party Openssl
9 个月 前同步成功
通知
8
Star
18
Fork
1
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
T
Third Party Openssl
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
690ad20a
编写于
1月 17, 1999
作者:
B
Ben Laurie
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Dispose of generated programs.
上级
649cdb7b
变更
2
展开全部
隐藏空白更改
内联
并排
Showing
2 changed file
with
0 addition
and
1950 deletion
+0
-1950
crypto/cast/asm/c-win32.asm
crypto/cast/asm/c-win32.asm
+0
-940
crypto/cast/asm/cx86unix.cpp
crypto/cast/asm/cx86unix.cpp
+0
-1010
未找到文件。
crypto/cast/asm/c-win32.asm
已删除
100644 → 0
浏览文件 @
649cdb7b
; Don't even think of reading this code
; It was automatically generated by cast-586.pl
; Which is a perl program used to generate the x86 assember for
; any of elf, a.out, BSDI,Win32, or Solaris
; eric <eay@cryptsoft.com>
;
TITLE
cast
-
586
.asm
.486
.model
FLAT
_TEXT
SEG
MENT
PUBLIC
_CAST_encrypt
EXTERN
_CAST_S_table0
:
DWORD
EXTERN
_CAST_S_table1
:
DWORD
EXTERN
_CAST_S_table2
:
DWORD
EXTERN
_CAST_S_table3
:
DWORD
_CAST_encrypt
PROC
NEAR
;
push
ebp
push
ebx
mov
ebx
,
DWORD
PTR
12
[
esp
]
mov
ebp
,
DWORD
PTR
16
[
esp
]
push
esi
push
edi
; Load the 2 words
mov
edi
,
DWORD
PTR
[
ebx
]
mov
esi
,
DWORD
PTR
4
[
ebx
]
xor
eax
,
eax
; round 0
mov
edx
,
DWORD
PTR
[
ebp
]
mov
ecx
,
DWORD
PTR
4
[
ebp
]
add
edx
,
esi
rol
edx
,
cl
mov
ebx
,
edx
xor
ecx
,
ecx
mov
cl
,
dh
and
ebx
,
255
shr
edx
,
16
xor
eax
,
eax
mov
al
,
dh
and
edx
,
255
mov
ecx
,
DWORD
PTR
_CAST_S_table0
[
ecx
*
4
]
mov
ebx
,
DWORD
PTR
_CAST_S_table1
[
ebx
*
4
]
xor
ecx
,
ebx
mov
ebx
,
DWORD
PTR
_CAST_S_table2
[
eax
*
4
]
sub
ecx
,
ebx
mov
ebx
,
DWORD
PTR
_CAST_S_table3
[
edx
*
4
]
add
ecx
,
ebx
xor
edi
,
ecx
; round 1
mov
edx
,
DWORD
PTR
8
[
ebp
]
mov
ecx
,
DWORD
PTR
12
[
ebp
]
xor
edx
,
edi
rol
edx
,
cl
mov
ebx
,
edx
xor
ecx
,
ecx
mov
cl
,
dh
and
ebx
,
255
shr
edx
,
16
xor
eax
,
eax
mov
al
,
dh
and
edx
,
255
mov
ecx
,
DWORD
PTR
_CAST_S_table0
[
ecx
*
4
]
mov
ebx
,
DWORD
PTR
_CAST_S_table1
[
ebx
*
4
]
sub
ecx
,
ebx
mov
ebx
,
DWORD
PTR
_CAST_S_table2
[
eax
*
4
]
add
ecx
,
ebx
mov
ebx
,
DWORD
PTR
_CAST_S_table3
[
edx
*
4
]
xor
ecx
,
ebx
xor
esi
,
ecx
; round 2
mov
edx
,
DWORD
PTR
16
[
ebp
]
mov
ecx
,
DWORD
PTR
20
[
ebp
]
sub
edx
,
esi
rol
edx
,
cl
mov
ebx
,
edx
xor
ecx
,
ecx
mov
cl
,
dh
and
ebx
,
255
shr
edx
,
16
xor
eax
,
eax
mov
al
,
dh
and
edx
,
255
mov
ecx
,
DWORD
PTR
_CAST_S_table0
[
ecx
*
4
]
mov
ebx
,
DWORD
PTR
_CAST_S_table1
[
ebx
*
4
]
add
ecx
,
ebx
mov
ebx
,
DWORD
PTR
_CAST_S_table2
[
eax
*
4
]
xor
ecx
,
ebx
mov
ebx
,
DWORD
PTR
_CAST_S_table3
[
edx
*
4
]
sub
ecx
,
ebx
xor
edi
,
ecx
; round 3
mov
edx
,
DWORD
PTR
24
[
ebp
]
mov
ecx
,
DWORD
PTR
28
[
ebp
]
add
edx
,
edi
rol
edx
,
cl
mov
ebx
,
edx
xor
ecx
,
ecx
mov
cl
,
dh
and
ebx
,
255
shr
edx
,
16
xor
eax
,
eax
mov
al
,
dh
and
edx
,
255
mov
ecx
,
DWORD
PTR
_CAST_S_table0
[
ecx
*
4
]
mov
ebx
,
DWORD
PTR
_CAST_S_table1
[
ebx
*
4
]
xor
ecx
,
ebx
mov
ebx
,
DWORD
PTR
_CAST_S_table2
[
eax
*
4
]
sub
ecx
,
ebx
mov
ebx
,
DWORD
PTR
_CAST_S_table3
[
edx
*
4
]
add
ecx
,
ebx
xor
esi
,
ecx
; round 4
mov
edx
,
DWORD
PTR
32
[
ebp
]
mov
ecx
,
DWORD
PTR
36
[
ebp
]
xor
edx
,
esi
rol
edx
,
cl
mov
ebx
,
edx
xor
ecx
,
ecx
mov
cl
,
dh
and
ebx
,
255
shr
edx
,
16
xor
eax
,
eax
mov
al
,
dh
and
edx
,
255
mov
ecx
,
DWORD
PTR
_CAST_S_table0
[
ecx
*
4
]
mov
ebx
,
DWORD
PTR
_CAST_S_table1
[
ebx
*
4
]
sub
ecx
,
ebx
mov
ebx
,
DWORD
PTR
_CAST_S_table2
[
eax
*
4
]
add
ecx
,
ebx
mov
ebx
,
DWORD
PTR
_CAST_S_table3
[
edx
*
4
]
xor
ecx
,
ebx
xor
edi
,
ecx
; round 5
mov
edx
,
DWORD
PTR
40
[
ebp
]
mov
ecx
,
DWORD
PTR
44
[
ebp
]
sub
edx
,
edi
rol
edx
,
cl
mov
ebx
,
edx
xor
ecx
,
ecx
mov
cl
,
dh
and
ebx
,
255
shr
edx
,
16
xor
eax
,
eax
mov
al
,
dh
and
edx
,
255
mov
ecx
,
DWORD
PTR
_CAST_S_table0
[
ecx
*
4
]
mov
ebx
,
DWORD
PTR
_CAST_S_table1
[
ebx
*
4
]
add
ecx
,
ebx
mov
ebx
,
DWORD
PTR
_CAST_S_table2
[
eax
*
4
]
xor
ecx
,
ebx
mov
ebx
,
DWORD
PTR
_CAST_S_table3
[
edx
*
4
]
sub
ecx
,
ebx
xor
esi
,
ecx
; round 6
mov
edx
,
DWORD
PTR
48
[
ebp
]
mov
ecx
,
DWORD
PTR
52
[
ebp
]
add
edx
,
esi
rol
edx
,
cl
mov
ebx
,
edx
xor
ecx
,
ecx
mov
cl
,
dh
and
ebx
,
255
shr
edx
,
16
xor
eax
,
eax
mov
al
,
dh
and
edx
,
255
mov
ecx
,
DWORD
PTR
_CAST_S_table0
[
ecx
*
4
]
mov
ebx
,
DWORD
PTR
_CAST_S_table1
[
ebx
*
4
]
xor
ecx
,
ebx
mov
ebx
,
DWORD
PTR
_CAST_S_table2
[
eax
*
4
]
sub
ecx
,
ebx
mov
ebx
,
DWORD
PTR
_CAST_S_table3
[
edx
*
4
]
add
ecx
,
ebx
xor
edi
,
ecx
; round 7
mov
edx
,
DWORD
PTR
56
[
ebp
]
mov
ecx
,
DWORD
PTR
60
[
ebp
]
xor
edx
,
edi
rol
edx
,
cl
mov
ebx
,
edx
xor
ecx
,
ecx
mov
cl
,
dh
and
ebx
,
255
shr
edx
,
16
xor
eax
,
eax
mov
al
,
dh
and
edx
,
255
mov
ecx
,
DWORD
PTR
_CAST_S_table0
[
ecx
*
4
]
mov
ebx
,
DWORD
PTR
_CAST_S_table1
[
ebx
*
4
]
sub
ecx
,
ebx
mov
ebx
,
DWORD
PTR
_CAST_S_table2
[
eax
*
4
]
add
ecx
,
ebx
mov
ebx
,
DWORD
PTR
_CAST_S_table3
[
edx
*
4
]
xor
ecx
,
ebx
xor
esi
,
ecx
; round 8
mov
edx
,
DWORD
PTR
64
[
ebp
]
mov
ecx
,
DWORD
PTR
68
[
ebp
]
sub
edx
,
esi
rol
edx
,
cl
mov
ebx
,
edx
xor
ecx
,
ecx
mov
cl
,
dh
and
ebx
,
255
shr
edx
,
16
xor
eax
,
eax
mov
al
,
dh
and
edx
,
255
mov
ecx
,
DWORD
PTR
_CAST_S_table0
[
ecx
*
4
]
mov
ebx
,
DWORD
PTR
_CAST_S_table1
[
ebx
*
4
]
add
ecx
,
ebx
mov
ebx
,
DWORD
PTR
_CAST_S_table2
[
eax
*
4
]
xor
ecx
,
ebx
mov
ebx
,
DWORD
PTR
_CAST_S_table3
[
edx
*
4
]
sub
ecx
,
ebx
xor
edi
,
ecx
; round 9
mov
edx
,
DWORD
PTR
72
[
ebp
]
mov
ecx
,
DWORD
PTR
76
[
ebp
]
add
edx
,
edi
rol
edx
,
cl
mov
ebx
,
edx
xor
ecx
,
ecx
mov
cl
,
dh
and
ebx
,
255
shr
edx
,
16
xor
eax
,
eax
mov
al
,
dh
and
edx
,
255
mov
ecx
,
DWORD
PTR
_CAST_S_table0
[
ecx
*
4
]
mov
ebx
,
DWORD
PTR
_CAST_S_table1
[
ebx
*
4
]
xor
ecx
,
ebx
mov
ebx
,
DWORD
PTR
_CAST_S_table2
[
eax
*
4
]
sub
ecx
,
ebx
mov
ebx
,
DWORD
PTR
_CAST_S_table3
[
edx
*
4
]
add
ecx
,
ebx
xor
esi
,
ecx
; round 10
mov
edx
,
DWORD
PTR
80
[
ebp
]
mov
ecx
,
DWORD
PTR
84
[
ebp
]
xor
edx
,
esi
rol
edx
,
cl
mov
ebx
,
edx
xor
ecx
,
ecx
mov
cl
,
dh
and
ebx
,
255
shr
edx
,
16
xor
eax
,
eax
mov
al
,
dh
and
edx
,
255
mov
ecx
,
DWORD
PTR
_CAST_S_table0
[
ecx
*
4
]
mov
ebx
,
DWORD
PTR
_CAST_S_table1
[
ebx
*
4
]
sub
ecx
,
ebx
mov
ebx
,
DWORD
PTR
_CAST_S_table2
[
eax
*
4
]
add
ecx
,
ebx
mov
ebx
,
DWORD
PTR
_CAST_S_table3
[
edx
*
4
]
xor
ecx
,
ebx
xor
edi
,
ecx
; round 11
mov
edx
,
DWORD
PTR
88
[
ebp
]
mov
ecx
,
DWORD
PTR
92
[
ebp
]
sub
edx
,
edi
rol
edx
,
cl
mov
ebx
,
edx
xor
ecx
,
ecx
mov
cl
,
dh
and
ebx
,
255
shr
edx
,
16
xor
eax
,
eax
mov
al
,
dh
and
edx
,
255
mov
ecx
,
DWORD
PTR
_CAST_S_table0
[
ecx
*
4
]
mov
ebx
,
DWORD
PTR
_CAST_S_table1
[
ebx
*
4
]
add
ecx
,
ebx
mov
ebx
,
DWORD
PTR
_CAST_S_table2
[
eax
*
4
]
xor
ecx
,
ebx
mov
ebx
,
DWORD
PTR
_CAST_S_table3
[
edx
*
4
]
sub
ecx
,
ebx
xor
esi
,
ecx
; round 12
mov
edx
,
DWORD
PTR
96
[
ebp
]
mov
ecx
,
DWORD
PTR
100
[
ebp
]
add
edx
,
esi
rol
edx
,
cl
mov
ebx
,
edx
xor
ecx
,
ecx
mov
cl
,
dh
and
ebx
,
255
shr
edx
,
16
xor
eax
,
eax
mov
al
,
dh
and
edx
,
255
mov
ecx
,
DWORD
PTR
_CAST_S_table0
[
ecx
*
4
]
mov
ebx
,
DWORD
PTR
_CAST_S_table1
[
ebx
*
4
]
xor
ecx
,
ebx
mov
ebx
,
DWORD
PTR
_CAST_S_table2
[
eax
*
4
]
sub
ecx
,
ebx
mov
ebx
,
DWORD
PTR
_CAST_S_table3
[
edx
*
4
]
add
ecx
,
ebx
xor
edi
,
ecx
; round 13
mov
edx
,
DWORD
PTR
104
[
ebp
]
mov
ecx
,
DWORD
PTR
108
[
ebp
]
xor
edx
,
edi
rol
edx
,
cl
mov
ebx
,
edx
xor
ecx
,
ecx
mov
cl
,
dh
and
ebx
,
255
shr
edx
,
16
xor
eax
,
eax
mov
al
,
dh
and
edx
,
255
mov
ecx
,
DWORD
PTR
_CAST_S_table0
[
ecx
*
4
]
mov
ebx
,
DWORD
PTR
_CAST_S_table1
[
ebx
*
4
]
sub
ecx
,
ebx
mov
ebx
,
DWORD
PTR
_CAST_S_table2
[
eax
*
4
]
add
ecx
,
ebx
mov
ebx
,
DWORD
PTR
_CAST_S_table3
[
edx
*
4
]
xor
ecx
,
ebx
xor
esi
,
ecx
; round 14
mov
edx
,
DWORD
PTR
112
[
ebp
]
mov
ecx
,
DWORD
PTR
116
[
ebp
]
sub
edx
,
esi
rol
edx
,
cl
mov
ebx
,
edx
xor
ecx
,
ecx
mov
cl
,
dh
and
ebx
,
255
shr
edx
,
16
xor
eax
,
eax
mov
al
,
dh
and
edx
,
255
mov
ecx
,
DWORD
PTR
_CAST_S_table0
[
ecx
*
4
]
mov
ebx
,
DWORD
PTR
_CAST_S_table1
[
ebx
*
4
]
add
ecx
,
ebx
mov
ebx
,
DWORD
PTR
_CAST_S_table2
[
eax
*
4
]
xor
ecx
,
ebx
mov
ebx
,
DWORD
PTR
_CAST_S_table3
[
edx
*
4
]
sub
ecx
,
ebx
xor
edi
,
ecx
; round 15
mov
edx
,
DWORD
PTR
120
[
ebp
]
mov
ecx
,
DWORD
PTR
124
[
ebp
]
add
edx
,
edi
rol
edx
,
cl
mov
ebx
,
edx
xor
ecx
,
ecx
mov
cl
,
dh
and
ebx
,
255
shr
edx
,
16
xor
eax
,
eax
mov
al
,
dh
and
edx
,
255
mov
ecx
,
DWORD
PTR
_CAST_S_table0
[
ecx
*
4
]
mov
ebx
,
DWORD
PTR
_CAST_S_table1
[
ebx
*
4
]
xor
ecx
,
ebx
mov
ebx
,
DWORD
PTR
_CAST_S_table2
[
eax
*
4
]
sub
ecx
,
ebx
mov
ebx
,
DWORD
PTR
_CAST_S_table3
[
edx
*
4
]
add
ecx
,
ebx
mov
eax
,
DWORD
PTR
20
[
esp
]
xor
esi
,
ecx
nop
mov
DWORD
PTR
4
[
eax
],
edi
mov
DWORD
PTR
[
eax
],
esi
pop
edi
pop
esi
pop
ebx
pop
ebp
ret
_CAST_encrypt
ENDP
_TEXT
ENDS
_TEXT
SEG
MENT
PUBLIC
_CAST_decrypt
EXTERN
_CAST_S_table0
:
DWORD
EXTERN
_CAST_S_table1
:
DWORD
EXTERN
_CAST_S_table2
:
DWORD
EXTERN
_CAST_S_table3
:
DWORD
_CAST_decrypt
PROC
NEAR
;
push
ebp
push
ebx
mov
ebx
,
DWORD
PTR
12
[
esp
]
mov
ebp
,
DWORD
PTR
16
[
esp
]
push
esi
push
edi
; Load the 2 words
mov
edi
,
DWORD
PTR
[
ebx
]
mov
esi
,
DWORD
PTR
4
[
ebx
]
xor
eax
,
eax
; round 15
mov
edx
,
DWORD
PTR
120
[
ebp
]
mov
ecx
,
DWORD
PTR
124
[
ebp
]
add
edx
,
esi
rol
edx
,
cl
mov
ebx
,
edx
xor
ecx
,
ecx
mov
cl
,
dh
and
ebx
,
255
shr
edx
,
16
xor
eax
,
eax
mov
al
,
dh
and
edx
,
255
mov
ecx
,
DWORD
PTR
_CAST_S_table0
[
ecx
*
4
]
mov
ebx
,
DWORD
PTR
_CAST_S_table1
[
ebx
*
4
]
xor
ecx
,
ebx
mov
ebx
,
DWORD
PTR
_CAST_S_table2
[
eax
*
4
]
sub
ecx
,
ebx
mov
ebx
,
DWORD
PTR
_CAST_S_table3
[
edx
*
4
]
add
ecx
,
ebx
xor
edi
,
ecx
; round 14
mov
edx
,
DWORD
PTR
112
[
ebp
]
mov
ecx
,
DWORD
PTR
116
[
ebp
]
sub
edx
,
edi
rol
edx
,
cl
mov
ebx
,
edx
xor
ecx
,
ecx
mov
cl
,
dh
and
ebx
,
255
shr
edx
,
16
xor
eax
,
eax
mov
al
,
dh
and
edx
,
255
mov
ecx
,
DWORD
PTR
_CAST_S_table0
[
ecx
*
4
]
mov
ebx
,
DWORD
PTR
_CAST_S_table1
[
ebx
*
4
]
add
ecx
,
ebx
mov
ebx
,
DWORD
PTR
_CAST_S_table2
[
eax
*
4
]
xor
ecx
,
ebx
mov
ebx
,
DWORD
PTR
_CAST_S_table3
[
edx
*
4
]
sub
ecx
,
ebx
xor
esi
,
ecx
; round 13
mov
edx
,
DWORD
PTR
104
[
ebp
]
mov
ecx
,
DWORD
PTR
108
[
ebp
]
xor
edx
,
esi
rol
edx
,
cl
mov
ebx
,
edx
xor
ecx
,
ecx
mov
cl
,
dh
and
ebx
,
255
shr
edx
,
16
xor
eax
,
eax
mov
al
,
dh
and
edx
,
255
mov
ecx
,
DWORD
PTR
_CAST_S_table0
[
ecx
*
4
]
mov
ebx
,
DWORD
PTR
_CAST_S_table1
[
ebx
*
4
]
sub
ecx
,
ebx
mov
ebx
,
DWORD
PTR
_CAST_S_table2
[
eax
*
4
]
add
ecx
,
ebx
mov
ebx
,
DWORD
PTR
_CAST_S_table3
[
edx
*
4
]
xor
ecx
,
ebx
xor
edi
,
ecx
; round 12
mov
edx
,
DWORD
PTR
96
[
ebp
]
mov
ecx
,
DWORD
PTR
100
[
ebp
]
add
edx
,
edi
rol
edx
,
cl
mov
ebx
,
edx
xor
ecx
,
ecx
mov
cl
,
dh
and
ebx
,
255
shr
edx
,
16
xor
eax
,
eax
mov
al
,
dh
and
edx
,
255
mov
ecx
,
DWORD
PTR
_CAST_S_table0
[
ecx
*
4
]
mov
ebx
,
DWORD
PTR
_CAST_S_table1
[
ebx
*
4
]
xor
ecx
,
ebx
mov
ebx
,
DWORD
PTR
_CAST_S_table2
[
eax
*
4
]
sub
ecx
,
ebx
mov
ebx
,
DWORD
PTR
_CAST_S_table3
[
edx
*
4
]
add
ecx
,
ebx
xor
esi
,
ecx
; round 11
mov
edx
,
DWORD
PTR
88
[
ebp
]
mov
ecx
,
DWORD
PTR
92
[
ebp
]
sub
edx
,
esi
rol
edx
,
cl
mov
ebx
,
edx
xor
ecx
,
ecx
mov
cl
,
dh
and
ebx
,
255
shr
edx
,
16
xor
eax
,
eax
mov
al
,
dh
and
edx
,
255
mov
ecx
,
DWORD
PTR
_CAST_S_table0
[
ecx
*
4
]
mov
ebx
,
DWORD
PTR
_CAST_S_table1
[
ebx
*
4
]
add
ecx
,
ebx
mov
ebx
,
DWORD
PTR
_CAST_S_table2
[
eax
*
4
]
xor
ecx
,
ebx
mov
ebx
,
DWORD
PTR
_CAST_S_table3
[
edx
*
4
]
sub
ecx
,
ebx
xor
edi
,
ecx
; round 10
mov
edx
,
DWORD
PTR
80
[
ebp
]
mov
ecx
,
DWORD
PTR
84
[
ebp
]
xor
edx
,
edi
rol
edx
,
cl
mov
ebx
,
edx
xor
ecx
,
ecx
mov
cl
,
dh
and
ebx
,
255
shr
edx
,
16
xor
eax
,
eax
mov
al
,
dh
and
edx
,
255
mov
ecx
,
DWORD
PTR
_CAST_S_table0
[
ecx
*
4
]
mov
ebx
,
DWORD
PTR
_CAST_S_table1
[
ebx
*
4
]
sub
ecx
,
ebx
mov
ebx
,
DWORD
PTR
_CAST_S_table2
[
eax
*
4
]
add
ecx
,
ebx
mov
ebx
,
DWORD
PTR
_CAST_S_table3
[
edx
*
4
]
xor
ecx
,
ebx
xor
esi
,
ecx
; round 9
mov
edx
,
DWORD
PTR
72
[
ebp
]
mov
ecx
,
DWORD
PTR
76
[
ebp
]
add
edx
,
esi
rol
edx
,
cl
mov
ebx
,
edx
xor
ecx
,
ecx
mov
cl
,
dh
and
ebx
,
255
shr
edx
,
16
xor
eax
,
eax
mov
al
,
dh
and
edx
,
255
mov
ecx
,
DWORD
PTR
_CAST_S_table0
[
ecx
*
4
]
mov
ebx
,
DWORD
PTR
_CAST_S_table1
[
ebx
*
4
]
xor
ecx
,
ebx
mov
ebx
,
DWORD
PTR
_CAST_S_table2
[
eax
*
4
]
sub
ecx
,
ebx
mov
ebx
,
DWORD
PTR
_CAST_S_table3
[
edx
*
4
]
add
ecx
,
ebx
xor
edi
,
ecx
; round 8
mov
edx
,
DWORD
PTR
64
[
ebp
]
mov
ecx
,
DWORD
PTR
68
[
ebp
]
sub
edx
,
edi
rol
edx
,
cl
mov
ebx
,
edx
xor
ecx
,
ecx
mov
cl
,
dh
and
ebx
,
255
shr
edx
,
16
xor
eax
,
eax
mov
al
,
dh
and
edx
,
255
mov
ecx
,
DWORD
PTR
_CAST_S_table0
[
ecx
*
4
]
mov
ebx
,
DWORD
PTR
_CAST_S_table1
[
ebx
*
4
]
add
ecx
,
ebx
mov
ebx
,
DWORD
PTR
_CAST_S_table2
[
eax
*
4
]
xor
ecx
,
ebx
mov
ebx
,
DWORD
PTR
_CAST_S_table3
[
edx
*
4
]
sub
ecx
,
ebx
xor
esi
,
ecx
; round 7
mov
edx
,
DWORD
PTR
56
[
ebp
]
mov
ecx
,
DWORD
PTR
60
[
ebp
]
xor
edx
,
esi
rol
edx
,
cl
mov
ebx
,
edx
xor
ecx
,
ecx
mov
cl
,
dh
and
ebx
,
255
shr
edx
,
16
xor
eax
,
eax
mov
al
,
dh
and
edx
,
255
mov
ecx
,
DWORD
PTR
_CAST_S_table0
[
ecx
*
4
]
mov
ebx
,
DWORD
PTR
_CAST_S_table1
[
ebx
*
4
]
sub
ecx
,
ebx
mov
ebx
,
DWORD
PTR
_CAST_S_table2
[
eax
*
4
]
add
ecx
,
ebx
mov
ebx
,
DWORD
PTR
_CAST_S_table3
[
edx
*
4
]
xor
ecx
,
ebx
xor
edi
,
ecx
; round 6
mov
edx
,
DWORD
PTR
48
[
ebp
]
mov
ecx
,
DWORD
PTR
52
[
ebp
]
add
edx
,
edi
rol
edx
,
cl
mov
ebx
,
edx
xor
ecx
,
ecx
mov
cl
,
dh
and
ebx
,
255
shr
edx
,
16
xor
eax
,
eax
mov
al
,
dh
and
edx
,
255
mov
ecx
,
DWORD
PTR
_CAST_S_table0
[
ecx
*
4
]
mov
ebx
,
DWORD
PTR
_CAST_S_table1
[
ebx
*
4
]
xor
ecx
,
ebx
mov
ebx
,
DWORD
PTR
_CAST_S_table2
[
eax
*
4
]
sub
ecx
,
ebx
mov
ebx
,
DWORD
PTR
_CAST_S_table3
[
edx
*
4
]
add
ecx
,
ebx
xor
esi
,
ecx
; round 5
mov
edx
,
DWORD
PTR
40
[
ebp
]
mov
ecx
,
DWORD
PTR
44
[
ebp
]
sub
edx
,
esi
rol
edx
,
cl
mov
ebx
,
edx
xor
ecx
,
ecx
mov
cl
,
dh
and
ebx
,
255
shr
edx
,
16
xor
eax
,
eax
mov
al
,
dh
and
edx
,
255
mov
ecx
,
DWORD
PTR
_CAST_S_table0
[
ecx
*
4
]
mov
ebx
,
DWORD
PTR
_CAST_S_table1
[
ebx
*
4
]
add
ecx
,
ebx
mov
ebx
,
DWORD
PTR
_CAST_S_table2
[
eax
*
4
]
xor
ecx
,
ebx
mov
ebx
,
DWORD
PTR
_CAST_S_table3
[
edx
*
4
]
sub
ecx
,
ebx
xor
edi
,
ecx
; round 4
mov
edx
,
DWORD
PTR
32
[
ebp
]
mov
ecx
,
DWORD
PTR
36
[
ebp
]
xor
edx
,
edi
rol
edx
,
cl
mov
ebx
,
edx
xor
ecx
,
ecx
mov
cl
,
dh
and
ebx
,
255
shr
edx
,
16
xor
eax
,
eax
mov
al
,
dh
and
edx
,
255
mov
ecx
,
DWORD
PTR
_CAST_S_table0
[
ecx
*
4
]
mov
ebx
,
DWORD
PTR
_CAST_S_table1
[
ebx
*
4
]
sub
ecx
,
ebx
mov
ebx
,
DWORD
PTR
_CAST_S_table2
[
eax
*
4
]
add
ecx
,
ebx
mov
ebx
,
DWORD
PTR
_CAST_S_table3
[
edx
*
4
]
xor
ecx
,
ebx
xor
esi
,
ecx
; round 3
mov
edx
,
DWORD
PTR
24
[
ebp
]
mov
ecx
,
DWORD
PTR
28
[
ebp
]
add
edx
,
esi
rol
edx
,
cl
mov
ebx
,
edx
xor
ecx
,
ecx
mov
cl
,
dh
and
ebx
,
255
shr
edx
,
16
xor
eax
,
eax
mov
al
,
dh
and
edx
,
255
mov
ecx
,
DWORD
PTR
_CAST_S_table0
[
ecx
*
4
]
mov
ebx
,
DWORD
PTR
_CAST_S_table1
[
ebx
*
4
]
xor
ecx
,
ebx
mov
ebx
,
DWORD
PTR
_CAST_S_table2
[
eax
*
4
]
sub
ecx
,
ebx
mov
ebx
,
DWORD
PTR
_CAST_S_table3
[
edx
*
4
]
add
ecx
,
ebx
xor
edi
,
ecx
; round 2
mov
edx
,
DWORD
PTR
16
[
ebp
]
mov
ecx
,
DWORD
PTR
20
[
ebp
]
sub
edx
,
edi
rol
edx
,
cl
mov
ebx
,
edx
xor
ecx
,
ecx
mov
cl
,
dh
and
ebx
,
255
shr
edx
,
16
xor
eax
,
eax
mov
al
,
dh
and
edx
,
255
mov
ecx
,
DWORD
PTR
_CAST_S_table0
[
ecx
*
4
]
mov
ebx
,
DWORD
PTR
_CAST_S_table1
[
ebx
*
4
]
add
ecx
,
ebx
mov
ebx
,
DWORD
PTR
_CAST_S_table2
[
eax
*
4
]
xor
ecx
,
ebx
mov
ebx
,
DWORD
PTR
_CAST_S_table3
[
edx
*
4
]
sub
ecx
,
ebx
xor
esi
,
ecx
; round 1
mov
edx
,
DWORD
PTR
8
[
ebp
]
mov
ecx
,
DWORD
PTR
12
[
ebp
]
xor
edx
,
esi
rol
edx
,
cl
mov
ebx
,
edx
xor
ecx
,
ecx
mov
cl
,
dh
and
ebx
,
255
shr
edx
,
16
xor
eax
,
eax
mov
al
,
dh
and
edx
,
255
mov
ecx
,
DWORD
PTR
_CAST_S_table0
[
ecx
*
4
]
mov
ebx
,
DWORD
PTR
_CAST_S_table1
[
ebx
*
4
]
sub
ecx
,
ebx
mov
ebx
,
DWORD
PTR
_CAST_S_table2
[
eax
*
4
]
add
ecx
,
ebx
mov
ebx
,
DWORD
PTR
_CAST_S_table3
[
edx
*
4
]
xor
ecx
,
ebx
xor
edi
,
ecx
; round 0
mov
edx
,
DWORD
PTR
[
ebp
]
mov
ecx
,
DWORD
PTR
4
[
ebp
]
add
edx
,
edi
rol
edx
,
cl
mov
ebx
,
edx
xor
ecx
,
ecx
mov
cl
,
dh
and
ebx
,
255
shr
edx
,
16
xor
eax
,
eax
mov
al
,
dh
and
edx
,
255
mov
ecx
,
DWORD
PTR
_CAST_S_table0
[
ecx
*
4
]
mov
ebx
,
DWORD
PTR
_CAST_S_table1
[
ebx
*
4
]
xor
ecx
,
ebx
mov
ebx
,
DWORD
PTR
_CAST_S_table2
[
eax
*
4
]
sub
ecx
,
ebx
mov
ebx
,
DWORD
PTR
_CAST_S_table3
[
edx
*
4
]
add
ecx
,
ebx
mov
eax
,
DWORD
PTR
20
[
esp
]
xor
esi
,
ecx
nop
mov
DWORD
PTR
4
[
eax
],
edi
mov
DWORD
PTR
[
eax
],
esi
pop
edi
pop
esi
pop
ebx
pop
ebp
ret
_CAST_decrypt
ENDP
_TEXT
ENDS
_TEXT
SEG
MENT
PUBLIC
_CAST_cbc_encrypt
_CAST_cbc_encrypt
PROC
NEAR
;
push
ebp
push
ebx
push
esi
push
edi
mov
ebp
,
DWORD
PTR
28
[
esp
]
; getting iv ptr from parameter 4
mov
ebx
,
DWORD
PTR
36
[
esp
]
mov
esi
,
DWORD
PTR
[
ebx
]
mov
edi
,
DWORD
PTR
4
[
ebx
]
push
edi
push
esi
push
edi
push
esi
mov
ebx
,
esp
mov
esi
,
DWORD
PTR
36
[
esp
]
mov
edi
,
DWORD
PTR
40
[
esp
]
; getting encrypt flag from parameter 5
mov
ecx
,
DWORD
PTR
56
[
esp
]
; get and push parameter 3
mov
eax
,
DWORD
PTR
48
[
esp
]
push
eax
push
ebx
cmp
ecx
,
0
jz
$
L000decrypt
and
ebp
,
4294967288
mov
eax
,
DWORD
PTR
8
[
esp
]
mov
ebx
,
DWORD
PTR
12
[
esp
]
jz
$
L001encrypt_finish
L002encrypt_loop:
mov
ecx
,
DWORD
PTR
[
esi
]
mov
edx
,
DWORD
PTR
4
[
esi
]
xor
eax
,
ecx
xor
ebx
,
edx
bswap
eax
bswap
ebx
mov
DWORD
PTR
8
[
esp
],
eax
mov
DWORD
PTR
12
[
esp
],
ebx
call
_CAST_encrypt
mov
eax
,
DWORD
PTR
8
[
esp
]
mov
ebx
,
DWORD
PTR
12
[
esp
]
bswap
eax
bswap
ebx
mov
DWORD
PTR
[
edi
],
eax
mov
DWORD
PTR
4
[
edi
],
ebx
add
esi
,
8
add
edi
,
8
sub
ebp
,
8
jnz
L002encrypt_loop
$L001encrypt_finish:
mov
ebp
,
DWORD
PTR
52
[
esp
]
and
ebp
,
7
jz
$
L003finish
xor
ecx
,
ecx
xor
edx
,
edx
mov
ebp
,
DWORD
PTR
$
L004cbc_enc_jmp_table
[
ebp
*
4
]
jmp
ebp
L005ej7:
xor
edx
,
edx
mov
dh
,
BYTE
PTR
6
[
esi
]
shl
edx
,
8
L006ej6:
mov
dh
,
BYTE
PTR
5
[
esi
]
L007ej5:
mov
dl
,
BYTE
PTR
4
[
esi
]
L008ej4:
mov
ecx
,
DWORD
PTR
[
esi
]
jmp
$
L009ejend
L010ej3:
mov
ch
,
BYTE
PTR
2
[
esi
]
xor
ecx
,
ecx
shl
ecx
,
8
L011ej2:
mov
ch
,
BYTE
PTR
1
[
esi
]
L012ej1:
mov
cl
,
BYTE
PTR
[
esi
]
$L009ejend:
xor
eax
,
ecx
xor
ebx
,
edx
bswap
eax
bswap
ebx
mov
DWORD
PTR
8
[
esp
],
eax
mov
DWORD
PTR
12
[
esp
],
ebx
call
_CAST_encrypt
mov
eax
,
DWORD
PTR
8
[
esp
]
mov
ebx
,
DWORD
PTR
12
[
esp
]
bswap
eax
bswap
ebx
mov
DWORD
PTR
[
edi
],
eax
mov
DWORD
PTR
4
[
edi
],
ebx
jmp
$
L003finish
$L000decrypt:
and
ebp
,
4294967288
mov
eax
,
DWORD
PTR
16
[
esp
]
mov
ebx
,
DWORD
PTR
20
[
esp
]
jz
$
L013decrypt_finish
L014decrypt_loop:
mov
eax
,
DWORD
PTR
[
esi
]
mov
ebx
,
DWORD
PTR
4
[
esi
]
bswap
eax
bswap
ebx
mov
DWORD
PTR
8
[
esp
],
eax
mov
DWORD
PTR
12
[
esp
],
ebx
call
_CAST_decrypt
mov
eax
,
DWORD
PTR
8
[
esp
]
mov
ebx
,
DWORD
PTR
12
[
esp
]
bswap
eax
bswap
ebx
mov
ecx
,
DWORD
PTR
16
[
esp
]
mov
edx
,
DWORD
PTR
20
[
esp
]
xor
ecx
,
eax
xor
edx
,
ebx
mov
eax
,
DWORD
PTR
[
esi
]
mov
ebx
,
DWORD
PTR
4
[
esi
]
mov
DWORD
PTR
[
edi
],
ecx
mov
DWORD
PTR
4
[
edi
],
edx
mov
DWORD
PTR
16
[
esp
],
eax
mov
DWORD
PTR
20
[
esp
],
ebx
add
esi
,
8
add
edi
,
8
sub
ebp
,
8
jnz
L014decrypt_loop
$L013decrypt_finish:
mov
ebp
,
DWORD
PTR
52
[
esp
]
and
ebp
,
7
jz
$
L003finish
mov
eax
,
DWORD
PTR
[
esi
]
mov
ebx
,
DWORD
PTR
4
[
esi
]
bswap
eax
bswap
ebx
mov
DWORD
PTR
8
[
esp
],
eax
mov
DWORD
PTR
12
[
esp
],
ebx
call
_CAST_decrypt
mov
eax
,
DWORD
PTR
8
[
esp
]
mov
ebx
,
DWORD
PTR
12
[
esp
]
bswap
eax
bswap
ebx
mov
ecx
,
DWORD
PTR
16
[
esp
]
mov
edx
,
DWORD
PTR
20
[
esp
]
xor
ecx
,
eax
xor
edx
,
ebx
mov
eax
,
DWORD
PTR
[
esi
]
mov
ebx
,
DWORD
PTR
4
[
esi
]
L015dj7:
ror
edx
,
16
mov
BYTE
PTR
6
[
edi
],
dl
shr
edx
,
16
L016dj6:
mov
BYTE
PTR
5
[
edi
],
dh
L017dj5:
mov
BYTE
PTR
4
[
edi
],
dl
L018dj4:
mov
DWORD
PTR
[
edi
],
ecx
jmp
$
L019djend
L020dj3:
ror
ecx
,
16
mov
BYTE
PTR
2
[
edi
],
cl
shl
ecx
,
16
L021dj2:
mov
BYTE
PTR
1
[
esi
],
ch
L022dj1:
mov
BYTE
PTR
[
esi
],
cl
$L019djend:
jmp
$
L003finish
$L003finish:
mov
ecx
,
DWORD
PTR
60
[
esp
]
add
esp
,
24
mov
DWORD
PTR
[
ecx
],
eax
mov
DWORD
PTR
4
[
ecx
],
ebx
pop
edi
pop
esi
pop
ebx
pop
ebp
ret
$L004cbc_enc_jmp_table:
DD
0
DD
L012ej1
DD
L011ej2
DD
L010ej3
DD
L008ej4
DD
L007ej5
DD
L006ej6
DD
L005ej7
L023cbc_dec_jmp_table:
DD
0
DD
L022dj1
DD
L021dj2
DD
L020dj3
DD
L018dj4
DD
L017dj5
DD
L016dj6
DD
L015dj7
_CAST_cbc_encrypt
ENDP
_TEXT
ENDS
END
crypto/cast/asm/cx86unix.cpp
已删除
100644 → 0
浏览文件 @
649cdb7b
此差异已折叠。
点击以展开。
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录