xtea.lst 23 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717
  1. GAS LISTING /tmp/ccTAJB9M.s page 1
  2. 1 .file "xtea.c"
  3. 2 __SP_H__ = 0x3e
  4. 3 __SP_L__ = 0x3d
  5. 4 __SREG__ = 0x3f
  6. 5 __RAMPZ__ = 0x3b
  7. 6 __tmp_reg__ = 0
  8. 7 __zero_reg__ = 1
  9. 8 .section .text.XTeaCrypt,"ax",@progbits
  10. 9 .global XTeaCrypt
  11. 10 .type XTeaCrypt, @function
  12. 11 XTeaCrypt:
  13. 12 0000 2F92 push r2
  14. 13 0002 3F92 push r3
  15. 14 0004 4F92 push r4
  16. 15 0006 5F92 push r5
  17. 16 0008 6F92 push r6
  18. 17 000a 7F92 push r7
  19. 18 000c 8F92 push r8
  20. 19 000e 9F92 push r9
  21. 20 0010 AF92 push r10
  22. 21 0012 BF92 push r11
  23. 22 0014 CF92 push r12
  24. 23 0016 DF92 push r13
  25. 24 0018 EF92 push r14
  26. 25 001a FF92 push r15
  27. 26 001c 0F93 push r16
  28. 27 001e 1F93 push r17
  29. 28 0020 CF93 push r28
  30. 29 0022 DF93 push r29
  31. 30 0024 00D0 rcall .
  32. 31 0026 00D0 rcall .
  33. 32 0028 CDB7 in r28,__SP_L__
  34. 33 002a DEB7 in r29,__SP_H__
  35. 34 /* prologue: function */
  36. 35 /* frame size = 6 */
  37. 36 /* stack size = 24 */
  38. 37 .L__stack_usage = 24
  39. 38 002c 1C01 movw r2,r24
  40. 39 002e 5E83 std Y+6,r21
  41. 40 0030 4D83 std Y+5,r20
  42. 41 0032 FB01 movw r30,r22
  43. 42 0034 8080 ld r8,Z
  44. 43 0036 9180 ldd r9,Z+1
  45. 44 0038 A280 ldd r10,Z+2
  46. 45 003a B380 ldd r11,Z+3
  47. 46 003c C480 ldd r12,Z+4
  48. 47 003e D580 ldd r13,Z+5
  49. 48 0040 E680 ldd r14,Z+6
  50. 49 0042 F780 ldd r15,Z+7
  51. 50 0044 80E0 ldi r24,0
  52. 51 0046 90E0 ldi r25,0
  53. 52 0048 DC01 movw r26,r24
  54. 53 .L2:
  55. 54 004a FC01 movw r30,r24
  56. 55 004c E370 andi r30,3
  57. 56 004e FF27 clr r31
  58. 57 0050 EE0F lsl r30
  59. GAS LISTING /tmp/ccTAJB9M.s page 2
  60. 58 0052 FF1F rol r31
  61. 59 0054 EE0F lsl r30
  62. 60 0056 FF1F rol r31
  63. 61 0058 0D81 ldd r16,Y+5
  64. 62 005a 1E81 ldd r17,Y+6
  65. 63 005c E00F add r30,r16
  66. 64 005e F11F adc r31,r17
  67. 65 0060 4080 ld r4,Z
  68. 66 0062 5180 ldd r5,Z+1
  69. 67 0064 6280 ldd r6,Z+2
  70. 68 0066 7380 ldd r7,Z+3
  71. 69 0068 480E add r4,r24
  72. 70 006a 591E adc r5,r25
  73. 71 006c 6A1E adc r6,r26
  74. 72 006e 7B1E adc r7,r27
  75. 73 0070 A701 movw r20,r14
  76. 74 0072 9601 movw r18,r12
  77. 75 0074 64E0 ldi r22,4
  78. 76 1:
  79. 77 0076 220F lsl r18
  80. 78 0078 331F rol r19
  81. 79 007a 441F rol r20
  82. 80 007c 551F rol r21
  83. 81 007e 6A95 dec r22
  84. 82 0080 01F4 brne 1b
  85. 83 0082 2983 std Y+1,r18
  86. 84 0084 3A83 std Y+2,r19
  87. 85 0086 4B83 std Y+3,r20
  88. 86 0088 5C83 std Y+4,r21
  89. 87 008a 9701 movw r18,r14
  90. 88 008c 8601 movw r16,r12
  91. 89 008e 75E0 ldi r23,5
  92. 90 1:
  93. 91 0090 3695 lsr r19
  94. 92 0092 2795 ror r18
  95. 93 0094 1795 ror r17
  96. 94 0096 0795 ror r16
  97. 95 0098 7A95 dec r23
  98. 96 009a 01F4 brne 1b
  99. 97 009c 4981 ldd r20,Y+1
  100. 98 009e 5A81 ldd r21,Y+2
  101. 99 00a0 6B81 ldd r22,Y+3
  102. 100 00a2 7C81 ldd r23,Y+4
  103. 101 00a4 0427 eor r16,r20
  104. 102 00a6 1527 eor r17,r21
  105. 103 00a8 2627 eor r18,r22
  106. 104 00aa 3727 eor r19,r23
  107. 105 00ac 0C0D add r16,r12
  108. 106 00ae 1D1D adc r17,r13
  109. 107 00b0 2E1D adc r18,r14
  110. 108 00b2 3F1D adc r19,r15
  111. 109 00b4 4026 eor r4,r16
  112. 110 00b6 5126 eor r5,r17
  113. 111 00b8 6226 eor r6,r18
  114. 112 00ba 7326 eor r7,r19
  115. 113 00bc 840C add r8,r4
  116. 114 00be 951C adc r9,r5
  117. GAS LISTING /tmp/ccTAJB9M.s page 3
  118. 115 00c0 A61C adc r10,r6
  119. 116 00c2 B71C adc r11,r7
  120. 117 00c4 8754 subi r24,71
  121. 118 00c6 9648 sbci r25,-122
  122. 119 00c8 A84C sbci r26,-56
  123. 120 00ca B146 sbci r27,97
  124. 121 00cc 8C01 movw r16,r24
  125. 122 00ce 9D01 movw r18,r26
  126. 123 00d0 EBE0 ldi r30,11
  127. 124 1:
  128. 125 00d2 3695 lsr r19
  129. 126 00d4 2795 ror r18
  130. 127 00d6 1795 ror r17
  131. 128 00d8 0795 ror r16
  132. 129 00da EA95 dec r30
  133. 130 00dc 01F4 brne 1b
  134. 131 00de F801 movw r30,r16
  135. 132 00e0 E370 andi r30,3
  136. 133 00e2 FF27 clr r31
  137. 134 00e4 EE0F lsl r30
  138. 135 00e6 FF1F rol r31
  139. 136 00e8 EE0F lsl r30
  140. 137 00ea FF1F rol r31
  141. 138 00ec 6D81 ldd r22,Y+5
  142. 139 00ee 7E81 ldd r23,Y+6
  143. 140 00f0 E60F add r30,r22
  144. 141 00f2 F71F adc r31,r23
  145. 142 00f4 4080 ld r4,Z
  146. 143 00f6 5180 ldd r5,Z+1
  147. 144 00f8 6280 ldd r6,Z+2
  148. 145 00fa 7380 ldd r7,Z+3
  149. 146 00fc 480E add r4,r24
  150. 147 00fe 591E adc r5,r25
  151. 148 0100 6A1E adc r6,r26
  152. 149 0102 7B1E adc r7,r27
  153. 150 0104 9501 movw r18,r10
  154. 151 0106 8401 movw r16,r8
  155. 152 0108 44E0 ldi r20,4
  156. 153 1:
  157. 154 010a 000F lsl r16
  158. 155 010c 111F rol r17
  159. 156 010e 221F rol r18
  160. 157 0110 331F rol r19
  161. 158 0112 4A95 dec r20
  162. 159 0114 01F4 brne 1b
  163. 160 0116 0983 std Y+1,r16
  164. 161 0118 1A83 std Y+2,r17
  165. 162 011a 2B83 std Y+3,r18
  166. 163 011c 3C83 std Y+4,r19
  167. 164 011e 9501 movw r18,r10
  168. 165 0120 8401 movw r16,r8
  169. 166 0122 55E0 ldi r21,5
  170. 167 1:
  171. 168 0124 3695 lsr r19
  172. 169 0126 2795 ror r18
  173. 170 0128 1795 ror r17
  174. 171 012a 0795 ror r16
  175. GAS LISTING /tmp/ccTAJB9M.s page 4
  176. 172 012c 5A95 dec r21
  177. 173 012e 01F4 brne 1b
  178. 174 0130 4981 ldd r20,Y+1
  179. 175 0132 5A81 ldd r21,Y+2
  180. 176 0134 6B81 ldd r22,Y+3
  181. 177 0136 7C81 ldd r23,Y+4
  182. 178 0138 0427 eor r16,r20
  183. 179 013a 1527 eor r17,r21
  184. 180 013c 2627 eor r18,r22
  185. 181 013e 3727 eor r19,r23
  186. 182 0140 080D add r16,r8
  187. 183 0142 191D adc r17,r9
  188. 184 0144 2A1D adc r18,r10
  189. 185 0146 3B1D adc r19,r11
  190. 186 0148 4026 eor r4,r16
  191. 187 014a 5126 eor r5,r17
  192. 188 014c 6226 eor r6,r18
  193. 189 014e 7326 eor r7,r19
  194. 190 0150 C40C add r12,r4
  195. 191 0152 D51C adc r13,r5
  196. 192 0154 E61C adc r14,r6
  197. 193 0156 F71C adc r15,r7
  198. 194 0158 8032 cpi r24,32
  199. 195 015a 57E3 ldi r21,55
  200. 196 015c 9507 cpc r25,r21
  201. 197 015e 5FEE ldi r21,-17
  202. 198 0160 A507 cpc r26,r21
  203. 199 0162 56EC ldi r21,-58
  204. 200 0164 B507 cpc r27,r21
  205. 201 0166 01F0 breq .+2
  206. 202 0168 00C0 rjmp .L2
  207. 203 016a F101 movw r30,r2
  208. 204 016c 8082 st Z,r8
  209. 205 016e 9182 std Z+1,r9
  210. 206 0170 A282 std Z+2,r10
  211. 207 0172 B382 std Z+3,r11
  212. 208 0174 C482 std Z+4,r12
  213. 209 0176 D582 std Z+5,r13
  214. 210 0178 E682 std Z+6,r14
  215. 211 017a F782 std Z+7,r15
  216. 212 /* epilogue start */
  217. 213 017c 2696 adiw r28,6
  218. 214 017e 0FB6 in __tmp_reg__,__SREG__
  219. 215 0180 F894 cli
  220. 216 0182 DEBF out __SP_H__,r29
  221. 217 0184 0FBE out __SREG__,__tmp_reg__
  222. 218 0186 CDBF out __SP_L__,r28
  223. 219 0188 DF91 pop r29
  224. 220 018a CF91 pop r28
  225. 221 018c 1F91 pop r17
  226. 222 018e 0F91 pop r16
  227. 223 0190 FF90 pop r15
  228. 224 0192 EF90 pop r14
  229. 225 0194 DF90 pop r13
  230. 226 0196 CF90 pop r12
  231. 227 0198 BF90 pop r11
  232. 228 019a AF90 pop r10
  233. GAS LISTING /tmp/ccTAJB9M.s page 5
  234. 229 019c 9F90 pop r9
  235. 230 019e 8F90 pop r8
  236. 231 01a0 7F90 pop r7
  237. 232 01a2 6F90 pop r6
  238. 233 01a4 5F90 pop r5
  239. 234 01a6 4F90 pop r4
  240. 235 01a8 3F90 pop r3
  241. 236 01aa 2F90 pop r2
  242. 237 01ac 0895 ret
  243. 238 .size XTeaCrypt, .-XTeaCrypt
  244. 239 .section .text.XTeaDecrypt,"ax",@progbits
  245. 240 .global XTeaDecrypt
  246. 241 .type XTeaDecrypt, @function
  247. 242 XTeaDecrypt:
  248. 243 0000 2F92 push r2
  249. 244 0002 3F92 push r3
  250. 245 0004 4F92 push r4
  251. 246 0006 5F92 push r5
  252. 247 0008 6F92 push r6
  253. 248 000a 7F92 push r7
  254. 249 000c 8F92 push r8
  255. 250 000e 9F92 push r9
  256. 251 0010 AF92 push r10
  257. 252 0012 BF92 push r11
  258. 253 0014 CF92 push r12
  259. 254 0016 DF92 push r13
  260. 255 0018 EF92 push r14
  261. 256 001a FF92 push r15
  262. 257 001c 0F93 push r16
  263. 258 001e 1F93 push r17
  264. 259 0020 CF93 push r28
  265. 260 0022 DF93 push r29
  266. 261 0024 00D0 rcall .
  267. 262 0026 00D0 rcall .
  268. 263 0028 CDB7 in r28,__SP_L__
  269. 264 002a DEB7 in r29,__SP_H__
  270. 265 /* prologue: function */
  271. 266 /* frame size = 6 */
  272. 267 /* stack size = 24 */
  273. 268 .L__stack_usage = 24
  274. 269 002c 1C01 movw r2,r24
  275. 270 002e 5E83 std Y+6,r21
  276. 271 0030 4D83 std Y+5,r20
  277. 272 0032 FB01 movw r30,r22
  278. 273 0034 8080 ld r8,Z
  279. 274 0036 9180 ldd r9,Z+1
  280. 275 0038 A280 ldd r10,Z+2
  281. 276 003a B380 ldd r11,Z+3
  282. 277 003c C480 ldd r12,Z+4
  283. 278 003e D580 ldd r13,Z+5
  284. 279 0040 E680 ldd r14,Z+6
  285. 280 0042 F780 ldd r15,Z+7
  286. 281 0044 80E2 ldi r24,lo8(32)
  287. 282 0046 97E3 ldi r25,lo8(55)
  288. 283 0048 AFEE ldi r26,lo8(-17)
  289. 284 004a B6EC ldi r27,lo8(-58)
  290. 285 .L6:
  291. GAS LISTING /tmp/ccTAJB9M.s page 6
  292. 286 004c 8C01 movw r16,r24
  293. 287 004e 9D01 movw r18,r26
  294. 288 0050 4BE0 ldi r20,11
  295. 289 1:
  296. 290 0052 3695 lsr r19
  297. 291 0054 2795 ror r18
  298. 292 0056 1795 ror r17
  299. 293 0058 0795 ror r16
  300. 294 005a 4A95 dec r20
  301. 295 005c 01F4 brne 1b
  302. 296 005e F801 movw r30,r16
  303. 297 0060 E370 andi r30,3
  304. 298 0062 FF27 clr r31
  305. 299 0064 EE0F lsl r30
  306. 300 0066 FF1F rol r31
  307. 301 0068 EE0F lsl r30
  308. 302 006a FF1F rol r31
  309. 303 006c 0D81 ldd r16,Y+5
  310. 304 006e 1E81 ldd r17,Y+6
  311. 305 0070 E00F add r30,r16
  312. 306 0072 F11F adc r31,r17
  313. 307 0074 4080 ld r4,Z
  314. 308 0076 5180 ldd r5,Z+1
  315. 309 0078 6280 ldd r6,Z+2
  316. 310 007a 7380 ldd r7,Z+3
  317. 311 007c 480E add r4,r24
  318. 312 007e 591E adc r5,r25
  319. 313 0080 6A1E adc r6,r26
  320. 314 0082 7B1E adc r7,r27
  321. 315 0084 A501 movw r20,r10
  322. 316 0086 9401 movw r18,r8
  323. 317 0088 64E0 ldi r22,4
  324. 318 1:
  325. 319 008a 220F lsl r18
  326. 320 008c 331F rol r19
  327. 321 008e 441F rol r20
  328. 322 0090 551F rol r21
  329. 323 0092 6A95 dec r22
  330. 324 0094 01F4 brne 1b
  331. 325 0096 2983 std Y+1,r18
  332. 326 0098 3A83 std Y+2,r19
  333. 327 009a 4B83 std Y+3,r20
  334. 328 009c 5C83 std Y+4,r21
  335. 329 009e 9501 movw r18,r10
  336. 330 00a0 8401 movw r16,r8
  337. 331 00a2 75E0 ldi r23,5
  338. 332 1:
  339. 333 00a4 3695 lsr r19
  340. 334 00a6 2795 ror r18
  341. 335 00a8 1795 ror r17
  342. 336 00aa 0795 ror r16
  343. 337 00ac 7A95 dec r23
  344. 338 00ae 01F4 brne 1b
  345. 339 00b0 4981 ldd r20,Y+1
  346. 340 00b2 5A81 ldd r21,Y+2
  347. 341 00b4 6B81 ldd r22,Y+3
  348. 342 00b6 7C81 ldd r23,Y+4
  349. GAS LISTING /tmp/ccTAJB9M.s page 7
  350. 343 00b8 0427 eor r16,r20
  351. 344 00ba 1527 eor r17,r21
  352. 345 00bc 2627 eor r18,r22
  353. 346 00be 3727 eor r19,r23
  354. 347 00c0 080D add r16,r8
  355. 348 00c2 191D adc r17,r9
  356. 349 00c4 2A1D adc r18,r10
  357. 350 00c6 3B1D adc r19,r11
  358. 351 00c8 4026 eor r4,r16
  359. 352 00ca 5126 eor r5,r17
  360. 353 00cc 6226 eor r6,r18
  361. 354 00ce 7326 eor r7,r19
  362. 355 00d0 C418 sub r12,r4
  363. 356 00d2 D508 sbc r13,r5
  364. 357 00d4 E608 sbc r14,r6
  365. 358 00d6 F708 sbc r15,r7
  366. 359 00d8 895B subi r24,-71
  367. 360 00da 9947 sbci r25,121
  368. 361 00dc A743 sbci r26,55
  369. 362 00de BE49 sbci r27,-98
  370. 363 00e0 FC01 movw r30,r24
  371. 364 00e2 E370 andi r30,3
  372. 365 00e4 FF27 clr r31
  373. 366 00e6 EE0F lsl r30
  374. 367 00e8 FF1F rol r31
  375. 368 00ea EE0F lsl r30
  376. 369 00ec FF1F rol r31
  377. 370 00ee 6D81 ldd r22,Y+5
  378. 371 00f0 7E81 ldd r23,Y+6
  379. 372 00f2 E60F add r30,r22
  380. 373 00f4 F71F adc r31,r23
  381. 374 00f6 4080 ld r4,Z
  382. 375 00f8 5180 ldd r5,Z+1
  383. 376 00fa 6280 ldd r6,Z+2
  384. 377 00fc 7380 ldd r7,Z+3
  385. 378 00fe 480E add r4,r24
  386. 379 0100 591E adc r5,r25
  387. 380 0102 6A1E adc r6,r26
  388. 381 0104 7B1E adc r7,r27
  389. 382 0106 9701 movw r18,r14
  390. 383 0108 8601 movw r16,r12
  391. 384 010a 44E0 ldi r20,4
  392. 385 1:
  393. 386 010c 000F lsl r16
  394. 387 010e 111F rol r17
  395. 388 0110 221F rol r18
  396. 389 0112 331F rol r19
  397. 390 0114 4A95 dec r20
  398. 391 0116 01F4 brne 1b
  399. 392 0118 0983 std Y+1,r16
  400. 393 011a 1A83 std Y+2,r17
  401. 394 011c 2B83 std Y+3,r18
  402. 395 011e 3C83 std Y+4,r19
  403. 396 0120 9701 movw r18,r14
  404. 397 0122 8601 movw r16,r12
  405. 398 0124 55E0 ldi r21,5
  406. 399 1:
  407. GAS LISTING /tmp/ccTAJB9M.s page 8
  408. 400 0126 3695 lsr r19
  409. 401 0128 2795 ror r18
  410. 402 012a 1795 ror r17
  411. 403 012c 0795 ror r16
  412. 404 012e 5A95 dec r21
  413. 405 0130 01F4 brne 1b
  414. 406 0132 4981 ldd r20,Y+1
  415. 407 0134 5A81 ldd r21,Y+2
  416. 408 0136 6B81 ldd r22,Y+3
  417. 409 0138 7C81 ldd r23,Y+4
  418. 410 013a 0427 eor r16,r20
  419. 411 013c 1527 eor r17,r21
  420. 412 013e 2627 eor r18,r22
  421. 413 0140 3727 eor r19,r23
  422. 414 0142 0C0D add r16,r12
  423. 415 0144 1D1D adc r17,r13
  424. 416 0146 2E1D adc r18,r14
  425. 417 0148 3F1D adc r19,r15
  426. 418 014a 4026 eor r4,r16
  427. 419 014c 5126 eor r5,r17
  428. 420 014e 6226 eor r6,r18
  429. 421 0150 7326 eor r7,r19
  430. 422 0152 8418 sub r8,r4
  431. 423 0154 9508 sbc r9,r5
  432. 424 0156 A608 sbc r10,r6
  433. 425 0158 B708 sbc r11,r7
  434. 426 015a 0097 sbiw r24,0
  435. 427 015c A105 cpc r26,__zero_reg__
  436. 428 015e B105 cpc r27,__zero_reg__
  437. 429 0160 01F0 breq .+2
  438. 430 0162 00C0 rjmp .L6
  439. 431 0164 F101 movw r30,r2
  440. 432 0166 8082 st Z,r8
  441. 433 0168 9182 std Z+1,r9
  442. 434 016a A282 std Z+2,r10
  443. 435 016c B382 std Z+3,r11
  444. 436 016e C482 std Z+4,r12
  445. 437 0170 D582 std Z+5,r13
  446. 438 0172 E682 std Z+6,r14
  447. 439 0174 F782 std Z+7,r15
  448. 440 /* epilogue start */
  449. 441 0176 2696 adiw r28,6
  450. 442 0178 0FB6 in __tmp_reg__,__SREG__
  451. 443 017a F894 cli
  452. 444 017c DEBF out __SP_H__,r29
  453. 445 017e 0FBE out __SREG__,__tmp_reg__
  454. 446 0180 CDBF out __SP_L__,r28
  455. 447 0182 DF91 pop r29
  456. 448 0184 CF91 pop r28
  457. 449 0186 1F91 pop r17
  458. 450 0188 0F91 pop r16
  459. 451 018a FF90 pop r15
  460. 452 018c EF90 pop r14
  461. 453 018e DF90 pop r13
  462. 454 0190 CF90 pop r12
  463. 455 0192 BF90 pop r11
  464. 456 0194 AF90 pop r10
  465. GAS LISTING /tmp/ccTAJB9M.s page 9
  466. 457 0196 9F90 pop r9
  467. 458 0198 8F90 pop r8
  468. 459 019a 7F90 pop r7
  469. 460 019c 6F90 pop r6
  470. 461 019e 5F90 pop r5
  471. 462 01a0 4F90 pop r4
  472. 463 01a2 3F90 pop r3
  473. 464 01a4 2F90 pop r2
  474. 465 01a6 0895 ret
  475. 466 .size XTeaDecrypt, .-XTeaDecrypt
  476. 467 .section .text.XTeaCryptStr,"ax",@progbits
  477. 468 .global XTeaCryptStr
  478. 469 .type XTeaCryptStr, @function
  479. 470 XTeaCryptStr:
  480. 471 0000 8F92 push r8
  481. 472 0002 9F92 push r9
  482. 473 0004 AF92 push r10
  483. 474 0006 BF92 push r11
  484. 475 0008 CF92 push r12
  485. 476 000a DF92 push r13
  486. 477 000c EF92 push r14
  487. 478 000e FF92 push r15
  488. 479 0010 0F93 push r16
  489. 480 0012 1F93 push r17
  490. 481 0014 CF93 push r28
  491. 482 0016 DF93 push r29
  492. 483 0018 CDB7 in r28,__SP_L__
  493. 484 001a DEB7 in r29,__SP_H__
  494. 485 001c 6097 sbiw r28,16
  495. 486 001e 0FB6 in __tmp_reg__,__SREG__
  496. 487 0020 F894 cli
  497. 488 0022 DEBF out __SP_H__,r29
  498. 489 0024 0FBE out __SREG__,__tmp_reg__
  499. 490 0026 CDBF out __SP_L__,r28
  500. 491 /* prologue: function */
  501. 492 /* frame size = 16 */
  502. 493 /* stack size = 28 */
  503. 494 .L__stack_usage = 28
  504. 495 0028 6C01 movw r12,r24
  505. 496 002a 5B01 movw r10,r22
  506. 497 002c 7A01 movw r14,r20
  507. 498 002e 8E01 movw r16,r28
  508. 499 0030 0F5F subi r16,-1
  509. 500 0032 1F4F sbci r17,-1
  510. 501 0034 80E1 ldi r24,lo8(16)
  511. 502 0036 F801 movw r30,r16
  512. 503 0:
  513. 504 0038 1192 st Z+,__zero_reg__
  514. 505 003a 8A95 dec r24
  515. 506 003c 01F4 brne 0b
  516. 507 003e F901 movw r30,r18
  517. 508 0:
  518. 509 0040 0190 ld __tmp_reg__,Z+
  519. 510 0042 0020 tst __tmp_reg__
  520. 511 0044 01F4 brne 0b
  521. 512 0046 3197 sbiw r30,1
  522. 513 0048 AF01 movw r20,r30
  523. GAS LISTING /tmp/ccTAJB9M.s page 10
  524. 514 004a 421B sub r20,r18
  525. 515 004c 530B sbc r21,r19
  526. 516 004e 4131 cpi r20,17
  527. 517 0050 5105 cpc r21,__zero_reg__
  528. 518 0052 00F0 brlo .L9
  529. 519 0054 40E1 ldi r20,lo8(16)
  530. 520 0056 50E0 ldi r21,0
  531. 521 .L9:
  532. 522 0058 B901 movw r22,r18
  533. 523 005a C801 movw r24,r16
  534. 524 005c 0E94 0000 call memcpy
  535. 525 0060 812C mov r8,__zero_reg__
  536. 526 0062 912C mov r9,__zero_reg__
  537. 527 .L10:
  538. 528 0064 B501 movw r22,r10
  539. 529 0066 680D add r22,r8
  540. 530 0068 791D adc r23,r9
  541. 531 006a C601 movw r24,r12
  542. 532 006c 880D add r24,r8
  543. 533 006e 991D adc r25,r9
  544. 534 0070 8E14 cp r8,r14
  545. 535 0072 9F04 cpc r9,r15
  546. 536 0074 00F4 brsh .L12
  547. 537 0076 A801 movw r20,r16
  548. 538 0078 0E94 0000 call XTeaCrypt
  549. 539 007c F8E0 ldi r31,8
  550. 540 007e 8F0E add r8,r31
  551. 541 0080 911C adc r9,__zero_reg__
  552. 542 0082 00C0 rjmp .L10
  553. 543 .L12:
  554. 544 /* epilogue start */
  555. 545 0084 6096 adiw r28,16
  556. 546 0086 0FB6 in __tmp_reg__,__SREG__
  557. 547 0088 F894 cli
  558. 548 008a DEBF out __SP_H__,r29
  559. 549 008c 0FBE out __SREG__,__tmp_reg__
  560. 550 008e CDBF out __SP_L__,r28
  561. 551 0090 DF91 pop r29
  562. 552 0092 CF91 pop r28
  563. 553 0094 1F91 pop r17
  564. 554 0096 0F91 pop r16
  565. 555 0098 FF90 pop r15
  566. 556 009a EF90 pop r14
  567. 557 009c DF90 pop r13
  568. 558 009e CF90 pop r12
  569. 559 00a0 BF90 pop r11
  570. 560 00a2 AF90 pop r10
  571. 561 00a4 9F90 pop r9
  572. 562 00a6 8F90 pop r8
  573. 563 00a8 0895 ret
  574. 564 .size XTeaCryptStr, .-XTeaCryptStr
  575. 565 .section .text.XTeaDecryptStr,"ax",@progbits
  576. 566 .global XTeaDecryptStr
  577. 567 .type XTeaDecryptStr, @function
  578. 568 XTeaDecryptStr:
  579. 569 0000 8F92 push r8
  580. 570 0002 9F92 push r9
  581. GAS LISTING /tmp/ccTAJB9M.s page 11
  582. 571 0004 AF92 push r10
  583. 572 0006 BF92 push r11
  584. 573 0008 CF92 push r12
  585. 574 000a DF92 push r13
  586. 575 000c EF92 push r14
  587. 576 000e FF92 push r15
  588. 577 0010 0F93 push r16
  589. 578 0012 1F93 push r17
  590. 579 0014 CF93 push r28
  591. 580 0016 DF93 push r29
  592. 581 0018 CDB7 in r28,__SP_L__
  593. 582 001a DEB7 in r29,__SP_H__
  594. 583 001c 6097 sbiw r28,16
  595. 584 001e 0FB6 in __tmp_reg__,__SREG__
  596. 585 0020 F894 cli
  597. 586 0022 DEBF out __SP_H__,r29
  598. 587 0024 0FBE out __SREG__,__tmp_reg__
  599. 588 0026 CDBF out __SP_L__,r28
  600. 589 /* prologue: function */
  601. 590 /* frame size = 16 */
  602. 591 /* stack size = 28 */
  603. 592 .L__stack_usage = 28
  604. 593 0028 6C01 movw r12,r24
  605. 594 002a 5B01 movw r10,r22
  606. 595 002c 7A01 movw r14,r20
  607. 596 002e 8E01 movw r16,r28
  608. 597 0030 0F5F subi r16,-1
  609. 598 0032 1F4F sbci r17,-1
  610. 599 0034 80E1 ldi r24,lo8(16)
  611. 600 0036 F801 movw r30,r16
  612. 601 0:
  613. 602 0038 1192 st Z+,__zero_reg__
  614. 603 003a 8A95 dec r24
  615. 604 003c 01F4 brne 0b
  616. 605 003e F901 movw r30,r18
  617. 606 0:
  618. 607 0040 0190 ld __tmp_reg__,Z+
  619. 608 0042 0020 tst __tmp_reg__
  620. 609 0044 01F4 brne 0b
  621. 610 0046 3197 sbiw r30,1
  622. 611 0048 AF01 movw r20,r30
  623. 612 004a 421B sub r20,r18
  624. 613 004c 530B sbc r21,r19
  625. 614 004e 4131 cpi r20,17
  626. 615 0050 5105 cpc r21,__zero_reg__
  627. 616 0052 00F0 brlo .L14
  628. 617 0054 40E1 ldi r20,lo8(16)
  629. 618 0056 50E0 ldi r21,0
  630. 619 .L14:
  631. 620 0058 B901 movw r22,r18
  632. 621 005a C801 movw r24,r16
  633. 622 005c 0E94 0000 call memcpy
  634. 623 0060 812C mov r8,__zero_reg__
  635. 624 0062 912C mov r9,__zero_reg__
  636. 625 .L15:
  637. 626 0064 B501 movw r22,r10
  638. 627 0066 680D add r22,r8
  639. GAS LISTING /tmp/ccTAJB9M.s page 12
  640. 628 0068 791D adc r23,r9
  641. 629 006a C601 movw r24,r12
  642. 630 006c 880D add r24,r8
  643. 631 006e 991D adc r25,r9
  644. 632 0070 8E14 cp r8,r14
  645. 633 0072 9F04 cpc r9,r15
  646. 634 0074 00F4 brsh .L17
  647. 635 0076 A801 movw r20,r16
  648. 636 0078 0E94 0000 call XTeaDecrypt
  649. 637 007c F8E0 ldi r31,8
  650. 638 007e 8F0E add r8,r31
  651. 639 0080 911C adc r9,__zero_reg__
  652. 640 0082 00C0 rjmp .L15
  653. 641 .L17:
  654. 642 /* epilogue start */
  655. 643 0084 6096 adiw r28,16
  656. 644 0086 0FB6 in __tmp_reg__,__SREG__
  657. 645 0088 F894 cli
  658. 646 008a DEBF out __SP_H__,r29
  659. 647 008c 0FBE out __SREG__,__tmp_reg__
  660. 648 008e CDBF out __SP_L__,r28
  661. 649 0090 DF91 pop r29
  662. 650 0092 CF91 pop r28
  663. 651 0094 1F91 pop r17
  664. 652 0096 0F91 pop r16
  665. 653 0098 FF90 pop r15
  666. 654 009a EF90 pop r14
  667. 655 009c DF90 pop r13
  668. 656 009e CF90 pop r12
  669. 657 00a0 BF90 pop r11
  670. 658 00a2 AF90 pop r10
  671. 659 00a4 9F90 pop r9
  672. 660 00a6 8F90 pop r8
  673. 661 00a8 0895 ret
  674. 662 .size XTeaDecryptStr, .-XTeaDecryptStr
  675. 663 .ident "GCC: (GNU) 5.3.0"
  676. GAS LISTING /tmp/ccTAJB9M.s page 13
  677. DEFINED SYMBOLS
  678. *ABS*:0000000000000000 xtea.c
  679. /tmp/ccTAJB9M.s:2 *ABS*:000000000000003e __SP_H__
  680. /tmp/ccTAJB9M.s:3 *ABS*:000000000000003d __SP_L__
  681. /tmp/ccTAJB9M.s:4 *ABS*:000000000000003f __SREG__
  682. /tmp/ccTAJB9M.s:5 *ABS*:000000000000003b __RAMPZ__
  683. /tmp/ccTAJB9M.s:6 *ABS*:0000000000000000 __tmp_reg__
  684. /tmp/ccTAJB9M.s:7 *ABS*:0000000000000001 __zero_reg__
  685. /tmp/ccTAJB9M.s:11 .text.XTeaCrypt:0000000000000000 XTeaCrypt
  686. /tmp/ccTAJB9M.s:242 .text.XTeaDecrypt:0000000000000000 XTeaDecrypt
  687. /tmp/ccTAJB9M.s:470 .text.XTeaCryptStr:0000000000000000 XTeaCryptStr
  688. /tmp/ccTAJB9M.s:568 .text.XTeaDecryptStr:0000000000000000 XTeaDecryptStr
  689. UNDEFINED SYMBOLS
  690. memcpy