上传用户:hbtcygglw
上传日期:2007-01-07
资源大小:281k
文件大小:5k
源码类别:

其他

开发平台:

Delphi

  1. .386p
  2. extrn   _ntohl@4: near
  3. extrn   _htonl@4: near
  4. extrn   _memset : near
  5. extrn   _rand : near
  6. ; Segment type: Pure code
  7. _text segment para public 'CODE' use32
  8. assume cs:_text
  9. assume es:nothing, ss:nothing, ds:_text, fs:nothing, gs:nothing
  10. TeaEncrypt proc near
  11. var_10 = dword ptr -10h
  12. var_C = dword ptr -0Ch
  13. var_8 = dword ptr -8
  14. var_4 = dword ptr -4
  15. arg_0 = dword ptr  8
  16. arg_4 = dword ptr  0Ch
  17. arg_8 = dword ptr  10h
  18. push ebp
  19. mov ebp, esp
  20. sub esp, 10h
  21. push ebx
  22. push esi
  23. mov esi, [ebp+arg_0]
  24. push edi
  25. push dword ptr [esi]
  26. call _ntohl@4
  27. push dword ptr [esi+4]
  28. mov edi, eax
  29. call _ntohl@4
  30. mov ebx, eax
  31. mov eax, [ebp+arg_4]
  32. lea ecx, [ebp+var_10]
  33. lea esi, [ebp+var_10]
  34. sub eax, ecx
  35. mov [ebp+arg_0], 4
  36. mov [ebp+arg_4], eax
  37. jmp short loc_0_43D04D
  38. loc_0_43D04A:
  39. mov eax, [ebp+arg_4]
  40. loc_0_43D04D:
  41. push dword ptr [eax+esi]
  42. call _ntohl@4
  43. mov [esi], eax
  44. add esi, 4
  45. dec [ebp+arg_0]
  46. jnz short loc_0_43D04A
  47. push 10h
  48. xor eax, eax
  49. pop ecx
  50. loc_0_43D064:
  51. mov edx, ebx
  52. mov esi, ebx
  53. shr edx, 5
  54. add edx, [ebp+var_C]
  55. sub eax, 61C88647h
  56. shl esi, 4
  57. add esi, [ebp+var_10]
  58. xor edx, esi
  59. lea esi, [eax+ebx]
  60. xor edx, esi
  61. add edi, edx
  62. mov edx, edi
  63. mov esi, edi
  64. shr edx, 5
  65. add edx, [ebp+var_4]
  66. shl esi, 4
  67. add esi, [ebp+var_8]
  68. xor edx, esi
  69. lea esi, [eax+edi]
  70. xor edx, esi
  71. add ebx, edx
  72. dec ecx
  73. jnz short loc_0_43D064
  74. push edi
  75. call _htonl@4
  76. mov esi, [ebp+arg_8]
  77. push ebx
  78. mov [esi], eax
  79. call _htonl@4
  80. mov [esi+4], eax
  81. pop edi
  82. pop esi
  83. pop ebx
  84. leave
  85. retn
  86. TeaEncrypt endp
  87. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  88. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  89.             public  _SymmetryEncrypt
  90. _SymmetryEncrypt proc near
  91. var_14 = byte ptr -14h
  92. var_D = byte ptr -0Dh
  93. var_C = byte ptr -0Ch
  94. var_4 = dword ptr -4
  95. arg_0 = dword ptr  8
  96. arg_4 = dword ptr  0Ch
  97. arg_8 = dword ptr  10h
  98. arg_C = dword ptr  14h
  99. arg_10 = dword ptr  18h
  100. push ebp
  101. mov ebp, esp
  102. sub esp, 14h
  103. mov eax, [ebp+arg_4]
  104. push ebx
  105. push esi
  106. push edi
  107. push 8
  108. add eax, 0Ah
  109. pop ebx
  110. cdq
  111. mov ecx, ebx
  112. idiv ecx
  113. test edx, edx
  114. mov [ebp+var_4], edx
  115. jz short loc_0_43D182
  116. mov eax, ebx
  117. sub eax, edx
  118. mov [ebp+var_4], eax
  119. loc_0_43D182:
  120. call _rand
  121. mov ecx, eax
  122. mov eax, [ebp+var_4]
  123. and cl, 0F8h
  124. push 1
  125. or cl, al
  126. pop edi
  127. mov [ebp+var_C], cl
  128. mov ecx, eax
  129. dec eax
  130. test ecx, ecx
  131. jz short loc_0_43D1AE
  132. lea esi, [eax+1]
  133. loc_0_43D1A1:
  134. call _rand
  135. mov [ebp+edi+var_C], al
  136. inc edi
  137. dec esi
  138. jnz short loc_0_43D1A1
  139. loc_0_43D1AE:
  140. push ebx
  141. lea eax, [ebp+var_14]
  142. push 0
  143. push eax
  144. call _memset
  145. mov esi, [ebp+arg_10]
  146. lea eax, [ebp+var_14]
  147. add esp, 0Ch
  148. mov [ebp+var_4], eax
  149. and dword ptr [esi], 0
  150. mov [ebp+arg_10], 1
  151. loc_0_43D1D0:
  152. cmp edi, ebx
  153. jge short loc_0_43D1E3
  154. call _rand
  155. mov [ebp+edi+var_C], al
  156. inc edi
  157. inc [ebp+arg_10]
  158. cmp edi, ebx
  159. loc_0_43D1E3:
  160. jnz short loc_0_43D21C
  161. mov ecx, [ebp+var_4]
  162. lea eax, [ebp+var_C]
  163. xor edi, edi
  164. sub ecx, eax
  165. loc_0_43D1EF:
  166. lea eax, [ebp+edi+var_C]
  167. mov dl, [ecx+eax]
  168. xor [eax], dl
  169. inc edi
  170. cmp edi, ebx
  171. jl short loc_0_43D1EF
  172. push [ebp+arg_C]
  173. lea eax, [ebp+var_C]
  174. push [ebp+arg_8]
  175. push eax
  176. call TeaEncrypt
  177. mov eax, [ebp+arg_C]
  178. add [esi], ebx
  179. add esp, 0Ch
  180. xor edi, edi
  181. add [ebp+arg_C], ebx
  182. mov [ebp+var_4], eax
  183. loc_0_43D21C:
  184. cmp [ebp+arg_10], 2
  185. jle short loc_0_43D1D0
  186. loc_0_43D222:
  187. cmp [ebp+arg_4], 0
  188. jz short loc_0_43D279
  189. cmp edi, ebx
  190. jge short loc_0_43D23E
  191. mov eax, [ebp+arg_0]
  192. inc edi
  193. inc [ebp+arg_0]
  194. dec [ebp+arg_4]
  195. mov al, [eax]
  196. cmp edi, ebx
  197. mov [ebp+edi+var_D], al
  198. loc_0_43D23E:
  199. jnz short loc_0_43D222
  200. mov ecx, [ebp+var_4]
  201. lea eax, [ebp+var_C]
  202. xor edi, edi
  203. sub ecx, eax
  204. loc_0_43D24A:
  205. lea eax, [ebp+edi+var_C]
  206. mov dl, [ecx+eax]
  207. xor [eax], dl
  208. inc edi
  209. cmp edi, ebx
  210. jl short loc_0_43D24A
  211. push [ebp+arg_C]
  212. lea eax, [ebp+var_C]
  213. push [ebp+arg_8]
  214. push eax
  215. call TeaEncrypt
  216. mov eax, [ebp+arg_C]
  217. add [esi], ebx
  218. add esp, 0Ch
  219. xor edi, edi
  220. add [ebp+arg_C], ebx
  221. mov [ebp+var_4], eax
  222. jmp short loc_0_43D222
  223. loc_0_43D279:
  224. mov [ebp+arg_10], 1
  225. loc_0_43D280:
  226. cmp edi, ebx
  227. jge short loc_0_43D28F
  228. and [ebp+edi+var_C], 0
  229. inc edi
  230. inc [ebp+arg_10]
  231. cmp edi, ebx
  232. loc_0_43D28F:
  233. jnz short loc_0_43D2C8
  234. mov ecx, [ebp+var_4]
  235. lea eax, [ebp+var_C]
  236. xor edi, edi
  237. sub ecx, eax
  238. loc_0_43D29B:
  239. lea eax, [ebp+edi+var_C]
  240. mov dl, [ecx+eax]
  241. xor [eax], dl
  242. inc edi
  243. cmp edi, ebx
  244. jl short loc_0_43D29B
  245. push [ebp+arg_C]
  246. lea eax, [ebp+var_C]
  247. push [ebp+arg_8]
  248. push eax
  249. call TeaEncrypt
  250. mov eax, [ebp+arg_C]
  251. add [esi], ebx
  252. add esp, 0Ch
  253. xor edi, edi
  254. add [ebp+arg_C], ebx
  255. mov [ebp+var_4], eax
  256. loc_0_43D2C8:
  257. cmp [ebp+arg_10], 7
  258. jle short loc_0_43D280
  259. pop edi
  260. pop esi
  261. pop ebx
  262. leave
  263. retn
  264. _SymmetryEncrypt endp
  265. _text   ends
  266.         end