aes-ia64.S 71 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660
  1. // ====================================================================
  2. // Written by Andy Polyakov <appro@fy.chalmers.se> for the OpenSSL
  3. // project. Rights for redistribution and usage in source and binary
  4. // forms are granted according to the OpenSSL license.
  5. // ====================================================================
  6. //
  7. // What's wrong with compiler generated code? Compiler never uses
  8. // variable 'shr' which is pairable with 'extr'/'dep' instructions.
  9. // Then it uses 'zxt' which is an I-type, but can be replaced with
  10. // 'and' which in turn can be assigned to M-port [there're double as
  11. // much M-ports as there're I-ports on Itanium 2]. By sacrificing few
  12. // registers for small constants (255, 24 and 16) to be used with
  13. // 'shr' and 'and' instructions I can achieve better ILP, Intruction
  14. // Level Parallelism, and performance. This code outperforms GCC 3.3
  15. // generated code by over factor of 2 (two), GCC 3.4 - by 70% and
  16. // HP C - by 40%. Measured best-case scenario, i.e. aligned
  17. // big-endian input, ECB timing on Itanium 2 is (18 + 13*rounds)
  18. // ticks per block, or 9.25 CPU cycles per byte for 128 bit key.
  19. .ident "aes-ia64.S, version 1.1"
  20. .ident "IA-64 ISA artwork by Andy Polyakov <appro@fy.chalmers.se>"
  21. .explicit
  22. .text
  23. rk0=r8; rk1=r9;
  24. pfssave=r2;
  25. lcsave=r10;
  26. prsave=r3;
  27. maskff=r11;
  28. twenty4=r14;
  29. sixteen=r15;
  30. te00=r16; te11=r17; te22=r18; te33=r19;
  31. te01=r20; te12=r21; te23=r22; te30=r23;
  32. te02=r24; te13=r25; te20=r26; te31=r27;
  33. te03=r28; te10=r29; te21=r30; te32=r31;
  34. // these are rotating...
  35. t0=r32; s0=r33;
  36. t1=r34; s1=r35;
  37. t2=r36; s2=r37;
  38. t3=r38; s3=r39;
  39. te0=r40; te1=r41; te2=r42; te3=r43;
  40. #if defined(_HPUX_SOURCE) && !defined(_LP64)
  41. # define ADDP addp4
  42. # define KSZ 4
  43. # define LDKEY ld4
  44. #else
  45. # define ADDP add
  46. #endif
  47. // This implies that AES_KEY comprises 32-bit key schedule elements
  48. // even on LP64 platforms.
  49. #ifndef KSZ
  50. # define KSZ 4
  51. # define LDKEY ld4
  52. #endif
  53. .proc _ia64_AES_encrypt#
  54. // Input: rk0-rk1
  55. // te0
  56. // te3 as AES_KEY->rounds!!!
  57. // s0-s3
  58. // maskff,twenty4,sixteen
  59. // Output: r16,r20,r24,r28 as s0-s3
  60. // Clobber: r16-r31,rk0-rk1,r32-r43
  61. .align 32
  62. _ia64_AES_encrypt:
  63. .prologue
  64. .altrp b6
  65. .body
  66. { .mmi; alloc r16=ar.pfs,12,0,0,8
  67. LDKEY t0=[rk0],2*KSZ
  68. mov pr.rot=1<<16 }
  69. { .mmi; LDKEY t1=[rk1],2*KSZ
  70. add te1=1024,te0
  71. add te3=-3,te3 };;
  72. { .mib; LDKEY t2=[rk0],2*KSZ
  73. mov ar.ec=3 }
  74. { .mib; LDKEY t3=[rk1],2*KSZ
  75. add te2=2048,te0
  76. brp.loop.imp .Le_top,.Le_end-16 };;
  77. { .mmi; xor s0=s0,t0
  78. xor s1=s1,t1
  79. mov ar.lc=te3 }
  80. { .mmi; xor s2=s2,t2
  81. xor s3=s3,t3
  82. add te3=3072,te0 };;
  83. .align 32
  84. .Le_top:
  85. { .mmi; (p0) LDKEY t0=[rk0],2*KSZ // 0/0:rk[0]
  86. (p0) and te33=s3,maskff // 0/0:s3&0xff
  87. (p0) extr.u te22=s2,8,8 } // 0/0:s2>>8&0xff
  88. { .mmi; (p0) LDKEY t1=[rk1],2*KSZ // 0/1:rk[1]
  89. (p0) and te30=s0,maskff // 0/1:s0&0xff
  90. (p0) shr.u te00=s0,twenty4 };; // 0/0:s0>>24
  91. { .mmi; (p0) LDKEY t2=[rk0],2*KSZ // 1/2:rk[2]
  92. (p0) shladd te33=te33,2,te3 // 1/0:te0+s0>>24
  93. (p0) extr.u te23=s3,8,8 } // 1/1:s3>>8&0xff
  94. { .mmi; (p0) LDKEY t3=[rk1],2*KSZ // 1/3:rk[3]
  95. (p0) shladd te30=te30,2,te3 // 1/1:te3+s0
  96. (p0) shr.u te01=s1,twenty4 };; // 1/1:s1>>24
  97. { .mmi; (p0) ld4 te33=[te33] // 2/0:te3[s3&0xff]
  98. (p0) shladd te22=te22,2,te2 // 2/0:te2+s2>>8&0xff
  99. (p0) extr.u te20=s0,8,8 } // 2/2:s0>>8&0xff
  100. { .mmi; (p0) ld4 te30=[te30] // 2/1:te3[s0]
  101. (p0) shladd te23=te23,2,te2 // 2/1:te2+s3>>8
  102. (p0) shr.u te02=s2,twenty4 };; // 2/2:s2>>24
  103. { .mmi; (p0) ld4 te22=[te22] // 3/0:te2[s2>>8]
  104. (p0) shladd te20=te20,2,te2 // 3/2:te2+s0>>8
  105. (p0) extr.u te21=s1,8,8 } // 3/3:s1>>8&0xff
  106. { .mmi; (p0) ld4 te23=[te23] // 3/1:te2[s3>>8]
  107. (p0) shladd te00=te00,2,te0 // 3/0:te0+s0>>24
  108. (p0) shr.u te03=s3,twenty4 };; // 3/3:s3>>24
  109. { .mmi; (p0) ld4 te20=[te20] // 4/2:te2[s0>>8]
  110. (p0) shladd te21=te21,2,te2 // 4/3:te3+s2
  111. (p0) extr.u te11=s1,16,8 } // 4/0:s1>>16&0xff
  112. { .mmi; (p0) ld4 te00=[te00] // 4/0:te0[s0>>24]
  113. (p0) shladd te01=te01,2,te0 // 4/1:te0+s1>>24
  114. (p0) shr.u te13=s3,sixteen };; // 4/2:s3>>16
  115. { .mmi; (p0) ld4 te21=[te21] // 5/3:te2[s1>>8]
  116. (p0) shladd te11=te11,2,te1 // 5/0:te1+s1>>16
  117. (p0) extr.u te12=s2,16,8 } // 5/1:s2>>16&0xff
  118. { .mmi; (p0) ld4 te01=[te01] // 5/1:te0[s1>>24]
  119. (p0) shladd te02=te02,2,te0 // 5/2:te0+s2>>24
  120. (p0) and te31=s1,maskff };; // 5/2:s1&0xff
  121. { .mmi; (p0) ld4 te11=[te11] // 6/0:te1[s1>>16]
  122. (p0) shladd te12=te12,2,te1 // 6/1:te1+s2>>16
  123. (p0) extr.u te10=s0,16,8 } // 6/3:s0>>16&0xff
  124. { .mmi; (p0) ld4 te02=[te02] // 6/2:te0[s2>>24]
  125. (p0) shladd te03=te03,2,te0 // 6/3:te1+s0>>16
  126. (p0) and te32=s2,maskff };; // 6/3:s2&0xff
  127. { .mmi; (p0) ld4 te12=[te12] // 7/1:te1[s2>>16]
  128. (p0) shladd te31=te31,2,te3 // 7/2:te3+s1&0xff
  129. (p0) and te13=te13,maskff} // 7/2:s3>>16&0xff
  130. { .mmi; (p0) ld4 te03=[te03] // 7/3:te0[s3>>24]
  131. (p0) shladd te32=te32,2,te3 // 7/3:te3+s2
  132. (p0) xor t0=t0,te33 };; // 7/0:
  133. { .mmi; (p0) ld4 te31=[te31] // 8/2:te3[s1]
  134. (p0) shladd te13=te13,2,te1 // 8/2:te1+s3>>16
  135. (p0) xor t0=t0,te22 } // 8/0:
  136. { .mmi; (p0) ld4 te32=[te32] // 8/3:te3[s2]
  137. (p0) shladd te10=te10,2,te1 // 8/3:te1+s0>>16
  138. (p0) xor t1=t1,te30 };; // 8/1:
  139. { .mmi; (p0) ld4 te13=[te13] // 9/2:te1[s3>>16]
  140. (p0) xor t0=t0,te00 // 9/0:
  141. (p0) xor t1=t1,te23 } // 9/1:
  142. { .mmi; (p0) ld4 te10=[te10] // 9/3:te1[s0>>16]
  143. (p0) xor t2=t2,te20 // 9/2:
  144. (p0) xor t3=t3,te21 };; // 9/3:
  145. { .mmi; (p0) xor t0=t0,te11 // 10/0:done!
  146. (p0) xor t1=t1,te01 // 10/1:
  147. (p0) xor t2=t2,te02 } // 10/2:
  148. { .mmi; (p0) xor t3=t3,te03 // 10/3:
  149. (p16) cmp.eq p0,p17=r0,r0 };; // 10/clear (p17)
  150. { .mmi; (p0) xor t1=t1,te12 // 11/1:done!
  151. (p0) xor t2=t2,te31 // 11/2:
  152. (p0) xor t3=t3,te32 } // 11/3:
  153. { .mmi; (p17) add te0=4096,te0 // 11/
  154. (p17) add te1=4096,te1 };; // 11/
  155. { .mib; (p0) xor t2=t2,te13 // 12/2:done!
  156. (p0) xor t3=t3,te10 } // 12/3:done!
  157. { .mib; (p17) add te2=4096,te2 // 12/
  158. (p17) add te3=4096,te3 // 12/
  159. br.ctop.sptk .Le_top };;
  160. .Le_end:
  161. { .mib; mov r16=s0
  162. mov r20=s1 }
  163. { .mib; mov r24=s2
  164. mov r28=s3
  165. br.ret.sptk b6 };;
  166. .endp _ia64_AES_encrypt#
  167. // void AES_encrypt (const void *in,void *out,const AES_KEY *key);
  168. .global AES_encrypt#
  169. .proc AES_encrypt#
  170. .align 32
  171. .skip 16
  172. AES_encrypt:
  173. .prologue
  174. .save ar.pfs,pfssave
  175. { .mmi; alloc pfssave=ar.pfs,3,0,12,0
  176. and out0=3,in0
  177. mov r3=ip }
  178. { .mmi; ADDP in0=0,in0
  179. ADDP out11=KSZ*60,in2 // &AES_KEY->rounds
  180. .save ar.lc,lcsave
  181. mov lcsave=ar.lc };;
  182. { .mmi; ld4 out11=[out11] // AES_KEY->rounds
  183. add out8=(AES_Te#-AES_encrypt#),r3 // Te0
  184. .save pr,prsave
  185. mov prsave=pr }
  186. .body
  187. #if defined(_HPUX_SOURCE) // HPUX is big-endian, cut 15+15 cycles...
  188. { .mib; cmp.ne p6,p0=out0,r0
  189. add out0=4,in0
  190. (p6) br.dpnt.many .Le_i_unaligned };;
  191. { .mmi; ld4 out1=[in0],8 // s0
  192. and out9=3,in1
  193. mov twenty4=24 }
  194. { .mmi; ld4 out3=[out0],8 // s1
  195. ADDP rk0=0,in2
  196. mov sixteen=16 };;
  197. { .mmi; ld4 out5=[in0] // s2
  198. cmp.ne p6,p0=out9,r0
  199. mov maskff=0xff }
  200. { .mmb; ld4 out7=[out0] // s3
  201. ADDP rk1=KSZ,in2
  202. br.call.sptk.many b6=_ia64_AES_encrypt };;
  203. { .mib; ADDP in0=4,in1
  204. ADDP in1=0,in1
  205. (p6) br.spnt .Le_o_unaligned };;
  206. { .mii; mov ar.pfs=psfsave
  207. mov ar.lc=lcsave }
  208. { .mmi; st4 [in1]=r16,8 // s0
  209. st4 [in0]=r20,8 // s1
  210. mov pr=prsave,0x1ffff };;
  211. { .mmb; st4 [in1]=r24 // s2
  212. st4 [in0]=r28 // s3
  213. br.ret.sptk.many b0 };;
  214. #endif
  215. .align 32
  216. .Le_i_unaligned:
  217. { .mmi; add out0=1,in0
  218. add out2=2,in0
  219. add out4=3,in0 };;
  220. { .mmi; ld1 r16=[in0],4
  221. ld1 r17=[out0],4 }//;;
  222. { .mmi; ld1 r18=[out2],4
  223. ld1 out1=[out4],4 };; // s0
  224. { .mmi; ld1 r20=[in0],4
  225. ld1 r21=[out0],4 }//;;
  226. { .mmi; ld1 r22=[out2],4
  227. ld1 out3=[out4],4 };; // s1
  228. { .mmi; ld1 r24=[in0],4
  229. ld1 r25=[out0],4 }//;;
  230. { .mmi; ld1 r26=[out2],4
  231. ld1 out5=[out4],4 };; // s2
  232. { .mmi; ld1 r28=[in0]
  233. ld1 r29=[out0] }//;;
  234. { .mmi; ld1 r30=[out2]
  235. ld1 out7=[out4] };; // s3
  236. { .mii;
  237. dep out1=r16,out1,24,8 //;;
  238. dep out3=r20,out3,24,8 }//;;
  239. { .mii; ADDP rk0=0,in2
  240. dep out5=r24,out5,24,8 //;;
  241. dep out7=r28,out7,24,8 };;
  242. { .mii; ADDP rk1=KSZ,in2
  243. dep out1=r17,out1,16,8 //;;
  244. dep out3=r21,out3,16,8 }//;;
  245. { .mii; mov twenty4=24
  246. dep out5=r25,out5,16,8 //;;
  247. dep out7=r29,out7,16,8 };;
  248. { .mii; mov sixteen=16
  249. dep out1=r18,out1,8,8 //;;
  250. dep out3=r22,out3,8,8 }//;;
  251. { .mii; mov maskff=0xff
  252. dep out5=r26,out5,8,8 //;;
  253. dep out7=r30,out7,8,8 };;
  254. { .mib; br.call.sptk.many b6=_ia64_AES_encrypt };;
  255. .Le_o_unaligned:
  256. { .mii; ADDP out0=0,in1
  257. extr.u r17=r16,8,8 // s0
  258. shr.u r19=r16,twenty4 }//;;
  259. { .mii; ADDP out1=1,in1
  260. extr.u r18=r16,16,8
  261. shr.u r23=r20,twenty4 }//;; // s1
  262. { .mii; ADDP out2=2,in1
  263. extr.u r21=r20,8,8
  264. shr.u r22=r20,sixteen }//;;
  265. { .mii; ADDP out3=3,in1
  266. extr.u r25=r24,8,8 // s2
  267. shr.u r27=r24,twenty4 };;
  268. { .mii; st1 [out3]=r16,4
  269. extr.u r26=r24,16,8
  270. shr.u r31=r28,twenty4 }//;; // s3
  271. { .mii; st1 [out2]=r17,4
  272. extr.u r29=r28,8,8
  273. shr.u r30=r28,sixteen }//;;
  274. { .mmi; st1 [out1]=r18,4
  275. st1 [out0]=r19,4 };;
  276. { .mmi; st1 [out3]=r20,4
  277. st1 [out2]=r21,4 }//;;
  278. { .mmi; st1 [out1]=r22,4
  279. st1 [out0]=r23,4 };;
  280. { .mmi; st1 [out3]=r24,4
  281. st1 [out2]=r25,4
  282. mov pr=prsave,0x1ffff }//;;
  283. { .mmi; st1 [out1]=r26,4
  284. st1 [out0]=r27,4
  285. mov ar.pfs=pfssave };;
  286. { .mmi; st1 [out3]=r28
  287. st1 [out2]=r29
  288. mov ar.lc=lcsave }//;;
  289. { .mmb; st1 [out1]=r30
  290. st1 [out0]=r31
  291. br.ret.sptk.many b0 };;
  292. .endp AES_encrypt#
  293. // *AES_decrypt are autogenerated by the following script:
  294. #if 0
  295. #!/usr/bin/env perl
  296. print "// *AES_decrypt are autogenerated by the following script:\n#if 0\n";
  297. open(PROG,'<'.$0); while(<PROG>) { print; } close(PROG);
  298. print "#endif\n";
  299. while(<>) {
  300. $process=1 if (/\.proc\s+_ia64_AES_encrypt/);
  301. next if (!$process);
  302. #s/te00=s0/td00=s0/; s/te00/td00/g;
  303. s/te11=s1/td13=s3/; s/te11/td13/g;
  304. #s/te22=s2/td22=s2/; s/te22/td22/g;
  305. s/te33=s3/td31=s1/; s/te33/td31/g;
  306. #s/te01=s1/td01=s1/; s/te01/td01/g;
  307. s/te12=s2/td10=s0/; s/te12/td10/g;
  308. #s/te23=s3/td23=s3/; s/te23/td23/g;
  309. s/te30=s0/td32=s2/; s/te30/td32/g;
  310. #s/te02=s2/td02=s2/; s/te02/td02/g;
  311. s/te13=s3/td11=s1/; s/te13/td11/g;
  312. #s/te20=s0/td20=s0/; s/te20/td20/g;
  313. s/te31=s1/td33=s3/; s/te31/td33/g;
  314. #s/te03=s3/td03=s3/; s/te03/td03/g;
  315. s/te10=s0/td12=s2/; s/te10/td12/g;
  316. #s/te21=s1/td21=s1/; s/te21/td21/g;
  317. s/te32=s2/td30=s0/; s/te32/td30/g;
  318. s/td/te/g;
  319. s/AES_encrypt/AES_decrypt/g;
  320. s/\.Le_/.Ld_/g;
  321. s/AES_Te#/AES_Td#/g;
  322. print;
  323. exit if (/\.endp\s+AES_decrypt/);
  324. }
  325. #endif
  326. .proc _ia64_AES_decrypt#
  327. // Input: rk0-rk1
  328. // te0
  329. // te3 as AES_KEY->rounds!!!
  330. // s0-s3
  331. // maskff,twenty4,sixteen
  332. // Output: r16,r20,r24,r28 as s0-s3
  333. // Clobber: r16-r31,rk0-rk1,r32-r43
  334. .align 32
  335. _ia64_AES_decrypt:
  336. .prologue
  337. .altrp b6
  338. .body
  339. { .mmi; alloc r16=ar.pfs,12,0,0,8
  340. LDKEY t0=[rk0],2*KSZ
  341. mov pr.rot=1<<16 }
  342. { .mmi; LDKEY t1=[rk1],2*KSZ
  343. add te1=1024,te0
  344. add te3=-3,te3 };;
  345. { .mib; LDKEY t2=[rk0],2*KSZ
  346. mov ar.ec=3 }
  347. { .mib; LDKEY t3=[rk1],2*KSZ
  348. add te2=2048,te0
  349. brp.loop.imp .Ld_top,.Ld_end-16 };;
  350. { .mmi; xor s0=s0,t0
  351. xor s1=s1,t1
  352. mov ar.lc=te3 }
  353. { .mmi; xor s2=s2,t2
  354. xor s3=s3,t3
  355. add te3=3072,te0 };;
  356. .align 32
  357. .Ld_top:
  358. { .mmi; (p0) LDKEY t0=[rk0],2*KSZ // 0/0:rk[0]
  359. (p0) and te31=s1,maskff // 0/0:s3&0xff
  360. (p0) extr.u te22=s2,8,8 } // 0/0:s2>>8&0xff
  361. { .mmi; (p0) LDKEY t1=[rk1],2*KSZ // 0/1:rk[1]
  362. (p0) and te32=s2,maskff // 0/1:s0&0xff
  363. (p0) shr.u te00=s0,twenty4 };; // 0/0:s0>>24
  364. { .mmi; (p0) LDKEY t2=[rk0],2*KSZ // 1/2:rk[2]
  365. (p0) shladd te31=te31,2,te3 // 1/0:te0+s0>>24
  366. (p0) extr.u te23=s3,8,8 } // 1/1:s3>>8&0xff
  367. { .mmi; (p0) LDKEY t3=[rk1],2*KSZ // 1/3:rk[3]
  368. (p0) shladd te32=te32,2,te3 // 1/1:te3+s0
  369. (p0) shr.u te01=s1,twenty4 };; // 1/1:s1>>24
  370. { .mmi; (p0) ld4 te31=[te31] // 2/0:te3[s3&0xff]
  371. (p0) shladd te22=te22,2,te2 // 2/0:te2+s2>>8&0xff
  372. (p0) extr.u te20=s0,8,8 } // 2/2:s0>>8&0xff
  373. { .mmi; (p0) ld4 te32=[te32] // 2/1:te3[s0]
  374. (p0) shladd te23=te23,2,te2 // 2/1:te2+s3>>8
  375. (p0) shr.u te02=s2,twenty4 };; // 2/2:s2>>24
  376. { .mmi; (p0) ld4 te22=[te22] // 3/0:te2[s2>>8]
  377. (p0) shladd te20=te20,2,te2 // 3/2:te2+s0>>8
  378. (p0) extr.u te21=s1,8,8 } // 3/3:s1>>8&0xff
  379. { .mmi; (p0) ld4 te23=[te23] // 3/1:te2[s3>>8]
  380. (p0) shladd te00=te00,2,te0 // 3/0:te0+s0>>24
  381. (p0) shr.u te03=s3,twenty4 };; // 3/3:s3>>24
  382. { .mmi; (p0) ld4 te20=[te20] // 4/2:te2[s0>>8]
  383. (p0) shladd te21=te21,2,te2 // 4/3:te3+s2
  384. (p0) extr.u te13=s3,16,8 } // 4/0:s1>>16&0xff
  385. { .mmi; (p0) ld4 te00=[te00] // 4/0:te0[s0>>24]
  386. (p0) shladd te01=te01,2,te0 // 4/1:te0+s1>>24
  387. (p0) shr.u te11=s1,sixteen };; // 4/2:s3>>16
  388. { .mmi; (p0) ld4 te21=[te21] // 5/3:te2[s1>>8]
  389. (p0) shladd te13=te13,2,te1 // 5/0:te1+s1>>16
  390. (p0) extr.u te10=s0,16,8 } // 5/1:s2>>16&0xff
  391. { .mmi; (p0) ld4 te01=[te01] // 5/1:te0[s1>>24]
  392. (p0) shladd te02=te02,2,te0 // 5/2:te0+s2>>24
  393. (p0) and te33=s3,maskff };; // 5/2:s1&0xff
  394. { .mmi; (p0) ld4 te13=[te13] // 6/0:te1[s1>>16]
  395. (p0) shladd te10=te10,2,te1 // 6/1:te1+s2>>16
  396. (p0) extr.u te12=s2,16,8 } // 6/3:s0>>16&0xff
  397. { .mmi; (p0) ld4 te02=[te02] // 6/2:te0[s2>>24]
  398. (p0) shladd te03=te03,2,te0 // 6/3:te1+s0>>16
  399. (p0) and te30=s0,maskff };; // 6/3:s2&0xff
  400. { .mmi; (p0) ld4 te10=[te10] // 7/1:te1[s2>>16]
  401. (p0) shladd te33=te33,2,te3 // 7/2:te3+s1&0xff
  402. (p0) and te11=te11,maskff} // 7/2:s3>>16&0xff
  403. { .mmi; (p0) ld4 te03=[te03] // 7/3:te0[s3>>24]
  404. (p0) shladd te30=te30,2,te3 // 7/3:te3+s2
  405. (p0) xor t0=t0,te31 };; // 7/0:
  406. { .mmi; (p0) ld4 te33=[te33] // 8/2:te3[s1]
  407. (p0) shladd te11=te11,2,te1 // 8/2:te1+s3>>16
  408. (p0) xor t0=t0,te22 } // 8/0:
  409. { .mmi; (p0) ld4 te30=[te30] // 8/3:te3[s2]
  410. (p0) shladd te12=te12,2,te1 // 8/3:te1+s0>>16
  411. (p0) xor t1=t1,te32 };; // 8/1:
  412. { .mmi; (p0) ld4 te11=[te11] // 9/2:te1[s3>>16]
  413. (p0) xor t0=t0,te00 // 9/0:
  414. (p0) xor t1=t1,te23 } // 9/1:
  415. { .mmi; (p0) ld4 te12=[te12] // 9/3:te1[s0>>16]
  416. (p0) xor t2=t2,te20 // 9/2:
  417. (p0) xor t3=t3,te21 };; // 9/3:
  418. { .mmi; (p0) xor t0=t0,te13 // 10/0:done!
  419. (p0) xor t1=t1,te01 // 10/1:
  420. (p0) xor t2=t2,te02 } // 10/2:
  421. { .mmi; (p0) xor t3=t3,te03 // 10/3:
  422. (p16) cmp.eq p0,p17=r0,r0 };; // 10/clear (p17)
  423. { .mmi; (p0) xor t1=t1,te10 // 11/1:done!
  424. (p0) xor t2=t2,te33 // 11/2:
  425. (p0) xor t3=t3,te30 } // 11/3:
  426. { .mmi; (p17) add te0=4096,te0 // 11/
  427. (p17) add te1=4096,te1 };; // 11/
  428. { .mib; (p0) xor t2=t2,te11 // 12/2:done!
  429. (p0) xor t3=t3,te12 } // 12/3:done!
  430. { .mib; (p17) add te2=4096,te2 // 12/
  431. (p17) add te3=4096,te3 // 12/
  432. br.ctop.sptk .Ld_top };;
  433. .Ld_end:
  434. { .mib; mov r16=s0
  435. mov r20=s1 }
  436. { .mib; mov r24=s2
  437. mov r28=s3
  438. br.ret.sptk b6 };;
  439. .endp _ia64_AES_decrypt#
  440. // void AES_decrypt (const void *in,void *out,const AES_KEY *key);
  441. .global AES_decrypt#
  442. .proc AES_decrypt#
  443. .align 32
  444. .skip 16
  445. AES_decrypt:
  446. .prologue
  447. .save ar.pfs,pfssave
  448. { .mmi; alloc pfssave=ar.pfs,3,0,12,0
  449. and out0=3,in0
  450. mov r3=ip }
  451. { .mmi; ADDP in0=0,in0
  452. ADDP out11=KSZ*60,in2 // &AES_KEY->rounds
  453. .save ar.lc,lcsave
  454. mov lcsave=ar.lc };;
  455. { .mmi; ld4 out11=[out11] // AES_KEY->rounds
  456. add out8=(AES_Td#-AES_decrypt#),r3 // Td0
  457. .save pr,prsave
  458. mov prsave=pr }
  459. .body
  460. #if defined(_HPUX_SOURCE) // HPUX is big-endian, cut 15+15 cycles...
  461. { .mib; cmp.ne p6,p0=out0,r0
  462. add out0=4,in0
  463. (p6) br.dpnt.many .Ld_i_unaligned };;
  464. { .mmi; ld4 out1=[in0],8 // s0
  465. and out9=3,in1
  466. mov twenty4=24 }
  467. { .mmi; ld4 out3=[out0],8 // s1
  468. ADDP rk0=0,in2
  469. mov sixteen=16 };;
  470. { .mmi; ld4 out5=[in0] // s2
  471. cmp.ne p6,p0=out9,r0
  472. mov maskff=0xff }
  473. { .mmb; ld4 out7=[out0] // s3
  474. ADDP rk1=KSZ,in2
  475. br.call.sptk.many b6=_ia64_AES_decrypt };;
  476. { .mib; ADDP in0=4,in1
  477. ADDP in1=0,in1
  478. (p6) br.spnt .Ld_o_unaligned };;
  479. { .mii; mov ar.pfs=pfssave
  480. mov ar.lc=lcsave }
  481. { .mmi; st4 [in1]=r16,8 // s0
  482. st4 [in0]=r20,8 // s1
  483. mov pr=prsave,0x1ffff };;
  484. { .mmb; st4 [in1]=r24 // s2
  485. st4 [in0]=r28 // s3
  486. br.ret.sptk.many b0 };;
  487. #endif
  488. .align 32
  489. .Ld_i_unaligned:
  490. { .mmi; add out0=1,in0
  491. add out2=2,in0
  492. add out4=3,in0 };;
  493. { .mmi; ld1 r16=[in0],4
  494. ld1 r17=[out0],4 }//;;
  495. { .mmi; ld1 r18=[out2],4
  496. ld1 out1=[out4],4 };; // s0
  497. { .mmi; ld1 r20=[in0],4
  498. ld1 r21=[out0],4 }//;;
  499. { .mmi; ld1 r22=[out2],4
  500. ld1 out3=[out4],4 };; // s1
  501. { .mmi; ld1 r24=[in0],4
  502. ld1 r25=[out0],4 }//;;
  503. { .mmi; ld1 r26=[out2],4
  504. ld1 out5=[out4],4 };; // s2
  505. { .mmi; ld1 r28=[in0]
  506. ld1 r29=[out0] }//;;
  507. { .mmi; ld1 r30=[out2]
  508. ld1 out7=[out4] };; // s3
  509. { .mii;
  510. dep out1=r16,out1,24,8 //;;
  511. dep out3=r20,out3,24,8 }//;;
  512. { .mii; ADDP rk0=0,in2
  513. dep out5=r24,out5,24,8 //;;
  514. dep out7=r28,out7,24,8 };;
  515. { .mii; ADDP rk1=KSZ,in2
  516. dep out1=r17,out1,16,8 //;;
  517. dep out3=r21,out3,16,8 }//;;
  518. { .mii; mov twenty4=24
  519. dep out5=r25,out5,16,8 //;;
  520. dep out7=r29,out7,16,8 };;
  521. { .mii; mov sixteen=16
  522. dep out1=r18,out1,8,8 //;;
  523. dep out3=r22,out3,8,8 }//;;
  524. { .mii; mov maskff=0xff
  525. dep out5=r26,out5,8,8 //;;
  526. dep out7=r30,out7,8,8 };;
  527. { .mib; br.call.sptk.many b6=_ia64_AES_decrypt };;
  528. .Ld_o_unaligned:
  529. { .mii; ADDP out0=0,in1
  530. extr.u r17=r16,8,8 // s0
  531. shr.u r19=r16,twenty4 }//;;
  532. { .mii; ADDP out1=1,in1
  533. extr.u r18=r16,16,8
  534. shr.u r23=r20,twenty4 }//;; // s1
  535. { .mii; ADDP out2=2,in1
  536. extr.u r21=r20,8,8
  537. shr.u r22=r20,sixteen }//;;
  538. { .mii; ADDP out3=3,in1
  539. extr.u r25=r24,8,8 // s2
  540. shr.u r27=r24,twenty4 };;
  541. { .mii; st1 [out3]=r16,4
  542. extr.u r26=r24,16,8
  543. shr.u r31=r28,twenty4 }//;; // s3
  544. { .mii; st1 [out2]=r17,4
  545. extr.u r29=r28,8,8
  546. shr.u r30=r28,sixteen }//;;
  547. { .mmi; st1 [out1]=r18,4
  548. st1 [out0]=r19,4 };;
  549. { .mmi; st1 [out3]=r20,4
  550. st1 [out2]=r21,4 }//;;
  551. { .mmi; st1 [out1]=r22,4
  552. st1 [out0]=r23,4 };;
  553. { .mmi; st1 [out3]=r24,4
  554. st1 [out2]=r25,4
  555. mov pr=prsave,0x1ffff }//;;
  556. { .mmi; st1 [out1]=r26,4
  557. st1 [out0]=r27,4
  558. mov ar.pfs=pfssave };;
  559. { .mmi; st1 [out3]=r28
  560. st1 [out2]=r29
  561. mov ar.lc=lcsave }//;;
  562. { .mmb; st1 [out1]=r30
  563. st1 [out0]=r31
  564. br.ret.sptk.many b0 };;
  565. .endp AES_decrypt#
  566. // leave it in .text segment...
  567. .align 64
  568. .global AES_Te#
  569. .type AES_Te#,@object
  570. AES_Te: data4 0xc66363a5, 0xf87c7c84, 0xee777799, 0xf67b7b8d
  571. data4 0xfff2f20d, 0xd66b6bbd, 0xde6f6fb1, 0x91c5c554
  572. data4 0x60303050, 0x02010103, 0xce6767a9, 0x562b2b7d
  573. data4 0xe7fefe19, 0xb5d7d762, 0x4dababe6, 0xec76769a
  574. data4 0x8fcaca45, 0x1f82829d, 0x89c9c940, 0xfa7d7d87
  575. data4 0xeffafa15, 0xb25959eb, 0x8e4747c9, 0xfbf0f00b
  576. data4 0x41adadec, 0xb3d4d467, 0x5fa2a2fd, 0x45afafea
  577. data4 0x239c9cbf, 0x53a4a4f7, 0xe4727296, 0x9bc0c05b
  578. data4 0x75b7b7c2, 0xe1fdfd1c, 0x3d9393ae, 0x4c26266a
  579. data4 0x6c36365a, 0x7e3f3f41, 0xf5f7f702, 0x83cccc4f
  580. data4 0x6834345c, 0x51a5a5f4, 0xd1e5e534, 0xf9f1f108
  581. data4 0xe2717193, 0xabd8d873, 0x62313153, 0x2a15153f
  582. data4 0x0804040c, 0x95c7c752, 0x46232365, 0x9dc3c35e
  583. data4 0x30181828, 0x379696a1, 0x0a05050f, 0x2f9a9ab5
  584. data4 0x0e070709, 0x24121236, 0x1b80809b, 0xdfe2e23d
  585. data4 0xcdebeb26, 0x4e272769, 0x7fb2b2cd, 0xea75759f
  586. data4 0x1209091b, 0x1d83839e, 0x582c2c74, 0x341a1a2e
  587. data4 0x361b1b2d, 0xdc6e6eb2, 0xb45a5aee, 0x5ba0a0fb
  588. data4 0xa45252f6, 0x763b3b4d, 0xb7d6d661, 0x7db3b3ce
  589. data4 0x5229297b, 0xdde3e33e, 0x5e2f2f71, 0x13848497
  590. data4 0xa65353f5, 0xb9d1d168, 0x00000000, 0xc1eded2c
  591. data4 0x40202060, 0xe3fcfc1f, 0x79b1b1c8, 0xb65b5bed
  592. data4 0xd46a6abe, 0x8dcbcb46, 0x67bebed9, 0x7239394b
  593. data4 0x944a4ade, 0x984c4cd4, 0xb05858e8, 0x85cfcf4a
  594. data4 0xbbd0d06b, 0xc5efef2a, 0x4faaaae5, 0xedfbfb16
  595. data4 0x864343c5, 0x9a4d4dd7, 0x66333355, 0x11858594
  596. data4 0x8a4545cf, 0xe9f9f910, 0x04020206, 0xfe7f7f81
  597. data4 0xa05050f0, 0x783c3c44, 0x259f9fba, 0x4ba8a8e3
  598. data4 0xa25151f3, 0x5da3a3fe, 0x804040c0, 0x058f8f8a
  599. data4 0x3f9292ad, 0x219d9dbc, 0x70383848, 0xf1f5f504
  600. data4 0x63bcbcdf, 0x77b6b6c1, 0xafdada75, 0x42212163
  601. data4 0x20101030, 0xe5ffff1a, 0xfdf3f30e, 0xbfd2d26d
  602. data4 0x81cdcd4c, 0x180c0c14, 0x26131335, 0xc3ecec2f
  603. data4 0xbe5f5fe1, 0x359797a2, 0x884444cc, 0x2e171739
  604. data4 0x93c4c457, 0x55a7a7f2, 0xfc7e7e82, 0x7a3d3d47
  605. data4 0xc86464ac, 0xba5d5de7, 0x3219192b, 0xe6737395
  606. data4 0xc06060a0, 0x19818198, 0x9e4f4fd1, 0xa3dcdc7f
  607. data4 0x44222266, 0x542a2a7e, 0x3b9090ab, 0x0b888883
  608. data4 0x8c4646ca, 0xc7eeee29, 0x6bb8b8d3, 0x2814143c
  609. data4 0xa7dede79, 0xbc5e5ee2, 0x160b0b1d, 0xaddbdb76
  610. data4 0xdbe0e03b, 0x64323256, 0x743a3a4e, 0x140a0a1e
  611. data4 0x924949db, 0x0c06060a, 0x4824246c, 0xb85c5ce4
  612. data4 0x9fc2c25d, 0xbdd3d36e, 0x43acacef, 0xc46262a6
  613. data4 0x399191a8, 0x319595a4, 0xd3e4e437, 0xf279798b
  614. data4 0xd5e7e732, 0x8bc8c843, 0x6e373759, 0xda6d6db7
  615. data4 0x018d8d8c, 0xb1d5d564, 0x9c4e4ed2, 0x49a9a9e0
  616. data4 0xd86c6cb4, 0xac5656fa, 0xf3f4f407, 0xcfeaea25
  617. data4 0xca6565af, 0xf47a7a8e, 0x47aeaee9, 0x10080818
  618. data4 0x6fbabad5, 0xf0787888, 0x4a25256f, 0x5c2e2e72
  619. data4 0x381c1c24, 0x57a6a6f1, 0x73b4b4c7, 0x97c6c651
  620. data4 0xcbe8e823, 0xa1dddd7c, 0xe874749c, 0x3e1f1f21
  621. data4 0x964b4bdd, 0x61bdbddc, 0x0d8b8b86, 0x0f8a8a85
  622. data4 0xe0707090, 0x7c3e3e42, 0x71b5b5c4, 0xcc6666aa
  623. data4 0x904848d8, 0x06030305, 0xf7f6f601, 0x1c0e0e12
  624. data4 0xc26161a3, 0x6a35355f, 0xae5757f9, 0x69b9b9d0
  625. data4 0x17868691, 0x99c1c158, 0x3a1d1d27, 0x279e9eb9
  626. data4 0xd9e1e138, 0xebf8f813, 0x2b9898b3, 0x22111133
  627. data4 0xd26969bb, 0xa9d9d970, 0x078e8e89, 0x339494a7
  628. data4 0x2d9b9bb6, 0x3c1e1e22, 0x15878792, 0xc9e9e920
  629. data4 0x87cece49, 0xaa5555ff, 0x50282878, 0xa5dfdf7a
  630. data4 0x038c8c8f, 0x59a1a1f8, 0x09898980, 0x1a0d0d17
  631. data4 0x65bfbfda, 0xd7e6e631, 0x844242c6, 0xd06868b8
  632. data4 0x824141c3, 0x299999b0, 0x5a2d2d77, 0x1e0f0f11
  633. data4 0x7bb0b0cb, 0xa85454fc, 0x6dbbbbd6, 0x2c16163a
  634. // Te1:
  635. data4 0xa5c66363, 0x84f87c7c, 0x99ee7777, 0x8df67b7b
  636. data4 0x0dfff2f2, 0xbdd66b6b, 0xb1de6f6f, 0x5491c5c5
  637. data4 0x50603030, 0x03020101, 0xa9ce6767, 0x7d562b2b
  638. data4 0x19e7fefe, 0x62b5d7d7, 0xe64dabab, 0x9aec7676
  639. data4 0x458fcaca, 0x9d1f8282, 0x4089c9c9, 0x87fa7d7d
  640. data4 0x15effafa, 0xebb25959, 0xc98e4747, 0x0bfbf0f0
  641. data4 0xec41adad, 0x67b3d4d4, 0xfd5fa2a2, 0xea45afaf
  642. data4 0xbf239c9c, 0xf753a4a4, 0x96e47272, 0x5b9bc0c0
  643. data4 0xc275b7b7, 0x1ce1fdfd, 0xae3d9393, 0x6a4c2626
  644. data4 0x5a6c3636, 0x417e3f3f, 0x02f5f7f7, 0x4f83cccc
  645. data4 0x5c683434, 0xf451a5a5, 0x34d1e5e5, 0x08f9f1f1
  646. data4 0x93e27171, 0x73abd8d8, 0x53623131, 0x3f2a1515
  647. data4 0x0c080404, 0x5295c7c7, 0x65462323, 0x5e9dc3c3
  648. data4 0x28301818, 0xa1379696, 0x0f0a0505, 0xb52f9a9a
  649. data4 0x090e0707, 0x36241212, 0x9b1b8080, 0x3ddfe2e2
  650. data4 0x26cdebeb, 0x694e2727, 0xcd7fb2b2, 0x9fea7575
  651. data4 0x1b120909, 0x9e1d8383, 0x74582c2c, 0x2e341a1a
  652. data4 0x2d361b1b, 0xb2dc6e6e, 0xeeb45a5a, 0xfb5ba0a0
  653. data4 0xf6a45252, 0x4d763b3b, 0x61b7d6d6, 0xce7db3b3
  654. data4 0x7b522929, 0x3edde3e3, 0x715e2f2f, 0x97138484
  655. data4 0xf5a65353, 0x68b9d1d1, 0x00000000, 0x2cc1eded
  656. data4 0x60402020, 0x1fe3fcfc, 0xc879b1b1, 0xedb65b5b
  657. data4 0xbed46a6a, 0x468dcbcb, 0xd967bebe, 0x4b723939
  658. data4 0xde944a4a, 0xd4984c4c, 0xe8b05858, 0x4a85cfcf
  659. data4 0x6bbbd0d0, 0x2ac5efef, 0xe54faaaa, 0x16edfbfb
  660. data4 0xc5864343, 0xd79a4d4d, 0x55663333, 0x94118585
  661. data4 0xcf8a4545, 0x10e9f9f9, 0x06040202, 0x81fe7f7f
  662. data4 0xf0a05050, 0x44783c3c, 0xba259f9f, 0xe34ba8a8
  663. data4 0xf3a25151, 0xfe5da3a3, 0xc0804040, 0x8a058f8f
  664. data4 0xad3f9292, 0xbc219d9d, 0x48703838, 0x04f1f5f5
  665. data4 0xdf63bcbc, 0xc177b6b6, 0x75afdada, 0x63422121
  666. data4 0x30201010, 0x1ae5ffff, 0x0efdf3f3, 0x6dbfd2d2
  667. data4 0x4c81cdcd, 0x14180c0c, 0x35261313, 0x2fc3ecec
  668. data4 0xe1be5f5f, 0xa2359797, 0xcc884444, 0x392e1717
  669. data4 0x5793c4c4, 0xf255a7a7, 0x82fc7e7e, 0x477a3d3d
  670. data4 0xacc86464, 0xe7ba5d5d, 0x2b321919, 0x95e67373
  671. data4 0xa0c06060, 0x98198181, 0xd19e4f4f, 0x7fa3dcdc
  672. data4 0x66442222, 0x7e542a2a, 0xab3b9090, 0x830b8888
  673. data4 0xca8c4646, 0x29c7eeee, 0xd36bb8b8, 0x3c281414
  674. data4 0x79a7dede, 0xe2bc5e5e, 0x1d160b0b, 0x76addbdb
  675. data4 0x3bdbe0e0, 0x56643232, 0x4e743a3a, 0x1e140a0a
  676. data4 0xdb924949, 0x0a0c0606, 0x6c482424, 0xe4b85c5c
  677. data4 0x5d9fc2c2, 0x6ebdd3d3, 0xef43acac, 0xa6c46262
  678. data4 0xa8399191, 0xa4319595, 0x37d3e4e4, 0x8bf27979
  679. data4 0x32d5e7e7, 0x438bc8c8, 0x596e3737, 0xb7da6d6d
  680. data4 0x8c018d8d, 0x64b1d5d5, 0xd29c4e4e, 0xe049a9a9
  681. data4 0xb4d86c6c, 0xfaac5656, 0x07f3f4f4, 0x25cfeaea
  682. data4 0xafca6565, 0x8ef47a7a, 0xe947aeae, 0x18100808
  683. data4 0xd56fbaba, 0x88f07878, 0x6f4a2525, 0x725c2e2e
  684. data4 0x24381c1c, 0xf157a6a6, 0xc773b4b4, 0x5197c6c6
  685. data4 0x23cbe8e8, 0x7ca1dddd, 0x9ce87474, 0x213e1f1f
  686. data4 0xdd964b4b, 0xdc61bdbd, 0x860d8b8b, 0x850f8a8a
  687. data4 0x90e07070, 0x427c3e3e, 0xc471b5b5, 0xaacc6666
  688. data4 0xd8904848, 0x05060303, 0x01f7f6f6, 0x121c0e0e
  689. data4 0xa3c26161, 0x5f6a3535, 0xf9ae5757, 0xd069b9b9
  690. data4 0x91178686, 0x5899c1c1, 0x273a1d1d, 0xb9279e9e
  691. data4 0x38d9e1e1, 0x13ebf8f8, 0xb32b9898, 0x33221111
  692. data4 0xbbd26969, 0x70a9d9d9, 0x89078e8e, 0xa7339494
  693. data4 0xb62d9b9b, 0x223c1e1e, 0x92158787, 0x20c9e9e9
  694. data4 0x4987cece, 0xffaa5555, 0x78502828, 0x7aa5dfdf
  695. data4 0x8f038c8c, 0xf859a1a1, 0x80098989, 0x171a0d0d
  696. data4 0xda65bfbf, 0x31d7e6e6, 0xc6844242, 0xb8d06868
  697. data4 0xc3824141, 0xb0299999, 0x775a2d2d, 0x111e0f0f
  698. data4 0xcb7bb0b0, 0xfca85454, 0xd66dbbbb, 0x3a2c1616
  699. // Te2:
  700. data4 0x63a5c663, 0x7c84f87c, 0x7799ee77, 0x7b8df67b
  701. data4 0xf20dfff2, 0x6bbdd66b, 0x6fb1de6f, 0xc55491c5
  702. data4 0x30506030, 0x01030201, 0x67a9ce67, 0x2b7d562b
  703. data4 0xfe19e7fe, 0xd762b5d7, 0xabe64dab, 0x769aec76
  704. data4 0xca458fca, 0x829d1f82, 0xc94089c9, 0x7d87fa7d
  705. data4 0xfa15effa, 0x59ebb259, 0x47c98e47, 0xf00bfbf0
  706. data4 0xadec41ad, 0xd467b3d4, 0xa2fd5fa2, 0xafea45af
  707. data4 0x9cbf239c, 0xa4f753a4, 0x7296e472, 0xc05b9bc0
  708. data4 0xb7c275b7, 0xfd1ce1fd, 0x93ae3d93, 0x266a4c26
  709. data4 0x365a6c36, 0x3f417e3f, 0xf702f5f7, 0xcc4f83cc
  710. data4 0x345c6834, 0xa5f451a5, 0xe534d1e5, 0xf108f9f1
  711. data4 0x7193e271, 0xd873abd8, 0x31536231, 0x153f2a15
  712. data4 0x040c0804, 0xc75295c7, 0x23654623, 0xc35e9dc3
  713. data4 0x18283018, 0x96a13796, 0x050f0a05, 0x9ab52f9a
  714. data4 0x07090e07, 0x12362412, 0x809b1b80, 0xe23ddfe2
  715. data4 0xeb26cdeb, 0x27694e27, 0xb2cd7fb2, 0x759fea75
  716. data4 0x091b1209, 0x839e1d83, 0x2c74582c, 0x1a2e341a
  717. data4 0x1b2d361b, 0x6eb2dc6e, 0x5aeeb45a, 0xa0fb5ba0
  718. data4 0x52f6a452, 0x3b4d763b, 0xd661b7d6, 0xb3ce7db3
  719. data4 0x297b5229, 0xe33edde3, 0x2f715e2f, 0x84971384
  720. data4 0x53f5a653, 0xd168b9d1, 0x00000000, 0xed2cc1ed
  721. data4 0x20604020, 0xfc1fe3fc, 0xb1c879b1, 0x5bedb65b
  722. data4 0x6abed46a, 0xcb468dcb, 0xbed967be, 0x394b7239
  723. data4 0x4ade944a, 0x4cd4984c, 0x58e8b058, 0xcf4a85cf
  724. data4 0xd06bbbd0, 0xef2ac5ef, 0xaae54faa, 0xfb16edfb
  725. data4 0x43c58643, 0x4dd79a4d, 0x33556633, 0x85941185
  726. data4 0x45cf8a45, 0xf910e9f9, 0x02060402, 0x7f81fe7f
  727. data4 0x50f0a050, 0x3c44783c, 0x9fba259f, 0xa8e34ba8
  728. data4 0x51f3a251, 0xa3fe5da3, 0x40c08040, 0x8f8a058f
  729. data4 0x92ad3f92, 0x9dbc219d, 0x38487038, 0xf504f1f5
  730. data4 0xbcdf63bc, 0xb6c177b6, 0xda75afda, 0x21634221
  731. data4 0x10302010, 0xff1ae5ff, 0xf30efdf3, 0xd26dbfd2
  732. data4 0xcd4c81cd, 0x0c14180c, 0x13352613, 0xec2fc3ec
  733. data4 0x5fe1be5f, 0x97a23597, 0x44cc8844, 0x17392e17
  734. data4 0xc45793c4, 0xa7f255a7, 0x7e82fc7e, 0x3d477a3d
  735. data4 0x64acc864, 0x5de7ba5d, 0x192b3219, 0x7395e673
  736. data4 0x60a0c060, 0x81981981, 0x4fd19e4f, 0xdc7fa3dc
  737. data4 0x22664422, 0x2a7e542a, 0x90ab3b90, 0x88830b88
  738. data4 0x46ca8c46, 0xee29c7ee, 0xb8d36bb8, 0x143c2814
  739. data4 0xde79a7de, 0x5ee2bc5e, 0x0b1d160b, 0xdb76addb
  740. data4 0xe03bdbe0, 0x32566432, 0x3a4e743a, 0x0a1e140a
  741. data4 0x49db9249, 0x060a0c06, 0x246c4824, 0x5ce4b85c
  742. data4 0xc25d9fc2, 0xd36ebdd3, 0xacef43ac, 0x62a6c462
  743. data4 0x91a83991, 0x95a43195, 0xe437d3e4, 0x798bf279
  744. data4 0xe732d5e7, 0xc8438bc8, 0x37596e37, 0x6db7da6d
  745. data4 0x8d8c018d, 0xd564b1d5, 0x4ed29c4e, 0xa9e049a9
  746. data4 0x6cb4d86c, 0x56faac56, 0xf407f3f4, 0xea25cfea
  747. data4 0x65afca65, 0x7a8ef47a, 0xaee947ae, 0x08181008
  748. data4 0xbad56fba, 0x7888f078, 0x256f4a25, 0x2e725c2e
  749. data4 0x1c24381c, 0xa6f157a6, 0xb4c773b4, 0xc65197c6
  750. data4 0xe823cbe8, 0xdd7ca1dd, 0x749ce874, 0x1f213e1f
  751. data4 0x4bdd964b, 0xbddc61bd, 0x8b860d8b, 0x8a850f8a
  752. data4 0x7090e070, 0x3e427c3e, 0xb5c471b5, 0x66aacc66
  753. data4 0x48d89048, 0x03050603, 0xf601f7f6, 0x0e121c0e
  754. data4 0x61a3c261, 0x355f6a35, 0x57f9ae57, 0xb9d069b9
  755. data4 0x86911786, 0xc15899c1, 0x1d273a1d, 0x9eb9279e
  756. data4 0xe138d9e1, 0xf813ebf8, 0x98b32b98, 0x11332211
  757. data4 0x69bbd269, 0xd970a9d9, 0x8e89078e, 0x94a73394
  758. data4 0x9bb62d9b, 0x1e223c1e, 0x87921587, 0xe920c9e9
  759. data4 0xce4987ce, 0x55ffaa55, 0x28785028, 0xdf7aa5df
  760. data4 0x8c8f038c, 0xa1f859a1, 0x89800989, 0x0d171a0d
  761. data4 0xbfda65bf, 0xe631d7e6, 0x42c68442, 0x68b8d068
  762. data4 0x41c38241, 0x99b02999, 0x2d775a2d, 0x0f111e0f
  763. data4 0xb0cb7bb0, 0x54fca854, 0xbbd66dbb, 0x163a2c16
  764. // Te3:
  765. data4 0x6363a5c6, 0x7c7c84f8, 0x777799ee, 0x7b7b8df6
  766. data4 0xf2f20dff, 0x6b6bbdd6, 0x6f6fb1de, 0xc5c55491
  767. data4 0x30305060, 0x01010302, 0x6767a9ce, 0x2b2b7d56
  768. data4 0xfefe19e7, 0xd7d762b5, 0xababe64d, 0x76769aec
  769. data4 0xcaca458f, 0x82829d1f, 0xc9c94089, 0x7d7d87fa
  770. data4 0xfafa15ef, 0x5959ebb2, 0x4747c98e, 0xf0f00bfb
  771. data4 0xadadec41, 0xd4d467b3, 0xa2a2fd5f, 0xafafea45
  772. data4 0x9c9cbf23, 0xa4a4f753, 0x727296e4, 0xc0c05b9b
  773. data4 0xb7b7c275, 0xfdfd1ce1, 0x9393ae3d, 0x26266a4c
  774. data4 0x36365a6c, 0x3f3f417e, 0xf7f702f5, 0xcccc4f83
  775. data4 0x34345c68, 0xa5a5f451, 0xe5e534d1, 0xf1f108f9
  776. data4 0x717193e2, 0xd8d873ab, 0x31315362, 0x15153f2a
  777. data4 0x04040c08, 0xc7c75295, 0x23236546, 0xc3c35e9d
  778. data4 0x18182830, 0x9696a137, 0x05050f0a, 0x9a9ab52f
  779. data4 0x0707090e, 0x12123624, 0x80809b1b, 0xe2e23ddf
  780. data4 0xebeb26cd, 0x2727694e, 0xb2b2cd7f, 0x75759fea
  781. data4 0x09091b12, 0x83839e1d, 0x2c2c7458, 0x1a1a2e34
  782. data4 0x1b1b2d36, 0x6e6eb2dc, 0x5a5aeeb4, 0xa0a0fb5b
  783. data4 0x5252f6a4, 0x3b3b4d76, 0xd6d661b7, 0xb3b3ce7d
  784. data4 0x29297b52, 0xe3e33edd, 0x2f2f715e, 0x84849713
  785. data4 0x5353f5a6, 0xd1d168b9, 0x00000000, 0xeded2cc1
  786. data4 0x20206040, 0xfcfc1fe3, 0xb1b1c879, 0x5b5bedb6
  787. data4 0x6a6abed4, 0xcbcb468d, 0xbebed967, 0x39394b72
  788. data4 0x4a4ade94, 0x4c4cd498, 0x5858e8b0, 0xcfcf4a85
  789. data4 0xd0d06bbb, 0xefef2ac5, 0xaaaae54f, 0xfbfb16ed
  790. data4 0x4343c586, 0x4d4dd79a, 0x33335566, 0x85859411
  791. data4 0x4545cf8a, 0xf9f910e9, 0x02020604, 0x7f7f81fe
  792. data4 0x5050f0a0, 0x3c3c4478, 0x9f9fba25, 0xa8a8e34b
  793. data4 0x5151f3a2, 0xa3a3fe5d, 0x4040c080, 0x8f8f8a05
  794. data4 0x9292ad3f, 0x9d9dbc21, 0x38384870, 0xf5f504f1
  795. data4 0xbcbcdf63, 0xb6b6c177, 0xdada75af, 0x21216342
  796. data4 0x10103020, 0xffff1ae5, 0xf3f30efd, 0xd2d26dbf
  797. data4 0xcdcd4c81, 0x0c0c1418, 0x13133526, 0xecec2fc3
  798. data4 0x5f5fe1be, 0x9797a235, 0x4444cc88, 0x1717392e
  799. data4 0xc4c45793, 0xa7a7f255, 0x7e7e82fc, 0x3d3d477a
  800. data4 0x6464acc8, 0x5d5de7ba, 0x19192b32, 0x737395e6
  801. data4 0x6060a0c0, 0x81819819, 0x4f4fd19e, 0xdcdc7fa3
  802. data4 0x22226644, 0x2a2a7e54, 0x9090ab3b, 0x8888830b
  803. data4 0x4646ca8c, 0xeeee29c7, 0xb8b8d36b, 0x14143c28
  804. data4 0xdede79a7, 0x5e5ee2bc, 0x0b0b1d16, 0xdbdb76ad
  805. data4 0xe0e03bdb, 0x32325664, 0x3a3a4e74, 0x0a0a1e14
  806. data4 0x4949db92, 0x06060a0c, 0x24246c48, 0x5c5ce4b8
  807. data4 0xc2c25d9f, 0xd3d36ebd, 0xacacef43, 0x6262a6c4
  808. data4 0x9191a839, 0x9595a431, 0xe4e437d3, 0x79798bf2
  809. data4 0xe7e732d5, 0xc8c8438b, 0x3737596e, 0x6d6db7da
  810. data4 0x8d8d8c01, 0xd5d564b1, 0x4e4ed29c, 0xa9a9e049
  811. data4 0x6c6cb4d8, 0x5656faac, 0xf4f407f3, 0xeaea25cf
  812. data4 0x6565afca, 0x7a7a8ef4, 0xaeaee947, 0x08081810
  813. data4 0xbabad56f, 0x787888f0, 0x25256f4a, 0x2e2e725c
  814. data4 0x1c1c2438, 0xa6a6f157, 0xb4b4c773, 0xc6c65197
  815. data4 0xe8e823cb, 0xdddd7ca1, 0x74749ce8, 0x1f1f213e
  816. data4 0x4b4bdd96, 0xbdbddc61, 0x8b8b860d, 0x8a8a850f
  817. data4 0x707090e0, 0x3e3e427c, 0xb5b5c471, 0x6666aacc
  818. data4 0x4848d890, 0x03030506, 0xf6f601f7, 0x0e0e121c
  819. data4 0x6161a3c2, 0x35355f6a, 0x5757f9ae, 0xb9b9d069
  820. data4 0x86869117, 0xc1c15899, 0x1d1d273a, 0x9e9eb927
  821. data4 0xe1e138d9, 0xf8f813eb, 0x9898b32b, 0x11113322
  822. data4 0x6969bbd2, 0xd9d970a9, 0x8e8e8907, 0x9494a733
  823. data4 0x9b9bb62d, 0x1e1e223c, 0x87879215, 0xe9e920c9
  824. data4 0xcece4987, 0x5555ffaa, 0x28287850, 0xdfdf7aa5
  825. data4 0x8c8c8f03, 0xa1a1f859, 0x89898009, 0x0d0d171a
  826. data4 0xbfbfda65, 0xe6e631d7, 0x4242c684, 0x6868b8d0
  827. data4 0x4141c382, 0x9999b029, 0x2d2d775a, 0x0f0f111e
  828. data4 0xb0b0cb7b, 0x5454fca8, 0xbbbbd66d, 0x16163a2c
  829. // Te4:
  830. data4 0x63000000, 0x7c000000, 0x77000000, 0x7b000000
  831. data4 0xf2000000, 0x6b000000, 0x6f000000, 0xc5000000
  832. data4 0x30000000, 0x01000000, 0x67000000, 0x2b000000
  833. data4 0xfe000000, 0xd7000000, 0xab000000, 0x76000000
  834. data4 0xca000000, 0x82000000, 0xc9000000, 0x7d000000
  835. data4 0xfa000000, 0x59000000, 0x47000000, 0xf0000000
  836. data4 0xad000000, 0xd4000000, 0xa2000000, 0xaf000000
  837. data4 0x9c000000, 0xa4000000, 0x72000000, 0xc0000000
  838. data4 0xb7000000, 0xfd000000, 0x93000000, 0x26000000
  839. data4 0x36000000, 0x3f000000, 0xf7000000, 0xcc000000
  840. data4 0x34000000, 0xa5000000, 0xe5000000, 0xf1000000
  841. data4 0x71000000, 0xd8000000, 0x31000000, 0x15000000
  842. data4 0x04000000, 0xc7000000, 0x23000000, 0xc3000000
  843. data4 0x18000000, 0x96000000, 0x05000000, 0x9a000000
  844. data4 0x07000000, 0x12000000, 0x80000000, 0xe2000000
  845. data4 0xeb000000, 0x27000000, 0xb2000000, 0x75000000
  846. data4 0x09000000, 0x83000000, 0x2c000000, 0x1a000000
  847. data4 0x1b000000, 0x6e000000, 0x5a000000, 0xa0000000
  848. data4 0x52000000, 0x3b000000, 0xd6000000, 0xb3000000
  849. data4 0x29000000, 0xe3000000, 0x2f000000, 0x84000000
  850. data4 0x53000000, 0xd1000000, 0x00000000, 0xed000000
  851. data4 0x20000000, 0xfc000000, 0xb1000000, 0x5b000000
  852. data4 0x6a000000, 0xcb000000, 0xbe000000, 0x39000000
  853. data4 0x4a000000, 0x4c000000, 0x58000000, 0xcf000000
  854. data4 0xd0000000, 0xef000000, 0xaa000000, 0xfb000000
  855. data4 0x43000000, 0x4d000000, 0x33000000, 0x85000000
  856. data4 0x45000000, 0xf9000000, 0x02000000, 0x7f000000
  857. data4 0x50000000, 0x3c000000, 0x9f000000, 0xa8000000
  858. data4 0x51000000, 0xa3000000, 0x40000000, 0x8f000000
  859. data4 0x92000000, 0x9d000000, 0x38000000, 0xf5000000
  860. data4 0xbc000000, 0xb6000000, 0xda000000, 0x21000000
  861. data4 0x10000000, 0xff000000, 0xf3000000, 0xd2000000
  862. data4 0xcd000000, 0x0c000000, 0x13000000, 0xec000000
  863. data4 0x5f000000, 0x97000000, 0x44000000, 0x17000000
  864. data4 0xc4000000, 0xa7000000, 0x7e000000, 0x3d000000
  865. data4 0x64000000, 0x5d000000, 0x19000000, 0x73000000
  866. data4 0x60000000, 0x81000000, 0x4f000000, 0xdc000000
  867. data4 0x22000000, 0x2a000000, 0x90000000, 0x88000000
  868. data4 0x46000000, 0xee000000, 0xb8000000, 0x14000000
  869. data4 0xde000000, 0x5e000000, 0x0b000000, 0xdb000000
  870. data4 0xe0000000, 0x32000000, 0x3a000000, 0x0a000000
  871. data4 0x49000000, 0x06000000, 0x24000000, 0x5c000000
  872. data4 0xc2000000, 0xd3000000, 0xac000000, 0x62000000
  873. data4 0x91000000, 0x95000000, 0xe4000000, 0x79000000
  874. data4 0xe7000000, 0xc8000000, 0x37000000, 0x6d000000
  875. data4 0x8d000000, 0xd5000000, 0x4e000000, 0xa9000000
  876. data4 0x6c000000, 0x56000000, 0xf4000000, 0xea000000
  877. data4 0x65000000, 0x7a000000, 0xae000000, 0x08000000
  878. data4 0xba000000, 0x78000000, 0x25000000, 0x2e000000
  879. data4 0x1c000000, 0xa6000000, 0xb4000000, 0xc6000000
  880. data4 0xe8000000, 0xdd000000, 0x74000000, 0x1f000000
  881. data4 0x4b000000, 0xbd000000, 0x8b000000, 0x8a000000
  882. data4 0x70000000, 0x3e000000, 0xb5000000, 0x66000000
  883. data4 0x48000000, 0x03000000, 0xf6000000, 0x0e000000
  884. data4 0x61000000, 0x35000000, 0x57000000, 0xb9000000
  885. data4 0x86000000, 0xc1000000, 0x1d000000, 0x9e000000
  886. data4 0xe1000000, 0xf8000000, 0x98000000, 0x11000000
  887. data4 0x69000000, 0xd9000000, 0x8e000000, 0x94000000
  888. data4 0x9b000000, 0x1e000000, 0x87000000, 0xe9000000
  889. data4 0xce000000, 0x55000000, 0x28000000, 0xdf000000
  890. data4 0x8c000000, 0xa1000000, 0x89000000, 0x0d000000
  891. data4 0xbf000000, 0xe6000000, 0x42000000, 0x68000000
  892. data4 0x41000000, 0x99000000, 0x2d000000, 0x0f000000
  893. data4 0xb0000000, 0x54000000, 0xbb000000, 0x16000000
  894. // Te5:
  895. data4 0x00630000, 0x007c0000, 0x00770000, 0x007b0000
  896. data4 0x00f20000, 0x006b0000, 0x006f0000, 0x00c50000
  897. data4 0x00300000, 0x00010000, 0x00670000, 0x002b0000
  898. data4 0x00fe0000, 0x00d70000, 0x00ab0000, 0x00760000
  899. data4 0x00ca0000, 0x00820000, 0x00c90000, 0x007d0000
  900. data4 0x00fa0000, 0x00590000, 0x00470000, 0x00f00000
  901. data4 0x00ad0000, 0x00d40000, 0x00a20000, 0x00af0000
  902. data4 0x009c0000, 0x00a40000, 0x00720000, 0x00c00000
  903. data4 0x00b70000, 0x00fd0000, 0x00930000, 0x00260000
  904. data4 0x00360000, 0x003f0000, 0x00f70000, 0x00cc0000
  905. data4 0x00340000, 0x00a50000, 0x00e50000, 0x00f10000
  906. data4 0x00710000, 0x00d80000, 0x00310000, 0x00150000
  907. data4 0x00040000, 0x00c70000, 0x00230000, 0x00c30000
  908. data4 0x00180000, 0x00960000, 0x00050000, 0x009a0000
  909. data4 0x00070000, 0x00120000, 0x00800000, 0x00e20000
  910. data4 0x00eb0000, 0x00270000, 0x00b20000, 0x00750000
  911. data4 0x00090000, 0x00830000, 0x002c0000, 0x001a0000
  912. data4 0x001b0000, 0x006e0000, 0x005a0000, 0x00a00000
  913. data4 0x00520000, 0x003b0000, 0x00d60000, 0x00b30000
  914. data4 0x00290000, 0x00e30000, 0x002f0000, 0x00840000
  915. data4 0x00530000, 0x00d10000, 0x00000000, 0x00ed0000
  916. data4 0x00200000, 0x00fc0000, 0x00b10000, 0x005b0000
  917. data4 0x006a0000, 0x00cb0000, 0x00be0000, 0x00390000
  918. data4 0x004a0000, 0x004c0000, 0x00580000, 0x00cf0000
  919. data4 0x00d00000, 0x00ef0000, 0x00aa0000, 0x00fb0000
  920. data4 0x00430000, 0x004d0000, 0x00330000, 0x00850000
  921. data4 0x00450000, 0x00f90000, 0x00020000, 0x007f0000
  922. data4 0x00500000, 0x003c0000, 0x009f0000, 0x00a80000
  923. data4 0x00510000, 0x00a30000, 0x00400000, 0x008f0000
  924. data4 0x00920000, 0x009d0000, 0x00380000, 0x00f50000
  925. data4 0x00bc0000, 0x00b60000, 0x00da0000, 0x00210000
  926. data4 0x00100000, 0x00ff0000, 0x00f30000, 0x00d20000
  927. data4 0x00cd0000, 0x000c0000, 0x00130000, 0x00ec0000
  928. data4 0x005f0000, 0x00970000, 0x00440000, 0x00170000
  929. data4 0x00c40000, 0x00a70000, 0x007e0000, 0x003d0000
  930. data4 0x00640000, 0x005d0000, 0x00190000, 0x00730000
  931. data4 0x00600000, 0x00810000, 0x004f0000, 0x00dc0000
  932. data4 0x00220000, 0x002a0000, 0x00900000, 0x00880000
  933. data4 0x00460000, 0x00ee0000, 0x00b80000, 0x00140000
  934. data4 0x00de0000, 0x005e0000, 0x000b0000, 0x00db0000
  935. data4 0x00e00000, 0x00320000, 0x003a0000, 0x000a0000
  936. data4 0x00490000, 0x00060000, 0x00240000, 0x005c0000
  937. data4 0x00c20000, 0x00d30000, 0x00ac0000, 0x00620000
  938. data4 0x00910000, 0x00950000, 0x00e40000, 0x00790000
  939. data4 0x00e70000, 0x00c80000, 0x00370000, 0x006d0000
  940. data4 0x008d0000, 0x00d50000, 0x004e0000, 0x00a90000
  941. data4 0x006c0000, 0x00560000, 0x00f40000, 0x00ea0000
  942. data4 0x00650000, 0x007a0000, 0x00ae0000, 0x00080000
  943. data4 0x00ba0000, 0x00780000, 0x00250000, 0x002e0000
  944. data4 0x001c0000, 0x00a60000, 0x00b40000, 0x00c60000
  945. data4 0x00e80000, 0x00dd0000, 0x00740000, 0x001f0000
  946. data4 0x004b0000, 0x00bd0000, 0x008b0000, 0x008a0000
  947. data4 0x00700000, 0x003e0000, 0x00b50000, 0x00660000
  948. data4 0x00480000, 0x00030000, 0x00f60000, 0x000e0000
  949. data4 0x00610000, 0x00350000, 0x00570000, 0x00b90000
  950. data4 0x00860000, 0x00c10000, 0x001d0000, 0x009e0000
  951. data4 0x00e10000, 0x00f80000, 0x00980000, 0x00110000
  952. data4 0x00690000, 0x00d90000, 0x008e0000, 0x00940000
  953. data4 0x009b0000, 0x001e0000, 0x00870000, 0x00e90000
  954. data4 0x00ce0000, 0x00550000, 0x00280000, 0x00df0000
  955. data4 0x008c0000, 0x00a10000, 0x00890000, 0x000d0000
  956. data4 0x00bf0000, 0x00e60000, 0x00420000, 0x00680000
  957. data4 0x00410000, 0x00990000, 0x002d0000, 0x000f0000
  958. data4 0x00b00000, 0x00540000, 0x00bb0000, 0x00160000
  959. // Te6:
  960. data4 0x00006300, 0x00007c00, 0x00007700, 0x00007b00
  961. data4 0x0000f200, 0x00006b00, 0x00006f00, 0x0000c500
  962. data4 0x00003000, 0x00000100, 0x00006700, 0x00002b00
  963. data4 0x0000fe00, 0x0000d700, 0x0000ab00, 0x00007600
  964. data4 0x0000ca00, 0x00008200, 0x0000c900, 0x00007d00
  965. data4 0x0000fa00, 0x00005900, 0x00004700, 0x0000f000
  966. data4 0x0000ad00, 0x0000d400, 0x0000a200, 0x0000af00
  967. data4 0x00009c00, 0x0000a400, 0x00007200, 0x0000c000
  968. data4 0x0000b700, 0x0000fd00, 0x00009300, 0x00002600
  969. data4 0x00003600, 0x00003f00, 0x0000f700, 0x0000cc00
  970. data4 0x00003400, 0x0000a500, 0x0000e500, 0x0000f100
  971. data4 0x00007100, 0x0000d800, 0x00003100, 0x00001500
  972. data4 0x00000400, 0x0000c700, 0x00002300, 0x0000c300
  973. data4 0x00001800, 0x00009600, 0x00000500, 0x00009a00
  974. data4 0x00000700, 0x00001200, 0x00008000, 0x0000e200
  975. data4 0x0000eb00, 0x00002700, 0x0000b200, 0x00007500
  976. data4 0x00000900, 0x00008300, 0x00002c00, 0x00001a00
  977. data4 0x00001b00, 0x00006e00, 0x00005a00, 0x0000a000
  978. data4 0x00005200, 0x00003b00, 0x0000d600, 0x0000b300
  979. data4 0x00002900, 0x0000e300, 0x00002f00, 0x00008400
  980. data4 0x00005300, 0x0000d100, 0x00000000, 0x0000ed00
  981. data4 0x00002000, 0x0000fc00, 0x0000b100, 0x00005b00
  982. data4 0x00006a00, 0x0000cb00, 0x0000be00, 0x00003900
  983. data4 0x00004a00, 0x00004c00, 0x00005800, 0x0000cf00
  984. data4 0x0000d000, 0x0000ef00, 0x0000aa00, 0x0000fb00
  985. data4 0x00004300, 0x00004d00, 0x00003300, 0x00008500
  986. data4 0x00004500, 0x0000f900, 0x00000200, 0x00007f00
  987. data4 0x00005000, 0x00003c00, 0x00009f00, 0x0000a800
  988. data4 0x00005100, 0x0000a300, 0x00004000, 0x00008f00
  989. data4 0x00009200, 0x00009d00, 0x00003800, 0x0000f500
  990. data4 0x0000bc00, 0x0000b600, 0x0000da00, 0x00002100
  991. data4 0x00001000, 0x0000ff00, 0x0000f300, 0x0000d200
  992. data4 0x0000cd00, 0x00000c00, 0x00001300, 0x0000ec00
  993. data4 0x00005f00, 0x00009700, 0x00004400, 0x00001700
  994. data4 0x0000c400, 0x0000a700, 0x00007e00, 0x00003d00
  995. data4 0x00006400, 0x00005d00, 0x00001900, 0x00007300
  996. data4 0x00006000, 0x00008100, 0x00004f00, 0x0000dc00
  997. data4 0x00002200, 0x00002a00, 0x00009000, 0x00008800
  998. data4 0x00004600, 0x0000ee00, 0x0000b800, 0x00001400
  999. data4 0x0000de00, 0x00005e00, 0x00000b00, 0x0000db00
  1000. data4 0x0000e000, 0x00003200, 0x00003a00, 0x00000a00
  1001. data4 0x00004900, 0x00000600, 0x00002400, 0x00005c00
  1002. data4 0x0000c200, 0x0000d300, 0x0000ac00, 0x00006200
  1003. data4 0x00009100, 0x00009500, 0x0000e400, 0x00007900
  1004. data4 0x0000e700, 0x0000c800, 0x00003700, 0x00006d00
  1005. data4 0x00008d00, 0x0000d500, 0x00004e00, 0x0000a900
  1006. data4 0x00006c00, 0x00005600, 0x0000f400, 0x0000ea00
  1007. data4 0x00006500, 0x00007a00, 0x0000ae00, 0x00000800
  1008. data4 0x0000ba00, 0x00007800, 0x00002500, 0x00002e00
  1009. data4 0x00001c00, 0x0000a600, 0x0000b400, 0x0000c600
  1010. data4 0x0000e800, 0x0000dd00, 0x00007400, 0x00001f00
  1011. data4 0x00004b00, 0x0000bd00, 0x00008b00, 0x00008a00
  1012. data4 0x00007000, 0x00003e00, 0x0000b500, 0x00006600
  1013. data4 0x00004800, 0x00000300, 0x0000f600, 0x00000e00
  1014. data4 0x00006100, 0x00003500, 0x00005700, 0x0000b900
  1015. data4 0x00008600, 0x0000c100, 0x00001d00, 0x00009e00
  1016. data4 0x0000e100, 0x0000f800, 0x00009800, 0x00001100
  1017. data4 0x00006900, 0x0000d900, 0x00008e00, 0x00009400
  1018. data4 0x00009b00, 0x00001e00, 0x00008700, 0x0000e900
  1019. data4 0x0000ce00, 0x00005500, 0x00002800, 0x0000df00
  1020. data4 0x00008c00, 0x0000a100, 0x00008900, 0x00000d00
  1021. data4 0x0000bf00, 0x0000e600, 0x00004200, 0x00006800
  1022. data4 0x00004100, 0x00009900, 0x00002d00, 0x00000f00
  1023. data4 0x0000b000, 0x00005400, 0x0000bb00, 0x00001600
  1024. // Te7:
  1025. data4 0x00000063, 0x0000007c, 0x00000077, 0x0000007b
  1026. data4 0x000000f2, 0x0000006b, 0x0000006f, 0x000000c5
  1027. data4 0x00000030, 0x00000001, 0x00000067, 0x0000002b
  1028. data4 0x000000fe, 0x000000d7, 0x000000ab, 0x00000076
  1029. data4 0x000000ca, 0x00000082, 0x000000c9, 0x0000007d
  1030. data4 0x000000fa, 0x00000059, 0x00000047, 0x000000f0
  1031. data4 0x000000ad, 0x000000d4, 0x000000a2, 0x000000af
  1032. data4 0x0000009c, 0x000000a4, 0x00000072, 0x000000c0
  1033. data4 0x000000b7, 0x000000fd, 0x00000093, 0x00000026
  1034. data4 0x00000036, 0x0000003f, 0x000000f7, 0x000000cc
  1035. data4 0x00000034, 0x000000a5, 0x000000e5, 0x000000f1
  1036. data4 0x00000071, 0x000000d8, 0x00000031, 0x00000015
  1037. data4 0x00000004, 0x000000c7, 0x00000023, 0x000000c3
  1038. data4 0x00000018, 0x00000096, 0x00000005, 0x0000009a
  1039. data4 0x00000007, 0x00000012, 0x00000080, 0x000000e2
  1040. data4 0x000000eb, 0x00000027, 0x000000b2, 0x00000075
  1041. data4 0x00000009, 0x00000083, 0x0000002c, 0x0000001a
  1042. data4 0x0000001b, 0x0000006e, 0x0000005a, 0x000000a0
  1043. data4 0x00000052, 0x0000003b, 0x000000d6, 0x000000b3
  1044. data4 0x00000029, 0x000000e3, 0x0000002f, 0x00000084
  1045. data4 0x00000053, 0x000000d1, 0x00000000, 0x000000ed
  1046. data4 0x00000020, 0x000000fc, 0x000000b1, 0x0000005b
  1047. data4 0x0000006a, 0x000000cb, 0x000000be, 0x00000039
  1048. data4 0x0000004a, 0x0000004c, 0x00000058, 0x000000cf
  1049. data4 0x000000d0, 0x000000ef, 0x000000aa, 0x000000fb
  1050. data4 0x00000043, 0x0000004d, 0x00000033, 0x00000085
  1051. data4 0x00000045, 0x000000f9, 0x00000002, 0x0000007f
  1052. data4 0x00000050, 0x0000003c, 0x0000009f, 0x000000a8
  1053. data4 0x00000051, 0x000000a3, 0x00000040, 0x0000008f
  1054. data4 0x00000092, 0x0000009d, 0x00000038, 0x000000f5
  1055. data4 0x000000bc, 0x000000b6, 0x000000da, 0x00000021
  1056. data4 0x00000010, 0x000000ff, 0x000000f3, 0x000000d2
  1057. data4 0x000000cd, 0x0000000c, 0x00000013, 0x000000ec
  1058. data4 0x0000005f, 0x00000097, 0x00000044, 0x00000017
  1059. data4 0x000000c4, 0x000000a7, 0x0000007e, 0x0000003d
  1060. data4 0x00000064, 0x0000005d, 0x00000019, 0x00000073
  1061. data4 0x00000060, 0x00000081, 0x0000004f, 0x000000dc
  1062. data4 0x00000022, 0x0000002a, 0x00000090, 0x00000088
  1063. data4 0x00000046, 0x000000ee, 0x000000b8, 0x00000014
  1064. data4 0x000000de, 0x0000005e, 0x0000000b, 0x000000db
  1065. data4 0x000000e0, 0x00000032, 0x0000003a, 0x0000000a
  1066. data4 0x00000049, 0x00000006, 0x00000024, 0x0000005c
  1067. data4 0x000000c2, 0x000000d3, 0x000000ac, 0x00000062
  1068. data4 0x00000091, 0x00000095, 0x000000e4, 0x00000079
  1069. data4 0x000000e7, 0x000000c8, 0x00000037, 0x0000006d
  1070. data4 0x0000008d, 0x000000d5, 0x0000004e, 0x000000a9
  1071. data4 0x0000006c, 0x00000056, 0x000000f4, 0x000000ea
  1072. data4 0x00000065, 0x0000007a, 0x000000ae, 0x00000008
  1073. data4 0x000000ba, 0x00000078, 0x00000025, 0x0000002e
  1074. data4 0x0000001c, 0x000000a6, 0x000000b4, 0x000000c6
  1075. data4 0x000000e8, 0x000000dd, 0x00000074, 0x0000001f
  1076. data4 0x0000004b, 0x000000bd, 0x0000008b, 0x0000008a
  1077. data4 0x00000070, 0x0000003e, 0x000000b5, 0x00000066
  1078. data4 0x00000048, 0x00000003, 0x000000f6, 0x0000000e
  1079. data4 0x00000061, 0x00000035, 0x00000057, 0x000000b9
  1080. data4 0x00000086, 0x000000c1, 0x0000001d, 0x0000009e
  1081. data4 0x000000e1, 0x000000f8, 0x00000098, 0x00000011
  1082. data4 0x00000069, 0x000000d9, 0x0000008e, 0x00000094
  1083. data4 0x0000009b, 0x0000001e, 0x00000087, 0x000000e9
  1084. data4 0x000000ce, 0x00000055, 0x00000028, 0x000000df
  1085. data4 0x0000008c, 0x000000a1, 0x00000089, 0x0000000d
  1086. data4 0x000000bf, 0x000000e6, 0x00000042, 0x00000068
  1087. data4 0x00000041, 0x00000099, 0x0000002d, 0x0000000f
  1088. data4 0x000000b0, 0x00000054, 0x000000bb, 0x00000016
  1089. .size AES_Te#,8*256*4 // HP-UX assembler fails to ".-AES_Te#"
  1090. .align 64
  1091. .global AES_Td#
  1092. .type AES_Td#,@object
  1093. AES_Td: data4 0x51f4a750, 0x7e416553, 0x1a17a4c3, 0x3a275e96
  1094. data4 0x3bab6bcb, 0x1f9d45f1, 0xacfa58ab, 0x4be30393
  1095. data4 0x2030fa55, 0xad766df6, 0x88cc7691, 0xf5024c25
  1096. data4 0x4fe5d7fc, 0xc52acbd7, 0x26354480, 0xb562a38f
  1097. data4 0xdeb15a49, 0x25ba1b67, 0x45ea0e98, 0x5dfec0e1
  1098. data4 0xc32f7502, 0x814cf012, 0x8d4697a3, 0x6bd3f9c6
  1099. data4 0x038f5fe7, 0x15929c95, 0xbf6d7aeb, 0x955259da
  1100. data4 0xd4be832d, 0x587421d3, 0x49e06929, 0x8ec9c844
  1101. data4 0x75c2896a, 0xf48e7978, 0x99583e6b, 0x27b971dd
  1102. data4 0xbee14fb6, 0xf088ad17, 0xc920ac66, 0x7dce3ab4
  1103. data4 0x63df4a18, 0xe51a3182, 0x97513360, 0x62537f45
  1104. data4 0xb16477e0, 0xbb6bae84, 0xfe81a01c, 0xf9082b94
  1105. data4 0x70486858, 0x8f45fd19, 0x94de6c87, 0x527bf8b7
  1106. data4 0xab73d323, 0x724b02e2, 0xe31f8f57, 0x6655ab2a
  1107. data4 0xb2eb2807, 0x2fb5c203, 0x86c57b9a, 0xd33708a5
  1108. data4 0x302887f2, 0x23bfa5b2, 0x02036aba, 0xed16825c
  1109. data4 0x8acf1c2b, 0xa779b492, 0xf307f2f0, 0x4e69e2a1
  1110. data4 0x65daf4cd, 0x0605bed5, 0xd134621f, 0xc4a6fe8a
  1111. data4 0x342e539d, 0xa2f355a0, 0x058ae132, 0xa4f6eb75
  1112. data4 0x0b83ec39, 0x4060efaa, 0x5e719f06, 0xbd6e1051
  1113. data4 0x3e218af9, 0x96dd063d, 0xdd3e05ae, 0x4de6bd46
  1114. data4 0x91548db5, 0x71c45d05, 0x0406d46f, 0x605015ff
  1115. data4 0x1998fb24, 0xd6bde997, 0x894043cc, 0x67d99e77
  1116. data4 0xb0e842bd, 0x07898b88, 0xe7195b38, 0x79c8eedb
  1117. data4 0xa17c0a47, 0x7c420fe9, 0xf8841ec9, 0x00000000
  1118. data4 0x09808683, 0x322bed48, 0x1e1170ac, 0x6c5a724e
  1119. data4 0xfd0efffb, 0x0f853856, 0x3daed51e, 0x362d3927
  1120. data4 0x0a0fd964, 0x685ca621, 0x9b5b54d1, 0x24362e3a
  1121. data4 0x0c0a67b1, 0x9357e70f, 0xb4ee96d2, 0x1b9b919e
  1122. data4 0x80c0c54f, 0x61dc20a2, 0x5a774b69, 0x1c121a16
  1123. data4 0xe293ba0a, 0xc0a02ae5, 0x3c22e043, 0x121b171d
  1124. data4 0x0e090d0b, 0xf28bc7ad, 0x2db6a8b9, 0x141ea9c8
  1125. data4 0x57f11985, 0xaf75074c, 0xee99ddbb, 0xa37f60fd
  1126. data4 0xf701269f, 0x5c72f5bc, 0x44663bc5, 0x5bfb7e34
  1127. data4 0x8b432976, 0xcb23c6dc, 0xb6edfc68, 0xb8e4f163
  1128. data4 0xd731dcca, 0x42638510, 0x13972240, 0x84c61120
  1129. data4 0x854a247d, 0xd2bb3df8, 0xaef93211, 0xc729a16d
  1130. data4 0x1d9e2f4b, 0xdcb230f3, 0x0d8652ec, 0x77c1e3d0
  1131. data4 0x2bb3166c, 0xa970b999, 0x119448fa, 0x47e96422
  1132. data4 0xa8fc8cc4, 0xa0f03f1a, 0x567d2cd8, 0x223390ef
  1133. data4 0x87494ec7, 0xd938d1c1, 0x8ccaa2fe, 0x98d40b36
  1134. data4 0xa6f581cf, 0xa57ade28, 0xdab78e26, 0x3fadbfa4
  1135. data4 0x2c3a9de4, 0x5078920d, 0x6a5fcc9b, 0x547e4662
  1136. data4 0xf68d13c2, 0x90d8b8e8, 0x2e39f75e, 0x82c3aff5
  1137. data4 0x9f5d80be, 0x69d0937c, 0x6fd52da9, 0xcf2512b3
  1138. data4 0xc8ac993b, 0x10187da7, 0xe89c636e, 0xdb3bbb7b
  1139. data4 0xcd267809, 0x6e5918f4, 0xec9ab701, 0x834f9aa8
  1140. data4 0xe6956e65, 0xaaffe67e, 0x21bccf08, 0xef15e8e6
  1141. data4 0xbae79bd9, 0x4a6f36ce, 0xea9f09d4, 0x29b07cd6
  1142. data4 0x31a4b2af, 0x2a3f2331, 0xc6a59430, 0x35a266c0
  1143. data4 0x744ebc37, 0xfc82caa6, 0xe090d0b0, 0x33a7d815
  1144. data4 0xf104984a, 0x41ecdaf7, 0x7fcd500e, 0x1791f62f
  1145. data4 0x764dd68d, 0x43efb04d, 0xccaa4d54, 0xe49604df
  1146. data4 0x9ed1b5e3, 0x4c6a881b, 0xc12c1fb8, 0x4665517f
  1147. data4 0x9d5eea04, 0x018c355d, 0xfa877473, 0xfb0b412e
  1148. data4 0xb3671d5a, 0x92dbd252, 0xe9105633, 0x6dd64713
  1149. data4 0x9ad7618c, 0x37a10c7a, 0x59f8148e, 0xeb133c89
  1150. data4 0xcea927ee, 0xb761c935, 0xe11ce5ed, 0x7a47b13c
  1151. data4 0x9cd2df59, 0x55f2733f, 0x1814ce79, 0x73c737bf
  1152. data4 0x53f7cdea, 0x5ffdaa5b, 0xdf3d6f14, 0x7844db86
  1153. data4 0xcaaff381, 0xb968c43e, 0x3824342c, 0xc2a3405f
  1154. data4 0x161dc372, 0xbce2250c, 0x283c498b, 0xff0d9541
  1155. data4 0x39a80171, 0x080cb3de, 0xd8b4e49c, 0x6456c190
  1156. data4 0x7bcb8461, 0xd532b670, 0x486c5c74, 0xd0b85742
  1157. // Td1:
  1158. data4 0x5051f4a7, 0x537e4165, 0xc31a17a4, 0x963a275e
  1159. data4 0xcb3bab6b, 0xf11f9d45, 0xabacfa58, 0x934be303
  1160. data4 0x552030fa, 0xf6ad766d, 0x9188cc76, 0x25f5024c
  1161. data4 0xfc4fe5d7, 0xd7c52acb, 0x80263544, 0x8fb562a3
  1162. data4 0x49deb15a, 0x6725ba1b, 0x9845ea0e, 0xe15dfec0
  1163. data4 0x02c32f75, 0x12814cf0, 0xa38d4697, 0xc66bd3f9
  1164. data4 0xe7038f5f, 0x9515929c, 0xebbf6d7a, 0xda955259
  1165. data4 0x2dd4be83, 0xd3587421, 0x2949e069, 0x448ec9c8
  1166. data4 0x6a75c289, 0x78f48e79, 0x6b99583e, 0xdd27b971
  1167. data4 0xb6bee14f, 0x17f088ad, 0x66c920ac, 0xb47dce3a
  1168. data4 0x1863df4a, 0x82e51a31, 0x60975133, 0x4562537f
  1169. data4 0xe0b16477, 0x84bb6bae, 0x1cfe81a0, 0x94f9082b
  1170. data4 0x58704868, 0x198f45fd, 0x8794de6c, 0xb7527bf8
  1171. data4 0x23ab73d3, 0xe2724b02, 0x57e31f8f, 0x2a6655ab
  1172. data4 0x07b2eb28, 0x032fb5c2, 0x9a86c57b, 0xa5d33708
  1173. data4 0xf2302887, 0xb223bfa5, 0xba02036a, 0x5ced1682
  1174. data4 0x2b8acf1c, 0x92a779b4, 0xf0f307f2, 0xa14e69e2
  1175. data4 0xcd65daf4, 0xd50605be, 0x1fd13462, 0x8ac4a6fe
  1176. data4 0x9d342e53, 0xa0a2f355, 0x32058ae1, 0x75a4f6eb
  1177. data4 0x390b83ec, 0xaa4060ef, 0x065e719f, 0x51bd6e10
  1178. data4 0xf93e218a, 0x3d96dd06, 0xaedd3e05, 0x464de6bd
  1179. data4 0xb591548d, 0x0571c45d, 0x6f0406d4, 0xff605015
  1180. data4 0x241998fb, 0x97d6bde9, 0xcc894043, 0x7767d99e
  1181. data4 0xbdb0e842, 0x8807898b, 0x38e7195b, 0xdb79c8ee
  1182. data4 0x47a17c0a, 0xe97c420f, 0xc9f8841e, 0x00000000
  1183. data4 0x83098086, 0x48322bed, 0xac1e1170, 0x4e6c5a72
  1184. data4 0xfbfd0eff, 0x560f8538, 0x1e3daed5, 0x27362d39
  1185. data4 0x640a0fd9, 0x21685ca6, 0xd19b5b54, 0x3a24362e
  1186. data4 0xb10c0a67, 0x0f9357e7, 0xd2b4ee96, 0x9e1b9b91
  1187. data4 0x4f80c0c5, 0xa261dc20, 0x695a774b, 0x161c121a
  1188. data4 0x0ae293ba, 0xe5c0a02a, 0x433c22e0, 0x1d121b17
  1189. data4 0x0b0e090d, 0xadf28bc7, 0xb92db6a8, 0xc8141ea9
  1190. data4 0x8557f119, 0x4caf7507, 0xbbee99dd, 0xfda37f60
  1191. data4 0x9ff70126, 0xbc5c72f5, 0xc544663b, 0x345bfb7e
  1192. data4 0x768b4329, 0xdccb23c6, 0x68b6edfc, 0x63b8e4f1
  1193. data4 0xcad731dc, 0x10426385, 0x40139722, 0x2084c611
  1194. data4 0x7d854a24, 0xf8d2bb3d, 0x11aef932, 0x6dc729a1
  1195. data4 0x4b1d9e2f, 0xf3dcb230, 0xec0d8652, 0xd077c1e3
  1196. data4 0x6c2bb316, 0x99a970b9, 0xfa119448, 0x2247e964
  1197. data4 0xc4a8fc8c, 0x1aa0f03f, 0xd8567d2c, 0xef223390
  1198. data4 0xc787494e, 0xc1d938d1, 0xfe8ccaa2, 0x3698d40b
  1199. data4 0xcfa6f581, 0x28a57ade, 0x26dab78e, 0xa43fadbf
  1200. data4 0xe42c3a9d, 0x0d507892, 0x9b6a5fcc, 0x62547e46
  1201. data4 0xc2f68d13, 0xe890d8b8, 0x5e2e39f7, 0xf582c3af
  1202. data4 0xbe9f5d80, 0x7c69d093, 0xa96fd52d, 0xb3cf2512
  1203. data4 0x3bc8ac99, 0xa710187d, 0x6ee89c63, 0x7bdb3bbb
  1204. data4 0x09cd2678, 0xf46e5918, 0x01ec9ab7, 0xa8834f9a
  1205. data4 0x65e6956e, 0x7eaaffe6, 0x0821bccf, 0xe6ef15e8
  1206. data4 0xd9bae79b, 0xce4a6f36, 0xd4ea9f09, 0xd629b07c
  1207. data4 0xaf31a4b2, 0x312a3f23, 0x30c6a594, 0xc035a266
  1208. data4 0x37744ebc, 0xa6fc82ca, 0xb0e090d0, 0x1533a7d8
  1209. data4 0x4af10498, 0xf741ecda, 0x0e7fcd50, 0x2f1791f6
  1210. data4 0x8d764dd6, 0x4d43efb0, 0x54ccaa4d, 0xdfe49604
  1211. data4 0xe39ed1b5, 0x1b4c6a88, 0xb8c12c1f, 0x7f466551
  1212. data4 0x049d5eea, 0x5d018c35, 0x73fa8774, 0x2efb0b41
  1213. data4 0x5ab3671d, 0x5292dbd2, 0x33e91056, 0x136dd647
  1214. data4 0x8c9ad761, 0x7a37a10c, 0x8e59f814, 0x89eb133c
  1215. data4 0xeecea927, 0x35b761c9, 0xede11ce5, 0x3c7a47b1
  1216. data4 0x599cd2df, 0x3f55f273, 0x791814ce, 0xbf73c737
  1217. data4 0xea53f7cd, 0x5b5ffdaa, 0x14df3d6f, 0x867844db
  1218. data4 0x81caaff3, 0x3eb968c4, 0x2c382434, 0x5fc2a340
  1219. data4 0x72161dc3, 0x0cbce225, 0x8b283c49, 0x41ff0d95
  1220. data4 0x7139a801, 0xde080cb3, 0x9cd8b4e4, 0x906456c1
  1221. data4 0x617bcb84, 0x70d532b6, 0x74486c5c, 0x42d0b857
  1222. // Td2:
  1223. data4 0xa75051f4, 0x65537e41, 0xa4c31a17, 0x5e963a27
  1224. data4 0x6bcb3bab, 0x45f11f9d, 0x58abacfa, 0x03934be3
  1225. data4 0xfa552030, 0x6df6ad76, 0x769188cc, 0x4c25f502
  1226. data4 0xd7fc4fe5, 0xcbd7c52a, 0x44802635, 0xa38fb562
  1227. data4 0x5a49deb1, 0x1b6725ba, 0x0e9845ea, 0xc0e15dfe
  1228. data4 0x7502c32f, 0xf012814c, 0x97a38d46, 0xf9c66bd3
  1229. data4 0x5fe7038f, 0x9c951592, 0x7aebbf6d, 0x59da9552
  1230. data4 0x832dd4be, 0x21d35874, 0x692949e0, 0xc8448ec9
  1231. data4 0x896a75c2, 0x7978f48e, 0x3e6b9958, 0x71dd27b9
  1232. data4 0x4fb6bee1, 0xad17f088, 0xac66c920, 0x3ab47dce
  1233. data4 0x4a1863df, 0x3182e51a, 0x33609751, 0x7f456253
  1234. data4 0x77e0b164, 0xae84bb6b, 0xa01cfe81, 0x2b94f908
  1235. data4 0x68587048, 0xfd198f45, 0x6c8794de, 0xf8b7527b
  1236. data4 0xd323ab73, 0x02e2724b, 0x8f57e31f, 0xab2a6655
  1237. data4 0x2807b2eb, 0xc2032fb5, 0x7b9a86c5, 0x08a5d337
  1238. data4 0x87f23028, 0xa5b223bf, 0x6aba0203, 0x825ced16
  1239. data4 0x1c2b8acf, 0xb492a779, 0xf2f0f307, 0xe2a14e69
  1240. data4 0xf4cd65da, 0xbed50605, 0x621fd134, 0xfe8ac4a6
  1241. data4 0x539d342e, 0x55a0a2f3, 0xe132058a, 0xeb75a4f6
  1242. data4 0xec390b83, 0xefaa4060, 0x9f065e71, 0x1051bd6e
  1243. data4 0x8af93e21, 0x063d96dd, 0x05aedd3e, 0xbd464de6
  1244. data4 0x8db59154, 0x5d0571c4, 0xd46f0406, 0x15ff6050
  1245. data4 0xfb241998, 0xe997d6bd, 0x43cc8940, 0x9e7767d9
  1246. data4 0x42bdb0e8, 0x8b880789, 0x5b38e719, 0xeedb79c8
  1247. data4 0x0a47a17c, 0x0fe97c42, 0x1ec9f884, 0x00000000
  1248. data4 0x86830980, 0xed48322b, 0x70ac1e11, 0x724e6c5a
  1249. data4 0xfffbfd0e, 0x38560f85, 0xd51e3dae, 0x3927362d
  1250. data4 0xd9640a0f, 0xa621685c, 0x54d19b5b, 0x2e3a2436
  1251. data4 0x67b10c0a, 0xe70f9357, 0x96d2b4ee, 0x919e1b9b
  1252. data4 0xc54f80c0, 0x20a261dc, 0x4b695a77, 0x1a161c12
  1253. data4 0xba0ae293, 0x2ae5c0a0, 0xe0433c22, 0x171d121b
  1254. data4 0x0d0b0e09, 0xc7adf28b, 0xa8b92db6, 0xa9c8141e
  1255. data4 0x198557f1, 0x074caf75, 0xddbbee99, 0x60fda37f
  1256. data4 0x269ff701, 0xf5bc5c72, 0x3bc54466, 0x7e345bfb
  1257. data4 0x29768b43, 0xc6dccb23, 0xfc68b6ed, 0xf163b8e4
  1258. data4 0xdccad731, 0x85104263, 0x22401397, 0x112084c6
  1259. data4 0x247d854a, 0x3df8d2bb, 0x3211aef9, 0xa16dc729
  1260. data4 0x2f4b1d9e, 0x30f3dcb2, 0x52ec0d86, 0xe3d077c1
  1261. data4 0x166c2bb3, 0xb999a970, 0x48fa1194, 0x642247e9
  1262. data4 0x8cc4a8fc, 0x3f1aa0f0, 0x2cd8567d, 0x90ef2233
  1263. data4 0x4ec78749, 0xd1c1d938, 0xa2fe8cca, 0x0b3698d4
  1264. data4 0x81cfa6f5, 0xde28a57a, 0x8e26dab7, 0xbfa43fad
  1265. data4 0x9de42c3a, 0x920d5078, 0xcc9b6a5f, 0x4662547e
  1266. data4 0x13c2f68d, 0xb8e890d8, 0xf75e2e39, 0xaff582c3
  1267. data4 0x80be9f5d, 0x937c69d0, 0x2da96fd5, 0x12b3cf25
  1268. data4 0x993bc8ac, 0x7da71018, 0x636ee89c, 0xbb7bdb3b
  1269. data4 0x7809cd26, 0x18f46e59, 0xb701ec9a, 0x9aa8834f
  1270. data4 0x6e65e695, 0xe67eaaff, 0xcf0821bc, 0xe8e6ef15
  1271. data4 0x9bd9bae7, 0x36ce4a6f, 0x09d4ea9f, 0x7cd629b0
  1272. data4 0xb2af31a4, 0x23312a3f, 0x9430c6a5, 0x66c035a2
  1273. data4 0xbc37744e, 0xcaa6fc82, 0xd0b0e090, 0xd81533a7
  1274. data4 0x984af104, 0xdaf741ec, 0x500e7fcd, 0xf62f1791
  1275. data4 0xd68d764d, 0xb04d43ef, 0x4d54ccaa, 0x04dfe496
  1276. data4 0xb5e39ed1, 0x881b4c6a, 0x1fb8c12c, 0x517f4665
  1277. data4 0xea049d5e, 0x355d018c, 0x7473fa87, 0x412efb0b
  1278. data4 0x1d5ab367, 0xd25292db, 0x5633e910, 0x47136dd6
  1279. data4 0x618c9ad7, 0x0c7a37a1, 0x148e59f8, 0x3c89eb13
  1280. data4 0x27eecea9, 0xc935b761, 0xe5ede11c, 0xb13c7a47
  1281. data4 0xdf599cd2, 0x733f55f2, 0xce791814, 0x37bf73c7
  1282. data4 0xcdea53f7, 0xaa5b5ffd, 0x6f14df3d, 0xdb867844
  1283. data4 0xf381caaf, 0xc43eb968, 0x342c3824, 0x405fc2a3
  1284. data4 0xc372161d, 0x250cbce2, 0x498b283c, 0x9541ff0d
  1285. data4 0x017139a8, 0xb3de080c, 0xe49cd8b4, 0xc1906456
  1286. data4 0x84617bcb, 0xb670d532, 0x5c74486c, 0x5742d0b8
  1287. // Td3:
  1288. data4 0xf4a75051, 0x4165537e, 0x17a4c31a, 0x275e963a
  1289. data4 0xab6bcb3b, 0x9d45f11f, 0xfa58abac, 0xe303934b
  1290. data4 0x30fa5520, 0x766df6ad, 0xcc769188, 0x024c25f5
  1291. data4 0xe5d7fc4f, 0x2acbd7c5, 0x35448026, 0x62a38fb5
  1292. data4 0xb15a49de, 0xba1b6725, 0xea0e9845, 0xfec0e15d
  1293. data4 0x2f7502c3, 0x4cf01281, 0x4697a38d, 0xd3f9c66b
  1294. data4 0x8f5fe703, 0x929c9515, 0x6d7aebbf, 0x5259da95
  1295. data4 0xbe832dd4, 0x7421d358, 0xe0692949, 0xc9c8448e
  1296. data4 0xc2896a75, 0x8e7978f4, 0x583e6b99, 0xb971dd27
  1297. data4 0xe14fb6be, 0x88ad17f0, 0x20ac66c9, 0xce3ab47d
  1298. data4 0xdf4a1863, 0x1a3182e5, 0x51336097, 0x537f4562
  1299. data4 0x6477e0b1, 0x6bae84bb, 0x81a01cfe, 0x082b94f9
  1300. data4 0x48685870, 0x45fd198f, 0xde6c8794, 0x7bf8b752
  1301. data4 0x73d323ab, 0x4b02e272, 0x1f8f57e3, 0x55ab2a66
  1302. data4 0xeb2807b2, 0xb5c2032f, 0xc57b9a86, 0x3708a5d3
  1303. data4 0x2887f230, 0xbfa5b223, 0x036aba02, 0x16825ced
  1304. data4 0xcf1c2b8a, 0x79b492a7, 0x07f2f0f3, 0x69e2a14e
  1305. data4 0xdaf4cd65, 0x05bed506, 0x34621fd1, 0xa6fe8ac4
  1306. data4 0x2e539d34, 0xf355a0a2, 0x8ae13205, 0xf6eb75a4
  1307. data4 0x83ec390b, 0x60efaa40, 0x719f065e, 0x6e1051bd
  1308. data4 0x218af93e, 0xdd063d96, 0x3e05aedd, 0xe6bd464d
  1309. data4 0x548db591, 0xc45d0571, 0x06d46f04, 0x5015ff60
  1310. data4 0x98fb2419, 0xbde997d6, 0x4043cc89, 0xd99e7767
  1311. data4 0xe842bdb0, 0x898b8807, 0x195b38e7, 0xc8eedb79
  1312. data4 0x7c0a47a1, 0x420fe97c, 0x841ec9f8, 0x00000000
  1313. data4 0x80868309, 0x2bed4832, 0x1170ac1e, 0x5a724e6c
  1314. data4 0x0efffbfd, 0x8538560f, 0xaed51e3d, 0x2d392736
  1315. data4 0x0fd9640a, 0x5ca62168, 0x5b54d19b, 0x362e3a24
  1316. data4 0x0a67b10c, 0x57e70f93, 0xee96d2b4, 0x9b919e1b
  1317. data4 0xc0c54f80, 0xdc20a261, 0x774b695a, 0x121a161c
  1318. data4 0x93ba0ae2, 0xa02ae5c0, 0x22e0433c, 0x1b171d12
  1319. data4 0x090d0b0e, 0x8bc7adf2, 0xb6a8b92d, 0x1ea9c814
  1320. data4 0xf1198557, 0x75074caf, 0x99ddbbee, 0x7f60fda3
  1321. data4 0x01269ff7, 0x72f5bc5c, 0x663bc544, 0xfb7e345b
  1322. data4 0x4329768b, 0x23c6dccb, 0xedfc68b6, 0xe4f163b8
  1323. data4 0x31dccad7, 0x63851042, 0x97224013, 0xc6112084
  1324. data4 0x4a247d85, 0xbb3df8d2, 0xf93211ae, 0x29a16dc7
  1325. data4 0x9e2f4b1d, 0xb230f3dc, 0x8652ec0d, 0xc1e3d077
  1326. data4 0xb3166c2b, 0x70b999a9, 0x9448fa11, 0xe9642247
  1327. data4 0xfc8cc4a8, 0xf03f1aa0, 0x7d2cd856, 0x3390ef22
  1328. data4 0x494ec787, 0x38d1c1d9, 0xcaa2fe8c, 0xd40b3698
  1329. data4 0xf581cfa6, 0x7ade28a5, 0xb78e26da, 0xadbfa43f
  1330. data4 0x3a9de42c, 0x78920d50, 0x5fcc9b6a, 0x7e466254
  1331. data4 0x8d13c2f6, 0xd8b8e890, 0x39f75e2e, 0xc3aff582
  1332. data4 0x5d80be9f, 0xd0937c69, 0xd52da96f, 0x2512b3cf
  1333. data4 0xac993bc8, 0x187da710, 0x9c636ee8, 0x3bbb7bdb
  1334. data4 0x267809cd, 0x5918f46e, 0x9ab701ec, 0x4f9aa883
  1335. data4 0x956e65e6, 0xffe67eaa, 0xbccf0821, 0x15e8e6ef
  1336. data4 0xe79bd9ba, 0x6f36ce4a, 0x9f09d4ea, 0xb07cd629
  1337. data4 0xa4b2af31, 0x3f23312a, 0xa59430c6, 0xa266c035
  1338. data4 0x4ebc3774, 0x82caa6fc, 0x90d0b0e0, 0xa7d81533
  1339. data4 0x04984af1, 0xecdaf741, 0xcd500e7f, 0x91f62f17
  1340. data4 0x4dd68d76, 0xefb04d43, 0xaa4d54cc, 0x9604dfe4
  1341. data4 0xd1b5e39e, 0x6a881b4c, 0x2c1fb8c1, 0x65517f46
  1342. data4 0x5eea049d, 0x8c355d01, 0x877473fa, 0x0b412efb
  1343. data4 0x671d5ab3, 0xdbd25292, 0x105633e9, 0xd647136d
  1344. data4 0xd7618c9a, 0xa10c7a37, 0xf8148e59, 0x133c89eb
  1345. data4 0xa927eece, 0x61c935b7, 0x1ce5ede1, 0x47b13c7a
  1346. data4 0xd2df599c, 0xf2733f55, 0x14ce7918, 0xc737bf73
  1347. data4 0xf7cdea53, 0xfdaa5b5f, 0x3d6f14df, 0x44db8678
  1348. data4 0xaff381ca, 0x68c43eb9, 0x24342c38, 0xa3405fc2
  1349. data4 0x1dc37216, 0xe2250cbc, 0x3c498b28, 0x0d9541ff
  1350. data4 0xa8017139, 0x0cb3de08, 0xb4e49cd8, 0x56c19064
  1351. data4 0xcb84617b, 0x32b670d5, 0x6c5c7448, 0xb85742d0
  1352. // Td4:
  1353. data4 0x52000000, 0x09000000, 0x6a000000, 0xd5000000
  1354. data4 0x30000000, 0x36000000, 0xa5000000, 0x38000000
  1355. data4 0xbf000000, 0x40000000, 0xa3000000, 0x9e000000
  1356. data4 0x81000000, 0xf3000000, 0xd7000000, 0xfb000000
  1357. data4 0x7c000000, 0xe3000000, 0x39000000, 0x82000000
  1358. data4 0x9b000000, 0x2f000000, 0xff000000, 0x87000000
  1359. data4 0x34000000, 0x8e000000, 0x43000000, 0x44000000
  1360. data4 0xc4000000, 0xde000000, 0xe9000000, 0xcb000000
  1361. data4 0x54000000, 0x7b000000, 0x94000000, 0x32000000
  1362. data4 0xa6000000, 0xc2000000, 0x23000000, 0x3d000000
  1363. data4 0xee000000, 0x4c000000, 0x95000000, 0x0b000000
  1364. data4 0x42000000, 0xfa000000, 0xc3000000, 0x4e000000
  1365. data4 0x08000000, 0x2e000000, 0xa1000000, 0x66000000
  1366. data4 0x28000000, 0xd9000000, 0x24000000, 0xb2000000
  1367. data4 0x76000000, 0x5b000000, 0xa2000000, 0x49000000
  1368. data4 0x6d000000, 0x8b000000, 0xd1000000, 0x25000000
  1369. data4 0x72000000, 0xf8000000, 0xf6000000, 0x64000000
  1370. data4 0x86000000, 0x68000000, 0x98000000, 0x16000000
  1371. data4 0xd4000000, 0xa4000000, 0x5c000000, 0xcc000000
  1372. data4 0x5d000000, 0x65000000, 0xb6000000, 0x92000000
  1373. data4 0x6c000000, 0x70000000, 0x48000000, 0x50000000
  1374. data4 0xfd000000, 0xed000000, 0xb9000000, 0xda000000
  1375. data4 0x5e000000, 0x15000000, 0x46000000, 0x57000000
  1376. data4 0xa7000000, 0x8d000000, 0x9d000000, 0x84000000
  1377. data4 0x90000000, 0xd8000000, 0xab000000, 0x00000000
  1378. data4 0x8c000000, 0xbc000000, 0xd3000000, 0x0a000000
  1379. data4 0xf7000000, 0xe4000000, 0x58000000, 0x05000000
  1380. data4 0xb8000000, 0xb3000000, 0x45000000, 0x06000000
  1381. data4 0xd0000000, 0x2c000000, 0x1e000000, 0x8f000000
  1382. data4 0xca000000, 0x3f000000, 0x0f000000, 0x02000000
  1383. data4 0xc1000000, 0xaf000000, 0xbd000000, 0x03000000
  1384. data4 0x01000000, 0x13000000, 0x8a000000, 0x6b000000
  1385. data4 0x3a000000, 0x91000000, 0x11000000, 0x41000000
  1386. data4 0x4f000000, 0x67000000, 0xdc000000, 0xea000000
  1387. data4 0x97000000, 0xf2000000, 0xcf000000, 0xce000000
  1388. data4 0xf0000000, 0xb4000000, 0xe6000000, 0x73000000
  1389. data4 0x96000000, 0xac000000, 0x74000000, 0x22000000
  1390. data4 0xe7000000, 0xad000000, 0x35000000, 0x85000000
  1391. data4 0xe2000000, 0xf9000000, 0x37000000, 0xe8000000
  1392. data4 0x1c000000, 0x75000000, 0xdf000000, 0x6e000000
  1393. data4 0x47000000, 0xf1000000, 0x1a000000, 0x71000000
  1394. data4 0x1d000000, 0x29000000, 0xc5000000, 0x89000000
  1395. data4 0x6f000000, 0xb7000000, 0x62000000, 0x0e000000
  1396. data4 0xaa000000, 0x18000000, 0xbe000000, 0x1b000000
  1397. data4 0xfc000000, 0x56000000, 0x3e000000, 0x4b000000
  1398. data4 0xc6000000, 0xd2000000, 0x79000000, 0x20000000
  1399. data4 0x9a000000, 0xdb000000, 0xc0000000, 0xfe000000
  1400. data4 0x78000000, 0xcd000000, 0x5a000000, 0xf4000000
  1401. data4 0x1f000000, 0xdd000000, 0xa8000000, 0x33000000
  1402. data4 0x88000000, 0x07000000, 0xc7000000, 0x31000000
  1403. data4 0xb1000000, 0x12000000, 0x10000000, 0x59000000
  1404. data4 0x27000000, 0x80000000, 0xec000000, 0x5f000000
  1405. data4 0x60000000, 0x51000000, 0x7f000000, 0xa9000000
  1406. data4 0x19000000, 0xb5000000, 0x4a000000, 0x0d000000
  1407. data4 0x2d000000, 0xe5000000, 0x7a000000, 0x9f000000
  1408. data4 0x93000000, 0xc9000000, 0x9c000000, 0xef000000
  1409. data4 0xa0000000, 0xe0000000, 0x3b000000, 0x4d000000
  1410. data4 0xae000000, 0x2a000000, 0xf5000000, 0xb0000000
  1411. data4 0xc8000000, 0xeb000000, 0xbb000000, 0x3c000000
  1412. data4 0x83000000, 0x53000000, 0x99000000, 0x61000000
  1413. data4 0x17000000, 0x2b000000, 0x04000000, 0x7e000000
  1414. data4 0xba000000, 0x77000000, 0xd6000000, 0x26000000
  1415. data4 0xe1000000, 0x69000000, 0x14000000, 0x63000000
  1416. data4 0x55000000, 0x21000000, 0x0c000000, 0x7d000000
  1417. // Td5:
  1418. data4 0x00520000, 0x00090000, 0x006a0000, 0x00d50000
  1419. data4 0x00300000, 0x00360000, 0x00a50000, 0x00380000
  1420. data4 0x00bf0000, 0x00400000, 0x00a30000, 0x009e0000
  1421. data4 0x00810000, 0x00f30000, 0x00d70000, 0x00fb0000
  1422. data4 0x007c0000, 0x00e30000, 0x00390000, 0x00820000
  1423. data4 0x009b0000, 0x002f0000, 0x00ff0000, 0x00870000
  1424. data4 0x00340000, 0x008e0000, 0x00430000, 0x00440000
  1425. data4 0x00c40000, 0x00de0000, 0x00e90000, 0x00cb0000
  1426. data4 0x00540000, 0x007b0000, 0x00940000, 0x00320000
  1427. data4 0x00a60000, 0x00c20000, 0x00230000, 0x003d0000
  1428. data4 0x00ee0000, 0x004c0000, 0x00950000, 0x000b0000
  1429. data4 0x00420000, 0x00fa0000, 0x00c30000, 0x004e0000
  1430. data4 0x00080000, 0x002e0000, 0x00a10000, 0x00660000
  1431. data4 0x00280000, 0x00d90000, 0x00240000, 0x00b20000
  1432. data4 0x00760000, 0x005b0000, 0x00a20000, 0x00490000
  1433. data4 0x006d0000, 0x008b0000, 0x00d10000, 0x00250000
  1434. data4 0x00720000, 0x00f80000, 0x00f60000, 0x00640000
  1435. data4 0x00860000, 0x00680000, 0x00980000, 0x00160000
  1436. data4 0x00d40000, 0x00a40000, 0x005c0000, 0x00cc0000
  1437. data4 0x005d0000, 0x00650000, 0x00b60000, 0x00920000
  1438. data4 0x006c0000, 0x00700000, 0x00480000, 0x00500000
  1439. data4 0x00fd0000, 0x00ed0000, 0x00b90000, 0x00da0000
  1440. data4 0x005e0000, 0x00150000, 0x00460000, 0x00570000
  1441. data4 0x00a70000, 0x008d0000, 0x009d0000, 0x00840000
  1442. data4 0x00900000, 0x00d80000, 0x00ab0000, 0x00000000
  1443. data4 0x008c0000, 0x00bc0000, 0x00d30000, 0x000a0000
  1444. data4 0x00f70000, 0x00e40000, 0x00580000, 0x00050000
  1445. data4 0x00b80000, 0x00b30000, 0x00450000, 0x00060000
  1446. data4 0x00d00000, 0x002c0000, 0x001e0000, 0x008f0000
  1447. data4 0x00ca0000, 0x003f0000, 0x000f0000, 0x00020000
  1448. data4 0x00c10000, 0x00af0000, 0x00bd0000, 0x00030000
  1449. data4 0x00010000, 0x00130000, 0x008a0000, 0x006b0000
  1450. data4 0x003a0000, 0x00910000, 0x00110000, 0x00410000
  1451. data4 0x004f0000, 0x00670000, 0x00dc0000, 0x00ea0000
  1452. data4 0x00970000, 0x00f20000, 0x00cf0000, 0x00ce0000
  1453. data4 0x00f00000, 0x00b40000, 0x00e60000, 0x00730000
  1454. data4 0x00960000, 0x00ac0000, 0x00740000, 0x00220000
  1455. data4 0x00e70000, 0x00ad0000, 0x00350000, 0x00850000
  1456. data4 0x00e20000, 0x00f90000, 0x00370000, 0x00e80000
  1457. data4 0x001c0000, 0x00750000, 0x00df0000, 0x006e0000
  1458. data4 0x00470000, 0x00f10000, 0x001a0000, 0x00710000
  1459. data4 0x001d0000, 0x00290000, 0x00c50000, 0x00890000
  1460. data4 0x006f0000, 0x00b70000, 0x00620000, 0x000e0000
  1461. data4 0x00aa0000, 0x00180000, 0x00be0000, 0x001b0000
  1462. data4 0x00fc0000, 0x00560000, 0x003e0000, 0x004b0000
  1463. data4 0x00c60000, 0x00d20000, 0x00790000, 0x00200000
  1464. data4 0x009a0000, 0x00db0000, 0x00c00000, 0x00fe0000
  1465. data4 0x00780000, 0x00cd0000, 0x005a0000, 0x00f40000
  1466. data4 0x001f0000, 0x00dd0000, 0x00a80000, 0x00330000
  1467. data4 0x00880000, 0x00070000, 0x00c70000, 0x00310000
  1468. data4 0x00b10000, 0x00120000, 0x00100000, 0x00590000
  1469. data4 0x00270000, 0x00800000, 0x00ec0000, 0x005f0000
  1470. data4 0x00600000, 0x00510000, 0x007f0000, 0x00a90000
  1471. data4 0x00190000, 0x00b50000, 0x004a0000, 0x000d0000
  1472. data4 0x002d0000, 0x00e50000, 0x007a0000, 0x009f0000
  1473. data4 0x00930000, 0x00c90000, 0x009c0000, 0x00ef0000
  1474. data4 0x00a00000, 0x00e00000, 0x003b0000, 0x004d0000
  1475. data4 0x00ae0000, 0x002a0000, 0x00f50000, 0x00b00000
  1476. data4 0x00c80000, 0x00eb0000, 0x00bb0000, 0x003c0000
  1477. data4 0x00830000, 0x00530000, 0x00990000, 0x00610000
  1478. data4 0x00170000, 0x002b0000, 0x00040000, 0x007e0000
  1479. data4 0x00ba0000, 0x00770000, 0x00d60000, 0x00260000
  1480. data4 0x00e10000, 0x00690000, 0x00140000, 0x00630000
  1481. data4 0x00550000, 0x00210000, 0x000c0000, 0x007d0000
  1482. // Td6:
  1483. data4 0x00005200, 0x00000900, 0x00006a00, 0x0000d500
  1484. data4 0x00003000, 0x00003600, 0x0000a500, 0x00003800
  1485. data4 0x0000bf00, 0x00004000, 0x0000a300, 0x00009e00
  1486. data4 0x00008100, 0x0000f300, 0x0000d700, 0x0000fb00
  1487. data4 0x00007c00, 0x0000e300, 0x00003900, 0x00008200
  1488. data4 0x00009b00, 0x00002f00, 0x0000ff00, 0x00008700
  1489. data4 0x00003400, 0x00008e00, 0x00004300, 0x00004400
  1490. data4 0x0000c400, 0x0000de00, 0x0000e900, 0x0000cb00
  1491. data4 0x00005400, 0x00007b00, 0x00009400, 0x00003200
  1492. data4 0x0000a600, 0x0000c200, 0x00002300, 0x00003d00
  1493. data4 0x0000ee00, 0x00004c00, 0x00009500, 0x00000b00
  1494. data4 0x00004200, 0x0000fa00, 0x0000c300, 0x00004e00
  1495. data4 0x00000800, 0x00002e00, 0x0000a100, 0x00006600
  1496. data4 0x00002800, 0x0000d900, 0x00002400, 0x0000b200
  1497. data4 0x00007600, 0x00005b00, 0x0000a200, 0x00004900
  1498. data4 0x00006d00, 0x00008b00, 0x0000d100, 0x00002500
  1499. data4 0x00007200, 0x0000f800, 0x0000f600, 0x00006400
  1500. data4 0x00008600, 0x00006800, 0x00009800, 0x00001600
  1501. data4 0x0000d400, 0x0000a400, 0x00005c00, 0x0000cc00
  1502. data4 0x00005d00, 0x00006500, 0x0000b600, 0x00009200
  1503. data4 0x00006c00, 0x00007000, 0x00004800, 0x00005000
  1504. data4 0x0000fd00, 0x0000ed00, 0x0000b900, 0x0000da00
  1505. data4 0x00005e00, 0x00001500, 0x00004600, 0x00005700
  1506. data4 0x0000a700, 0x00008d00, 0x00009d00, 0x00008400
  1507. data4 0x00009000, 0x0000d800, 0x0000ab00, 0x00000000
  1508. data4 0x00008c00, 0x0000bc00, 0x0000d300, 0x00000a00
  1509. data4 0x0000f700, 0x0000e400, 0x00005800, 0x00000500
  1510. data4 0x0000b800, 0x0000b300, 0x00004500, 0x00000600
  1511. data4 0x0000d000, 0x00002c00, 0x00001e00, 0x00008f00
  1512. data4 0x0000ca00, 0x00003f00, 0x00000f00, 0x00000200
  1513. data4 0x0000c100, 0x0000af00, 0x0000bd00, 0x00000300
  1514. data4 0x00000100, 0x00001300, 0x00008a00, 0x00006b00
  1515. data4 0x00003a00, 0x00009100, 0x00001100, 0x00004100
  1516. data4 0x00004f00, 0x00006700, 0x0000dc00, 0x0000ea00
  1517. data4 0x00009700, 0x0000f200, 0x0000cf00, 0x0000ce00
  1518. data4 0x0000f000, 0x0000b400, 0x0000e600, 0x00007300
  1519. data4 0x00009600, 0x0000ac00, 0x00007400, 0x00002200
  1520. data4 0x0000e700, 0x0000ad00, 0x00003500, 0x00008500
  1521. data4 0x0000e200, 0x0000f900, 0x00003700, 0x0000e800
  1522. data4 0x00001c00, 0x00007500, 0x0000df00, 0x00006e00
  1523. data4 0x00004700, 0x0000f100, 0x00001a00, 0x00007100
  1524. data4 0x00001d00, 0x00002900, 0x0000c500, 0x00008900
  1525. data4 0x00006f00, 0x0000b700, 0x00006200, 0x00000e00
  1526. data4 0x0000aa00, 0x00001800, 0x0000be00, 0x00001b00
  1527. data4 0x0000fc00, 0x00005600, 0x00003e00, 0x00004b00
  1528. data4 0x0000c600, 0x0000d200, 0x00007900, 0x00002000
  1529. data4 0x00009a00, 0x0000db00, 0x0000c000, 0x0000fe00
  1530. data4 0x00007800, 0x0000cd00, 0x00005a00, 0x0000f400
  1531. data4 0x00001f00, 0x0000dd00, 0x0000a800, 0x00003300
  1532. data4 0x00008800, 0x00000700, 0x0000c700, 0x00003100
  1533. data4 0x0000b100, 0x00001200, 0x00001000, 0x00005900
  1534. data4 0x00002700, 0x00008000, 0x0000ec00, 0x00005f00
  1535. data4 0x00006000, 0x00005100, 0x00007f00, 0x0000a900
  1536. data4 0x00001900, 0x0000b500, 0x00004a00, 0x00000d00
  1537. data4 0x00002d00, 0x0000e500, 0x00007a00, 0x00009f00
  1538. data4 0x00009300, 0x0000c900, 0x00009c00, 0x0000ef00
  1539. data4 0x0000a000, 0x0000e000, 0x00003b00, 0x00004d00
  1540. data4 0x0000ae00, 0x00002a00, 0x0000f500, 0x0000b000
  1541. data4 0x0000c800, 0x0000eb00, 0x0000bb00, 0x00003c00
  1542. data4 0x00008300, 0x00005300, 0x00009900, 0x00006100
  1543. data4 0x00001700, 0x00002b00, 0x00000400, 0x00007e00
  1544. data4 0x0000ba00, 0x00007700, 0x0000d600, 0x00002600
  1545. data4 0x0000e100, 0x00006900, 0x00001400, 0x00006300
  1546. data4 0x00005500, 0x00002100, 0x00000c00, 0x00007d00
  1547. // Td7:
  1548. data4 0x00000052, 0x00000009, 0x0000006a, 0x000000d5
  1549. data4 0x00000030, 0x00000036, 0x000000a5, 0x00000038
  1550. data4 0x000000bf, 0x00000040, 0x000000a3, 0x0000009e
  1551. data4 0x00000081, 0x000000f3, 0x000000d7, 0x000000fb
  1552. data4 0x0000007c, 0x000000e3, 0x00000039, 0x00000082
  1553. data4 0x0000009b, 0x0000002f, 0x000000ff, 0x00000087
  1554. data4 0x00000034, 0x0000008e, 0x00000043, 0x00000044
  1555. data4 0x000000c4, 0x000000de, 0x000000e9, 0x000000cb
  1556. data4 0x00000054, 0x0000007b, 0x00000094, 0x00000032
  1557. data4 0x000000a6, 0x000000c2, 0x00000023, 0x0000003d
  1558. data4 0x000000ee, 0x0000004c, 0x00000095, 0x0000000b
  1559. data4 0x00000042, 0x000000fa, 0x000000c3, 0x0000004e
  1560. data4 0x00000008, 0x0000002e, 0x000000a1, 0x00000066
  1561. data4 0x00000028, 0x000000d9, 0x00000024, 0x000000b2
  1562. data4 0x00000076, 0x0000005b, 0x000000a2, 0x00000049
  1563. data4 0x0000006d, 0x0000008b, 0x000000d1, 0x00000025
  1564. data4 0x00000072, 0x000000f8, 0x000000f6, 0x00000064
  1565. data4 0x00000086, 0x00000068, 0x00000098, 0x00000016
  1566. data4 0x000000d4, 0x000000a4, 0x0000005c, 0x000000cc
  1567. data4 0x0000005d, 0x00000065, 0x000000b6, 0x00000092
  1568. data4 0x0000006c, 0x00000070, 0x00000048, 0x00000050
  1569. data4 0x000000fd, 0x000000ed, 0x000000b9, 0x000000da
  1570. data4 0x0000005e, 0x00000015, 0x00000046, 0x00000057
  1571. data4 0x000000a7, 0x0000008d, 0x0000009d, 0x00000084
  1572. data4 0x00000090, 0x000000d8, 0x000000ab, 0x00000000
  1573. data4 0x0000008c, 0x000000bc, 0x000000d3, 0x0000000a
  1574. data4 0x000000f7, 0x000000e4, 0x00000058, 0x00000005
  1575. data4 0x000000b8, 0x000000b3, 0x00000045, 0x00000006
  1576. data4 0x000000d0, 0x0000002c, 0x0000001e, 0x0000008f
  1577. data4 0x000000ca, 0x0000003f, 0x0000000f, 0x00000002
  1578. data4 0x000000c1, 0x000000af, 0x000000bd, 0x00000003
  1579. data4 0x00000001, 0x00000013, 0x0000008a, 0x0000006b
  1580. data4 0x0000003a, 0x00000091, 0x00000011, 0x00000041
  1581. data4 0x0000004f, 0x00000067, 0x000000dc, 0x000000ea
  1582. data4 0x00000097, 0x000000f2, 0x000000cf, 0x000000ce
  1583. data4 0x000000f0, 0x000000b4, 0x000000e6, 0x00000073
  1584. data4 0x00000096, 0x000000ac, 0x00000074, 0x00000022
  1585. data4 0x000000e7, 0x000000ad, 0x00000035, 0x00000085
  1586. data4 0x000000e2, 0x000000f9, 0x00000037, 0x000000e8
  1587. data4 0x0000001c, 0x00000075, 0x000000df, 0x0000006e
  1588. data4 0x00000047, 0x000000f1, 0x0000001a, 0x00000071
  1589. data4 0x0000001d, 0x00000029, 0x000000c5, 0x00000089
  1590. data4 0x0000006f, 0x000000b7, 0x00000062, 0x0000000e
  1591. data4 0x000000aa, 0x00000018, 0x000000be, 0x0000001b
  1592. data4 0x000000fc, 0x00000056, 0x0000003e, 0x0000004b
  1593. data4 0x000000c6, 0x000000d2, 0x00000079, 0x00000020
  1594. data4 0x0000009a, 0x000000db, 0x000000c0, 0x000000fe
  1595. data4 0x00000078, 0x000000cd, 0x0000005a, 0x000000f4
  1596. data4 0x0000001f, 0x000000dd, 0x000000a8, 0x00000033
  1597. data4 0x00000088, 0x00000007, 0x000000c7, 0x00000031
  1598. data4 0x000000b1, 0x00000012, 0x00000010, 0x00000059
  1599. data4 0x00000027, 0x00000080, 0x000000ec, 0x0000005f
  1600. data4 0x00000060, 0x00000051, 0x0000007f, 0x000000a9
  1601. data4 0x00000019, 0x000000b5, 0x0000004a, 0x0000000d
  1602. data4 0x0000002d, 0x000000e5, 0x0000007a, 0x0000009f
  1603. data4 0x00000093, 0x000000c9, 0x0000009c, 0x000000ef
  1604. data4 0x000000a0, 0x000000e0, 0x0000003b, 0x0000004d
  1605. data4 0x000000ae, 0x0000002a, 0x000000f5, 0x000000b0
  1606. data4 0x000000c8, 0x000000eb, 0x000000bb, 0x0000003c
  1607. data4 0x00000083, 0x00000053, 0x00000099, 0x00000061
  1608. data4 0x00000017, 0x0000002b, 0x00000004, 0x0000007e
  1609. data4 0x000000ba, 0x00000077, 0x000000d6, 0x00000026
  1610. data4 0x000000e1, 0x00000069, 0x00000014, 0x00000063
  1611. data4 0x00000055, 0x00000021, 0x0000000c, 0x0000007d
  1612. .size AES_Td#,8*256*4 // HP-UX assembler fails to ".-AES_Td#"