Author Topic: BlowFish encryption  (Read 3294 times)

0 Members and 1 Guest are viewing this topic.

Offline jack

  • Seasoned Forum Regular
  • Posts: 408
    • View Profile
BlowFish encryption
« on: October 08, 2021, 01:27:53 pm »
in my test when decrypting a text file all is good except that there are a few garbage characters at the end of the file, perhaps you may want to fix that, or not
Code: QB64: [Select]
  1.  
  2.  
  3. Const MAXKEYBYTES = 56
  4. Const N = 16
  5. Const low_bound = 3
  6. Const high_bound = 255
  7. Const num_elements_size = (low_bound + 1) * (high_bound + 1) * 4
  8. Const array_offset = 4 * high_bound ' 4 is the size of a ulong
  9.  
  10. Type blowfish_ctx
  11.     p As String * 72 ' (n + 2) * 4 or p(0 to n+1)
  12.     s As String * Num_elements_size ' array(3, 255) of ulong
  13.  
  14. Dim Shared orig_p(0 To (16 + 2) - 1) As _Unsigned Long
  15. Dim Shared orig_s(0 To 3, 0 To 255) As _Unsigned Long
  16.  
  17. Call initialize
  18.  
  19. Dim As blowfish_ctx ctx
  20. l = 1
  21. r = 2
  22. Call blowfish_init(ctx, "TESTKEY", 7)
  23. Call blowfish_encrypt(ctx, l, r)
  24. Call Blowfish_Decrypt(ctx, l, r)
  25. Dim As String passwd
  26. passwd = "TESTKEY"
  27. Call blowfish_init(ctx, passwd, Len(passwd))
  28. Open "test.txt" For Binary As #1
  29. Open "test_enc.txt" For Binary As #2
  30.  
  31.     Get #1, , l
  32.     Get #1, , r
  33.     Call blowfish_encrypt(ctx, l, r)
  34.     Put #2, , l
  35.     Put #2, , r
  36. Close 1, 2
  37. 'passwd = "TESTKEY"
  38. 'call Blowfish_Init(ctx, passwd, Len(passwd))
  39. Open "test_enc.txt" For Binary As #1
  40. Open "test_dec.txt" For Binary As #2
  41.  
  42.     Get #1, , l
  43.     Get #1, , r
  44.     Call Blowfish_Decrypt(ctx, l, r)
  45.     Put #2, , l
  46.     Put #2, , r
  47. Close 1, 2
  48.  
  49. Sub initialize
  50.     Dim ct As Integer
  51.     For ct = 0 To 17
  52.         Read orig_p(ct)
  53.     Next ct
  54.     For ct = 0 To 255
  55.         Read orig_s(0, ct)
  56.     Next ct
  57.     For ct = 0 To 255
  58.         Read orig_s(1, ct)
  59.     Next ct
  60.     For ct = 0 To 255
  61.         Read orig_s(2, ct)
  62.     Next ct
  63.     For ct = 0 To 255
  64.         Read orig_s(3, ct)
  65.     Next ct
  66.  
  67. Function idx1& (i&)
  68.     idx1 = 4 * i& + 1
  69.  
  70. Function idx2& (i&, j&)
  71.     idx2 = array_offset * i& + 4 * i& + 4 * j& + 1
  72.  
  73. Sub set1 (s$, i&, v~&)
  74.     Mid$(s$, 4 * i& + 1, 4) = MKL$(v~&)
  75.  
  76. Function get1~& (s$, i&)
  77.     get1 = CVL(Mid$(s$, 4 * i& + 1, 4))
  78.  
  79. Sub set2 (s$, i&, j&, v~&)
  80.     Mid$(s$, array_offset * i& + 4 * i& + 4 * j& + 1, 4) = MKL$(v~&)
  81.  
  82. Function get2~& (s$, i&, j&)
  83.     get2 = CVL(Mid$(s$, array_offset * i& + 4 * i& + 4 * j& + 1, 4))
  84.  
  85. Function f~& (ctx As blowfish_ctx, x1 As _Unsigned Long)
  86.     Dim As _Unsigned Integer a, b, c, d
  87.     Dim As _Unsigned Long x, y
  88.     x = x1
  89.     d = x And &H00FF
  90.     x = _SHR(x, 8)
  91.     c = x And &H00FF
  92.     x = _SHR(x, 8)
  93.     b = x And &H00FF
  94.     x = _SHR(x, 8)
  95.     a = x And &H00FF
  96.     y = get2(ctx.s, 0, a) + get2(ctx.s, 1, b)
  97.     y = y Xor get2(ctx.s, 2, c)
  98.     y = y + get2(ctx.s, 3, d)
  99.     f = y
  100.  
  101. Sub blowfish_encrypt (ctx As blowfish_ctx, xl As _Unsigned Long, xr As _Unsigned Long)
  102.     Dim As _Unsigned Long x_l, x_r, temp
  103.     Dim i As Long
  104.     x_l = xl
  105.     x_r = xr
  106.  
  107.     For i = 0 To N - 1
  108.         x_l = x_l Xor get1(ctx.p, i)
  109.         x_r = f(ctx, x_l) Xor x_r
  110.         temp = x_l
  111.         x_l = x_r
  112.         x_r = temp
  113.     Next
  114.     temp = x_l
  115.     x_l = x_r
  116.     x_r = temp
  117.     x_r = x_r Xor get1(ctx.p, 16)
  118.     x_l = x_l Xor get1(ctx.p, (16 + 1))
  119.     xl = x_l
  120.     xr = x_r
  121.  
  122. Sub Blowfish_Decrypt (ctx As blowfish_ctx, xl As _Unsigned Long, xr As _Unsigned Long)
  123.     Dim As _Unsigned Long X_l, X_r, temp
  124.     Dim i As Long
  125.     X_l = xl
  126.     X_r = xr
  127.     For i = N + 1 To 2 Step -1
  128.         X_l = X_l Xor get1(ctx.p, i)
  129.         X_r = f(ctx, X_l) Xor X_r
  130.         temp = X_l
  131.         X_l = X_r
  132.         X_r = temp
  133.     Next
  134.     temp = X_l
  135.     X_l = X_r
  136.     X_r = temp
  137.     X_r = X_r Xor get1(ctx.p, 1)
  138.     X_l = X_l Xor get1(ctx.p, 0)
  139.     xl = X_l
  140.     xr = X_r
  141.  
  142. Sub blowfish_init (ctx As blowfish_ctx, pass_key As String, keylen As Long)
  143.     Dim As Long i, j, k
  144.     Dim As _Unsigned Long data2, datal, datar
  145.     For i = 0 To 3
  146.         For j = 0 To 255
  147.             Call set2(ctx.s, i, j, orig_s(i, j))
  148.         Next
  149.     Next
  150.     j = 0
  151.     For i = 0 To N + 1
  152.         data2 = 0
  153.         For k = 0 To 3
  154.             data2 = _SHL(data2, 8) Or Asc(pass_key, j + 1)
  155.             j = j + 1
  156.             If j >= keylen Then
  157.                 j = 0
  158.             End If
  159.         Next
  160.         Call set1(ctx.p, i, orig_p(i) Xor data2)
  161.     Next
  162.     datal = 0
  163.     datar = 0
  164.     For i = 0 To N + 1 Step 2
  165.         Call blowfish_encrypt(ctx, datal, datar)
  166.         Call set1(ctx.p, i, datal)
  167.         Call set1(ctx.p, i + 1, datar)
  168.     Next
  169.     For i = 0 To 3
  170.         For j = 0 To 255 Step 2
  171.             Call blowfish_encrypt(ctx, datal, datar)
  172.             Call set2(ctx.s, i, j, datal)
  173.             Call set2(ctx.s, i, j + 1, datar)
  174.         Next
  175.     Next
  176.  
  177. Data &H243F6A88,&H85A308D3,&H13198A2E,&H3707344
  178. Data &HA4093822,&H299F31D0,&H82EFA98,&HEC4E6C89
  179. Data &H452821E6,&H38D01377,&HBE5466CF,&H34E90C6C
  180. Data &HC0AC29B7,&HC97C50DD,&H3F84D5B5,&HB5470917
  181. Data &H9216D5D9,&H8979FB1B
  182.  
  183. Data &HD1310BA6,&H98DFB5AC,&H2FFD72DB,&HD01ADFB7
  184. Data &HB8E1AFED,&H6A267E96,&HBA7C9045,&HF12C7F99
  185. Data &H24A19947,&HB3916CF7,&H801F2E2,&H858EFC16
  186. Data &H636920D8,&H71574E69,&HA458FEA3,&HF4933D7E
  187. Data &HD95748F,&H728EB658,&H718BCD58,&H82154AEE
  188. Data &H7B54A41D,&HC25A59B5,&H9C30D539,&H2AF26013
  189. Data &HC5D1B023,&H286085F0,&HCA417918,&HB8DB38EF
  190. Data &H8E79DCB0,&H603A180E,&H6C9E0E8B,&HB01E8A3E
  191. Data &HD71577C1,&HBD314B27,&H78AF2FDA,&H55605C60
  192. Data &HE65525F3,&HAA55AB94,&H57489862,&H63E81440
  193. Data &H55CA396A,&H2AAB10B6,&HB4CC5C34,&H1141E8CE
  194. Data &HA15486AF,&H7C72E993,&HB3EE1411,&H636FBC2A
  195. Data &H2BA9C55D,&H741831F6,&HCE5C3E16,&H9B87931E
  196. Data &HAFD6BA33,&H6C24CF5C,&H7A325381,&H28958677
  197. Data &H3B8F4898,&H6B4BB9AF,&HC4BFE81B,&H66282193
  198. Data &H61D809CC,&HFB21A991,&H487CAC60,&H5DEC8032
  199.  
  200. Data &HEF845D5D,&HE98575B1,&HDC262302,&HEB651B88
  201. Data &H23893E81,&HD396ACC5,&HF6D6FF3,&H83F44239
  202. Data &H2E0B4482,&HA4842004,&H69C8F04A,&H9E1F9B5E
  203. Data &H21C66842,&HF6E96C9A,&H670C9C61,&HABD388F0
  204. Data &H6A51A0D2,&HD8542F68,&H960FA728,&HAB5133A3
  205. Data &H6EEF0B6C,&H137A3BE4,&HBA3BF050,&H7EFB2A98
  206. Data &HA1F1651D,&H39AF0176,&H66CA593E,&H82430E88
  207. Data &H8CEE8619,&H456F9FB4,&H7D84A5C3,&H3B8B5EBE
  208. Data &HE06F75D8,&H85C12073,&H401A449F,&H56C16AA6
  209. Data &H4ED3AA62,&H363F7706,&H1BFEDF72,&H429B023D
  210. Data &H37D0D724,&HD00A1248,&HDB0FEAD3,&H49F1C09B
  211. Data &H75372C9,&H80991B7B,&H25D479D8,&HF6E8DEF7
  212. Data &HE3FE501A,&HB6794C3B,&H976CE0BD,&H4C006BA
  213. Data &HC1A94FB6,&H409F60C4,&H5E5C9EC2,&H196A2463
  214. Data &H68FB6FAF,&H3E6C53B5,&H1339B2EB,&H3B52EC6F
  215. Data &H6DFC511F,&H9B30952C,&HCC814544,&HAF5EBD09
  216.  
  217. Data &HBEE3D004,&HDE334AFD,&H660F2807,&H192E4BB3
  218. Data &HC0CBA857,&H45C8740F,&HD20B5F39,&HB9D3FBDB
  219. Data &H5579C0BD,&H1A60320A,&HD6A100C6,&H402C7279
  220. Data &H679F25FE,&HFB1FA3CC,&H8EA5E9F8,&HDB3222F8
  221. Data &H3C7516DF,&HFD616B15,&H2F501EC8,&HAD0552AB
  222. Data &H323DB5FA,&HFD238760,&H53317B48,&H3E00DF82
  223. Data &H9E5C57BB,&HCA6F8CA0,&H1A87562E,&HDF1769DB
  224. Data &HD542A8F6,&H287EFFC3,&HAC6732C6,&H8C4F5573
  225. Data &H695B27B0,&HBBCA58C8,&HE1FFA35D,&HB8F011A0
  226. Data &H10FA3D98,&HFD2183B8,&H4AFCB56C,&H2DD1D35B
  227. Data &H9A53E479,&HB6F84565,&HD28E49BC,&H4BFB9790
  228. Data &HE1DDF2DA,&HA4CB7E33,&H62FB1341,&HCEE4C6E8
  229. Data &HEF20CADA,&H36774C01,&HD07E9EFE,&H2BF11FB4
  230. Data &H95DBDA4D,&HAE909198,&HEAAD8E71,&H6B93D5A0
  231. Data &HD08ED1D0,&HAFC725E0,&H8E3C5B2F,&H8E7594B7
  232. Data &H8FF6E2FB,&HF2122B64,&H8888B812,&H900DF01C
  233.  
  234. Data &H4FAD5EA0,&H688FC31C,&HD1CFF191,&HB3A8C1AD
  235. Data &H2F2F2218,&HBE0E1777,&HEA752DFE,&H8B021FA1
  236. Data &HE5A0CC0F,&HB56F74E8,&H18ACF3D6,&HCE89E299
  237. Data &HB4A84FE0,&HFD13E0B7,&H7CC43B81,&HD2ADA8D9
  238. Data &H165FA266,&H80957705,&H93CC7314,&H211A1477
  239. Data &HE6AD2065,&H77B5FA86,&HC75442F5,&HFB9D35CF
  240. Data &HEBCDAF0C,&H7B3E89A0,&HD6411BD3,&HAE1E7E49
  241. Data &H250E2D,&H2071B35E,&H226800BB,&H57B8E0AF
  242. Data &H2464369B,&HF009B91E,&H5563911D,&H59DFA6AA
  243. Data &H78C14389,&HD95A537F,&H207D5BA2,&H2E5B9C5
  244. Data &H83260376,&H6295CFA9,&H11C81968,&H4E734A41
  245. Data &HB3472DCA,&H7B14A94A,&H1B510052,&H9A532915
  246. Data &HD60F573F,&HBC9BC6E4,&H2B60A476,&H81E67400
  247. Data &H8BA6FB5,&H571BE91F,&HF296EC6B,&H2A0DD915
  248. Data &HB6636521,&HE7B9F9B6,&HFF34052E,&HC5855664
  249. Data &H53B02D5D,&HA99F8FA1,&H8BA4799,&H6E85076A
  250.  
  251. Data &H4B7A70E9,&HB5B32944,&HDB75092E,&HC4192623
  252. Data &HAD6EA6B0,&H49A7DF7D,&H9CEE60B8,&H8FEDB266
  253. Data &HECAA8C71,&H699A17FF,&H5664526C,&HC2B19EE1
  254. Data &H193602A5,&H75094C29,&HA0591340,&HE4183A3E
  255. Data &H3F54989A,&H5B429D65,&H6B8FE4D6,&H99F73FD6
  256. Data &HA1D29C07,&HEFE830F5,&H4D2D38E6,&HF0255DC1
  257. Data &H4CDD2086,&H8470EB26,&H6382E9C6,&H21ECC5E
  258. Data &H9686B3F,&H3EBAEFC9,&H3C971814,&H6B6A70A1
  259. Data &H687F3584,&H52A0E286,&HB79C5305,&HAA500737
  260. Data &H3E07841C,&H7FDEAE5C,&H8E7D44EC,&H5716F2B8
  261. Data &HB03ADA37,&HF0500C0D,&HF01C1F04,&H200B3FF
  262. Data &HAE0CF51A,&H3CB574B2,&H25837A58,&HDC0921BD
  263. Data &HD19113F9,&H7CA92FF6,&H94324773,&H22F54701
  264. Data &H3AE5E581,&H37C2DADC,&HC8B57634,&H9AF3DDA7
  265. Data &HA9446146,&HFD0030E,&HECC8C73E,&HA4751E41
  266. Data &HE238CD99,&H3BEA0E2F,&H3280BBA1,&H183EB331
  267.  
  268. Data &H4E548B38,&H4F6DB908,&H6F420D03,&HF60A04BF
  269. Data &H2CB81290,&H24977C79,&H5679B072,&HBCAF89AF
  270. Data &HDE9A771F,&HD9930810,&HB38BAE12,&HDCCF3F2E
  271. Data &H5512721F,&H2E6B7124,&H501ADDE6,&H9F84CD87
  272. Data &H7A584718,&H7408DA17,&HBC9F9ABC,&HE94B7D8C
  273. Data &HEC7AEC3A,&HDB851DFA,&H63094366,&HC464C3D2
  274. Data &HEF1C1847,&H3215D908,&HDD433B37,&H24C2BA16
  275. Data &H12A14D43,&H2A65C451,&H50940002,&H133AE4DD
  276. Data &H71DFF89E,&H10314E55,&H81AC77D6,&H5F11199B
  277. Data &H43556F1,&HD7A3C76B,&H3C11183B,&H5924A509
  278. Data &HF28FE6ED,&H97F1FBFA,&H9EBABF2C,&H1E153C6E
  279. Data &H86E34570,&HEAE96FB1,&H860E5E0A,&H5A3E2AB3
  280. Data &H771FE71C,&H4E3D06FA,&H2965DCB9,&H99E71D0F
  281. Data &H803E89D6,&H5266C825,&H2E4CC978,&H9C10B36A
  282. Data &HC6150EBA,&H94E2EA78,&HA5FC3C53,&H1E0A2DF4
  283. Data &HF2F74EA7,&H361D2B3D,&H1939260F,&H19C27960
  284.  
  285. Data &H5223A708,&HF71312B6,&HEBADFE6E,&HEAC31F66
  286. Data &HE3BC4595,&HA67BC883,&HB17F37D1,&H18CFF28
  287. Data &HC332DDEF,&HBE6C5AA5,&H65582185,&H68AB9802
  288. Data &HEECEA50F,&HDB2F953B,&H2AEF7DAD,&H5B6E2F84
  289. Data &H1521B628,&H29076170,&HECDD4775,&H619F1510
  290. Data &H13CCA830,&HEB61BD96,&H334FE1E,&HAA0363CF
  291. Data &HB5735C90,&H4C70A239,&HD59E9E0B,&HCBAADE14
  292. Data &HEECC86BC,&H60622CA7,&H9CAB5CAB,&HB2F3846E
  293. Data &H648B1EAF,&H19BDF0CA,&HA02369B9,&H655ABB50
  294. Data &H40685A32,&H3C2AB4B3,&H319EE9D5,&HC021B8F7
  295. Data &H9B540B19,&H875FA099,&H95F7997E,&H623D7DA8
  296. Data &HF837889A,&H97E32D77,&H11ED935F,&H16681281
  297. Data &HE358829,&HC7E61FD6,&H96DEDFA1,&H7858BA99
  298. Data &H57F584A5,&H1B227263,&H9B83C3FF,&H1AC24696
  299. Data &HCDB30AEB,&H532E3054,&H8FD948E4,&H6DBC3128
  300. Data &H58EBF2EF,&H34C6FFEA,&HFE28ED61,&HEE7C3C73
  301.  
  302. Data &H5D4A14D9,&HE864B7E3,&H42105D14,&H203E13E0
  303. Data &H45EEE2B6,&HA3AAABEA,&HDB6C4F15,&HFACB4FD0
  304. Data &HC742F442,&HEF6ABBB5,&H654F3B1D,&H41CD2105
  305. Data &HD81E799E,&H86854DC7,&HE44B476A,&H3D816250
  306. Data &HCF62A1F2,&H5B8D2646,&HFC8883A0,&HC1C7B6A3
  307. Data &H7F1524C3,&H69CB7492,&H47848A0B,&H5692B285
  308. Data &H95BBF00,&HAD19489D,&H1462B174,&H23820E00
  309. Data &H58428D2A,&HC55F5EA,&H1DADF43E,&H233F7061
  310. Data &H3372F092,&H8D937E41,&HD65FECF1,&H6C223BDB
  311. Data &H7CDE3759,&HCBEE7460,&H4085F2A7,&HCE77326E
  312. Data &HA6078084,&H19F8509E,&HE8EFD855,&H61D99735
  313. Data &HA969A7AA,&HC50C06C2,&H5A04ABFC,&H800BCADC
  314. Data &H9E447A2E,&HC3453484,&HFDD56705,&HE1E9EC9
  315. Data &HDB73DBD3,&H105588CD,&H675FDA79,&HE3674340
  316. Data &HC5C43465,&H713E38D8,&H3D28F89E,&HF16DFF20
  317. Data &H153E21E7,&H8FB03D4A,&HE6E39F2B,&HDB83ADF7
  318.  
  319. Data &HE93D5A68,&H948140F7,&HF64C261C,&H94692934
  320. Data &H411520F7,&H7602D4F7,&HBCF46B2E,&HD4A20068
  321. Data &HD4082471,&H3320F46A,&H43B7D4B7,&H500061AF
  322. Data &H1E39F62E,&H97244546,&H14214F74,&HBF8B8840
  323. Data &H4D95FC1D,&H96B591AF,&H70F4DDD3,&H66A02F45
  324. Data &HBFBC09EC,&H3BD9785,&H7FAC6DD0,&H31CB8504
  325. Data &H96EB27B3,&H55FD3941,&HDA2547E6,&HABCA0A9A
  326. Data &H28507825,&H530429F4,&HA2C86DA,&HE9B66DFB
  327. Data &H68DC1462,&HD7486900,&H680EC0A4,&H27A18DEE
  328. Data &H4F3FFEA2,&HE887AD8C,&HB58CE006,&H7AF4D6B6
  329. Data &HAACE1E7C,&HD3375FEC,&HCE78A399,&H406B2A42
  330. Data &H20FE9E35,&HD9F385B9,&HEE39D7AB,&H3B124E8B
  331. Data &H1DC9FAF7,&H4B6D1856,&H26A36631,&HEAE397B2
  332. Data &H3A6EFA74,&HDD5B4332,&H6841E7F7,&HCA7820FB
  333. Data &HFB0AF54E,&HD8FEB397,&H454056AC,&HBA489527
  334. Data &H55533A3A,&H20838D87,&HFE6BA9B7,&HD096954B
  335.  
  336. Data &H55A867BC,&HA1159A58,&HCCA92963,&H99E1DB33
  337. Data &HA62A4A56,&H3F3125F9,&H5EF47E1C,&H9029317C
  338. Data &HFDF8E802,&H4272F70,&H80BB155C,&H5282CE3
  339. Data &H95C11548,&HE4C66D22,&H48C1133F,&HC70F86DC
  340. Data &H7F9C9EE,&H41041F0F,&H404779A4,&H5D886E17
  341. Data &H325F51EB,&HD59BC0D1,&HF2BCC18F,&H41113564
  342. Data &H257B7834,&H602A9C60,&HDFF8E8A3,&H1F636C1B
  343. Data &HE12B4C2,&H2E1329E,&HAF664FD1,&HCAD18115
  344. Data &H6B2395E0,&H333E92E1,&H3B240B62,&HEEBEB922
  345. Data &H85B2A20E,&HE6BA0D99,&HDE720C8C,&H2DA2F728
  346. Data &HD0127845,&H95B794FD,&H647D0862,&HE7CCF5F0
  347. Data &H5449A36F,&H877D48FA,&HC39DFD27,&HF33E8D1E
  348. Data &HA476341,&H992EFF74,&H3A6F6EAB,&HF4F8FD37
  349. Data &HA812DC60,&HA1EBDDF8,&H991BE14C,&HDB6E6B0D
  350. Data &HC67B5510,&H6D672C37,&H2765D43B,&HDCD0E804
  351. Data &HF1290DC7,&HCC00FFA3,&HB5390F92,&H690FED0B
  352.  
  353. Data &H667B9FFB,&HCEDB7D9C,&HA091CF0B,&HD9155EA3
  354. Data &HBB132F88,&H515BAD24,&H7B9479BF,&H763BD6EB
  355. Data &H37392EB3,&HCC115979,&H8026E297,&HF42E312D
  356. Data &H6842ADA7,&HC66A2B3B,&H12754CCC,&H782EF11C
  357. Data &H6A124237,&HB79251E7,&H6A1BBE6,&H4BFB6350
  358. Data &H1A6B1018,&H11CAEDFA,&H3D25BDD8,&HE2E1C3C9
  359. Data &H44421659,&HA121386,&HD90CEC6E,&HD5ABEA2A
  360. Data &H64AF674E,&HDA86A85F,&HBEBFE988,&H64E4C3FE
  361. Data &H9DBC8057,&HF0F7C086,&H60787BF8,&H6003604D
  362. Data &HD1FD8346,&HF6381FB0,&H7745AE04,&HD736FCCC
  363. Data &H83426B33,&HF01EAB71,&HB0804187,&H3C005E5F
  364. Data &H77A057BE,&HBDE8AE24,&H55464299,&HBF582E61
  365. Data &H4E58F48F,&HF2DDFDA2,&HF474EF38,&H8789BDC2
  366. Data &H5366F9C3,&HC8B38E74,&HB475F255,&H46FCD9B9
  367. Data &H7AEB2661,&H8B1DDF84,&H846A0E79,&H915F95E2
  368. Data &H466E598E,&H20B45770,&H8CD55591,&HC902DE4C
  369.  
  370. Data &HB90BACE1,&HBB8205D0,&H11A86248,&H7574A99E
  371. Data &HB77F19B6,&HE0A9DC09,&H662D09A1,&HC4324633
  372. Data &HE85A1F02,&H9F0BE8C,&H4A99A025,&H1D6EFE10
  373. Data &H1AB93D1D,&HBA5A4DF,&HA186F20F,&H2868F169
  374. Data &HDCB7DA83,&H573906FE,&HA1E2CE9B,&H4FCD7F52
  375. Data &H50115E01,&HA70683FA,&HA002B5C4,&HDE6D027
  376. Data &H9AF88C27,&H773F8641,&HC3604C06,&H61A806B5
  377. Data &HF0177A28,&HC0F586E0,&H6058AA,&H30DC7D62
  378. Data &H11E69ED7,&H2338EA63,&H53C2DD94,&HC2C21634
  379. Data &HBBCBEE56,&H90BCB6DE,&HEBFC7DA1,&HCE591D76
  380. Data &H6F05E409,&H4B7C0188,&H39720A3D,&H7C927C24
  381. Data &H86E3725F,&H724D9DB9,&H1AC15BB4,&HD39EB8FC
  382. Data &HED545578,&H8FCA5B5,&HD83D7CD3,&H4DAD0FC4
  383. Data &H1E50EF5E,&HB161E6F8,&HA28514D9,&H6C51133C
  384. Data &H6FD5C7E7,&H56E14EC4,&H362ABFCE,&HDDC6C837
  385. Data &HD79A3234,&H92638212,&H670EFA8E,&H406000E0
  386.  
  387. Data &H3A39CE37,&HD3FAF5CF,&HABC27737,&H5AC52D1B
  388. Data &H5CB0679E,&H4FA33742,&HD3822740,&H99BC9BBE
  389. Data &HD5118E9D,&HBF0F7315,&HD62D1C7E,&HC700C47B
  390. Data &HB78C1B6B,&H21A19045,&HB26EB1BE,&H6A366EB4
  391. Data &H5748AB2F,&HBC946E79,&HC6A376D2,&H6549C2C8
  392. Data &H530FF8EE,&H468DDE7D,&HD5730A1D,&H4CD04DC6
  393. Data &H2939BBDB,&HA9BA4650,&HAC9526E8,&HBE5EE304
  394. Data &HA1FAD5F0,&H6A2D519A,&H63EF8CE2,&H9A86EE22
  395. Data &HC089C2B8,&H43242EF6,&HA51E03AA,&H9CF2D0A4
  396. Data &H83C061BA,&H9BE96A4D,&H8FE51550,&HBA645BD6
  397. Data &H2826A2F9,&HA73A3AE1,&H4BA99586,&HEF5562E9
  398. Data &HC72FEFD3,&HF752F7DA,&H3F046F69,&H77FA0A59
  399. Data &H80E4A915,&H87B08601,&H9B09E6AD,&H3B3EE593
  400. Data &HE990FD5A,&H9E34D797,&H2CF0B7D9,&H22B8B51
  401. Data &H96D5AC3A,&H17DA67D,&HD1CF3ED6,&H7C7D2D28
  402. Data &H1F9F25CF,&HADF2B89B,&H5AD6B472,&H5A88F54C
  403.  
  404. Data &HE029AC71,&HE019A5E6,&H47B0ACFD,&HED93FA9B
  405. Data &HE8D3C48D,&H283B57CC,&HF8D56629,&H79132E28
  406. Data &H785F0191,&HED756055,&HF7960E44,&HE3D35E8C
  407. Data &H15056DD4,&H88F46DBA,&H3A16125,&H564F0BD
  408. Data &HC3EB9E15,&H3C9057A2,&H97271AEC,&HA93A072A
  409. Data &H1B3F6D9B,&H1E6321F5,&HF59C66FB,&H26DCF319
  410. Data &H7533D928,&HB155FDF5,&H3563482,&H8ABA3CBB
  411. Data &H28517711,&HC20AD9F8,&HABCC5167,&HCCAD925F
  412. Data &H4DE81751,&H3830DC8E,&H379D5862,&H9320F991
  413. Data &HEA7A90C2,&HFB3E7BCE,&H5121CE64,&H774FBE32
  414. Data &HA8B6E37E,&HC3293D46,&H48DE5369,&H6413E680
  415. Data &HA2AE0810,&HDD6DB224,&H69852DFD,&H9072166
  416. Data &HB39A460A,&H6445C0DD,&H586CDECF,&H1C20C8AE
  417. Data &H5BBEF7DD,&H1B588D40,&HCCD2017F,&H6BB4E3BB
  418. Data &HDDA26A7E,&H3A59FF45,&H3E350A44,&HBCB4CDD5
  419. Data &H72EACEA8,&HFA6484BB,&H8D6612AE,&HBF3C6F47
  420.  
  421. Data &HD29BE463,&H542F5D9E,&HAEC2771B,&HF64E6370
  422. Data &H740E0D8D,&HE75B1357,&HF8721671,&HAF537D5D
  423. Data &H4040CB08,&H4EB4E2CC,&H34D2466A,&H115AF84
  424. Data &HE1B00428,&H95983A1D,&H6B89FB4,&HCE6EA048
  425. Data &H6F3F3B82,&H3520AB82,&H11A1D4B,&H277227F8
  426. Data &H611560B1,&HE7933FDC,&HBB3A792B,&H344525BD
  427. Data &HA08839E1,&H51CE794B,&H2F32C9B7,&HA01FBAC9
  428. Data &HE01CC87E,&HBCC7D1F6,&HCF0111C3,&HA1E8AAC7
  429. Data &H1A908749,&HD44FBD9A,&HD0DADECB,&HD50ADA38
  430. Data &H339C32A,&HC6913667,&H8DF9317C,&HE0B12B4F
  431. Data &HF79E59B7,&H43F5BB3A,&HF2D519FF,&H27D9459C
  432. Data &HBF97222C,&H15E6FC2A,&HF91FC71,&H9B941525
  433. Data &HFAE59361,&HCEB69CEB,&HC2A86459,&H12BAA8D1
  434. Data &HB6C1075E,&HE3056A0C,&H10D25065,&HCB03A442
  435. Data &HE0EC6E0E,&H1698DB3B,&H4C98A0BE,&H3278E964
  436. Data &H9F1F9532,&HE0D392DF,&HD3A0342B,&H8971F21E
  437.  
  438. Data &H1B0A7441,&H4BA3348C,&HC5BE7120,&HC37632D8
  439. Data &HDF359F8D,&H9B992F2E,&HE60B6F47,&HFE3F11D
  440. Data &HE54CDA54,&H1EDAD891,&HCE6279CF,&HCD3E7E6F
  441. Data &H1618B166,&HFD2C1D05,&H848FD2C5,&HF6FB2299
  442. Data &HF523F357,&HA6327623,&H93A83531,&H56CCCD02
  443. Data &HACF08162,&H5A75EBB5,&H6E163697,&H88D273CC
  444. Data &HDE966292,&H81B949D0,&H4C50901B,&H71C65614
  445. Data &HE6C6C7BD,&H327A140A,&H45E1D006,&HC3F27B9A
  446. Data &HC9AA53FD,&H62A80F00,&HBB25BFE2,&H35BDD2F6
  447. Data &H71126905,&HB2040222,&HB6CBCF7C,&HCD769C2B
  448. Data &H53113EC0,&H1640E3D3,&H38ABBD60,&H2547ADF0
  449. Data &HBA38209C,&HF746CE76,&H77AFA1C5,&H20756060
  450. Data &H85CBFE4E,&H8AE88DD8,&H7AAAF9B0,&H4CF9AA7E
  451. Data &H1948C25C,&H2FB8A8C,&H1C36AE4,&HD6EBE1F9
  452. Data &H90D4F869,&HA65CDEA0,&H3F09252D,&HC208E69F
  453. Data &HB74E6132,&HCE77E25B,&H578FDFE3,&H3AC372E6
  454.