pop3c.lst 23 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671
  1. GAS LISTING /tmp/cco0ehss.s page 1
  2. 1 .file "pop3c.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.CheckResponse,"ax",@progbits
  10. 9 .type CheckResponse, @function
  11. 10 CheckResponse:
  12. 11 /* prologue: function */
  13. 12 /* frame size = 0 */
  14. 13 /* stack size = 0 */
  15. 14 .L__stack_usage = 0
  16. 15 0000 0097 sbiw r24,0
  17. 16 0002 01F0 breq .L4
  18. 17 0004 21E0 ldi r18,lo8(1)
  19. 18 0006 30E0 ldi r19,0
  20. 19 0008 FC01 movw r30,r24
  21. 20 000a 8081 ld r24,Z
  22. 21 000c 8B32 cpi r24,lo8(43)
  23. 22 000e 01F4 brne .L3
  24. 23 0010 20E0 ldi r18,0
  25. 24 0012 30E0 ldi r19,0
  26. 25 .L3:
  27. 26 0014 8827 clr r24
  28. 27 0016 9927 clr r25
  29. 28 0018 821B sub r24,r18
  30. 29 001a 930B sbc r25,r19
  31. 30 001c 0895 ret
  32. 31 .L4:
  33. 32 001e 8FEF ldi r24,lo8(-1)
  34. 33 0020 9FEF ldi r25,lo8(-1)
  35. 34 0022 0895 ret
  36. 35 .size CheckResponse, .-CheckResponse
  37. 36 .section .text.NutPop3ReceiveResponse,"ax",@progbits
  38. 37 .global NutPop3ReceiveResponse
  39. 38 .type NutPop3ReceiveResponse, @function
  40. 39 NutPop3ReceiveResponse:
  41. 40 0000 CF93 push r28
  42. 41 0002 DF93 push r29
  43. 42 /* prologue: function */
  44. 43 /* frame size = 0 */
  45. 44 /* stack size = 2 */
  46. 45 .L__stack_usage = 2
  47. 46 0004 EC01 movw r28,r24
  48. 47 0006 2696 adiw r28,6
  49. 48 0008 FC01 movw r30,r24
  50. 49 000a 4281 ldd r20,Z+2
  51. 50 000c 5381 ldd r21,Z+3
  52. 51 000e 60E0 ldi r22,0
  53. 52 0010 71E0 ldi r23,lo8(1)
  54. 53 0012 CE01 movw r24,r28
  55. 54 0014 0E94 0000 call fgets
  56. 55 0018 892B or r24,r25
  57. 56 001a 01F0 breq .L10
  58. 57 001c 6DE0 ldi r22,lo8(13)
  59. GAS LISTING /tmp/cco0ehss.s page 2
  60. 58 001e 70E0 ldi r23,0
  61. 59 0020 CE01 movw r24,r28
  62. 60 0022 0E94 0000 call strchr
  63. 61 0026 0097 sbiw r24,0
  64. 62 0028 01F4 brne .L8
  65. 63 002a 6AE0 ldi r22,lo8(10)
  66. 64 002c 70E0 ldi r23,0
  67. 65 002e CE01 movw r24,r28
  68. 66 0030 0E94 0000 call strchr
  69. 67 0034 0097 sbiw r24,0
  70. 68 0036 01F0 breq .L10
  71. 69 .L8:
  72. 70 0038 FC01 movw r30,r24
  73. 71 003a 1082 st Z,__zero_reg__
  74. 72 003c CE01 movw r24,r28
  75. 73 003e 00C0 rjmp .L7
  76. 74 .L10:
  77. 75 0040 80E0 ldi r24,0
  78. 76 0042 90E0 ldi r25,0
  79. 77 .L7:
  80. 78 /* epilogue start */
  81. 79 0044 DF91 pop r29
  82. 80 0046 CF91 pop r28
  83. 81 0048 0895 ret
  84. 82 .size NutPop3ReceiveResponse, .-NutPop3ReceiveResponse
  85. 83 .section .rodata.str1.1,"aMS",@progbits,1
  86. 84 .LC0:
  87. 85 0000 0D0A 00 .string "\r\n"
  88. 86 .section .text.NutPop3SendCommand,"ax",@progbits
  89. 87 .global NutPop3SendCommand
  90. 88 .type NutPop3SendCommand, @function
  91. 89 NutPop3SendCommand:
  92. 90 0000 0F93 push r16
  93. 91 0002 1F93 push r17
  94. 92 0004 CF93 push r28
  95. 93 0006 DF93 push r29
  96. 94 0008 CDB7 in r28,__SP_L__
  97. 95 000a DEB7 in r29,__SP_H__
  98. 96 /* prologue: function */
  99. 97 /* frame size = 0 */
  100. 98 /* stack size = 4 */
  101. 99 .L__stack_usage = 4
  102. 100 000c 0885 ldd r16,Y+8
  103. 101 000e 1985 ldd r17,Y+9
  104. 102 0010 AE01 movw r20,r28
  105. 103 0012 445F subi r20,-12
  106. 104 0014 5F4F sbci r21,-1
  107. 105 0016 6A85 ldd r22,Y+10
  108. 106 0018 7B85 ldd r23,Y+11
  109. 107 001a F801 movw r30,r16
  110. 108 001c 8281 ldd r24,Z+2
  111. 109 001e 9381 ldd r25,Z+3
  112. 110 0020 0E94 0000 call vfprintf
  113. 111 0024 F801 movw r30,r16
  114. 112 0026 6281 ldd r22,Z+2
  115. 113 0028 7381 ldd r23,Z+3
  116. 114 002a 80E0 ldi r24,lo8(.LC0)
  117. GAS LISTING /tmp/cco0ehss.s page 3
  118. 115 002c 90E0 ldi r25,hi8(.LC0)
  119. 116 002e 0E94 0000 call fputs
  120. 117 0032 F801 movw r30,r16
  121. 118 0034 8281 ldd r24,Z+2
  122. 119 0036 9381 ldd r25,Z+3
  123. 120 0038 0E94 0000 call fflush
  124. 121 003c C801 movw r24,r16
  125. 122 003e 0E94 0000 call NutPop3ReceiveResponse
  126. 123 /* epilogue start */
  127. 124 0042 DF91 pop r29
  128. 125 0044 CF91 pop r28
  129. 126 0046 1F91 pop r17
  130. 127 0048 0F91 pop r16
  131. 128 004a 0895 ret
  132. 129 .size NutPop3SendCommand, .-NutPop3SendCommand
  133. 130 .section .rodata.str1.1
  134. 131 .LC1:
  135. 132 0003 5155 4954 .string "QUIT"
  136. 132 00
  137. 133 .section .text.NutPop3Disconnect,"ax",@progbits
  138. 134 .global NutPop3Disconnect
  139. 135 .type NutPop3Disconnect, @function
  140. 136 NutPop3Disconnect:
  141. 137 0000 CF93 push r28
  142. 138 0002 DF93 push r29
  143. 139 /* prologue: function */
  144. 140 /* frame size = 0 */
  145. 141 /* stack size = 2 */
  146. 142 .L__stack_usage = 2
  147. 143 0004 EC01 movw r28,r24
  148. 144 0006 8881 ld r24,Y
  149. 145 0008 9981 ldd r25,Y+1
  150. 146 000a 892B or r24,r25
  151. 147 000c 01F0 breq .L13
  152. 148 000e 8A81 ldd r24,Y+2
  153. 149 0010 9B81 ldd r25,Y+3
  154. 150 0012 892B or r24,r25
  155. 151 0014 01F0 breq .L14
  156. 152 0016 80E0 ldi r24,lo8(.LC1)
  157. 153 0018 90E0 ldi r25,hi8(.LC1)
  158. 154 001a 9F93 push r25
  159. 155 001c 8F93 push r24
  160. 156 001e DF93 push r29
  161. 157 0020 CF93 push r28
  162. 158 0022 0E94 0000 call NutPop3SendCommand
  163. 159 0026 8A81 ldd r24,Y+2
  164. 160 0028 9B81 ldd r25,Y+3
  165. 161 002a 0E94 0000 call fclose
  166. 162 002e 0F90 pop __tmp_reg__
  167. 163 0030 0F90 pop __tmp_reg__
  168. 164 0032 0F90 pop __tmp_reg__
  169. 165 0034 0F90 pop __tmp_reg__
  170. 166 .L14:
  171. 167 0036 8881 ld r24,Y
  172. 168 0038 9981 ldd r25,Y+1
  173. 169 003a 0E94 0000 call NutTcpCloseSocket
  174. 170 .L13:
  175. GAS LISTING /tmp/cco0ehss.s page 4
  176. 171 003e 8C81 ldd r24,Y+4
  177. 172 0040 9D81 ldd r25,Y+5
  178. 173 0042 0E94 0000 call free
  179. 174 0046 CE01 movw r24,r28
  180. 175 /* epilogue start */
  181. 176 0048 DF91 pop r29
  182. 177 004a CF91 pop r28
  183. 178 004c 0C94 0000 jmp free
  184. 179 .size NutPop3Disconnect, .-NutPop3Disconnect
  185. 180 .section .rodata.str1.1
  186. 181 .LC2:
  187. 182 0008 722B 6200 .string "r+b"
  188. 183 .section .text.NutPop3Connect,"ax",@progbits
  189. 184 .global NutPop3Connect
  190. 185 .type NutPop3Connect, @function
  191. 186 NutPop3Connect:
  192. 187 0000 AF92 push r10
  193. 188 0002 BF92 push r11
  194. 189 0004 CF92 push r12
  195. 190 0006 DF92 push r13
  196. 191 0008 EF92 push r14
  197. 192 000a FF92 push r15
  198. 193 000c 0F93 push r16
  199. 194 000e 1F93 push r17
  200. 195 0010 CF93 push r28
  201. 196 0012 DF93 push r29
  202. 197 0014 00D0 rcall .
  203. 198 0016 1F92 push __zero_reg__
  204. 199 0018 CDB7 in r28,__SP_L__
  205. 200 001a DEB7 in r29,__SP_H__
  206. 201 /* prologue: function */
  207. 202 /* frame size = 4 */
  208. 203 /* stack size = 14 */
  209. 204 .L__stack_usage = 14
  210. 205 001c 6B01 movw r12,r22
  211. 206 001e 7C01 movw r14,r24
  212. 207 0020 5A01 movw r10,r20
  213. 208 0022 66E0 ldi r22,lo8(6)
  214. 209 0024 71E0 ldi r23,lo8(1)
  215. 210 0026 81E0 ldi r24,lo8(1)
  216. 211 0028 90E0 ldi r25,0
  217. 212 002a 0E94 0000 call calloc
  218. 213 002e 8C01 movw r16,r24
  219. 214 0030 892B or r24,r25
  220. 215 0032 01F4 brne .+2
  221. 216 0034 00C0 rjmp .L31
  222. 217 0036 0E94 0000 call NutTcpCreateSocket
  223. 218 003a F801 movw r30,r16
  224. 219 003c 9183 std Z+1,r25
  225. 220 003e 8083 st Z,r24
  226. 221 0040 0097 sbiw r24,0
  227. 222 0042 01F4 brne .+2
  228. 223 0044 00C0 rjmp .L24
  229. 224 0046 9501 movw r18,r10
  230. 225 0048 B701 movw r22,r14
  231. 226 004a A601 movw r20,r12
  232. 227 004c 0E94 0000 call NutTcpConnect
  233. GAS LISTING /tmp/cco0ehss.s page 5
  234. 228 0050 892B or r24,r25
  235. 229 0052 01F0 breq .+2
  236. 230 0054 00C0 rjmp .L24
  237. 231 0056 80EC ldi r24,lo8(-64)
  238. 232 0058 97E2 ldi r25,lo8(39)
  239. 233 005a A9E0 ldi r26,lo8(9)
  240. 234 005c B0E0 ldi r27,0
  241. 235 005e 8983 std Y+1,r24
  242. 236 0060 9A83 std Y+2,r25
  243. 237 0062 AB83 std Y+3,r26
  244. 238 0064 BC83 std Y+4,r27
  245. 239 0066 24E0 ldi r18,lo8(4)
  246. 240 0068 30E0 ldi r19,0
  247. 241 006a AE01 movw r20,r28
  248. 242 006c 4F5F subi r20,-1
  249. 243 006e 5F4F sbci r21,-1
  250. 244 0070 66E0 ldi r22,lo8(6)
  251. 245 0072 70E1 ldi r23,lo8(16)
  252. 246 0074 F801 movw r30,r16
  253. 247 0076 8081 ld r24,Z
  254. 248 0078 9181 ldd r25,Z+1
  255. 249 007a 0E94 0000 call NutTcpSetSockOpt
  256. 250 007e 60E0 ldi r22,lo8(.LC2)
  257. 251 0080 70E0 ldi r23,hi8(.LC2)
  258. 252 0082 F801 movw r30,r16
  259. 253 0084 8081 ld r24,Z
  260. 254 0086 9181 ldd r25,Z+1
  261. 255 0088 0E94 0000 call _fdopen
  262. 256 008c F801 movw r30,r16
  263. 257 008e 9383 std Z+3,r25
  264. 258 0090 8283 std Z+2,r24
  265. 259 0092 892B or r24,r25
  266. 260 0094 01F0 breq .L24
  267. 261 0096 C801 movw r24,r16
  268. 262 0098 0E94 0000 call NutPop3ReceiveResponse
  269. 263 009c 0097 sbiw r24,0
  270. 264 009e 01F0 breq .L24
  271. 265 00a0 6CE3 ldi r22,lo8(60)
  272. 266 00a2 70E0 ldi r23,0
  273. 267 00a4 0E94 0000 call strchr
  274. 268 00a8 0097 sbiw r24,0
  275. 269 00aa 01F0 breq .L28
  276. 270 00ac 0E94 0000 call strdup
  277. 271 00b0 7C01 movw r14,r24
  278. 272 00b2 F801 movw r30,r16
  279. 273 00b4 9583 std Z+5,r25
  280. 274 00b6 8483 std Z+4,r24
  281. 275 00b8 0097 sbiw r24,0
  282. 276 00ba 01F0 breq .L28
  283. 277 00bc 6EE3 ldi r22,lo8(62)
  284. 278 00be 70E0 ldi r23,0
  285. 279 00c0 0E94 0000 call strchr
  286. 280 00c4 0097 sbiw r24,0
  287. 281 00c6 01F0 breq .L30
  288. 282 00c8 FC01 movw r30,r24
  289. 283 00ca 1182 std Z+1,__zero_reg__
  290. 284 00cc 00C0 rjmp .L28
  291. GAS LISTING /tmp/cco0ehss.s page 6
  292. 285 .L30:
  293. 286 00ce C701 movw r24,r14
  294. 287 00d0 0E94 0000 call free
  295. 288 00d4 F801 movw r30,r16
  296. 289 00d6 1582 std Z+5,__zero_reg__
  297. 290 00d8 1482 std Z+4,__zero_reg__
  298. 291 .L28:
  299. 292 00da C801 movw r24,r16
  300. 293 00dc 00C0 rjmp .L22
  301. 294 .L24:
  302. 295 00de C801 movw r24,r16
  303. 296 00e0 0E94 0000 call NutPop3Disconnect
  304. 297 00e4 C801 movw r24,r16
  305. 298 00e6 0E94 0000 call free
  306. 299 .L31:
  307. 300 00ea 80E0 ldi r24,0
  308. 301 00ec 90E0 ldi r25,0
  309. 302 .L22:
  310. 303 /* epilogue start */
  311. 304 00ee 0F90 pop __tmp_reg__
  312. 305 00f0 0F90 pop __tmp_reg__
  313. 306 00f2 0F90 pop __tmp_reg__
  314. 307 00f4 0F90 pop __tmp_reg__
  315. 308 00f6 DF91 pop r29
  316. 309 00f8 CF91 pop r28
  317. 310 00fa 1F91 pop r17
  318. 311 00fc 0F91 pop r16
  319. 312 00fe FF90 pop r15
  320. 313 0100 EF90 pop r14
  321. 314 0102 DF90 pop r13
  322. 315 0104 CF90 pop r12
  323. 316 0106 BF90 pop r11
  324. 317 0108 AF90 pop r10
  325. 318 010a 0895 ret
  326. 319 .size NutPop3Connect, .-NutPop3Connect
  327. 320 .section .rodata.str1.1
  328. 321 .LC3:
  329. 322 000c 4150 4F50 .string "APOP %s %s"
  330. 322 2025 7320
  331. 322 2573 00
  332. 323 .LC4:
  333. 324 0017 5553 4552 .string "USER %s"
  334. 324 2025 7300
  335. 325 .LC5:
  336. 326 001f 5041 5353 .string "PASS %s"
  337. 326 2025 7300
  338. 327 .section .text.NutPop3Login,"ax",@progbits
  339. 328 .global NutPop3Login
  340. 329 .type NutPop3Login, @function
  341. 330 NutPop3Login:
  342. 331 0000 4F92 push r4
  343. 332 0002 5F92 push r5
  344. 333 0004 6F92 push r6
  345. 334 0006 7F92 push r7
  346. 335 0008 8F92 push r8
  347. 336 000a 9F92 push r9
  348. 337 000c AF92 push r10
  349. GAS LISTING /tmp/cco0ehss.s page 7
  350. 338 000e BF92 push r11
  351. 339 0010 CF92 push r12
  352. 340 0012 DF92 push r13
  353. 341 0014 EF92 push r14
  354. 342 0016 FF92 push r15
  355. 343 0018 0F93 push r16
  356. 344 001a 1F93 push r17
  357. 345 001c CF93 push r28
  358. 346 001e DF93 push r29
  359. 347 /* prologue: function */
  360. 348 /* frame size = 0 */
  361. 349 /* stack size = 16 */
  362. 350 .L__stack_usage = 16
  363. 351 0020 8C01 movw r16,r24
  364. 352 0022 562E mov r5,r22
  365. 353 0024 472E mov r4,r23
  366. 354 0026 742E mov r7,r20
  367. 355 0028 652E mov r6,r21
  368. 356 002a FC01 movw r30,r24
  369. 357 002c 8480 ldd r8,Z+4
  370. 358 002e 9580 ldd r9,Z+5
  371. 359 0030 8114 cp r8,__zero_reg__
  372. 360 0032 9104 cpc r9,__zero_reg__
  373. 361 0034 01F4 brne .+2
  374. 362 0036 00C0 rjmp .L42
  375. 363 0038 E401 movw r28,r8
  376. 364 0:
  377. 365 003a 0990 ld __tmp_reg__,Y+
  378. 366 003c 0020 tst __tmp_reg__
  379. 367 003e 01F4 brne 0b
  380. 368 0040 2197 sbiw r28,1
  381. 369 0042 C819 sub r28,r8
  382. 370 0044 D909 sbc r29,r9
  383. 371 0046 A42F mov r26,r20
  384. 372 0048 B52F mov r27,r21
  385. 373 004a FD01 movw r30,r26
  386. 374 0:
  387. 375 004c 0190 ld __tmp_reg__,Z+
  388. 376 004e 0020 tst __tmp_reg__
  389. 377 0050 01F4 brne 0b
  390. 378 0052 3197 sbiw r30,1
  391. 379 0054 EA1B sub r30,r26
  392. 380 0056 FB0B sbc r31,r27
  393. 381 0058 CE0F add r28,r30
  394. 382 005a DF1F adc r29,r31
  395. 383 005c CE01 movw r24,r28
  396. 384 005e 0196 adiw r24,1
  397. 385 0060 0E94 0000 call malloc
  398. 386 0064 5C01 movw r10,r24
  399. 387 0066 68E5 ldi r22,lo8(88)
  400. 388 0068 70E0 ldi r23,0
  401. 389 006a 81E0 ldi r24,lo8(1)
  402. 390 006c 90E0 ldi r25,0
  403. 391 006e 0E94 0000 call calloc
  404. 392 0072 6C01 movw r12,r24
  405. 393 0074 80E1 ldi r24,lo8(16)
  406. 394 0076 90E0 ldi r25,0
  407. GAS LISTING /tmp/cco0ehss.s page 8
  408. 395 0078 0E94 0000 call malloc
  409. 396 007c 7C01 movw r14,r24
  410. 397 007e A114 cp r10,__zero_reg__
  411. 398 0080 B104 cpc r11,__zero_reg__
  412. 399 0082 01F0 breq .L47
  413. 400 0084 C114 cp r12,__zero_reg__
  414. 401 0086 D104 cpc r13,__zero_reg__
  415. 402 0088 01F0 breq .L47
  416. 403 008a 892B or r24,r25
  417. 404 008c 01F0 breq .L47
  418. 405 008e B401 movw r22,r8
  419. 406 0090 C501 movw r24,r10
  420. 407 0092 0E94 0000 call strcpy
  421. 408 0096 672D mov r22,r7
  422. 409 0098 762D mov r23,r6
  423. 410 009a C501 movw r24,r10
  424. 411 009c 0E94 0000 call strcat
  425. 412 00a0 C601 movw r24,r12
  426. 413 00a2 0E94 0000 call NutMD5Init
  427. 414 00a6 9E01 movw r18,r28
  428. 415 00a8 40E0 ldi r20,0
  429. 416 00aa 50E0 ldi r21,0
  430. 417 00ac B501 movw r22,r10
  431. 418 00ae C601 movw r24,r12
  432. 419 00b0 0E94 0000 call NutMD5Update
  433. 420 00b4 B701 movw r22,r14
  434. 421 00b6 C601 movw r24,r12
  435. 422 00b8 0E94 0000 call NutMD5Final
  436. 423 00bc FF92 push r15
  437. 424 00be EF92 push r14
  438. 425 00c0 4F92 push r4
  439. 426 00c2 5F92 push r5
  440. 427 00c4 80E0 ldi r24,lo8(.LC3)
  441. 428 00c6 90E0 ldi r25,hi8(.LC3)
  442. 429 00c8 9F93 push r25
  443. 430 00ca 8F93 push r24
  444. 431 00cc 1F93 push r17
  445. 432 00ce 0F93 push r16
  446. 433 00d0 0E94 0000 call NutPop3SendCommand
  447. 434 00d4 0E94 0000 call CheckResponse
  448. 435 00d8 EC01 movw r28,r24
  449. 436 00da 8DB7 in r24,__SP_L__
  450. 437 00dc 9EB7 in r25,__SP_H__
  451. 438 00de 0896 adiw r24,8
  452. 439 00e0 0FB6 in __tmp_reg__,__SREG__
  453. 440 00e2 F894 cli
  454. 441 00e4 9EBF out __SP_H__,r25
  455. 442 00e6 0FBE out __SREG__,__tmp_reg__
  456. 443 00e8 8DBF out __SP_L__,r24
  457. 444 00ea 00C0 rjmp .L43
  458. 445 .L47:
  459. 446 00ec CFEF ldi r28,lo8(-1)
  460. 447 00ee DFEF ldi r29,lo8(-1)
  461. 448 .L43:
  462. 449 00f0 C501 movw r24,r10
  463. 450 00f2 0E94 0000 call free
  464. 451 00f6 C601 movw r24,r12
  465. GAS LISTING /tmp/cco0ehss.s page 9
  466. 452 00f8 0E94 0000 call free
  467. 453 00fc C701 movw r24,r14
  468. 454 00fe 0E94 0000 call free
  469. 455 0102 00C0 rjmp .L44
  470. 456 .L42:
  471. 457 0104 7F93 push r23
  472. 458 0106 6F93 push r22
  473. 459 0108 80E0 ldi r24,lo8(.LC4)
  474. 460 010a 90E0 ldi r25,hi8(.LC4)
  475. 461 010c 9F93 push r25
  476. 462 010e 8F93 push r24
  477. 463 0110 1F93 push r17
  478. 464 0112 0F93 push r16
  479. 465 0114 0E94 0000 call NutPop3SendCommand
  480. 466 0118 0E94 0000 call CheckResponse
  481. 467 011c 0F90 pop __tmp_reg__
  482. 468 011e 0F90 pop __tmp_reg__
  483. 469 0120 0F90 pop __tmp_reg__
  484. 470 0122 0F90 pop __tmp_reg__
  485. 471 0124 0F90 pop __tmp_reg__
  486. 472 0126 0F90 pop __tmp_reg__
  487. 473 0128 892B or r24,r25
  488. 474 012a 01F4 brne .L48
  489. 475 012c 6F92 push r6
  490. 476 012e 7F92 push r7
  491. 477 0130 80E0 ldi r24,lo8(.LC5)
  492. 478 0132 90E0 ldi r25,hi8(.LC5)
  493. 479 0134 9F93 push r25
  494. 480 0136 8F93 push r24
  495. 481 0138 1F93 push r17
  496. 482 013a 0F93 push r16
  497. 483 013c 0E94 0000 call NutPop3SendCommand
  498. 484 0140 0F90 pop __tmp_reg__
  499. 485 0142 0F90 pop __tmp_reg__
  500. 486 0144 0F90 pop __tmp_reg__
  501. 487 0146 0F90 pop __tmp_reg__
  502. 488 0148 0F90 pop __tmp_reg__
  503. 489 014a 0F90 pop __tmp_reg__
  504. 490 /* epilogue start */
  505. 491 014c DF91 pop r29
  506. 492 014e CF91 pop r28
  507. 493 0150 1F91 pop r17
  508. 494 0152 0F91 pop r16
  509. 495 0154 FF90 pop r15
  510. 496 0156 EF90 pop r14
  511. 497 0158 DF90 pop r13
  512. 498 015a CF90 pop r12
  513. 499 015c BF90 pop r11
  514. 500 015e AF90 pop r10
  515. 501 0160 9F90 pop r9
  516. 502 0162 8F90 pop r8
  517. 503 0164 7F90 pop r7
  518. 504 0166 6F90 pop r6
  519. 505 0168 5F90 pop r5
  520. 506 016a 4F90 pop r4
  521. 507 016c 0C94 0000 jmp CheckResponse
  522. 508 .L48:
  523. GAS LISTING /tmp/cco0ehss.s page 10
  524. 509 0170 CFEF ldi r28,lo8(-1)
  525. 510 0172 DFEF ldi r29,lo8(-1)
  526. 511 .L44:
  527. 512 0174 CE01 movw r24,r28
  528. 513 /* epilogue start */
  529. 514 0176 DF91 pop r29
  530. 515 0178 CF91 pop r28
  531. 516 017a 1F91 pop r17
  532. 517 017c 0F91 pop r16
  533. 518 017e FF90 pop r15
  534. 519 0180 EF90 pop r14
  535. 520 0182 DF90 pop r13
  536. 521 0184 CF90 pop r12
  537. 522 0186 BF90 pop r11
  538. 523 0188 AF90 pop r10
  539. 524 018a 9F90 pop r9
  540. 525 018c 8F90 pop r8
  541. 526 018e 7F90 pop r7
  542. 527 0190 6F90 pop r6
  543. 528 0192 5F90 pop r5
  544. 529 0194 4F90 pop r4
  545. 530 0196 0895 ret
  546. 531 .size NutPop3Login, .-NutPop3Login
  547. 532 .section .rodata.str1.1
  548. 533 .LC6:
  549. 534 0027 5245 5452 .string "RETR %d"
  550. 534 2025 6400
  551. 535 .section .text.NutPop3RetrieveMsg,"ax",@progbits
  552. 536 .global NutPop3RetrieveMsg
  553. 537 .type NutPop3RetrieveMsg, @function
  554. 538 NutPop3RetrieveMsg:
  555. 539 /* prologue: function */
  556. 540 /* frame size = 0 */
  557. 541 /* stack size = 0 */
  558. 542 .L__stack_usage = 0
  559. 543 0000 7F93 push r23
  560. 544 0002 6F93 push r22
  561. 545 0004 20E0 ldi r18,lo8(.LC6)
  562. 546 0006 30E0 ldi r19,hi8(.LC6)
  563. 547 0008 3F93 push r19
  564. 548 000a 2F93 push r18
  565. 549 000c 9F93 push r25
  566. 550 000e 8F93 push r24
  567. 551 0010 0E94 0000 call NutPop3SendCommand
  568. 552 0014 0F90 pop __tmp_reg__
  569. 553 0016 0F90 pop __tmp_reg__
  570. 554 0018 0F90 pop __tmp_reg__
  571. 555 001a 0F90 pop __tmp_reg__
  572. 556 001c 0F90 pop __tmp_reg__
  573. 557 001e 0F90 pop __tmp_reg__
  574. 558 0020 0C94 0000 jmp CheckResponse
  575. 559 .size NutPop3RetrieveMsg, .-NutPop3RetrieveMsg
  576. 560 .section .rodata.str1.1
  577. 561 .LC7:
  578. 562 002f 4445 4C45 .string "DELE %d"
  579. 562 2025 6400
  580. 563 .section .text.NutPop3DeleteMsg,"ax",@progbits
  581. GAS LISTING /tmp/cco0ehss.s page 11
  582. 564 .global NutPop3DeleteMsg
  583. 565 .type NutPop3DeleteMsg, @function
  584. 566 NutPop3DeleteMsg:
  585. 567 /* prologue: function */
  586. 568 /* frame size = 0 */
  587. 569 /* stack size = 0 */
  588. 570 .L__stack_usage = 0
  589. 571 0000 7F93 push r23
  590. 572 0002 6F93 push r22
  591. 573 0004 20E0 ldi r18,lo8(.LC7)
  592. 574 0006 30E0 ldi r19,hi8(.LC7)
  593. 575 0008 3F93 push r19
  594. 576 000a 2F93 push r18
  595. 577 000c 9F93 push r25
  596. 578 000e 8F93 push r24
  597. 579 0010 0E94 0000 call NutPop3SendCommand
  598. 580 0014 0F90 pop __tmp_reg__
  599. 581 0016 0F90 pop __tmp_reg__
  600. 582 0018 0F90 pop __tmp_reg__
  601. 583 001a 0F90 pop __tmp_reg__
  602. 584 001c 0F90 pop __tmp_reg__
  603. 585 001e 0F90 pop __tmp_reg__
  604. 586 0020 0C94 0000 jmp CheckResponse
  605. 587 .size NutPop3DeleteMsg, .-NutPop3DeleteMsg
  606. 588 .ident "GCC: (GNU) 5.3.0"
  607. 589 .global __do_copy_data
  608. GAS LISTING /tmp/cco0ehss.s page 12
  609. DEFINED SYMBOLS
  610. *ABS*:0000000000000000 pop3c.c
  611. /tmp/cco0ehss.s:2 *ABS*:000000000000003e __SP_H__
  612. /tmp/cco0ehss.s:3 *ABS*:000000000000003d __SP_L__
  613. /tmp/cco0ehss.s:4 *ABS*:000000000000003f __SREG__
  614. /tmp/cco0ehss.s:5 *ABS*:000000000000003b __RAMPZ__
  615. /tmp/cco0ehss.s:6 *ABS*:0000000000000000 __tmp_reg__
  616. /tmp/cco0ehss.s:7 *ABS*:0000000000000001 __zero_reg__
  617. /tmp/cco0ehss.s:10 .text.CheckResponse:0000000000000000 CheckResponse
  618. /tmp/cco0ehss.s:39 .text.NutPop3ReceiveResponse:0000000000000000 NutPop3ReceiveResponse
  619. /tmp/cco0ehss.s:89 .text.NutPop3SendCommand:0000000000000000 NutPop3SendCommand
  620. /tmp/cco0ehss.s:136 .text.NutPop3Disconnect:0000000000000000 NutPop3Disconnect
  621. /tmp/cco0ehss.s:186 .text.NutPop3Connect:0000000000000000 NutPop3Connect
  622. /tmp/cco0ehss.s:330 .text.NutPop3Login:0000000000000000 NutPop3Login
  623. /tmp/cco0ehss.s:538 .text.NutPop3RetrieveMsg:0000000000000000 NutPop3RetrieveMsg
  624. /tmp/cco0ehss.s:566 .text.NutPop3DeleteMsg:0000000000000000 NutPop3DeleteMsg
  625. UNDEFINED SYMBOLS
  626. fgets
  627. strchr
  628. vfprintf
  629. fputs
  630. fflush
  631. fclose
  632. NutTcpCloseSocket
  633. free
  634. calloc
  635. NutTcpCreateSocket
  636. NutTcpConnect
  637. NutTcpSetSockOpt
  638. _fdopen
  639. strdup
  640. malloc
  641. strcpy
  642. strcat
  643. NutMD5Init
  644. NutMD5Update
  645. NutMD5Final
  646. __do_copy_data