smtpc.lst 47 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413
  1. GAS LISTING /tmp/ccJvOYjv.s page 1
  2. 1 .file "smtpc.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 .rodata.str1.1,"aMS",@progbits,1
  10. 9 .LC0:
  11. 10 0000 546F 3A20 .string "To: "
  12. 10 00
  13. 11 .LC1:
  14. 12 0005 4343 3A20 .string "CC: "
  15. 12 00
  16. 13 .LC2:
  17. 14 000a 2C0D 0A20 .string ",\r\n "
  18. 14 2020 2000
  19. 15 .LC3:
  20. 16 0012 0D0A 00 .string "\r\n"
  21. 17 .section .text.SendMailHeaderRecipient,"ax",@progbits
  22. 18 .type SendMailHeaderRecipient, @function
  23. 19 SendMailHeaderRecipient:
  24. 20 0000 6F92 push r6
  25. 21 0002 7F92 push r7
  26. 22 0004 8F92 push r8
  27. 23 0006 9F92 push r9
  28. 24 0008 AF92 push r10
  29. 25 000a BF92 push r11
  30. 26 000c CF92 push r12
  31. 27 000e DF92 push r13
  32. 28 0010 EF92 push r14
  33. 29 0012 FF92 push r15
  34. 30 0014 0F93 push r16
  35. 31 0016 1F93 push r17
  36. 32 0018 CF93 push r28
  37. 33 001a DF93 push r29
  38. 34 /* prologue: function */
  39. 35 /* frame size = 0 */
  40. 36 /* stack size = 14 */
  41. 37 .L__stack_usage = 14
  42. 38 001c EC01 movw r28,r24
  43. 39 001e 4130 cpi r20,lo8(1)
  44. 40 0020 01F4 brne .L2
  45. 41 0022 90E0 ldi r25,lo8(.LC0)
  46. 42 0024 892E mov r8,r25
  47. 43 0026 90E0 ldi r25,hi8(.LC0)
  48. 44 0028 992E mov r9,r25
  49. 45 002a 00C0 rjmp .L3
  50. 46 .L2:
  51. 47 002c 80E0 ldi r24,lo8(.LC1)
  52. 48 002e 882E mov r8,r24
  53. 49 0030 80E0 ldi r24,hi8(.LC1)
  54. 50 0032 982E mov r9,r24
  55. 51 .L3:
  56. 52 0034 6B01 movw r12,r22
  57. 53 0036 8CE1 ldi r24,28
  58. 54 0038 C80E add r12,r24
  59. GAS LISTING /tmp/ccJvOYjv.s page 2
  60. 55 003a D11C adc r13,__zero_reg__
  61. 56 003c 5B01 movw r10,r22
  62. 57 003e E4E1 ldi r30,20
  63. 58 0040 AE0E add r10,r30
  64. 59 0042 B11C adc r11,__zero_reg__
  65. 60 0044 3B01 movw r6,r22
  66. 61 0046 F0E2 ldi r31,32
  67. 62 0048 6F0E add r6,r31
  68. 63 004a 711C adc r7,__zero_reg__
  69. 64 004c 00E0 ldi r16,0
  70. 65 004e 10E0 ldi r17,0
  71. 66 0050 E42E mov r14,r20
  72. 67 0052 F12C mov r15,__zero_reg__
  73. 68 .L7:
  74. 69 0054 F601 movw r30,r12
  75. 70 0056 8191 ld r24,Z+
  76. 71 0058 6F01 movw r12,r30
  77. 72 005a 8370 andi r24,lo8(3)
  78. 73 005c 90E0 ldi r25,0
  79. 74 005e 8E15 cp r24,r14
  80. 75 0060 9F05 cpc r25,r15
  81. 76 0062 01F4 brne .L4
  82. 77 0064 BE01 movw r22,r28
  83. 78 0066 0115 cp r16,__zero_reg__
  84. 79 0068 1105 cpc r17,__zero_reg__
  85. 80 006a 01F0 breq .L5
  86. 81 006c 80E0 ldi r24,lo8(.LC2)
  87. 82 006e 90E0 ldi r25,hi8(.LC2)
  88. 83 0070 00C0 rjmp .L13
  89. 84 .L5:
  90. 85 0072 C401 movw r24,r8
  91. 86 .L13:
  92. 87 0074 0E94 0000 call fputs
  93. 88 0078 BE01 movw r22,r28
  94. 89 007a F501 movw r30,r10
  95. 90 007c 8081 ld r24,Z
  96. 91 007e 9181 ldd r25,Z+1
  97. 92 0080 0E94 0000 call fputs
  98. 93 0084 0F5F subi r16,-1
  99. 94 0086 1F4F sbci r17,-1
  100. 95 .L4:
  101. 96 0088 F2E0 ldi r31,2
  102. 97 008a AF0E add r10,r31
  103. 98 008c B11C adc r11,__zero_reg__
  104. 99 008e C614 cp r12,r6
  105. 100 0090 D704 cpc r13,r7
  106. 101 0092 01F4 brne .L7
  107. 102 0094 012B or r16,r17
  108. 103 0096 01F0 breq .L8
  109. 104 0098 BE01 movw r22,r28
  110. 105 009a 80E0 ldi r24,lo8(.LC3)
  111. 106 009c 90E0 ldi r25,hi8(.LC3)
  112. 107 009e 0E94 0000 call fputs
  113. 108 .L8:
  114. 109 00a2 80E0 ldi r24,0
  115. 110 00a4 90E0 ldi r25,0
  116. 111 /* epilogue start */
  117. GAS LISTING /tmp/ccJvOYjv.s page 3
  118. 112 00a6 DF91 pop r29
  119. 113 00a8 CF91 pop r28
  120. 114 00aa 1F91 pop r17
  121. 115 00ac 0F91 pop r16
  122. 116 00ae FF90 pop r15
  123. 117 00b0 EF90 pop r14
  124. 118 00b2 DF90 pop r13
  125. 119 00b4 CF90 pop r12
  126. 120 00b6 BF90 pop r11
  127. 121 00b8 AF90 pop r10
  128. 122 00ba 9F90 pop r9
  129. 123 00bc 8F90 pop r8
  130. 124 00be 7F90 pop r7
  131. 125 00c0 6F90 pop r6
  132. 126 00c2 0895 ret
  133. 127 .size SendMailHeaderRecipient, .-SendMailHeaderRecipient
  134. 128 .section .text.NutSmtpReceiveResponse,"ax",@progbits
  135. 129 .global NutSmtpReceiveResponse
  136. 130 .type NutSmtpReceiveResponse, @function
  137. 131 NutSmtpReceiveResponse:
  138. 132 0000 CF93 push r28
  139. 133 0002 DF93 push r29
  140. 134 /* prologue: function */
  141. 135 /* frame size = 0 */
  142. 136 /* stack size = 2 */
  143. 137 .L__stack_usage = 2
  144. 138 0004 EC01 movw r28,r24
  145. 139 0006 2896 adiw r28,8
  146. 140 0008 FC01 movw r30,r24
  147. 141 000a 4281 ldd r20,Z+2
  148. 142 000c 5381 ldd r21,Z+3
  149. 143 000e 60E0 ldi r22,0
  150. 144 0010 71E0 ldi r23,lo8(1)
  151. 145 0012 CE01 movw r24,r28
  152. 146 0014 0E94 0000 call fgets
  153. 147 0018 892B or r24,r25
  154. 148 001a 01F0 breq .L19
  155. 149 001c 6DE0 ldi r22,lo8(13)
  156. 150 001e 70E0 ldi r23,0
  157. 151 0020 CE01 movw r24,r28
  158. 152 0022 0E94 0000 call strchr
  159. 153 0026 0097 sbiw r24,0
  160. 154 0028 01F4 brne .L17
  161. 155 002a 6AE0 ldi r22,lo8(10)
  162. 156 002c 70E0 ldi r23,0
  163. 157 002e CE01 movw r24,r28
  164. 158 0030 0E94 0000 call strchr
  165. 159 0034 0097 sbiw r24,0
  166. 160 0036 01F0 breq .L19
  167. 161 .L17:
  168. 162 0038 FC01 movw r30,r24
  169. 163 003a 1082 st Z,__zero_reg__
  170. 164 003c CE01 movw r24,r28
  171. 165 003e 00C0 rjmp .L16
  172. 166 .L19:
  173. 167 0040 80E0 ldi r24,0
  174. 168 0042 90E0 ldi r25,0
  175. GAS LISTING /tmp/ccJvOYjv.s page 4
  176. 169 .L16:
  177. 170 /* epilogue start */
  178. 171 0044 DF91 pop r29
  179. 172 0046 CF91 pop r28
  180. 173 0048 0895 ret
  181. 174 .size NutSmtpReceiveResponse, .-NutSmtpReceiveResponse
  182. 175 .section .text.NutSmtpSendCommand,"ax",@progbits
  183. 176 .global NutSmtpSendCommand
  184. 177 .type NutSmtpSendCommand, @function
  185. 178 NutSmtpSendCommand:
  186. 179 0000 0F93 push r16
  187. 180 0002 1F93 push r17
  188. 181 0004 CF93 push r28
  189. 182 0006 DF93 push r29
  190. 183 0008 CDB7 in r28,__SP_L__
  191. 184 000a DEB7 in r29,__SP_H__
  192. 185 /* prologue: function */
  193. 186 /* frame size = 0 */
  194. 187 /* stack size = 4 */
  195. 188 .L__stack_usage = 4
  196. 189 000c 0885 ldd r16,Y+8
  197. 190 000e 1985 ldd r17,Y+9
  198. 191 0010 AE01 movw r20,r28
  199. 192 0012 445F subi r20,-12
  200. 193 0014 5F4F sbci r21,-1
  201. 194 0016 6A85 ldd r22,Y+10
  202. 195 0018 7B85 ldd r23,Y+11
  203. 196 001a F801 movw r30,r16
  204. 197 001c 8281 ldd r24,Z+2
  205. 198 001e 9381 ldd r25,Z+3
  206. 199 0020 0E94 0000 call vfprintf
  207. 200 0024 F801 movw r30,r16
  208. 201 0026 6281 ldd r22,Z+2
  209. 202 0028 7381 ldd r23,Z+3
  210. 203 002a 80E0 ldi r24,lo8(.LC3)
  211. 204 002c 90E0 ldi r25,hi8(.LC3)
  212. 205 002e 0E94 0000 call fputs
  213. 206 0032 F801 movw r30,r16
  214. 207 0034 8281 ldd r24,Z+2
  215. 208 0036 9381 ldd r25,Z+3
  216. 209 0038 0E94 0000 call fflush
  217. 210 003c C801 movw r24,r16
  218. 211 003e 0E94 0000 call NutSmtpReceiveResponse
  219. 212 /* epilogue start */
  220. 213 0042 DF91 pop r29
  221. 214 0044 CF91 pop r28
  222. 215 0046 1F91 pop r17
  223. 216 0048 0F91 pop r16
  224. 217 004a 0895 ret
  225. 218 .size NutSmtpSendCommand, .-NutSmtpSendCommand
  226. 219 .section .rodata.str1.1
  227. 220 .LC4:
  228. 221 0015 2573 2025 .string "%s %s"
  229. 221 7300
  230. 222 .LC5:
  231. 223 001b 2573 205B .string "%s [%s]"
  232. 223 2573 5D00
  233. GAS LISTING /tmp/ccJvOYjv.s page 5
  234. 224 .section .text.SayHello,"ax",@progbits
  235. 225 .type SayHello, @function
  236. 226 SayHello:
  237. 227 0000 0F93 push r16
  238. 228 0002 1F93 push r17
  239. 229 0004 CF93 push r28
  240. 230 0006 DF93 push r29
  241. 231 /* prologue: function */
  242. 232 /* frame size = 0 */
  243. 233 /* stack size = 4 */
  244. 234 .L__stack_usage = 4
  245. 235 0008 EC01 movw r28,r24
  246. 236 000a 162F mov r17,r22
  247. 237 000c 072F mov r16,r23
  248. 238 000e 4115 cp r20,__zero_reg__
  249. 239 0010 5105 cpc r21,__zero_reg__
  250. 240 0012 01F0 breq .L22
  251. 241 0014 5F93 push r21
  252. 242 0016 4F93 push r20
  253. 243 0018 7F93 push r23
  254. 244 001a 6F93 push r22
  255. 245 001c 80E0 ldi r24,lo8(.LC4)
  256. 246 001e 90E0 ldi r25,hi8(.LC4)
  257. 247 0020 9F93 push r25
  258. 248 0022 8F93 push r24
  259. 249 0024 DF93 push r29
  260. 250 0026 CF93 push r28
  261. 251 0028 0E94 0000 call NutSmtpSendCommand
  262. 252 002c 2DB7 in r18,__SP_L__
  263. 253 002e 3EB7 in r19,__SP_H__
  264. 254 0030 285F subi r18,-8
  265. 255 0032 3F4F sbci r19,-1
  266. 256 0034 0FB6 in __tmp_reg__,__SREG__
  267. 257 0036 F894 cli
  268. 258 0038 3EBF out __SP_H__,r19
  269. 259 003a 0FBE out __SREG__,__tmp_reg__
  270. 260 003c 2DBF out __SP_L__,r18
  271. 261 003e 00C0 rjmp .L23
  272. 262 .L22:
  273. 263 0040 6091 0000 lds r22,confnet+16
  274. 264 0044 7091 0000 lds r23,confnet+16+1
  275. 265 0048 8091 0000 lds r24,confnet+16+2
  276. 266 004c 9091 0000 lds r25,confnet+16+3
  277. 267 0050 0E94 0000 call inet_ntoa
  278. 268 0054 9F93 push r25
  279. 269 0056 8F93 push r24
  280. 270 0058 0F93 push r16
  281. 271 005a 1F93 push r17
  282. 272 005c 80E0 ldi r24,lo8(.LC5)
  283. 273 005e 90E0 ldi r25,hi8(.LC5)
  284. 274 0060 9F93 push r25
  285. 275 0062 8F93 push r24
  286. 276 0064 DF93 push r29
  287. 277 0066 CF93 push r28
  288. 278 0068 0E94 0000 call NutSmtpSendCommand
  289. 279 006c 2DB7 in r18,__SP_L__
  290. 280 006e 3EB7 in r19,__SP_H__
  291. GAS LISTING /tmp/ccJvOYjv.s page 6
  292. 281 0070 285F subi r18,-8
  293. 282 0072 3F4F sbci r19,-1
  294. 283 0074 0FB6 in __tmp_reg__,__SREG__
  295. 284 0076 F894 cli
  296. 285 0078 3EBF out __SP_H__,r19
  297. 286 007a 0FBE out __SREG__,__tmp_reg__
  298. 287 007c 2DBF out __SP_L__,r18
  299. 288 .L23:
  300. 289 /* epilogue start */
  301. 290 007e DF91 pop r29
  302. 291 0080 CF91 pop r28
  303. 292 0082 1F91 pop r17
  304. 293 0084 0F91 pop r16
  305. 294 0086 0895 ret
  306. 295 .size SayHello, .-SayHello
  307. 296 .section .rodata.str1.1
  308. 297 .LC6:
  309. 298 0023 5155 4954 .string "QUIT"
  310. 298 00
  311. 299 .section .text.NutSmtpDisconnect,"ax",@progbits
  312. 300 .global NutSmtpDisconnect
  313. 301 .type NutSmtpDisconnect, @function
  314. 302 NutSmtpDisconnect:
  315. 303 0000 CF93 push r28
  316. 304 0002 DF93 push r29
  317. 305 /* prologue: function */
  318. 306 /* frame size = 0 */
  319. 307 /* stack size = 2 */
  320. 308 .L__stack_usage = 2
  321. 309 0004 EC01 movw r28,r24
  322. 310 0006 8881 ld r24,Y
  323. 311 0008 9981 ldd r25,Y+1
  324. 312 000a 892B or r24,r25
  325. 313 000c 01F0 breq .L25
  326. 314 000e 8A81 ldd r24,Y+2
  327. 315 0010 9B81 ldd r25,Y+3
  328. 316 0012 892B or r24,r25
  329. 317 0014 01F0 breq .L26
  330. 318 0016 80E0 ldi r24,lo8(.LC6)
  331. 319 0018 90E0 ldi r25,hi8(.LC6)
  332. 320 001a 9F93 push r25
  333. 321 001c 8F93 push r24
  334. 322 001e DF93 push r29
  335. 323 0020 CF93 push r28
  336. 324 0022 0E94 0000 call NutSmtpSendCommand
  337. 325 0026 8A81 ldd r24,Y+2
  338. 326 0028 9B81 ldd r25,Y+3
  339. 327 002a 0E94 0000 call fclose
  340. 328 002e 0F90 pop __tmp_reg__
  341. 329 0030 0F90 pop __tmp_reg__
  342. 330 0032 0F90 pop __tmp_reg__
  343. 331 0034 0F90 pop __tmp_reg__
  344. 332 .L26:
  345. 333 0036 8881 ld r24,Y
  346. 334 0038 9981 ldd r25,Y+1
  347. 335 003a 0E94 0000 call NutTcpCloseSocket
  348. 336 .L25:
  349. GAS LISTING /tmp/ccJvOYjv.s page 7
  350. 337 003e CE01 movw r24,r28
  351. 338 /* epilogue start */
  352. 339 0040 DF91 pop r29
  353. 340 0042 CF91 pop r28
  354. 341 0044 0C94 0000 jmp free
  355. 342 .size NutSmtpDisconnect, .-NutSmtpDisconnect
  356. 343 .section .rodata.str1.1
  357. 344 .LC7:
  358. 345 0028 722B 6200 .string "r+b"
  359. 346 .section .text.NutSmtpConnect,"ax",@progbits
  360. 347 .global NutSmtpConnect
  361. 348 .type NutSmtpConnect, @function
  362. 349 NutSmtpConnect:
  363. 350 0000 AF92 push r10
  364. 351 0002 BF92 push r11
  365. 352 0004 CF92 push r12
  366. 353 0006 DF92 push r13
  367. 354 0008 EF92 push r14
  368. 355 000a FF92 push r15
  369. 356 000c 0F93 push r16
  370. 357 000e 1F93 push r17
  371. 358 0010 CF93 push r28
  372. 359 0012 DF93 push r29
  373. 360 0014 00D0 rcall .
  374. 361 0016 1F92 push __zero_reg__
  375. 362 0018 CDB7 in r28,__SP_L__
  376. 363 001a DEB7 in r29,__SP_H__
  377. 364 /* prologue: function */
  378. 365 /* frame size = 4 */
  379. 366 /* stack size = 14 */
  380. 367 .L__stack_usage = 14
  381. 368 001c 6B01 movw r12,r22
  382. 369 001e 7C01 movw r14,r24
  383. 370 0020 5A01 movw r10,r20
  384. 371 0022 68E0 ldi r22,lo8(8)
  385. 372 0024 71E0 ldi r23,lo8(1)
  386. 373 0026 81E0 ldi r24,lo8(1)
  387. 374 0028 90E0 ldi r25,0
  388. 375 002a 0E94 0000 call calloc
  389. 376 002e 8C01 movw r16,r24
  390. 377 0030 892B or r24,r25
  391. 378 0032 01F0 breq .L40
  392. 379 0034 0E94 0000 call NutTcpCreateSocket
  393. 380 0038 F801 movw r30,r16
  394. 381 003a 9183 std Z+1,r25
  395. 382 003c 8083 st Z,r24
  396. 383 003e 0097 sbiw r24,0
  397. 384 0040 01F0 breq .L36
  398. 385 0042 9501 movw r18,r10
  399. 386 0044 B701 movw r22,r14
  400. 387 0046 A601 movw r20,r12
  401. 388 0048 0E94 0000 call NutTcpConnect
  402. 389 004c 892B or r24,r25
  403. 390 004e 01F4 brne .L36
  404. 391 0050 80EC ldi r24,lo8(-64)
  405. 392 0052 97E2 ldi r25,lo8(39)
  406. 393 0054 A9E0 ldi r26,lo8(9)
  407. GAS LISTING /tmp/ccJvOYjv.s page 8
  408. 394 0056 B0E0 ldi r27,0
  409. 395 0058 8983 std Y+1,r24
  410. 396 005a 9A83 std Y+2,r25
  411. 397 005c AB83 std Y+3,r26
  412. 398 005e BC83 std Y+4,r27
  413. 399 0060 24E0 ldi r18,lo8(4)
  414. 400 0062 30E0 ldi r19,0
  415. 401 0064 AE01 movw r20,r28
  416. 402 0066 4F5F subi r20,-1
  417. 403 0068 5F4F sbci r21,-1
  418. 404 006a 66E0 ldi r22,lo8(6)
  419. 405 006c 70E1 ldi r23,lo8(16)
  420. 406 006e F801 movw r30,r16
  421. 407 0070 8081 ld r24,Z
  422. 408 0072 9181 ldd r25,Z+1
  423. 409 0074 0E94 0000 call NutTcpSetSockOpt
  424. 410 0078 60E0 ldi r22,lo8(.LC7)
  425. 411 007a 70E0 ldi r23,hi8(.LC7)
  426. 412 007c F801 movw r30,r16
  427. 413 007e 8081 ld r24,Z
  428. 414 0080 9181 ldd r25,Z+1
  429. 415 0082 0E94 0000 call _fdopen
  430. 416 0086 F801 movw r30,r16
  431. 417 0088 9383 std Z+3,r25
  432. 418 008a 8283 std Z+2,r24
  433. 419 008c 892B or r24,r25
  434. 420 008e 01F0 breq .L36
  435. 421 .L44:
  436. 422 0090 C801 movw r24,r16
  437. 423 0092 0E94 0000 call NutSmtpReceiveResponse
  438. 424 0096 FC01 movw r30,r24
  439. 425 0098 2081 ld r18,Z
  440. 426 009a 2233 cpi r18,lo8(50)
  441. 427 009c 01F4 brne .L36
  442. 428 009e 8381 ldd r24,Z+3
  443. 429 00a0 8D32 cpi r24,lo8(45)
  444. 430 00a2 01F0 breq .L44
  445. 431 00a4 C801 movw r24,r16
  446. 432 00a6 00C0 rjmp .L34
  447. 433 .L36:
  448. 434 00a8 C801 movw r24,r16
  449. 435 00aa 0E94 0000 call NutSmtpDisconnect
  450. 436 .L40:
  451. 437 00ae 80E0 ldi r24,0
  452. 438 00b0 90E0 ldi r25,0
  453. 439 .L34:
  454. 440 /* epilogue start */
  455. 441 00b2 0F90 pop __tmp_reg__
  456. 442 00b4 0F90 pop __tmp_reg__
  457. 443 00b6 0F90 pop __tmp_reg__
  458. 444 00b8 0F90 pop __tmp_reg__
  459. 445 00ba DF91 pop r29
  460. 446 00bc CF91 pop r28
  461. 447 00be 1F91 pop r17
  462. 448 00c0 0F91 pop r16
  463. 449 00c2 FF90 pop r15
  464. 450 00c4 EF90 pop r14
  465. GAS LISTING /tmp/ccJvOYjv.s page 9
  466. 451 00c6 DF90 pop r13
  467. 452 00c8 CF90 pop r12
  468. 453 00ca BF90 pop r11
  469. 454 00cc AF90 pop r10
  470. 455 00ce 0895 ret
  471. 456 .size NutSmtpConnect, .-NutSmtpConnect
  472. 457 .section .rodata.str1.1
  473. 458 .LC8:
  474. 459 002c 4548 4C4F .string "EHLO"
  475. 459 00
  476. 460 .LC9:
  477. 461 0031 4845 4C4F .string "HELO"
  478. 461 00
  479. 462 .LC10:
  480. 463 0036 4155 5448 .string "AUTH "
  481. 463 2000
  482. 464 .LC11:
  483. 465 003c 4C4F 4749 .string "LOGIN"
  484. 465 4E00
  485. 466 .LC12:
  486. 467 0042 504C 4149 .string "PLAIN"
  487. 467 4E00
  488. 468 .LC13:
  489. 469 0048 4155 5448 .string "AUTH PLAIN %s"
  490. 469 2050 4C41
  491. 469 494E 2025
  492. 469 7300
  493. 470 .section .text.NutSmtpLogin,"ax",@progbits
  494. 471 .global NutSmtpLogin
  495. 472 .type NutSmtpLogin, @function
  496. 473 NutSmtpLogin:
  497. 474 0000 4F92 push r4
  498. 475 0002 5F92 push r5
  499. 476 0004 6F92 push r6
  500. 477 0006 7F92 push r7
  501. 478 0008 8F92 push r8
  502. 479 000a 9F92 push r9
  503. 480 000c AF92 push r10
  504. 481 000e BF92 push r11
  505. 482 0010 CF92 push r12
  506. 483 0012 DF92 push r13
  507. 484 0014 EF92 push r14
  508. 485 0016 FF92 push r15
  509. 486 0018 0F93 push r16
  510. 487 001a 1F93 push r17
  511. 488 001c CF93 push r28
  512. 489 001e DF93 push r29
  513. 490 /* prologue: function */
  514. 491 /* frame size = 0 */
  515. 492 /* stack size = 16 */
  516. 493 .L__stack_usage = 16
  517. 494 0020 EC01 movw r28,r24
  518. 495 0022 7B01 movw r14,r22
  519. 496 0024 6A01 movw r12,r20
  520. 497 0026 5901 movw r10,r18
  521. 498 0028 AB01 movw r20,r22
  522. 499 002a 60E0 ldi r22,lo8(.LC8)
  523. GAS LISTING /tmp/ccJvOYjv.s page 10
  524. 500 002c 70E0 ldi r23,hi8(.LC8)
  525. 501 002e 0E94 0000 call SayHello
  526. 502 0032 8C01 movw r16,r24
  527. 503 0034 0097 sbiw r24,0
  528. 504 0036 01F4 brne .L48
  529. 505 .L51:
  530. 506 0038 8FEF ldi r24,lo8(-1)
  531. 507 003a 9FEF ldi r25,lo8(-1)
  532. 508 003c 00C0 rjmp .L49
  533. 509 .L48:
  534. 510 003e DC01 movw r26,r24
  535. 511 0040 8C91 ld r24,X
  536. 512 0042 8533 cpi r24,lo8(53)
  537. 513 0044 01F4 brne .L50
  538. 514 0046 8C81 ldd r24,Y+4
  539. 515 0048 9D81 ldd r25,Y+5
  540. 516 004a AE81 ldd r26,Y+6
  541. 517 004c BF81 ldd r27,Y+7
  542. 518 004e 8160 ori r24,1
  543. 519 0050 8C83 std Y+4,r24
  544. 520 0052 9D83 std Y+5,r25
  545. 521 0054 AE83 std Y+6,r26
  546. 522 0056 BF83 std Y+7,r27
  547. 523 0058 A701 movw r20,r14
  548. 524 005a 60E0 ldi r22,lo8(.LC9)
  549. 525 005c 70E0 ldi r23,hi8(.LC9)
  550. 526 005e CE01 movw r24,r28
  551. 527 0060 0E94 0000 call SayHello
  552. 528 0064 8C01 movw r16,r24
  553. 529 0066 892B or r24,r25
  554. 530 0068 01F0 breq .L51
  555. 531 .L50:
  556. 532 006a F801 movw r30,r16
  557. 533 006c 8081 ld r24,Z
  558. 534 006e 8233 cpi r24,lo8(50)
  559. 535 0070 01F4 brne .L51
  560. 536 0072 8C81 ldd r24,Y+4
  561. 537 0074 80FF sbrs r24,0
  562. 538 0076 00C0 rjmp .L59
  563. 539 .L58:
  564. 540 0078 C114 cp r12,__zero_reg__
  565. 541 007a D104 cpc r13,__zero_reg__
  566. 542 007c 01F4 brne .L92
  567. 543 007e 00C0 rjmp .L93
  568. 544 .L94:
  569. 545 0080 7801 movw r14,r16
  570. 546 0082 F9E0 ldi r31,9
  571. 547 0084 EF0E add r14,r31
  572. 548 0086 F11C adc r15,__zero_reg__
  573. 549 0088 60E0 ldi r22,lo8(.LC11)
  574. 550 008a 70E0 ldi r23,hi8(.LC11)
  575. 551 008c C701 movw r24,r14
  576. 552 008e 0E94 0000 call strstr
  577. 553 0092 892B or r24,r25
  578. 554 0094 01F0 breq .L56
  579. 555 0096 8C81 ldd r24,Y+4
  580. 556 0098 9D81 ldd r25,Y+5
  581. GAS LISTING /tmp/ccJvOYjv.s page 11
  582. 557 009a AE81 ldd r26,Y+6
  583. 558 009c BF81 ldd r27,Y+7
  584. 559 009e 8260 ori r24,2
  585. 560 00a0 8C83 std Y+4,r24
  586. 561 00a2 9D83 std Y+5,r25
  587. 562 00a4 AE83 std Y+6,r26
  588. 563 00a6 BF83 std Y+7,r27
  589. 564 .L56:
  590. 565 00a8 60E0 ldi r22,lo8(.LC12)
  591. 566 00aa 70E0 ldi r23,hi8(.LC12)
  592. 567 00ac C701 movw r24,r14
  593. 568 00ae 0E94 0000 call strstr
  594. 569 00b2 892B or r24,r25
  595. 570 00b4 01F0 breq .L55
  596. 571 00b6 8C81 ldd r24,Y+4
  597. 572 00b8 9D81 ldd r25,Y+5
  598. 573 00ba AE81 ldd r26,Y+6
  599. 574 00bc BF81 ldd r27,Y+7
  600. 575 00be 8460 ori r24,4
  601. 576 00c0 8C83 std Y+4,r24
  602. 577 00c2 9D83 std Y+5,r25
  603. 578 00c4 AE83 std Y+6,r26
  604. 579 00c6 BF83 std Y+7,r27
  605. 580 .L55:
  606. 581 00c8 D801 movw r26,r16
  607. 582 00ca 1396 adiw r26,3
  608. 583 00cc 8C91 ld r24,X
  609. 584 00ce 8D32 cpi r24,lo8(45)
  610. 585 00d0 01F4 brne .L58
  611. 586 00d2 CE01 movw r24,r28
  612. 587 00d4 0E94 0000 call NutSmtpReceiveResponse
  613. 588 00d8 8C01 movw r16,r24
  614. 589 00da 892B or r24,r25
  615. 590 00dc 01F0 breq .L58
  616. 591 .L59:
  617. 592 00de 45E0 ldi r20,lo8(5)
  618. 593 00e0 50E0 ldi r21,0
  619. 594 00e2 60E0 ldi r22,lo8(.LC10)
  620. 595 00e4 70E0 ldi r23,hi8(.LC10)
  621. 596 00e6 C801 movw r24,r16
  622. 597 00e8 0496 adiw r24,4
  623. 598 00ea 0E94 0000 call strncmp
  624. 599 00ee 892B or r24,r25
  625. 600 00f0 01F4 brne .L55
  626. 601 00f2 00C0 rjmp .L94
  627. 602 .L92:
  628. 603 00f4 8C81 ldd r24,Y+4
  629. 604 00f6 82FF sbrs r24,2
  630. 605 00f8 00C0 rjmp .L51
  631. 606 00fa F601 movw r30,r12
  632. 607 0:
  633. 608 00fc 0190 ld __tmp_reg__,Z+
  634. 609 00fe 0020 tst __tmp_reg__
  635. 610 0100 01F4 brne 0b
  636. 611 0102 3197 sbiw r30,1
  637. 612 0104 7F01 movw r14,r30
  638. 613 0106 EC18 sub r14,r12
  639. GAS LISTING /tmp/ccJvOYjv.s page 12
  640. 614 0108 FD08 sbc r15,r13
  641. 615 010a F501 movw r30,r10
  642. 616 0:
  643. 617 010c 0190 ld __tmp_reg__,Z+
  644. 618 010e 0020 tst __tmp_reg__
  645. 619 0110 01F4 brne 0b
  646. 620 0112 3197 sbiw r30,1
  647. 621 0114 3F01 movw r6,r30
  648. 622 0116 6A18 sub r6,r10
  649. 623 0118 7B08 sbc r7,r11
  650. 624 011a 4301 movw r8,r6
  651. 625 011c 8E0C add r8,r14
  652. 626 011e 9F1C adc r9,r15
  653. 627 0120 C401 movw r24,r8
  654. 628 0122 0396 adiw r24,3
  655. 629 0124 0E94 0000 call malloc
  656. 630 0128 8C01 movw r16,r24
  657. 631 012a FC01 movw r30,r24
  658. 632 012c 1192 st Z+,__zero_reg__
  659. 633 012e CF01 movw r24,r30
  660. 634 0130 A701 movw r20,r14
  661. 635 0132 4F5F subi r20,-1
  662. 636 0134 5F4F sbci r21,-1
  663. 637 0136 B601 movw r22,r12
  664. 638 0138 0E94 0000 call memcpy
  665. 639 013c C701 movw r24,r14
  666. 640 013e 0296 adiw r24,2
  667. 641 0140 A301 movw r20,r6
  668. 642 0142 B501 movw r22,r10
  669. 643 0144 800F add r24,r16
  670. 644 0146 911F adc r25,r17
  671. 645 0148 0E94 0000 call memcpy
  672. 646 014c AE01 movw r20,r28
  673. 647 014e 485F subi r20,-8
  674. 648 0150 5F4F sbci r21,-1
  675. 649 0152 9401 movw r18,r8
  676. 650 0154 2E5F subi r18,-2
  677. 651 0156 3F4F sbci r19,-1
  678. 652 0158 4A01 movw r8,r20
  679. 653 015a 60E0 ldi r22,0
  680. 654 015c F3E0 ldi r31,lo8(3)
  681. 655 015e BF2E mov r11,r31
  682. 656 0160 7DE3 ldi r23,lo8(61)
  683. 657 .L60:
  684. 658 0162 2115 cp r18,__zero_reg__
  685. 659 0164 3105 cpc r19,__zero_reg__
  686. 660 0166 01F4 brne .+2
  687. 661 0168 00C0 rjmp .L95
  688. 662 016a D801 movw r26,r16
  689. 663 016c 8C91 ld r24,X
  690. 664 016e 90E0 ldi r25,0
  691. 665 0170 A0E0 ldi r26,0
  692. 666 0172 B0E0 ldi r27,0
  693. 667 0174 DC01 movw r26,r24
  694. 668 0176 9927 clr r25
  695. 669 0178 8827 clr r24
  696. 670 017a 2230 cpi r18,2
  697. GAS LISTING /tmp/ccJvOYjv.s page 13
  698. 671 017c 3105 cpc r19,__zero_reg__
  699. 672 017e 00F4 brsh .L61
  700. 673 0180 0F5F subi r16,-1
  701. 674 0182 1F4F sbci r17,-1
  702. 675 0184 62E0 ldi r22,lo8(2)
  703. 676 0186 00C0 rjmp .L62
  704. 677 .L61:
  705. 678 0188 F801 movw r30,r16
  706. 679 018a F180 ldd r15,Z+1
  707. 680 018c 9F29 or r25,r15
  708. 681 018e 2230 cpi r18,2
  709. 682 0190 3105 cpc r19,__zero_reg__
  710. 683 0192 01F4 brne .L63
  711. 684 0194 0E5F subi r16,-2
  712. 685 0196 1F4F sbci r17,-1
  713. 686 0198 61E0 ldi r22,lo8(1)
  714. 687 019a 00C0 rjmp .L62
  715. 688 .L63:
  716. 689 019c F801 movw r30,r16
  717. 690 019e F280 ldd r15,Z+2
  718. 691 01a0 8F29 or r24,r15
  719. 692 01a2 0D5F subi r16,-3
  720. 693 01a4 1F4F sbci r17,-1
  721. 694 .L62:
  722. 695 01a6 6401 movw r12,r8
  723. 696 01a8 A62E mov r10,r22
  724. 697 .L64:
  725. 698 01aa 2C01 movw r4,r24
  726. 699 01ac 3D01 movw r6,r26
  727. 700 01ae E2E1 ldi r30,18
  728. 701 1:
  729. 702 01b0 7694 lsr r7
  730. 703 01b2 6794 ror r6
  731. 704 01b4 5794 ror r5
  732. 705 01b6 4794 ror r4
  733. 706 01b8 EA95 dec r30
  734. 707 01ba 01F4 brne 1b
  735. 708 01bc FFE3 ldi r31,63
  736. 709 01be 4F22 and r4,r31
  737. 710 01c0 5524 clr r5
  738. 711 01c2 6624 clr r6
  739. 712 01c4 7724 clr r7
  740. 713 01c6 F201 movw r30,r4
  741. 714 01c8 E050 subi r30,lo8(-(base64set.2931))
  742. 715 01ca F040 sbci r31,hi8(-(base64set.2931))
  743. 716 01cc F080 ld r15,Z
  744. 717 01ce F601 movw r30,r12
  745. 718 01d0 F192 st Z+,r15
  746. 719 01d2 6F01 movw r12,r30
  747. 720 01d4 F6E0 ldi r31,6
  748. 721 1:
  749. 722 01d6 880F lsl r24
  750. 723 01d8 991F rol r25
  751. 724 01da AA1F rol r26
  752. 725 01dc BB1F rol r27
  753. 726 01de FA95 dec r31
  754. 727 01e0 01F4 brne 1b
  755. GAS LISTING /tmp/ccJvOYjv.s page 14
  756. 728 01e2 A394 inc r10
  757. 729 01e4 F4E0 ldi r31,lo8(4)
  758. 730 01e6 AF12 cpse r10,r31
  759. 731 01e8 00C0 rjmp .L64
  760. 732 01ea 8B2D mov r24,r11
  761. 733 01ec 861B sub r24,r22
  762. 734 01ee 90E0 ldi r25,0
  763. 735 01f0 0196 adiw r24,1
  764. 736 01f2 F401 movw r30,r8
  765. 737 01f4 E80F add r30,r24
  766. 738 01f6 F91F adc r31,r25
  767. 739 01f8 6623 tst r22
  768. 740 01fa 01F0 breq .L65
  769. 741 01fc 7083 st Z,r23
  770. 742 01fe 6230 cpi r22,lo8(2)
  771. 743 0200 01F4 brne .L65
  772. 744 0202 7183 std Z+1,r23
  773. 745 .L65:
  774. 746 0204 862F mov r24,r22
  775. 747 0206 90E0 ldi r25,0
  776. 748 0208 4F01 movw r8,r30
  777. 749 020a 880E add r8,r24
  778. 750 020c 991E adc r9,r25
  779. 751 020e 0397 sbiw r24,3
  780. 752 0210 280F add r18,r24
  781. 753 0212 391F adc r19,r25
  782. 754 0214 00C0 rjmp .L60
  783. 755 .L95:
  784. 756 0216 D401 movw r26,r8
  785. 757 0218 1C92 st X,__zero_reg__
  786. 758 021a 5F93 push r21
  787. 759 021c 4F93 push r20
  788. 760 021e 80E0 ldi r24,lo8(.LC13)
  789. 761 0220 90E0 ldi r25,hi8(.LC13)
  790. 762 0222 9F93 push r25
  791. 763 0224 8F93 push r24
  792. 764 0226 DF93 push r29
  793. 765 0228 CF93 push r28
  794. 766 022a 0E94 0000 call NutSmtpSendCommand
  795. 767 022e 0F90 pop __tmp_reg__
  796. 768 0230 0F90 pop __tmp_reg__
  797. 769 0232 0F90 pop __tmp_reg__
  798. 770 0234 0F90 pop __tmp_reg__
  799. 771 0236 0F90 pop __tmp_reg__
  800. 772 0238 0F90 pop __tmp_reg__
  801. 773 023a 0097 sbiw r24,0
  802. 774 023c 01F4 brne .+2
  803. 775 023e 00C0 rjmp .L51
  804. 776 0240 21E0 ldi r18,lo8(1)
  805. 777 0242 30E0 ldi r19,0
  806. 778 0244 DC01 movw r26,r24
  807. 779 0246 8C91 ld r24,X
  808. 780 0248 8233 cpi r24,lo8(50)
  809. 781 024a 01F4 brne .L67
  810. 782 024c 20E0 ldi r18,0
  811. 783 024e 30E0 ldi r19,0
  812. 784 .L67:
  813. GAS LISTING /tmp/ccJvOYjv.s page 15
  814. 785 0250 8827 clr r24
  815. 786 0252 9927 clr r25
  816. 787 0254 821B sub r24,r18
  817. 788 0256 930B sbc r25,r19
  818. 789 0258 00C0 rjmp .L49
  819. 790 .L93:
  820. 791 025a 80E0 ldi r24,0
  821. 792 025c 90E0 ldi r25,0
  822. 793 .L49:
  823. 794 /* epilogue start */
  824. 795 025e DF91 pop r29
  825. 796 0260 CF91 pop r28
  826. 797 0262 1F91 pop r17
  827. 798 0264 0F91 pop r16
  828. 799 0266 FF90 pop r15
  829. 800 0268 EF90 pop r14
  830. 801 026a DF90 pop r13
  831. 802 026c CF90 pop r12
  832. 803 026e BF90 pop r11
  833. 804 0270 AF90 pop r10
  834. 805 0272 9F90 pop r9
  835. 806 0274 8F90 pop r8
  836. 807 0276 7F90 pop r7
  837. 808 0278 6F90 pop r6
  838. 809 027a 5F90 pop r5
  839. 810 027c 4F90 pop r4
  840. 811 027e 0895 ret
  841. 812 .size NutSmtpLogin, .-NutSmtpLogin
  842. 813 .section .rodata.str1.1
  843. 814 .LC14:
  844. 815 0056 4D41 494C .string "MAIL FROM:%s"
  845. 815 2046 524F
  846. 815 4D3A 2573
  847. 815 00
  848. 816 .LC15:
  849. 817 0063 5243 5054 .string "RCPT TO:%s"
  850. 817 2054 4F3A
  851. 817 2573 00
  852. 818 .section .text.NutSmtpSendMailRequest,"ax",@progbits
  853. 819 .global NutSmtpSendMailRequest
  854. 820 .type NutSmtpSendMailRequest, @function
  855. 821 NutSmtpSendMailRequest:
  856. 822 0000 8F92 push r8
  857. 823 0002 9F92 push r9
  858. 824 0004 AF92 push r10
  859. 825 0006 BF92 push r11
  860. 826 0008 CF92 push r12
  861. 827 000a DF92 push r13
  862. 828 000c EF92 push r14
  863. 829 000e FF92 push r15
  864. 830 0010 0F93 push r16
  865. 831 0012 1F93 push r17
  866. 832 0014 CF93 push r28
  867. 833 0016 DF93 push r29
  868. 834 /* prologue: function */
  869. 835 /* frame size = 0 */
  870. 836 /* stack size = 12 */
  871. GAS LISTING /tmp/ccJvOYjv.s page 16
  872. 837 .L__stack_usage = 12
  873. 838 0018 982E mov r9,r24
  874. 839 001a 892E mov r8,r25
  875. 840 001c 8B01 movw r16,r22
  876. 841 001e FB01 movw r30,r22
  877. 842 0020 8581 ldd r24,Z+5
  878. 843 0022 8F93 push r24
  879. 844 0024 8481 ldd r24,Z+4
  880. 845 0026 8F93 push r24
  881. 846 0028 80E0 ldi r24,lo8(.LC14)
  882. 847 002a 90E0 ldi r25,hi8(.LC14)
  883. 848 002c 9F93 push r25
  884. 849 002e 8F93 push r24
  885. 850 0030 8F92 push r8
  886. 851 0032 9F92 push r9
  887. 852 0034 0E94 0000 call NutSmtpSendCommand
  888. 853 0038 0F90 pop __tmp_reg__
  889. 854 003a 0F90 pop __tmp_reg__
  890. 855 003c 0F90 pop __tmp_reg__
  891. 856 003e 0F90 pop __tmp_reg__
  892. 857 0040 0F90 pop __tmp_reg__
  893. 858 0042 0F90 pop __tmp_reg__
  894. 859 0044 0097 sbiw r24,0
  895. 860 0046 01F4 brne .+2
  896. 861 0048 00C0 rjmp .L102
  897. 862 004a FC01 movw r30,r24
  898. 863 004c 8081 ld r24,Z
  899. 864 004e 8233 cpi r24,lo8(50)
  900. 865 0050 01F0 breq .+2
  901. 866 0052 00C0 rjmp .L102
  902. 867 0054 7801 movw r14,r16
  903. 868 0056 FCE0 ldi r31,12
  904. 869 0058 EF0E add r14,r31
  905. 870 005a F11C adc r15,__zero_reg__
  906. 871 005c E801 movw r28,r16
  907. 872 005e 6C96 adiw r28,28
  908. 873 0060 005E subi r16,-32
  909. 874 0062 1F4F sbci r17,-1
  910. 875 0064 A12C mov r10,__zero_reg__
  911. 876 0066 B12C mov r11,__zero_reg__
  912. 877 0068 80E0 ldi r24,lo8(.LC15)
  913. 878 006a C82E mov r12,r24
  914. 879 006c 80E0 ldi r24,hi8(.LC15)
  915. 880 006e D82E mov r13,r24
  916. 881 .L100:
  917. 882 0070 F701 movw r30,r14
  918. 883 0072 8191 ld r24,Z+
  919. 884 0074 9191 ld r25,Z+
  920. 885 0076 7F01 movw r14,r30
  921. 886 0078 0097 sbiw r24,0
  922. 887 007a 01F0 breq .L98
  923. 888 007c 2881 ld r18,Y
  924. 889 007e 207C andi r18,lo8(-64)
  925. 890 0080 01F4 brne .L98
  926. 891 0082 9F93 push r25
  927. 892 0084 8F93 push r24
  928. 893 0086 DF92 push r13
  929. GAS LISTING /tmp/ccJvOYjv.s page 17
  930. 894 0088 CF92 push r12
  931. 895 008a 8F92 push r8
  932. 896 008c 9F92 push r9
  933. 897 008e 0E94 0000 call NutSmtpSendCommand
  934. 898 0092 FC01 movw r30,r24
  935. 899 0094 0F90 pop __tmp_reg__
  936. 900 0096 0F90 pop __tmp_reg__
  937. 901 0098 0F90 pop __tmp_reg__
  938. 902 009a 0F90 pop __tmp_reg__
  939. 903 009c 0F90 pop __tmp_reg__
  940. 904 009e 0F90 pop __tmp_reg__
  941. 905 00a0 892B or r24,r25
  942. 906 00a2 01F0 breq .L98
  943. 907 00a4 8081 ld r24,Z
  944. 908 00a6 9881 ld r25,Y
  945. 909 00a8 8233 cpi r24,lo8(50)
  946. 910 00aa 01F4 brne .L99
  947. 911 00ac 9062 ori r25,lo8(32)
  948. 912 00ae 9883 st Y,r25
  949. 913 00b0 FFEF ldi r31,-1
  950. 914 00b2 AF1A sub r10,r31
  951. 915 00b4 BF0A sbc r11,r31
  952. 916 00b6 00C0 rjmp .L98
  953. 917 .L99:
  954. 918 00b8 9F7D andi r25,lo8(-33)
  955. 919 00ba 9883 st Y,r25
  956. 920 00bc 8081 ld r24,Z
  957. 921 00be 8533 cpi r24,lo8(53)
  958. 922 00c0 01F4 brne .L98
  959. 923 00c2 9068 ori r25,lo8(-128)
  960. 924 00c4 9883 st Y,r25
  961. 925 .L98:
  962. 926 00c6 2196 adiw r28,1
  963. 927 00c8 C017 cp r28,r16
  964. 928 00ca D107 cpc r29,r17
  965. 929 00cc 01F4 brne .L100
  966. 930 00ce 00C0 rjmp .L97
  967. 931 .L102:
  968. 932 00d0 A12C mov r10,__zero_reg__
  969. 933 00d2 B12C mov r11,__zero_reg__
  970. 934 .L97:
  971. 935 00d4 C501 movw r24,r10
  972. 936 /* epilogue start */
  973. 937 00d6 DF91 pop r29
  974. 938 00d8 CF91 pop r28
  975. 939 00da 1F91 pop r17
  976. 940 00dc 0F91 pop r16
  977. 941 00de FF90 pop r15
  978. 942 00e0 EF90 pop r14
  979. 943 00e2 DF90 pop r13
  980. 944 00e4 CF90 pop r12
  981. 945 00e6 BF90 pop r11
  982. 946 00e8 AF90 pop r10
  983. 947 00ea 9F90 pop r9
  984. 948 00ec 8F90 pop r8
  985. 949 00ee 0895 ret
  986. 950 .size NutSmtpSendMailRequest, .-NutSmtpSendMailRequest
  987. GAS LISTING /tmp/ccJvOYjv.s page 18
  988. 951 .section .rodata.str1.1
  989. 952 .LC16:
  990. 953 006e 4461 7465 .string "Date: %s\r\n"
  991. 953 3A20 2573
  992. 953 0D0A 00
  993. 954 .LC17:
  994. 955 0079 4672 6F6D .string "From: %s\r\n"
  995. 955 3A20 2573
  996. 955 0D0A 00
  997. 956 .LC18:
  998. 957 0084 5375 626A .string "Subject: %s\r\n"
  999. 957 6563 743A
  1000. 957 2025 730D
  1001. 957 0A00
  1002. 958 .section .text.NutSmtpSendMailHeader,"ax",@progbits
  1003. 959 .global NutSmtpSendMailHeader
  1004. 960 .type NutSmtpSendMailHeader, @function
  1005. 961 NutSmtpSendMailHeader:
  1006. 962 0000 0F93 push r16
  1007. 963 0002 1F93 push r17
  1008. 964 0004 CF93 push r28
  1009. 965 0006 DF93 push r29
  1010. 966 /* prologue: function */
  1011. 967 /* frame size = 0 */
  1012. 968 /* stack size = 4 */
  1013. 969 .L__stack_usage = 4
  1014. 970 0008 EC01 movw r28,r24
  1015. 971 000a 8B01 movw r16,r22
  1016. 972 000c FB01 movw r30,r22
  1017. 973 000e 8081 ld r24,Z
  1018. 974 0010 9181 ldd r25,Z+1
  1019. 975 0012 A281 ldd r26,Z+2
  1020. 976 0014 B381 ldd r27,Z+3
  1021. 977 0016 892B or r24,r25
  1022. 978 0018 8A2B or r24,r26
  1023. 979 001a 8B2B or r24,r27
  1024. 980 001c 01F0 breq .L111
  1025. 981 001e CB01 movw r24,r22
  1026. 982 0020 0E94 0000 call gmtime
  1027. 983 0024 0E94 0000 call Rfc1123TimeString
  1028. 984 0028 9F93 push r25
  1029. 985 002a 8F93 push r24
  1030. 986 002c 80E0 ldi r24,lo8(.LC16)
  1031. 987 002e 90E0 ldi r25,hi8(.LC16)
  1032. 988 0030 9F93 push r25
  1033. 989 0032 8F93 push r24
  1034. 990 0034 8B81 ldd r24,Y+3
  1035. 991 0036 8F93 push r24
  1036. 992 0038 8A81 ldd r24,Y+2
  1037. 993 003a 8F93 push r24
  1038. 994 003c 0E94 0000 call fprintf
  1039. 995 0040 0F90 pop __tmp_reg__
  1040. 996 0042 0F90 pop __tmp_reg__
  1041. 997 0044 0F90 pop __tmp_reg__
  1042. 998 0046 0F90 pop __tmp_reg__
  1043. 999 0048 0F90 pop __tmp_reg__
  1044. 1000 004a 0F90 pop __tmp_reg__
  1045. GAS LISTING /tmp/ccJvOYjv.s page 19
  1046. 1001 .L111:
  1047. 1002 004c F801 movw r30,r16
  1048. 1003 004e 8781 ldd r24,Z+7
  1049. 1004 0050 8F93 push r24
  1050. 1005 0052 8681 ldd r24,Z+6
  1051. 1006 0054 8F93 push r24
  1052. 1007 0056 80E0 ldi r24,lo8(.LC17)
  1053. 1008 0058 90E0 ldi r25,hi8(.LC17)
  1054. 1009 005a 9F93 push r25
  1055. 1010 005c 8F93 push r24
  1056. 1011 005e 8B81 ldd r24,Y+3
  1057. 1012 0060 8F93 push r24
  1058. 1013 0062 8A81 ldd r24,Y+2
  1059. 1014 0064 8F93 push r24
  1060. 1015 0066 0E94 0000 call fprintf
  1061. 1016 006a F801 movw r30,r16
  1062. 1017 006c 8185 ldd r24,Z+9
  1063. 1018 006e 8F93 push r24
  1064. 1019 0070 8085 ldd r24,Z+8
  1065. 1020 0072 8F93 push r24
  1066. 1021 0074 80E0 ldi r24,lo8(.LC18)
  1067. 1022 0076 90E0 ldi r25,hi8(.LC18)
  1068. 1023 0078 9F93 push r25
  1069. 1024 007a 8F93 push r24
  1070. 1025 007c 8B81 ldd r24,Y+3
  1071. 1026 007e 8F93 push r24
  1072. 1027 0080 8A81 ldd r24,Y+2
  1073. 1028 0082 8F93 push r24
  1074. 1029 0084 0E94 0000 call fprintf
  1075. 1030 0088 41E0 ldi r20,lo8(1)
  1076. 1031 008a B801 movw r22,r16
  1077. 1032 008c 8A81 ldd r24,Y+2
  1078. 1033 008e 9B81 ldd r25,Y+3
  1079. 1034 0090 0E94 0000 call SendMailHeaderRecipient
  1080. 1035 0094 42E0 ldi r20,lo8(2)
  1081. 1036 0096 B801 movw r22,r16
  1082. 1037 0098 8A81 ldd r24,Y+2
  1083. 1038 009a 9B81 ldd r25,Y+3
  1084. 1039 009c 0E94 0000 call SendMailHeaderRecipient
  1085. 1040 00a0 8DB7 in r24,__SP_L__
  1086. 1041 00a2 9EB7 in r25,__SP_H__
  1087. 1042 00a4 0C96 adiw r24,12
  1088. 1043 00a6 0FB6 in __tmp_reg__,__SREG__
  1089. 1044 00a8 F894 cli
  1090. 1045 00aa 9EBF out __SP_H__,r25
  1091. 1046 00ac 0FBE out __SREG__,__tmp_reg__
  1092. 1047 00ae 8DBF out __SP_L__,r24
  1093. 1048 00b0 80E0 ldi r24,0
  1094. 1049 00b2 90E0 ldi r25,0
  1095. 1050 /* epilogue start */
  1096. 1051 00b4 DF91 pop r29
  1097. 1052 00b6 CF91 pop r28
  1098. 1053 00b8 1F91 pop r17
  1099. 1054 00ba 0F91 pop r16
  1100. 1055 00bc 0895 ret
  1101. 1056 .size NutSmtpSendMailHeader, .-NutSmtpSendMailHeader
  1102. 1057 .section .text.NutSmtpSendEncodedLines,"ax",@progbits
  1103. GAS LISTING /tmp/ccJvOYjv.s page 20
  1104. 1058 .global NutSmtpSendEncodedLines
  1105. 1059 .type NutSmtpSendEncodedLines, @function
  1106. 1060 NutSmtpSendEncodedLines:
  1107. 1061 0000 EF92 push r14
  1108. 1062 0002 FF92 push r15
  1109. 1063 0004 0F93 push r16
  1110. 1064 0006 1F93 push r17
  1111. 1065 0008 CF93 push r28
  1112. 1066 000a DF93 push r29
  1113. 1067 /* prologue: function */
  1114. 1068 /* frame size = 0 */
  1115. 1069 /* stack size = 6 */
  1116. 1070 .L__stack_usage = 6
  1117. 1071 000c 8C01 movw r16,r24
  1118. 1072 000e EB01 movw r28,r22
  1119. 1073 0010 7C01 movw r14,r24
  1120. 1074 0012 28E0 ldi r18,8
  1121. 1075 0014 E20E add r14,r18
  1122. 1076 0016 F11C adc r15,__zero_reg__
  1123. 1077 .L116:
  1124. 1078 0018 8881 ld r24,Y
  1125. 1079 001a 8823 tst r24
  1126. 1080 001c 01F0 breq .L137
  1127. 1081 001e AE01 movw r20,r28
  1128. 1082 0020 F701 movw r30,r14
  1129. 1083 0022 80E0 ldi r24,0
  1130. 1084 0024 90E0 ldi r25,0
  1131. 1085 .L117:
  1132. 1086 0026 EA01 movw r28,r20
  1133. 1087 0028 2881 ld r18,Y
  1134. 1088 002a 4F5F subi r20,-1
  1135. 1089 002c 5F4F sbci r21,-1
  1136. 1090 002e 2223 tst r18
  1137. 1091 0030 01F0 breq .L121
  1138. 1092 0032 8F3F cpi r24,-1
  1139. 1093 0034 9105 cpc r25,__zero_reg__
  1140. 1094 0036 01F0 breq .+2
  1141. 1095 0038 04F4 brge .L127
  1142. 1096 003a 2D30 cpi r18,lo8(13)
  1143. 1097 003c 01F0 breq .L117
  1144. 1098 003e 2A30 cpi r18,lo8(10)
  1145. 1099 0040 01F4 brne .L119
  1146. 1100 0042 EA01 movw r28,r20
  1147. 1101 0044 00C0 rjmp .L127
  1148. 1102 .L119:
  1149. 1103 0046 2083 st Z,r18
  1150. 1104 0048 0196 adiw r24,1
  1151. 1105 004a 3196 adiw r30,1
  1152. 1106 004c 00C0 rjmp .L117
  1153. 1107 .L121:
  1154. 1108 004e 892B or r24,r25
  1155. 1109 0050 01F0 breq .L116
  1156. 1110 .L127:
  1157. 1111 0052 1082 st Z,__zero_reg__
  1158. 1112 0054 F801 movw r30,r16
  1159. 1113 0056 8085 ldd r24,Z+8
  1160. 1114 0058 8E32 cpi r24,lo8(46)
  1161. GAS LISTING /tmp/ccJvOYjv.s page 21
  1162. 1115 005a 01F4 brne .L124
  1163. 1116 005c 6281 ldd r22,Z+2
  1164. 1117 005e 7381 ldd r23,Z+3
  1165. 1118 0060 8EE2 ldi r24,lo8(46)
  1166. 1119 0062 90E0 ldi r25,0
  1167. 1120 0064 0E94 0000 call fputc
  1168. 1121 .L124:
  1169. 1122 0068 F801 movw r30,r16
  1170. 1123 006a 6281 ldd r22,Z+2
  1171. 1124 006c 7381 ldd r23,Z+3
  1172. 1125 006e C701 movw r24,r14
  1173. 1126 0070 0E94 0000 call fputs
  1174. 1127 0074 F801 movw r30,r16
  1175. 1128 0076 6281 ldd r22,Z+2
  1176. 1129 0078 7381 ldd r23,Z+3
  1177. 1130 007a 80E0 ldi r24,lo8(.LC3)
  1178. 1131 007c 90E0 ldi r25,hi8(.LC3)
  1179. 1132 007e 0E94 0000 call fputs
  1180. 1133 0082 8F3F cpi r24,-1
  1181. 1134 0084 FFEF ldi r31,-1
  1182. 1135 0086 9F07 cpc r25,r31
  1183. 1136 0088 01F4 brne .L116
  1184. 1137 008a 00C0 rjmp .L125
  1185. 1138 .L137:
  1186. 1139 008c 80E0 ldi r24,0
  1187. 1140 008e 90E0 ldi r25,0
  1188. 1141 .L125:
  1189. 1142 /* epilogue start */
  1190. 1143 0090 DF91 pop r29
  1191. 1144 0092 CF91 pop r28
  1192. 1145 0094 1F91 pop r17
  1193. 1146 0096 0F91 pop r16
  1194. 1147 0098 FF90 pop r15
  1195. 1148 009a EF90 pop r14
  1196. 1149 009c 0895 ret
  1197. 1150 .size NutSmtpSendEncodedLines, .-NutSmtpSendEncodedLines
  1198. 1151 .section .rodata.str1.1
  1199. 1152 .LC19:
  1200. 1153 0092 4441 5441 .string "DATA"
  1201. 1153 00
  1202. 1154 .LC20:
  1203. 1155 0097 2E0D 0A00 .string ".\r\n"
  1204. 1156 .section .text.NutSmtpSendMail,"ax",@progbits
  1205. 1157 .global NutSmtpSendMail
  1206. 1158 .type NutSmtpSendMail, @function
  1207. 1159 NutSmtpSendMail:
  1208. 1160 0000 0F93 push r16
  1209. 1161 0002 1F93 push r17
  1210. 1162 0004 CF93 push r28
  1211. 1163 0006 DF93 push r29
  1212. 1164 /* prologue: function */
  1213. 1165 /* frame size = 0 */
  1214. 1166 /* stack size = 4 */
  1215. 1167 .L__stack_usage = 4
  1216. 1168 0008 EC01 movw r28,r24
  1217. 1169 000a 8B01 movw r16,r22
  1218. 1170 000c 0E94 0000 call NutSmtpSendMailRequest
  1219. GAS LISTING /tmp/ccJvOYjv.s page 22
  1220. 1171 0010 1816 cp __zero_reg__,r24
  1221. 1172 0012 1906 cpc __zero_reg__,r25
  1222. 1173 0014 04F0 brlt .L139
  1223. 1174 .L141:
  1224. 1175 0016 80E0 ldi r24,0
  1225. 1176 0018 90E0 ldi r25,0
  1226. 1177 001a 00C0 rjmp .L140
  1227. 1178 .L139:
  1228. 1179 001c 80E0 ldi r24,lo8(.LC19)
  1229. 1180 001e 90E0 ldi r25,hi8(.LC19)
  1230. 1181 0020 9F93 push r25
  1231. 1182 0022 8F93 push r24
  1232. 1183 0024 DF93 push r29
  1233. 1184 0026 CF93 push r28
  1234. 1185 0028 0E94 0000 call NutSmtpSendCommand
  1235. 1186 002c 0F90 pop __tmp_reg__
  1236. 1187 002e 0F90 pop __tmp_reg__
  1237. 1188 0030 0F90 pop __tmp_reg__
  1238. 1189 0032 0F90 pop __tmp_reg__
  1239. 1190 0034 0097 sbiw r24,0
  1240. 1191 0036 01F0 breq .L141
  1241. 1192 0038 FC01 movw r30,r24
  1242. 1193 003a 2081 ld r18,Z
  1243. 1194 003c 2333 cpi r18,lo8(51)
  1244. 1195 003e 01F4 brne .L140
  1245. 1196 0040 B801 movw r22,r16
  1246. 1197 0042 CE01 movw r24,r28
  1247. 1198 0044 0E94 0000 call NutSmtpSendMailHeader
  1248. 1199 0048 6A81 ldd r22,Y+2
  1249. 1200 004a 7B81 ldd r23,Y+3
  1250. 1201 004c 80E0 ldi r24,lo8(.LC3)
  1251. 1202 004e 90E0 ldi r25,hi8(.LC3)
  1252. 1203 0050 0E94 0000 call fputs
  1253. 1204 0054 F801 movw r30,r16
  1254. 1205 0056 6285 ldd r22,Z+10
  1255. 1206 0058 7385 ldd r23,Z+11
  1256. 1207 005a 6115 cp r22,__zero_reg__
  1257. 1208 005c 7105 cpc r23,__zero_reg__
  1258. 1209 005e 01F0 breq .L142
  1259. 1210 0060 CE01 movw r24,r28
  1260. 1211 0062 0E94 0000 call NutSmtpSendEncodedLines
  1261. 1212 .L142:
  1262. 1213 0066 6A81 ldd r22,Y+2
  1263. 1214 0068 7B81 ldd r23,Y+3
  1264. 1215 006a 80E0 ldi r24,lo8(.LC20)
  1265. 1216 006c 90E0 ldi r25,hi8(.LC20)
  1266. 1217 006e 0E94 0000 call fputs
  1267. 1218 0072 8A81 ldd r24,Y+2
  1268. 1219 0074 9B81 ldd r25,Y+3
  1269. 1220 0076 0E94 0000 call fflush
  1270. 1221 007a CE01 movw r24,r28
  1271. 1222 007c 0E94 0000 call NutSmtpReceiveResponse
  1272. 1223 0080 0097 sbiw r24,0
  1273. 1224 0082 01F0 breq .L141
  1274. 1225 0084 FC01 movw r30,r24
  1275. 1226 0086 2081 ld r18,Z
  1276. 1227 0088 2233 cpi r18,lo8(50)
  1277. GAS LISTING /tmp/ccJvOYjv.s page 23
  1278. 1228 008a 01F4 brne .L140
  1279. 1229 008c D801 movw r26,r16
  1280. 1230 008e 1C96 adiw r26,12
  1281. 1231 0090 F801 movw r30,r16
  1282. 1232 0092 7C96 adiw r30,28
  1283. 1233 0094 005E subi r16,-32
  1284. 1234 0096 1F4F sbci r17,-1
  1285. 1235 .L144:
  1286. 1236 0098 2D91 ld r18,X+
  1287. 1237 009a 3D91 ld r19,X+
  1288. 1238 009c 232B or r18,r19
  1289. 1239 009e 01F0 breq .L143
  1290. 1240 00a0 2081 ld r18,Z
  1291. 1241 00a2 25FF sbrs r18,5
  1292. 1242 00a4 00C0 rjmp .L143
  1293. 1243 00a6 2064 ori r18,lo8(64)
  1294. 1244 00a8 2083 st Z,r18
  1295. 1245 .L143:
  1296. 1246 00aa 3196 adiw r30,1
  1297. 1247 00ac E017 cp r30,r16
  1298. 1248 00ae F107 cpc r31,r17
  1299. 1249 00b0 01F4 brne .L144
  1300. 1250 .L140:
  1301. 1251 /* epilogue start */
  1302. 1252 00b2 DF91 pop r29
  1303. 1253 00b4 CF91 pop r28
  1304. 1254 00b6 1F91 pop r17
  1305. 1255 00b8 0F91 pop r16
  1306. 1256 00ba 0895 ret
  1307. 1257 .size NutSmtpSendMail, .-NutSmtpSendMail
  1308. 1258 .section .rodata
  1309. 1259 .type base64set.2931, @object
  1310. 1260 .size base64set.2931, 65
  1311. 1261 base64set.2931:
  1312. 1262 0000 4142 4344 .string "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"
  1313. 1262 4546 4748
  1314. 1262 494A 4B4C
  1315. 1262 4D4E 4F50
  1316. 1262 5152 5354
  1317. 1263 .ident "GCC: (GNU) 5.3.0"
  1318. 1264 .global __do_copy_data
  1319. GAS LISTING /tmp/ccJvOYjv.s page 24
  1320. DEFINED SYMBOLS
  1321. *ABS*:0000000000000000 smtpc.c
  1322. /tmp/ccJvOYjv.s:2 *ABS*:000000000000003e __SP_H__
  1323. /tmp/ccJvOYjv.s:3 *ABS*:000000000000003d __SP_L__
  1324. /tmp/ccJvOYjv.s:4 *ABS*:000000000000003f __SREG__
  1325. /tmp/ccJvOYjv.s:5 *ABS*:000000000000003b __RAMPZ__
  1326. /tmp/ccJvOYjv.s:6 *ABS*:0000000000000000 __tmp_reg__
  1327. /tmp/ccJvOYjv.s:7 *ABS*:0000000000000001 __zero_reg__
  1328. /tmp/ccJvOYjv.s:19 .text.SendMailHeaderRecipient:0000000000000000 SendMailHeaderRecipient
  1329. /tmp/ccJvOYjv.s:131 .text.NutSmtpReceiveResponse:0000000000000000 NutSmtpReceiveResponse
  1330. /tmp/ccJvOYjv.s:178 .text.NutSmtpSendCommand:0000000000000000 NutSmtpSendCommand
  1331. /tmp/ccJvOYjv.s:226 .text.SayHello:0000000000000000 SayHello
  1332. /tmp/ccJvOYjv.s:302 .text.NutSmtpDisconnect:0000000000000000 NutSmtpDisconnect
  1333. /tmp/ccJvOYjv.s:349 .text.NutSmtpConnect:0000000000000000 NutSmtpConnect
  1334. /tmp/ccJvOYjv.s:473 .text.NutSmtpLogin:0000000000000000 NutSmtpLogin
  1335. /tmp/ccJvOYjv.s:1261 .rodata:0000000000000000 base64set.2931
  1336. /tmp/ccJvOYjv.s:821 .text.NutSmtpSendMailRequest:0000000000000000 NutSmtpSendMailRequest
  1337. /tmp/ccJvOYjv.s:961 .text.NutSmtpSendMailHeader:0000000000000000 NutSmtpSendMailHeader
  1338. /tmp/ccJvOYjv.s:1060 .text.NutSmtpSendEncodedLines:0000000000000000 NutSmtpSendEncodedLines
  1339. /tmp/ccJvOYjv.s:1159 .text.NutSmtpSendMail:0000000000000000 NutSmtpSendMail
  1340. UNDEFINED SYMBOLS
  1341. fputs
  1342. fgets
  1343. strchr
  1344. vfprintf
  1345. fflush
  1346. confnet
  1347. inet_ntoa
  1348. fclose
  1349. NutTcpCloseSocket
  1350. free
  1351. calloc
  1352. NutTcpCreateSocket
  1353. NutTcpConnect
  1354. NutTcpSetSockOpt
  1355. _fdopen
  1356. strstr
  1357. strncmp
  1358. malloc
  1359. memcpy
  1360. gmtime
  1361. Rfc1123TimeString
  1362. fprintf
  1363. fputc
  1364. __do_copy_data