Advertisement
Guest User

Untitled

a guest
Mar 1st, 2022
56
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.46 KB | None | 0 0
  1. Option Explicit
  2. Dim CY As Boolean
  3.  
  4. Sub xror(ByRef v)
  5. CY = v And 1
  6. If v < 255 Then v = (v * 128) Mod 255
  7. End Sub
  8.  
  9. Sub xrol(ByRef v)
  10. CY = v And 128
  11. If v < 255 Then v = (v * 2) Mod 255
  12. End Sub
  13.  
  14. Sub xmsk(ByRef v, ByVal s)
  15. v = s And 255
  16. End Sub
  17.  
  18. Sub xand(ByRef v, ByVal s)
  19. v = v And s
  20. End Sub
  21.  
  22. Sub xmov(ByRef v, ByVal s)
  23. v = s
  24. End Sub
  25.  
  26. Sub xadd(ByRef v, ByVal s)
  27. v = v + s
  28. CY = v > 255
  29. v = v And 255
  30. End Sub
  31.  
  32. Sub xadc(ByRef v, ByVal s)
  33. v = v + s - CY
  34. CY = v > 255
  35. v = v And 255
  36. End Sub
  37.  
  38. Sub xsub(ByRef v, ByVal s)
  39. v = v - s
  40. CY = v And 256
  41. v = v And 255
  42. End Sub
  43.  
  44. Sub test(ByVal c, ByVal d)
  45. Dim cd
  46. 'Debug.Print c, d
  47. cd = c * d
  48. Dim a, b, e, f
  49. xror d
  50. xmsk a, CY
  51. xand a, c
  52. xmov b, a
  53. xrol c
  54. xror d
  55. xmsk e, CY
  56. xand e, c
  57. xmov f, e
  58. xand e, 254
  59. xadd a, e
  60. xadc b, f
  61. xrol c
  62. xror d
  63. xmsk e, CY
  64. xand e, c
  65. xmov f, e
  66. xand e, 252
  67. xadd a, e
  68. xadc b, f
  69. xrol c
  70. xror d
  71. xmsk e, CY
  72. xand e, c
  73. xmov f, e
  74. xand e, 248
  75. xadd a, e
  76. xadc b, f
  77. xrol c
  78. xror d
  79. xmsk e, CY
  80. xand e, c
  81. xmov f, e
  82. xand e, 240
  83. xadd a, e
  84. xadc b, f
  85. xrol c
  86. xror d
  87. xmsk e, CY
  88. xand e, c
  89. xmov f, e
  90. xand e, 224
  91. xadd a, e
  92. xadc b, f
  93. xrol c
  94. xror d
  95. xmsk e, CY
  96. xand e, c
  97. xmov f, e
  98. xand e, 192
  99. xadd a, e
  100. xadc b, f
  101. xrol c
  102. xror d
  103. xmsk e, CY
  104. xand e, c
  105. xmov f, e
  106. xand e, 128
  107. xadd a, e
  108. xadc b, f
  109. xsub b, a
  110. 'b = -b And 255
  111. Debug.Assert b * 256 + a = cd
  112. End Sub
  113.  
  114. Sub Main()
  115. Dim i, j
  116. For i = 0 To 255
  117. For j = 0 To 255
  118. test i, j
  119. Next
  120. Next
  121. End Sub
  122.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement