Advertisement
Guest User

Untitled

a guest
Jul 19th, 2019
80
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 13.60 KB | None | 0 0
  1. package by.blooddy.crypto
  2. {
  3. import avm2.intrinsics.memory.li32;
  4. import avm2.intrinsics.memory.li8;
  5. import avm2.intrinsics.memory.si32;
  6. import avm2.intrinsics.memory.si8;
  7. import flash.system.ApplicationDomain;
  8. import flash.utils.ByteArray;
  9.  
  10. public class MD5
  11. {
  12.  
  13.  
  14. public function MD5()
  15. {
  16. }
  17.  
  18. public static function hash(param1:String) : String
  19. {
  20. var _loc2_:ByteArray = new ByteArray();
  21. _loc2_.writeUTFBytes(param1);
  22. var _loc3_:String = MD5.hashBytes(_loc2_);
  23. return _loc3_;
  24. }
  25.  
  26. public static function hashBytes(param1:ByteArray) : String
  27. {
  28. var _loc2_:ByteArray = ApplicationDomain.currentDomain.domainMemory;
  29. var _loc3_:uint = param1.length << 3;
  30. var _loc4_:uint = (_loc3_ + 64 >>> 9 << 4) + 15 << 2;
  31. var _loc6_:uint = _loc4_ + 4;
  32. var _loc7_:ByteArray = new ByteArray();
  33. if(_loc6_ != 0)
  34. {
  35. _loc7_.length = _loc6_;
  36. }
  37. var _loc5_:ByteArray = _loc7_;
  38. _loc5_.writeBytes(param1);
  39. if(_loc5_.length < ApplicationDomain.MIN_DOMAIN_MEMORY_LENGTH)
  40. {
  41. _loc5_.length = ApplicationDomain.MIN_DOMAIN_MEMORY_LENGTH;
  42. }
  43. ApplicationDomain.currentDomain.domainMemory = _loc5_;
  44. si32(li32(_loc3_ >>> 5 << 2) | 128 << _loc3_ % 32,_loc3_ >>> 5 << 2);
  45. si32(_loc3_,_loc4_ - 4);
  46. var _loc8_:* = 1732584193;
  47. var _loc9_:* = -271733879;
  48. var _loc10_:* = -1732584194;
  49. var _loc11_:* = 271733878;
  50. var _loc12_:int = _loc8_;
  51. var _loc13_:int = _loc9_;
  52. var _loc14_:int = _loc10_;
  53. var _loc15_:int = _loc11_;
  54. _loc3_ = 0;
  55. do
  56. {
  57. _loc12_ = _loc8_;
  58. _loc13_ = _loc9_;
  59. _loc14_ = _loc10_;
  60. _loc15_ = _loc11_;
  61. _loc8_ = _loc8_ + ((_loc9_ & _loc10_ | ~_loc9_ & _loc11_) + li32(_loc3_) + -680876936);
  62. _loc8_ = (_loc8_ << uint(7) | _loc8_ >>> 25) + _loc9_;
  63. _loc11_ = _loc11_ + ((_loc8_ & _loc9_ | ~_loc8_ & _loc10_) + li32(_loc3_ + 4) + -389564586);
  64. _loc11_ = (_loc11_ << uint(12) | _loc11_ >>> 20) + _loc8_;
  65. _loc10_ = _loc10_ + ((_loc11_ & _loc8_ | ~_loc11_ & _loc9_) + li32(_loc3_ + 8) + 606105819);
  66. _loc10_ = (_loc10_ << uint(17) | _loc10_ >>> 15) + _loc11_;
  67. _loc9_ = _loc9_ + ((_loc10_ & _loc11_ | ~_loc10_ & _loc8_) + li32(_loc3_ + 12) + -1044525330);
  68. _loc9_ = (_loc9_ << uint(22) | _loc9_ >>> 10) + _loc10_;
  69. _loc8_ = _loc8_ + ((_loc9_ & _loc10_ | ~_loc9_ & _loc11_) + li32(_loc3_ + 16) + -176418897);
  70. _loc8_ = (_loc8_ << uint(7) | _loc8_ >>> 25) + _loc9_;
  71. _loc11_ = _loc11_ + ((_loc8_ & _loc9_ | ~_loc8_ & _loc10_) + li32(_loc3_ + 20) + 1200080426);
  72. _loc11_ = (_loc11_ << uint(12) | _loc11_ >>> 20) + _loc8_;
  73. _loc10_ = _loc10_ + ((_loc11_ & _loc8_ | ~_loc11_ & _loc9_) + li32(_loc3_ + 24) + -1473231341);
  74. _loc10_ = (_loc10_ << uint(17) | _loc10_ >>> 15) + _loc11_;
  75. _loc9_ = _loc9_ + ((_loc10_ & _loc11_ | ~_loc10_ & _loc8_) + li32(_loc3_ + 28) + -45705983);
  76. _loc9_ = (_loc9_ << uint(22) | _loc9_ >>> 10) + _loc10_;
  77. _loc8_ = _loc8_ + ((_loc9_ & _loc10_ | ~_loc9_ & _loc11_) + li32(_loc3_ + 32) + 1770035416);
  78. _loc8_ = (_loc8_ << uint(7) | _loc8_ >>> 25) + _loc9_;
  79. _loc11_ = _loc11_ + ((_loc8_ & _loc9_ | ~_loc8_ & _loc10_) + li32(_loc3_ + 36) + -1958414417);
  80. _loc11_ = (_loc11_ << uint(12) | _loc11_ >>> 20) + _loc8_;
  81. _loc10_ = _loc10_ + ((_loc11_ & _loc8_ | ~_loc11_ & _loc9_) + li32(_loc3_ + 40) + -42063);
  82. _loc10_ = (_loc10_ << uint(17) | _loc10_ >>> 15) + _loc11_;
  83. _loc9_ = _loc9_ + ((_loc10_ & _loc11_ | ~_loc10_ & _loc8_) + li32(_loc3_ + 44) + -1990404162);
  84. _loc9_ = (_loc9_ << uint(22) | _loc9_ >>> 10) + _loc10_;
  85. _loc8_ = _loc8_ + ((_loc9_ & _loc10_ | ~_loc9_ & _loc11_) + li32(_loc3_ + 48) + 1804603682);
  86. _loc8_ = (_loc8_ << uint(7) | _loc8_ >>> 25) + _loc9_;
  87. _loc11_ = _loc11_ + ((_loc8_ & _loc9_ | ~_loc8_ & _loc10_) + li32(_loc3_ + 52) + -40341101);
  88. _loc11_ = (_loc11_ << uint(12) | _loc11_ >>> 20) + _loc8_;
  89. _loc10_ = _loc10_ + ((_loc11_ & _loc8_ | ~_loc11_ & _loc9_) + li32(_loc3_ + 56) + -1502002290);
  90. _loc10_ = (_loc10_ << uint(17) | _loc10_ >>> 15) + _loc11_;
  91. _loc9_ = _loc9_ + ((_loc10_ & _loc11_ | ~_loc10_ & _loc8_) + li32(_loc3_ + 60) + 1236535329);
  92. _loc9_ = (_loc9_ << uint(22) | _loc9_ >>> 10) + _loc10_;
  93. _loc8_ = _loc8_ + ((_loc9_ & _loc11_ | _loc10_ & ~_loc11_) + li32(_loc3_ + 4) + -165796510);
  94. _loc8_ = (_loc8_ << uint(5) | _loc8_ >>> 27) + _loc9_;
  95. _loc11_ = _loc11_ + ((_loc8_ & _loc10_ | _loc9_ & ~_loc10_) + li32(_loc3_ + 24) + -1069501632);
  96. _loc11_ = (_loc11_ << uint(9) | _loc11_ >>> 23) + _loc8_;
  97. _loc10_ = _loc10_ + ((_loc11_ & _loc9_ | _loc8_ & ~_loc9_) + li32(_loc3_ + 44) + 643717713);
  98. _loc10_ = (_loc10_ << uint(14) | _loc10_ >>> 18) + _loc11_;
  99. _loc9_ = _loc9_ + ((_loc10_ & _loc8_ | _loc11_ & ~_loc8_) + li32(_loc3_) + -373897302);
  100. _loc9_ = (_loc9_ << uint(20) | _loc9_ >>> 12) + _loc10_;
  101. _loc8_ = _loc8_ + ((_loc9_ & _loc11_ | _loc10_ & ~_loc11_) + li32(_loc3_ + 20) + -701558691);
  102. _loc8_ = (_loc8_ << uint(5) | _loc8_ >>> 27) + _loc9_;
  103. _loc11_ = _loc11_ + ((_loc8_ & _loc10_ | _loc9_ & ~_loc10_) + li32(_loc3_ + 40) + 38016083);
  104. _loc11_ = (_loc11_ << uint(9) | _loc11_ >>> 23) + _loc8_;
  105. _loc10_ = _loc10_ + ((_loc11_ & _loc9_ | _loc8_ & ~_loc9_) + li32(_loc3_ + 60) + -660478335);
  106. _loc10_ = (_loc10_ << uint(14) | _loc10_ >>> 18) + _loc11_;
  107. _loc9_ = _loc9_ + ((_loc10_ & _loc8_ | _loc11_ & ~_loc8_) + li32(_loc3_ + 16) + -405537848);
  108. _loc9_ = (_loc9_ << uint(20) | _loc9_ >>> 12) + _loc10_;
  109. _loc8_ = _loc8_ + ((_loc9_ & _loc11_ | _loc10_ & ~_loc11_) + li32(_loc3_ + 36) + 568446438);
  110. _loc8_ = (_loc8_ << uint(5) | _loc8_ >>> 27) + _loc9_;
  111. _loc11_ = _loc11_ + ((_loc8_ & _loc10_ | _loc9_ & ~_loc10_) + li32(_loc3_ + 56) + -1019803690);
  112. _loc11_ = (_loc11_ << uint(9) | _loc11_ >>> 23) + _loc8_;
  113. _loc10_ = _loc10_ + ((_loc11_ & _loc9_ | _loc8_ & ~_loc9_) + li32(_loc3_ + 12) + -187363961);
  114. _loc10_ = (_loc10_ << uint(14) | _loc10_ >>> 18) + _loc11_;
  115. _loc9_ = _loc9_ + ((_loc10_ & _loc8_ | _loc11_ & ~_loc8_) + li32(_loc3_ + 32) + 1163531501);
  116. _loc9_ = (_loc9_ << uint(20) | _loc9_ >>> 12) + _loc10_;
  117. _loc8_ = _loc8_ + ((_loc9_ & _loc11_ | _loc10_ & ~_loc11_) + li32(_loc3_ + 52) + -1444681467);
  118. _loc8_ = (_loc8_ << uint(5) | _loc8_ >>> 27) + _loc9_;
  119. _loc11_ = _loc11_ + ((_loc8_ & _loc10_ | _loc9_ & ~_loc10_) + li32(_loc3_ + 8) + -51403784);
  120. _loc11_ = (_loc11_ << uint(9) | _loc11_ >>> 23) + _loc8_;
  121. _loc10_ = _loc10_ + ((_loc11_ & _loc9_ | _loc8_ & ~_loc9_) + li32(_loc3_ + 28) + 1735328473);
  122. _loc10_ = (_loc10_ << uint(14) | _loc10_ >>> 18) + _loc11_;
  123. _loc9_ = _loc9_ + ((_loc10_ & _loc8_ | _loc11_ & ~_loc8_) + li32(_loc3_ + 48) + -1926607734);
  124. _loc9_ = (_loc9_ << uint(20) | _loc9_ >>> 12) + _loc10_;
  125. _loc8_ = _loc8_ + ((_loc9_ ^ _loc10_ ^ _loc11_) + li32(_loc3_ + 20) + -378558);
  126. _loc8_ = (_loc8_ << uint(4) | _loc8_ >>> 28) + _loc9_;
  127. _loc11_ = _loc11_ + ((_loc8_ ^ _loc9_ ^ _loc10_) + li32(_loc3_ + 32) + -2022574463);
  128. _loc11_ = (_loc11_ << uint(11) | _loc11_ >>> 21) + _loc8_;
  129. _loc10_ = _loc10_ + ((_loc11_ ^ _loc8_ ^ _loc9_) + li32(_loc3_ + 44) + 1839030562);
  130. _loc10_ = (_loc10_ << uint(16) | _loc10_ >>> 16) + _loc11_;
  131. _loc9_ = _loc9_ + ((_loc10_ ^ _loc11_ ^ _loc8_) + li32(_loc3_ + 56) + -35309556);
  132. _loc9_ = (_loc9_ << uint(23) | _loc9_ >>> 9) + _loc10_;
  133. _loc8_ = _loc8_ + ((_loc9_ ^ _loc10_ ^ _loc11_) + li32(_loc3_ + 4) + -1530992060);
  134. _loc8_ = (_loc8_ << uint(4) | _loc8_ >>> 28) + _loc9_;
  135. _loc11_ = _loc11_ + ((_loc8_ ^ _loc9_ ^ _loc10_) + li32(_loc3_ + 16) + 1272893353);
  136. _loc11_ = (_loc11_ << uint(11) | _loc11_ >>> 21) + _loc8_;
  137. _loc10_ = _loc10_ + ((_loc11_ ^ _loc8_ ^ _loc9_) + li32(_loc3_ + 28) + -155497632);
  138. _loc10_ = (_loc10_ << uint(16) | _loc10_ >>> 16) + _loc11_;
  139. _loc9_ = _loc9_ + ((_loc10_ ^ _loc11_ ^ _loc8_) + li32(_loc3_ + 40) + -1094730640);
  140. _loc9_ = (_loc9_ << uint(23) | _loc9_ >>> 9) + _loc10_;
  141. _loc8_ = _loc8_ + ((_loc9_ ^ _loc10_ ^ _loc11_) + li32(_loc3_ + 52) + 681279174);
  142. _loc8_ = (_loc8_ << uint(4) | _loc8_ >>> 28) + _loc9_;
  143. _loc11_ = _loc11_ + ((_loc8_ ^ _loc9_ ^ _loc10_) + li32(_loc3_) + -358537222);
  144. _loc11_ = (_loc11_ << uint(11) | _loc11_ >>> 21) + _loc8_;
  145. _loc10_ = _loc10_ + ((_loc11_ ^ _loc8_ ^ _loc9_) + li32(_loc3_ + 12) + -722521979);
  146. _loc10_ = (_loc10_ << uint(16) | _loc10_ >>> 16) + _loc11_;
  147. _loc9_ = _loc9_ + ((_loc10_ ^ _loc11_ ^ _loc8_) + li32(_loc3_ + 24) + 76029189);
  148. _loc9_ = (_loc9_ << uint(23) | _loc9_ >>> 9) + _loc10_;
  149. _loc8_ = _loc8_ + ((_loc9_ ^ _loc10_ ^ _loc11_) + li32(_loc3_ + 36) + -640364487);
  150. _loc8_ = (_loc8_ << uint(4) | _loc8_ >>> 28) + _loc9_;
  151. _loc11_ = _loc11_ + ((_loc8_ ^ _loc9_ ^ _loc10_) + li32(_loc3_ + 48) + -421815835);
  152. _loc11_ = (_loc11_ << uint(11) | _loc11_ >>> 21) + _loc8_;
  153. _loc10_ = _loc10_ + ((_loc11_ ^ _loc8_ ^ _loc9_) + li32(_loc3_ + 60) + 530742520);
  154. _loc10_ = (_loc10_ << uint(16) | _loc10_ >>> 16) + _loc11_;
  155. _loc9_ = _loc9_ + ((_loc10_ ^ _loc11_ ^ _loc8_) + li32(_loc3_ + 8) + -995338651);
  156. _loc9_ = (_loc9_ << uint(23) | _loc9_ >>> 9) + _loc10_;
  157. _loc8_ = _loc8_ + ((_loc10_ ^ (_loc9_ | ~_loc11_)) + li32(_loc3_) + -198630844);
  158. _loc8_ = (_loc8_ << uint(6) | _loc8_ >>> 26) + _loc9_;
  159. _loc11_ = _loc11_ + ((_loc9_ ^ (_loc8_ | ~_loc10_)) + li32(_loc3_ + 28) + 1126891415);
  160. _loc11_ = (_loc11_ << uint(10) | _loc11_ >>> 22) + _loc8_;
  161. _loc10_ = _loc10_ + ((_loc8_ ^ (_loc11_ | ~_loc9_)) + li32(_loc3_ + 56) + -1416354905);
  162. _loc10_ = (_loc10_ << uint(15) | _loc10_ >>> 17) + _loc11_;
  163. _loc9_ = _loc9_ + ((_loc11_ ^ (_loc10_ | ~_loc8_)) + li32(_loc3_ + 20) + -57434055);
  164. _loc9_ = (_loc9_ << uint(21) | _loc9_ >>> 11) + _loc10_;
  165. _loc8_ = _loc8_ + ((_loc10_ ^ (_loc9_ | ~_loc11_)) + li32(_loc3_ + 48) + 1700485571);
  166. _loc8_ = (_loc8_ << uint(6) | _loc8_ >>> 26) + _loc9_;
  167. _loc11_ = _loc11_ + ((_loc9_ ^ (_loc8_ | ~_loc10_)) + li32(_loc3_ + 12) + -1894986606);
  168. _loc11_ = (_loc11_ << uint(10) | _loc11_ >>> 22) + _loc8_;
  169. _loc10_ = _loc10_ + ((_loc8_ ^ (_loc11_ | ~_loc9_)) + li32(_loc3_ + 40) + -1051523);
  170. _loc10_ = (_loc10_ << uint(15) | _loc10_ >>> 17) + _loc11_;
  171. _loc9_ = _loc9_ + ((_loc11_ ^ (_loc10_ | ~_loc8_)) + li32(_loc3_ + 4) + -2054922799);
  172. _loc9_ = (_loc9_ << uint(21) | _loc9_ >>> 11) + _loc10_;
  173. _loc8_ = _loc8_ + ((_loc10_ ^ (_loc9_ | ~_loc11_)) + li32(_loc3_ + 32) + 1873313359);
  174. _loc8_ = (_loc8_ << uint(6) | _loc8_ >>> 26) + _loc9_;
  175. _loc11_ = _loc11_ + ((_loc9_ ^ (_loc8_ | ~_loc10_)) + li32(_loc3_ + 60) + -30611744);
  176. _loc11_ = (_loc11_ << uint(10) | _loc11_ >>> 22) + _loc8_;
  177. _loc10_ = _loc10_ + ((_loc8_ ^ (_loc11_ | ~_loc9_)) + li32(_loc3_ + 24) + -1560198380);
  178. _loc10_ = (_loc10_ << uint(15) | _loc10_ >>> 17) + _loc11_;
  179. _loc9_ = _loc9_ + ((_loc11_ ^ (_loc10_ | ~_loc8_)) + li32(_loc3_ + 52) + 1309151649);
  180. _loc9_ = (_loc9_ << uint(21) | _loc9_ >>> 11) + _loc10_;
  181. _loc8_ = _loc8_ + ((_loc10_ ^ (_loc9_ | ~_loc11_)) + li32(_loc3_ + 16) + -145523070);
  182. _loc8_ = (_loc8_ << uint(6) | _loc8_ >>> 26) + _loc9_;
  183. _loc11_ = _loc11_ + ((_loc9_ ^ (_loc8_ | ~_loc10_)) + li32(_loc3_ + 44) + -1120210379);
  184. _loc11_ = (_loc11_ << uint(10) | _loc11_ >>> 22) + _loc8_;
  185. _loc10_ = _loc10_ + ((_loc8_ ^ (_loc11_ | ~_loc9_)) + li32(_loc3_ + 8) + 718787259);
  186. _loc10_ = (_loc10_ << uint(15) | _loc10_ >>> 17) + _loc11_;
  187. _loc9_ = _loc9_ + ((_loc11_ ^ (_loc10_ | ~_loc8_)) + li32(_loc3_ + 36) + -343485551);
  188. _loc9_ = (_loc9_ << uint(21) | _loc9_ >>> 11) + _loc10_;
  189. _loc8_ = _loc8_ + _loc12_;
  190. _loc9_ = _loc9_ + _loc13_;
  191. _loc10_ = _loc10_ + _loc14_;
  192. _loc11_ = _loc11_ + _loc15_;
  193. _loc3_ = _loc3_ + 64;
  194. }
  195. while(_loc3_ < _loc4_);
  196.  
  197. _loc5_.position = 0;
  198. _loc5_.writeUTFBytes("0123456789abcdef");
  199. si32(_loc8_,16);
  200. si32(_loc9_,20);
  201. si32(_loc10_,24);
  202. si32(_loc11_,28);
  203. _loc9_ = 31;
  204. _loc3_ = 16;
  205. do
  206. {
  207. _loc8_ = int(li8(_loc3_));
  208. _loc9_++;
  209. si8(li8(_loc8_ >>> 4),_loc9_);
  210. _loc9_++;
  211. si8(li8(_loc8_ & 15),_loc9_);
  212. _loc3_++;
  213. }
  214. while(_loc3_ < 32);
  215.  
  216. ApplicationDomain.currentDomain.domainMemory = _loc2_;
  217. _loc5_.position = 32;
  218. return _loc5_.readUTFBytes(32);
  219. }
  220. }
  221. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement